Как исправить ошибки 404 Nginx после обновления сервера Ubuntu



Попробуйте наш инструмент устранения неполадок

Одна из наиболее распространенных сегодня комбинаций веб-серверов включает программную реализацию веб-сервера Nginx, работающую в редакции Ubuntu Server. Эта система чрезвычайно эффективна и ее легко обновлять, поскольку оба пакета продолжают получать регулярные обновления. Системные администраторы обычно устанавливают обновления через диспетчер пакетов apt, потому что по умолчанию у Ubuntu Server нет графического интерфейса.



Обновления Ubuntu Server иногда могут вызывать необычные ошибки, и отсутствие графического пользовательского интерфейса может затруднить их устранение новичками. Чтобы исправить ошибку 404 Nginx после обновления Ubuntu, может потребоваться несколько простых команд.



Метод 1: исправление отсутствующих страниц ошибок Nginx

Если сайт размещен на AWS, частном сервере или любой другой конфигурации сервера в стеке LEMP, он может случайно отключиться после обновления сервера Ubuntu. Попытка получить доступ к сайту из веб-браузера, возможно, на другом компьютере. Предполагая, что он возвращает ошибку 404, перейдите в интерфейс командной строки Ubuntu Server и выполните команду tail -f для просмотра всех последних ошибок.



Если журнал содержит такую ​​ошибку, как:

В вашей системе отсутствует страница с ошибкой. Вы также можете увидеть 40x.html в этой строке, хотя это относительно редко, если ваш сайт не работает и вы получаете взамен 404 ошибки. Используйте команду ls чтобы посмотреть, есть ли там что-нибудь. Если нет, то вам нужно будет создать HTML-код для страницы с 50-кратными ошибками.



Имейте в виду, что используя значение по умолчанию Структура каталогов часто является проблемой для менеджеров пакетов, которые могут перезаписать все, что там хранится. Вы можете изменить строку docroot в конфигурации Nginx, чтобы избежать подобных проблем, если вам разрешено создавать собственную структуру каталогов.

Метод 2: заставить PHP найти нужный сокет

Вы также можете найти ошибку, которая выглядит примерно так в

Это означает, что у вас работает PHP7.0, но он не работает там, где должен быть. Номер версии может отличаться в зависимости от того, как у вас настроен PHP. Установки по умолчанию будут запускаться из или же , но если у вас есть эта ошибка, это, скорее всего, не так.

Выполните команды а затем найдите -name ‘php * fpm.sock’, чтобы увидеть, есть ли где-нибудь в вашей системе сокет.

Предполагая, что вы получили положительный результат, вам необходимо обновить конфигурацию Nginx, чтобы указать правильное место в сокет должен работать. Естественно, / directoryPath будет заменен правильным путем. Строка php / php7.0-fpm.sock должна обновить конфигурацию, если вы используете файл сокета.

Пользователи старых сокетов TCP, которые не используют файлы сокетов, могут проверить, прослушивает ли сокет PHP порт 9000, запустив sudo netstat -tulpn | grep 9000 из командной строки. В этом случае откройте свой fastcgi_pass в nano, vi или другом текстовом редакторе и измените строку unix:…, чтобы вместо этого использовать 127.0.0.1:9000 для обновления сокета.

Если ничего из этого не сработает, убедитесь, что php7.0-fpm или другой номер версии, которую вы используете, запущен с помощью команды sudo systemctl restart php7.0-fpm, а затем повторите описанный выше процесс.

Имейте в виду, что в большинстве случаев запись для прослушивания в и значение в нужно быть таким же. Вы можете попробовать для более новых конфигураций или 127.0.0.1:9000 для старых.

2 минуты на чтение