Ошибки работы локального домена на Nginx

Эта статья является продолжением Установить сервер nginx php-fpm ubuntu. Попробую расписать возможные ошибки, возникающие с работой сайтов на сервере NGINX.
Проверка nginx -t показала ошибку
Внимательно читаем текст ошибки!
Чаще всего ошибка в конфигурационном файле домена
sudo nano /etc/nginx/sites-available/mysite.loc
Проверяем пути от корня компьютера до папки домена
Проверяем наличие всех нужных папок. Например папку logs забыли создать
Верную версию php указали? Её установили?
Правим, сохраняем Ctrl+O (контрол + буква O), потом "выход" Ctrl+X (контрол + буква X)
Перезапускаем php и nginx
sudo service php7.4-fpm restart sudo nginx -s reload sudo service nginx restart
Не могу перезапустить сервис php
Failed to restart php7.4-fpm.service: Unit php7.4-fpm.service not found
Скорей всего вы не установили именно FPM модуль для php7.4
Решение:
sudo apt install -y php7.4-fpm
PHP ругается, что не может работать с штатной функцией
Если у вас будет ругаться какая то базовая функция языка php, то скорей всего не установлен еще какой нибудь модуль. Системный администратор как правило устанавливает все возможные модули для работы сайтов, но бывают случаи когда забывают доустановить какой нибуль пакет.
Пример:
- работа с zip архивами - php7.4-zip
- Работа с эксель документами - php7.4-xsl
- Работа с CURL запросами - php7.4-curl
- и так далее
Основные пакеты для работы сайта я перечислил в разделе Установка php и php-fpm
Любая страница отдает 404 ошибку
Сперва проверьте, а вы точно установили php-fpm7.4 ? Вы можете выполнить команду без ошибки?
sudo service php7.4-fpm restart
Если есть ошибка, то читаем Не могу перезапустить сервис php
Если нет ошибки, то смотрим что пишет файл ошибки в папке logs
Если nginx ругается на права доступа от имени функции stat() на доступ к любым файлам сайта, тогда нужно добавить www-data в username группу
[username] заменить на свое
gpasswd -a www-data username
Перезапускаем php и nginx
sudo service php7.4-fpm restart sudo nginx -s reload sudo service nginx restart
Бывает что сервер требует, чтобы у файлов были в группе www-data
Заходим в терминале в домашнюю папку
cd ~
Выполняем рекурсивную команду присвоения пользователя и группы доступа к папкам и файлам
sudo chown -R roman:www-data ./www
Объясню: -R говорит, что будет рекурсивно проходить по папкам и файлам. roman:www-data где roman это имя моего пользователя roman (у вас оно может быть другим, смотрите имя папки пользоваеля в папке /home/) и после двоеточия имя группы под которой работает наш сервер www-data. А ./www указывает что операцию нужно производить именно с папкой www, которая находится в текущей директории, спасибо первой точки перед слешем