Я установил nginx и php-fpm под Arch Linux на RasPi. nginx был настроен в chroot, как описано в ArchWiki. Все работает нормально, когда php-fpm.conf и nginx.conf настроены на прослушивание 127.0.0.1:9000 а php-fpm.conf не объявляет путь к pid.

Теперь я хочу изменить настройку для использования сокета UNIX, как это предлагается в Интернете. Поэтому я добавил в php-fpm.conf следующее.

pid = /srv/http/run/php-fpm/php-fpm.pid
...
[www]
chroot = /srv/http;
listen = /srv/http/run/php-fpm/php-fpm.sock

Также заменил fastcgi_pass в nginx.conf на

fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;

Когда я вручную создаю файл .sock и перезагружаю php-fpm и nginx, это работает. Но когда я перезагружаюсь, каталог php-fpm fpm и файл .sock ...

Как я могу сохранить их при перезагрузке? /etc/fstab включает

tmpfs           /srv/http/run   tmpfs   rw,noexec,relatime,size=1024k   0       0
tmpfs           /srv/http/tmp   tmpfs   rw,noexec,relatime,size=102400k 0       0

2 ответа2

4

Ты не можешь Это было бы то же самое, что и сохранение TCP-соединения через перезагрузку. Сокет создается процессом, который прослушивает его (в вашем случае php-fpm), и nginx подключается к нему. Если у вас возникают проблемы из-за того, что nginx не может его открыть, вы, скорее всего, запустите свои службы в неправильном порядке (вам нужно запустить php-fpm перед запуском nginx , чтобы при запуске nginx существовал сокет).

0

tmpfiles (часть systemd) создаст и удалит временные / изменчивые каталоги и файлы. Обычно они помещаются в / run или / tmp, но это будет работать где угодно.

Чтобы при запуске создать каталог /srv /http /run /php-fpm, создайте файл конфигурации в /etc/tmpfiles.d, например:

d /srv/http/run/php-fpm 0755 http http -

Это создаст каталог с разрешениями 0755 для пользователя и группы http (по умолчанию это php-fpm / web user).

Файл может называться как угодно, но должен заканчиваться на .conf. Пример (php-fpm.conf)

Сам сокет создается php-fpm при запуске, поэтому убедитесь, что он включен в systemd:

systemctl enable php-fpm

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .