Ik heb (virtueel) een machine draaien met Ubuntu server 12.04LTS als O/S. Het systeem draait een Apache 2.4.3 webserver met een 20-tal vhosts. De meeste van de sites in deze vhosts maken gebruik van php 5.3 of 5.4, maar een beperkt aantal heeft php 5.2 nodig.
De drie php versies draaien als fpm, ieder op een andere poort (9000 / 9001 / 9002). Alle sites die draaien op 5.3 of 5.4 werken zonder problemen, echter de sites op 5.2 krijg ik met geen mogelijkheid aan de praat. Met onderstaande config krijg ik een 404 ("The requested URL /info.php was not found on this server.") als ik bijv. http://tst.host/info.php opvraag uit de docroot. Het lijkt me iets met het doorgeven van het absolute pad.
In de eerste instantie dacht ik dat het lag aan de fpm, echter ook via cgi of cli lukt het me niet de scripts te laten parsen. Als ik een script handmatig uitvoer via de command-line met de cgi of cli binaries, dan is de output gewoon correct en lijkt alles in orde. Hieruit concludeer ik dat het ligt aan mijn configuratie van Apache.
Hieronder de vhost config:
Het volgende werkt dus wel:
OF
Het werkt ook als ik de poort in de vhost config verander naar de poort van 5.3 (9001) of 5.4 (9002), echter is de php code van die site niet compatible...
Iemand enig idee waar het fout kan gaan?
Note: zowel Apache als PHP heb ik zelf gecompileerd.
De drie php versies draaien als fpm, ieder op een andere poort (9000 / 9001 / 9002). Alle sites die draaien op 5.3 of 5.4 werken zonder problemen, echter de sites op 5.2 krijg ik met geen mogelijkheid aan de praat. Met onderstaande config krijg ik een 404 ("The requested URL /info.php was not found on this server.") als ik bijv. http://tst.host/info.php opvraag uit de docroot. Het lijkt me iets met het doorgeven van het absolute pad.
In de eerste instantie dacht ik dat het lag aan de fpm, echter ook via cgi of cli lukt het me niet de scripts te laten parsen. Als ik een script handmatig uitvoer via de command-line met de cgi of cli binaries, dan is de output gewoon correct en lijkt alles in orde. Hieruit concludeer ik dat het ligt aan mijn configuratie van Apache.
Hieronder de vhost config:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| <VirtualHost *:80> ServerName tst.host DocumentRoot "/path/to/docroot" HostnameLookups Off UseCanonicalName Off LogLevel debug ErrorLog "logs/tst_error.log" <IfModule mod_dir.c> DirectoryIndex index.html </IfModule> <LocationMatch ^(.*\.php)$> ProxyPass fcgi://127.0.0.1:9000/path/to/docroot connectiontimeout=3000 timeout=3000 ProxyErrorOverride on Require all granted </LocationMatch> <Directory "/path/to/docroot"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ExpiresActive On ExpiresByType image/gif A2592000 ExpiresByType image/png A2592000 ExpiresByType image/jpeg A2592000 ExpiresByType image/x-icon A2592000 ExpiresByType text/css A2592000 ExpiresByType text/x-js A2592000 SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/x-js FileETag none </VirtualHost> |
Het volgende werkt dus wel:
$ /usr/local/php-5.2.17/bin/php-cgi /path/to/docroot/info.php
OF
$ /usr/local/php-5.2.17/bin/php /path/to/docroot/info.php
Het werkt ook als ik de poort in de vhost config verander naar de poort van 5.3 (9001) of 5.4 (9002), echter is de php code van die site niet compatible...
Iemand enig idee waar het fout kan gaan?
Note: zowel Apache als PHP heb ik zelf gecompileerd.