我在使 nginx 和 php-fpm 运行时遇到问题。
当我尝试访问我的应用程序时收到错误 504。
我有一个这样的结构;
data/mywebsite/
|
|---revisions/
|
|---shared/
|
|---released/
|---web/
|---app/
|---.../
在我的 fpm 池中,我有以下内容:
chroot = /data/mywebsite/
chdir = /released/web/
在我的 nginx 中:
root /data/mywebsite/released/web/;
fastcgi_param SCRIPT_FILENAME /web/released$fastcgi_script_name;
所以我想要的是 chrootdata/mywebsite/
并让应用程序位于data/mywebsite/released/web/
访问共享文件夹中的文件。
注意:我不知道是否值得一提,但我有一个像这样的软链接released -> /data/mywebsite/revisions/...
答案1
当您计划使用 PHP-FPM chroot 时,您需要在 chroot 内部复制相当多的系统文件才能使其正常工作。
例如,您需要/data/mybesite/dev
、、/data/mybesite/proc
目录/data/mybesite/sys
/伪文件系统和其中的文件/data/mybesite/lib
等等。
您也不能使用指向 chroot 之外的符号链接。
如果您使用/data/mybesite
目录,那么在 chroot 内部使用时,其中chroot
的符号链接/data/mybesite/example1/example2
将/data/mybesite/example2
指向目录。/data/mybesite/data/mybesite/example2
我的建议是,除非您愿意花时间了解 chroot 环境的要求,以便在其中运行 PHP-FPM 应用程序,否则不要使用该chroot
功能。我为我从事的一个项目做过这项工作,即使使用辅助程序,也花了几天的时间。