php.ini por diretório não será analisado (usando FastCGI)

php.ini por diretório não será analisado (usando FastCGI)
  • 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.confe 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.

informação relacionada