我有一个通过 Plesk(9.5.2)管理的开发服务器(debian)。
我想知道当 PHP 作为 FastCgi/CGI 应用程序运行时是否可以更改单个主机的 php.ini 设置。
如果我将 PHP 作为 apache 模块运行,我可以通过 vhost.conf 来执行此操作,例如:
<Directory /var/www/vhosts/example.com/httpdocs>
php_admin_flag engine on
php_admin_value open_basedir "/var/www/vhosts/example.com/httpdocs:/var/www/vhosts/drupal:/tmp"
</Directory>
定制open_basedir 仅适用于示例.com域,但只有当我将 php 作为 apache 模块运行时才有效;对于其他动机,我需要 php 作为 FastCGI/CGI。
我无法直接编辑 php.ini,因为这会影响我的所有域。
任何想法?
答案1
至于使用 ini_set 或 .htaccess 你可能会倒霉,因为根据文档:
php_admin_value 名称 值 设置指定指令的值。这不能在 .htaccess 文件中使用。任何使用 php_admin_value 设置的指令类型都不能被 .htaccess 或 ini_set() 覆盖。要清除先前设置的值,请使用 none 作为值。
您可以通过在 CGI 目录中编写一个脚本来设置环境变量,然后启动 PHP,而不是直接调用 PHP,从而实现这一点。详细信息请参阅http://www.fastcgi.com/drupal/node/5?q=node/10并提供以下指针以获取更多信息:
位于 PHP 源中的 README.FastCGI 文件提供了有关这些变量和其他一些有用变量的更多详细信息。