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

Ошибки работы локального домена на 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, которая находится в текущей директории, спасибо первой точки перед слешем

Сопутствующие статьи

Установить сервер nginx php-fpm ubuntu
​Linux команды терминала для сервера
Ошибка phpMyAdmin «Incorrect format parameter» при импорте базы данных
nginx домен для opencart ocstore