- Ubuntu 12.04
- Apache2.2.22
- PHP 5.3.10 [executando como libapache2-mod-fcgid]
[tentando combinar um servidor de desenvolvimento com meu host]
Consegui fazer o fcgi funcionar usando um wrapper e registrei os manipuladores necessários para que os arquivos .html fossem analisados como php. Agora estou tentando descobrir por que meus scripts não rodam com os arquivos php.ini em cada diretório, que ésupostamenteo comportamento padrão.
de phpinfo(), executando dehttp://127.0.0.1/NEW/poop.html
Server API CGI/FastCGI
Virtual Directory Support disabled
Configuration File (php.ini) Path /etc/php5/cgi
Loaded Configuration File /var/www/johnny/public_html/php.ini
Scan this dir for additional .ini files /etc/php5/cgi/conf.d
parece estar lendo a configuração de [/etc/php5/cgi/php.ini] muito bem, e também da raiz da web, que eu tive que definir no script wrapper para que ele pudesse ler o php.ini lá
[/var/www/php-fcgi-scripts/johnny/php-fcgi-starter]
#!/bin/sh
PHPRC=/etc/php5/cgi/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/lib/cgi-bin/php -c /var/www/johnny/public_html
Eu reuni dois tutoriais da web para fazer esse FastCGI + VirtualHost funcionar e tenho aprendido aos poucos como tudo funciona. Aqui está minha configuração do VirtualHost:
[/etc/apache2/sites-available/johnny.conf]
<VirtualHost _default_:80>
ServerName johnny.10.128.0.2.xip.io
ServerAlias my.dev.server.public.IP
DocumentRoot /var/www/johnny/public_html/
<IfModule mod_fcgid.c>
SuexecUserGroup johnny johnny
<Directory /var/www/johnny/public_html/>
Options +ExecCGI -Indexes +FollowSymLinks +MultiViews
AllowOverride All
AddHandler fcgid-script .php .htm .html
FCGIWrapper /var/www/php-fcgi-scripts/johnny/php-fcgi-starter .php
FCGIWrapper /var/www/php-fcgi-scripts/johnny/php-fcgi-starter .htm
FCGIWrapper /var/www/php-fcgi-scripts/johnny/php-fcgi-starter .html
Order allow,deny
Allow from all
</Directory>
</IfModule>
ErrorLog /var/log/apache2/johnny-error.log
CustomLog /var/log/apache2/johnny-access.log combined
LogLevel warn
ServerSignature Off
</VirtualHost>
mas não carregará nada de [/var/www/johnny/public_html/NEW/php.ini]
verifique este pastebinpara dar uma olhada em tudo o que fiz neste servidor ... Tive que reconfigurar algumas dessas coisas para refletir a solução de problemas que fiz mais tarde, então espero não ter perdido nada. Ainda não tentei percorrer esta lista do zero (ainda...). Também não tenho certeza se há alguma linha significativa a ser acrescentada, já que estou trabalhando há algum tempo hoje, principalmente editando e revertendo arquivos.
Responder1
Acho que descobri.
Comecei do zero e passei por cada linha do meu pastebin, usando apenas as partes necessárias para PHP como FastCGI, e pesquisei exatamente como cada pedacinho funciona. Aí tentei muitas coisas que falharam, depois só restou tentar, e talvez esse não seja o "caminho certo", mas...
crie um novo <Directory>
bloco /etc/apache2/sites-available/johnny.conf
e copie as diretivas, mas com algumas alterações
<Directory /var/www/johnny/public_html/new>
Options +ExecCGI -Indexes +FollowSymLinks +MultiViews
AllowOverride All
AddHandler fcgid-script .php .htm .html
FCGIWrapper /var/www/php-fcgi-scripts/johnny/php-fcgi-starter_new .php
FCGIWrapper /var/www/php-fcgi-scripts/johnny/php-fcgi-starter_new .htm
FCGIWrapper /var/www/php-fcgi-scripts/johnny/php-fcgi-starter_new .html
Order allow,deny
Allow from all
</Directory>
em seguida, crie um script inicial fcgi separado/var/www/php-fcgi-scripts/johnny/php-fcgi-starter_new
#!/bin/sh
#PHPRC=/var/www/johnny/new
#export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/lib/cgi-bin/php -c /var/www/johnny/public_html/new
Descobri que isso PHPRC=
não funcionou neste caso, mas o parâmetro -c funciona! É isso. É uma PITA, mas funciona bem o suficiente para meus propósitos.