У меня проблема с работой 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;
Так что я хочу chroot на data/mywebsite/
и приложение, расположенное в data/mywebsite/released/web/
для доступа к файлам в общей папке.
nb: не знаю, стоит ли об этом упоминать, но у меня есть такая софт-ссылка released -> /data/mywebsite/revisions/...
Когда вы планируете использовать chroot PHP-FPM, вам нужно скопировать довольно много системных файлов внутри chroot, чтобы он работал правильно.
Например, вам нужно /data/mybesite/dev
, /data/mybesite/proc
, /data/mybesite/sys
каталоги / псевдо-файловые системы и файлы внутри /data/mybesite/lib
и многие другие.
Вы также не можете использовать символические ссылки, указывающие за пределами chroot.
Если вы используете /data/mybesite
как chroot
каталог, затем символическая ссылка в /data/mybesite/example1/example2
это указывает на /data/mybesite/example2
указывает на /data/mybesite/data/mybesite/example2
каталог при использовании внутри chroot.
Я рекомендую не использовать chroot
если вы не готовы тратить время на изучение требований к среде chroot для запуска приложений PHP-FPM внутри нее. Я проделал эту работу для одного проекта, над которым работал, и это заняло несколько дней, даже если я использовал вспомогательную программу для работы.