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

0
  • Ubuntu 12.04
  • Apache 2.2.22
  • PHP 5.3.10 [executando como libapache2-mod-fcgid]

[tentando corresponder um servidor de desenvolvimento ao meu host da web]

Consegui fazer com que o fcgi funcionasse 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 são executados com os arquivos php.ini em cada diretório, o que é declaradamente o comportamento padrão.

do phpinfo (), executado a partir do link

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 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 aprendi 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]

marque esta pasta para dar uma olhada em tudo que fiz nesse servidor ... Eu tive que voltar algumas dessas coisas para Refiro a resolução de problemas que fiz mais tarde, por isso espero não ter perdido nada. Eu não tentei executar esta lista a partir do zero (ainda ...). Eu também não tenho certeza se há alguma linha significativa para acrescentar, já que tenho trabalhado por aí por um tempo hoje, principalmente editando e revertendo arquivos.

    
por clarence 09.05.2016 / 05:38

1 resposta

0

Acho que descobri.

Eu comecei fresco e passei por cada linha do meu pastebin, usando apenas as partes necessárias para o PHP como FastCGI, e pesquisei exatamente como cada pequena obra funciona. Então eu tentei muitas coisas que falharam, então só havia uma coisa para tentar, e talvez isso não seja o "jeito certo", mas ...

crie um novo bloco <Directory> em /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 separado do fcgi starter /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 PHPRC= não funcionou neste caso, mas o parâmetro -c não funciona! É isso aí. É um PITA, mas funciona bem o suficiente para meus propósitos.

    
por clarence 14.05.2016 / 01:24