Назад | Перейти на главную страницу

Как настроить файлы php.ini для каждого сайта на сервере LAMP с помощью NameVirtualHosts?

у меня есть ЛАМПА сервер, обслуживающий несколько различных веб-сайтов, использующих ИмяVirtualHosts.

До недавнего времени глобальный php.ini файл был в порядке, но недавно один из наших разработчиков запросил некоторые настройки в php.ini, которые я бы предпочел не устанавливать глобально.

Я почти уверен, что слышал, что вы можете настроить файлы php.ini на на сайт основы, но не знаю, как это сделать.

Может ли кто-нибудь указать мне в правильном направлении, как этого добиться?

Большинство настроек, которые вы бы поместили в свой php.ini, также можно поместить в .htaccess или в конфигурация apache для этого сайта. Например, один из моих виртуальных хостов имеет это в .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

Вы также можете указать параметры конфигурации в файле конфигурации Apache (httpd.conf / apache.conf). В вашем случае вы можете указать значения конфигурации в контексте.

В следующем примере для виртуального хоста example.com должно быть установлено значение upload_max_filesize равным 10M.

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

Если вы не хотите устанавливать это значение для всего сайта, а для одного конкретного каталога, в котором находится приложение, вы можете указать значения в файле.

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

Видеть http://php.net/manual/en/configuration.changes.php для получения дополнительных объяснений.

Еще один вариант - suPHP что позволяет вам определять php.ini для каждого VirtualHost. Он также позволяет вам указать версию PHP для каждого VirtualHost.

Другое предложение - использовать mod-fastcgi или mod-fcgi, которые запускают PHP как отдельный автономный демон. Затем для каждого веб-сайта вы можете определить отдельного пользователя и файл конфигурации php.ini.