如何禁用特定 VirtualHost 的 "ini_set" 和 "exec"?

How to disable "ini_set" and "exec" for a particular VirtualHost?

我已经在使用 open_basedir 将 VirtualHost 限制到特定目录:

<VirtualHost *:80>
  ServerName test.example.com
  DocumentRoot /sites/test/www
  php_admin_value "open_basedir" "/sites/test/www"
  <Directory />
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>

如何禁用 ini_setexec,但只针对这个特定的 VirtualHost(而不是其他的)?

您正在 php.ini 中查找 disable_functions 条目。 因此,您需要为特定的 VirtualHost 使用不同的 php.ini。这可以通过“PHPINIDir”

完成
<virtualhost *:80>
    ServerName www.example.com
    DocumentRoot /path/to/example.com
    PHPINIDir /whatever/path/to/php.ini
</virtualhost>

UPDATE:我删除了带有 php_admin_value 的示例,因为正如其他人在评论中指出的那样,它不适用于此特定设置。正如这里讨论的那样:php_admin_value disable_functions not working(抱歉......应该事先查一下)。