如何在PHP和Nginx(或Lighttpd)中使用符号链接?

时间:2013-03-14 23:54:09

标签: php nginx fastcgi symlink-traversal

我在Debian和ArchLinux下安装了Nginx + FPM-PHP。两者都很好。但是,我无法弄清楚如何让PHP部分遵循符号链接。我也试过Lighttpd,但无济于事。

这是我想要做的:

  1. 照常配置的根目录:/ srv / http
  2. 从每个项目到/ srv / http的符号链接(例如:/ home / user / projects / site1到/ srv / http / @ site1),以这种方式测试本地开发,我只需要添加网址的名称为:"http://localhost/site1/xyz""http://localhost/site2/abc"等;
  3. 我可以使用html和其他静态文件使其工作(在修复权限之后),但是只要有PHP脚本,我就会得到着名的“主要脚本未知”错误。在“真正的根”目录(/ srv / http)里面没有这样的错误。但是当我尝试将子目录复制到另一个位置(即/ home / user / projects / xyz)并将其符号链接到/ srv / http /时,我得到了该错误。

    我接受过很多教程,包括丹麦人的优秀帖子。但我不能让它发挥作用。我试图使用“fastcgi_param SCRIPT_FILENAME”,ALIAS等的所有组合,包括将另一个目录硬编码到其中以确保这是(或不是)问题的原因。

    所以,问题如下:

    1. 是否可以在nginx或lighttpd下使用符号链接进行PHP执行?
    2. 此设置仅供开发使用,有理由不使用它吗?
    3. 使它运作需要什么样的魔法?
    4. 由于目标环境将是nginx(还有其他项目已经开始工作),如果可能的话,我想坚持使用nginx进行开发。为了速度,我也会使用lighttpd。如果可行,我想避免使用Apache(仅限于资源)。

0 个答案:

没有答案