Назад | Перейти на главную страницу

PHP5-FPM не создает каталог сокетов unix в / var / run

Я установил свой php5-fpm для привязки к сокету домена unix в /var/run/php5-fpm.

/etc/php5/fpm/pool.d/www.conf

listen = /var/run/php5-fpm/$pool.sock

Проблема в том, что он не создает автоматически php5-fpm каталог. Когда я перезагружаю машину, каталог исчезает.

Как сделать так, чтобы он автоматически создавался при загрузке? Или есть другое решение этой проблемы?

  1. Как вы, наверное, уже заметили, / var / run по замыслу недолговечен. Проверить FHS для получения дополнительной информации об этом и других каталогах.

  2. Каталог / var / run / php5-fpm должен существовать до того, как php-fpm попытается использовать. Ни php-fpm, ни скрипт инициализации, похоже, не создают его, поэтому вам придется вмешаться.

    Самый простой вариант - настроить сценарий инициализации для создания каталога таким образом, чтобы он соответствовал вашей среде. Обратной стороной является то, что это добавляет багаж, который вам придется нести в своем «наборе инструментов системного администратора».

Есть два других варианта, которые более сложны, но будут постоянными решениями для вас и других:

  1. Отправить патч на php-fpm исходный код, чтобы он проверял наличие каталога, определенного в файлах .conf. Это потребует знания процессов C и PHP для отправка патча.

  2. Отправьте патч в систему инициализации вашего дистрибутива Linux, чтобы он сделал то же самое. Это может быть проще (по сравнению с первым вариантом) и, вероятно, потребует знания сценария оболочки и, опять же, процессов вашего дистрибутива для отправки исправления.

Вы можете сделать быстрое исправление (изменить свои сценарии инициализации) и двигаться дальше, но неплохим упражнением было бы следовать одному из постоянных вариантов, чтобы другие могли получить пользу. Это достаточно просто и может заставить вас участвовать в проектах с открытым исходным кодом (если вы еще этого не сделали, простите за мое незнание).

эй, вам нужно создать каталог PHP внутри папки / run, затем перезапустить PHP как root, если у вас есть php7.2, вам нужно написать $ sudo /etc/init.d/php7.2-fpm restart

и все должно работать как положено