Quasimodo
2009-11-13 13:45:07 UTC
Sto cercando di far funzionare una web-app in PHP compilata come modulo
fast-cgi. Il server è CentOS 5.4 a 64bit, con Apache 2.2
Sono arrivato alle fasi seguenti:
1) copia dei compilati fcgi in /var/www/cgi-bin
2) installazione del modulo mod_fastcgi.so:
LoadModule fastcgi_module modules/mod_fastcgi.so
AddHandler fastcgi-script fcgi
FastCgiIpcDir /tmp/fcgi_ipc
3) Configurazione del virtual host che deve gestire questo cgi:
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
ServerName Test
DocumentRoot /home/www/Test
SuexecUserGroup apache apache
<Directory /home/www/Test/>
Options FollowSymLinks ExecCGI
SetHandler fastcgi-script
RewriteEngine On
RewriteRule ^(.+\.php)$ /cgi-bin/test.fcgi/$1
RewriteRule ^$ /cgi-bin/test.fcgi/index.php
</Directory>
<IfModule mod_fastcgi.c>
FastCgiServer /var/www/cgi-bin/test.fcgi -initial-env PATH
-initial-env WEB_DOC_ROOT=/home/www/Test -user apache -group apache
-socket /tmp/fast_cgi
</IfModule>
</VirtualHost>
Con questa configurazione Apache non parte, e compare il seguente errore:
Avvio di httpd: Syntax error on line 11 of /etc/httpd/conf.d/fastcgi.conf:
FastCgiIpcDir /tmp/fcgi_ipc: can't create dynamic directory
"/tmp/fcgi_ipc/dynamic": access for server (uid 4294967295, gid
4294967295) failed: read not allowed
Cioè sembra che non riesca ad accedere alla pipe che lui stesso ha
creato (/tmp/fcgi_ipc/dynamic l'ha creata lui). Se cancello
/tmp/fcgi_ipc/dynamic ottengo un errore diverso:
Avvio di httpd: Syntax error on line 27 of
/etc/httpd/conf/vhosts.d/02_sks.conf:
FastCgiServer /var/www/cgi-bin/test.fcgi: User/Group commands must
preceed FastCGI server definitions
(la riga 27 è quella con FastCgiServer).
Ho provato anche a mettere un Suexec per vedere se risolvevo, ma non ho
risolto (anzi, credo che il suexec non funzioni proprio).
Google non riporta nulla di significativo, la documentazione di fastcgi
è abbastanza mediocre: l'unica cosa che mi è abbastanza chiara è che si
tratta di un problema di permessi, ma non saprei dire come impostarli...
Se qualcuno ne sa di più...
fast-cgi. Il server è CentOS 5.4 a 64bit, con Apache 2.2
Sono arrivato alle fasi seguenti:
1) copia dei compilati fcgi in /var/www/cgi-bin
2) installazione del modulo mod_fastcgi.so:
LoadModule fastcgi_module modules/mod_fastcgi.so
AddHandler fastcgi-script fcgi
FastCgiIpcDir /tmp/fcgi_ipc
3) Configurazione del virtual host che deve gestire questo cgi:
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
ServerName Test
DocumentRoot /home/www/Test
SuexecUserGroup apache apache
<Directory /home/www/Test/>
Options FollowSymLinks ExecCGI
SetHandler fastcgi-script
RewriteEngine On
RewriteRule ^(.+\.php)$ /cgi-bin/test.fcgi/$1
RewriteRule ^$ /cgi-bin/test.fcgi/index.php
</Directory>
<IfModule mod_fastcgi.c>
FastCgiServer /var/www/cgi-bin/test.fcgi -initial-env PATH
-initial-env WEB_DOC_ROOT=/home/www/Test -user apache -group apache
-socket /tmp/fast_cgi
</IfModule>
</VirtualHost>
Con questa configurazione Apache non parte, e compare il seguente errore:
Avvio di httpd: Syntax error on line 11 of /etc/httpd/conf.d/fastcgi.conf:
FastCgiIpcDir /tmp/fcgi_ipc: can't create dynamic directory
"/tmp/fcgi_ipc/dynamic": access for server (uid 4294967295, gid
4294967295) failed: read not allowed
Cioè sembra che non riesca ad accedere alla pipe che lui stesso ha
creato (/tmp/fcgi_ipc/dynamic l'ha creata lui). Se cancello
/tmp/fcgi_ipc/dynamic ottengo un errore diverso:
Avvio di httpd: Syntax error on line 27 of
/etc/httpd/conf/vhosts.d/02_sks.conf:
FastCgiServer /var/www/cgi-bin/test.fcgi: User/Group commands must
preceed FastCGI server definitions
(la riga 27 è quella con FastCgiServer).
Ho provato anche a mettere un Suexec per vedere se risolvevo, ma non ho
risolto (anzi, credo che il suexec non funzioni proprio).
Google non riporta nulla di significativo, la documentazione di fastcgi
è abbastanza mediocre: l'unica cosa che mi è abbastanza chiara è che si
tratta di un problema di permessi, ma non saprei dire come impostarli...
Se qualcuno ne sa di più...