lemp + php 7 + php 8

Автор: | 23 декабря 2024

Как и обещал, решение тестовой задачи с заменой Apache на Nginx. Про Apache писал тут . Теперь сделаем тоже самое с помощью Nginx и забегая вперед сразу скажу — а не все так просто...

Первым делом ставим Nginx

Можно ничего не исправлять в конфиге, просто запустить nginx и проверить что отдаст браузер.

Дальше ставим две версии php все как в статье про lamp — один в один, репозиторий и версию 7.4 затем 8.4. Запускаем обе версии и проверяем статус. Создаем такие же два файла 7.php и 8.php только в другой директории — /usr/share/nginx/html/

Теперь в конфиг nginx нужно добавить блок для обработки php, примерно так:

Пробуем открыть в браузере один из наших файлов и получаем пятисотую ошибку, а в логах nginx будет что-то вроде

Все потому, что в конфигах все заточено под апач... Если посмотреть процессы php:

видно что основной процесс запущен от root а pool www от apache. Нужно поменять это на nginx. Редактируем файлы /etc/opt/remi/php74/php-fpm.d/www.conf и /etc/opt/remi/php84/php-fpm.d/www.conf меняем user = apache на user = nginx, group = apache на group = nginx. Затем расскоментируем строки listen.owner, listen.group и listen.mode. listen.owner и listen.group тоже заменим на nginx. Получится вот так:

Это будет одинаково в конфиг файлах обоих версий php. Но еще беда в том, что сокет создается от root — нужно тоже переделать на nginx.

Редактируем файлы /usr/lib/systemd/system/php84-php-fpm.service и /usr/lib/systemd/system/php74-php-fpm.service. В блок Service добавляем строку User=nginx, сохраняем. Перечитываем конфиги и перезапускаем php-fpm

Все процессы запущены от пользователя nginx

Получилось как надо. Но при перезапуске php-fpm может вывалиться ошибка про Permission denied — папки php-fpm принадлежат либо root либо apache — нужно поменять их на nginx

Вот теперь все красиво и все работает!

З.Ы. Вишенка на тортике. Прочитал логи и доки — если сервис запускаем не от root — все эти директивы про пользователя и группу в файле /etc/opt/remi/php74/php-fpm.d/www.conf игнорируются. Закоментировал, перезапустил — все так и есть.

Директивы user и group игнорируются, если сервис запускается не от root

Удалять уже не стал из статьи, эта информация не помешает.

Всем добра.

lemp + php 7 + php 8: 1 комментарий

  1. RobertFlups

    Здравствуйте!

    Пишу чтобы предложить свои услуги по поиску клиентов.

    Готов искать клиентов для Вас путем обзвона по нужным предприятиям, а также при помощи отправки сообщений в мессенджеры и email адреса.

    Работаю с различными тематиками бизнеса и передавать найденных клиентов Вам.

    Если такое сотрудничество может быть Вам интересно — давайте пообщаемся в WhatsApp/Telegram/MAX: 7 (9 2 6) 87 9 — 7 0 — 94

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*