我在 apache2 下运行 FastCgiServer 时遇到问题。当我定义一个配置了静态 fcgi 服务器的虚拟主机时,suexec 会报错:
command not in docroot (/var/www-blah/dispatcher.fcgi)
这是正确的,因为 docroot 是/var/www
。但是当我使用由 magic 生成的动态 fastcgi 时AddHandler
,我也在使用suexec
,并且不会发生相同的问题 - 即使脚本位于 中/home/.../public_html/dispatcher.fcgi
。
是什么原因suexec
导致它在那里正常运行?我如何在虚拟主机上复制该行为?
更新:实际上,我将我的东西从 移到/var/www-blah
了/var/www/blah
,因此它位于 docroot 下,并且可以正常工作。我猜 suexec 有一些 public_html 检测。
但是,仍然无法工作的是带有 suexec 的动态 fastcgi /var/www/...
。即使脚本属于正确的用户,suexec 也不会显示任何错误,并且似乎无法运行(脚本作为 www-data 工作)
答案1
suexec 仅执行 apache 文档根目录中的程序。请参阅suexec 安全模型,特别是第 13 点。