Como eu configuro os arquivos php.ini por site em um servidor LAMP usando NameVirtualHosts?

9

Eu tenho um servidor LAMP que serve vários sites diferentes usando NameVirtualHosts .

Até recentemente, ter um arquivo global php.ini foi muito bem, mas recentemente um de nossos desenvolvedores solicitou algumas configurações no php.ini que eu prefiro não definir globalmente.

Tenho certeza que ouvi dizer que você pode configurar arquivos php.ini em uma base por site , mas não sabe como fazer isso.

Alguém pode me apontar a direção certa de como fazer isso?

    
por Brent 30.06.2009 / 22:09

4 respostas

13

A maioria das configurações que você colocaria no seu arquivo php.ini também pode ser colocada em um .htaccess ou na configuração do apache para esse site. Por exemplo, um dos meus hosts virtuais tem isso no .htaccess

    php_value display_errors 1
    php_value register_globals 0
    php_value short_open_tag 0
    php_value magic_quotes_runtime 0
    php_value magic_quotes_gpc 0
    php_value session.name "PHPSESSID_SITEBLAH"
    php_value session.gc_maxlifetime 57600
    php_value session.gc_probability 1
    php_value session.gc_divisor 500
    
por 30.06.2009 / 22:11
7

Você também pode especificar definições de configuração no arquivo de configuração do Apache (httpd.conf / apache.conf). No seu caso, você pode especificar os valores de configuração dentro do contexto.

O exemplo a seguir deve definir upload_max_filesize como 10M para o host virtual example.com.

<VirtualHost *>
    ServerName example.com
    DocumentRoot /path_to_docroot
    php_value upload_max_filesize 10M
    php_admin_flag allow_url_fopen on
</VirtualHost>

Se você não quiser definir esse valor para todo o site, mas para um diretório específico onde o aplicativo reside, você poderá especificar os valores em um.

<VirtualHost *>
   ServerName example.com
   DocumentRoot /path_to_docroot
  <Location /testApp/>
     php_value upload_max_filesize 10M
     php_admin_flag allow_url_fopen on
  </Location>
</VirtualHost>

Veja o link para mais explicações.

    
por 01.07.2009 / 17:02
1

Outra sugestão é usar o mod-fastcgi ou o mod-fcgi, que executam o PHP como um daemon autônomo separado. Então, para cada site, você pode definir um usuário separado e o arquivo de configuração do php.ini.

    
por 01.07.2009 / 06:39
1

Outra opção é suPHP que permite definir um arquivo php.ini para cada VirtualHost. Também permite que você especifique uma versão do PHP para cada VirtualHost.

    
por 01.07.2009 / 08:46