Есть ли способ использовать другой файл php.ini
foreach VirtualHost
в apache?
Я знаю, что есть php_admin_values
<Location /stat/>
php_admin_value safe_mode off
</Location>
, но я хочу укажите полный файл php.ini для виртуального хоста.
Вам нужно будет использовать что-то вроде suPHP для достижения этой цели. В дополнение к запуску каждого php-запуска VirtualHost от имени другого пользователя - он позволяет вам иметь несколько файлов php.ini для VirtualHosts и каталогов (на основе флага .htaccess
suPHP_Config
)
Вы можете установить suPHP через aptitude : sudo apt-get install suphp-common libapache2-mod-suphp
Одним из основных отличий является то, что теперь вы можете настроить php для выполнения от имени пользователя - вместо того, чтобы все php-скрипты выполнялись пользователем www-data
- это само по себе обеспечивает много удобства и безопасности при размещении нескольких пользователей на один сервер, поскольку он сокращает потребности в разрешениях 777 и 666 (на самом деле вам никогда больше не нужно использовать 777 или 666 - 755/644 всегда должно быть достаточно)
Пример виртуального хоста:
<VirtualHost *:80>
...
DocumentRoot /home/marco/www/
suPHP_UserGroup marco marco
suPHP_Config /home/marco/etc/php.ini
...
</VirtualHost>
Вы также можете установить директиву suPHP_Config в файлах .htaccess
- при условии, что вы правильно настроили AllowOverride
.