我遇到了一个问题,试图在nginx(和apache)下为php-fpmdynamic地设置open_basedir,当运行php-fpm作为用户“nobody”(出于传统原因)时,其他虚拟主机正在“stream血”。
运用
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/mike/htdocs";
和
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/adam/htdocs";
等适用于每个虚拟主机(PHP 5.3.20)
phpinfo显示正确的open_basedir被设置,但最终(相当快)我开始得到错误,其中一个虚拟主机将运行到错误的open_basedir,试图执行一个程序的“迈克”,但有open_basedir“亚当” 。
由于fastcgi_param只是基本上为php-fpm设置环境,我认为正在发生的事情是同一个worker会在处理php文件时改变它的环境。
不知何故服务器,如litespeed也使用fastcgi php进程(无人运行)得到这个权利,正确地工作与open_basedir可以设置外部没有“stream血”之间的虚拟主机。
所以我想知道是否有一个技巧或解决办法,我可以用来保持作为“无人”运行,并保持虚拟主机之间的环境。
我应该注意到我正在使用unix套接字,而不是TCP / IP,但我不认为这是有所作为。
我在这里发现了同样的问题:
http://forum.nginx.org/read.php?3,234856
他们说,他们能够通过使用php.ini的新的[host = xyz.xyz]指令来解决它,这个指令在5.3之后
php.net手册显示了一条警告,这不适用于php-fpm,但是这个评论已经两年了,可能已经被解决了。