Задать вопрос
Все статьи / VDS / Диагностика и исправление неполадок / Базовая диагностика при ошибках в работе сайта
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

Базовая диагностика при ошибках в работе сайта

Иногда при работе сайта или приложения могут возникать неполадки. Одна из типичных ошибок — это код ответа сервера в формате 5хх. Ошибка вида 5хх говорит о том, что сервер не может корректно обработать запрос и вернуть ответ браузеру.

Среди ошибок сервера чаще всего встречаются:

  • 500 Internal Server Error;
  • 502 Bad Gateway;
  • 504 Gateway Time Out. Также можно встретить варианты “ошибка подключения 504” или “504 Nginx”.

В статье мы расскажем о возможных способах устранения этих ошибок. 

Проверьте доступность сервера из внешней сети

Проверка доступности сервера будет полезна для того, чтобы исключить отказ оборудования. Для проверки доступности используется команда:

ping 123.123.123.123

Вместо 123.123.123.123 укажите IP-адрес сервера. Если сервер доступен, пакеты будут доставлены без потерь:

Чтобы остановить выполнение команды, используйте комбинацию клавиш Ctrl + C.

Если обмен пакетами не происходит, сервер недоступен. Чтобы исправить это, необходимо выполнить ряд действий:

  1. Подключитесь к серверу по SSH.
  2. Проверьте конфигурацию с помощью команды:
ifconfig

Вывод должен иметь следующий вид:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 123.123.123.123  netmask 255.255.254.0  broadcast 123.123.123.255
        inet6 fe80::3eec:efff:fe1c:c53c  prefixlen 64  scopeid 0x20<link>
        inet6 2a02:408:7722:1:77:222:40:224  prefixlen 64  scopeid 0x0<global>
        ether 3c:ec:ef:1c:c5:3c  txqueuelen 1000  (Ethernet)
        RX packets 4401360996  bytes 2764801604146 (2.5 TiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6286642214  bytes 6849482341634 (6.2 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
eth0.405: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.4.6.224  netmask 255.255.252.0  broadcast 10.4.7.255
        inet6 fe80::3eec:efff:fe1c:c53c  prefixlen 64  scopeid 0x20<link>
        ether 3c:ec:ef:1c:c5:3c  txqueuelen 1000  (Ethernet)
        RX packets 319292750  bytes 138957932266 (129.4 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 674925007  bytes 288439583338 (268.6 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
eth0:auto.42c3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 123.123.123.105  netmask 255.255.254.0  broadcast 123.123.123.255
        ether 3c:ec:ef:1c:c5:3c  txqueuelen 1000  (Ethernet)
eth0:auto.6e27: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 123.123.123.129  netmask 255.255.254.0  broadcast 123.123.123.255
        ether 3c:ec:ef:1c:c5:3c  txqueuelen 1000  (Ethernet)
eth0:auto.a8c3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 123.123.123.210  netmask 255.255.254.0  broadcast 123.123.123.255
        ether 3c:ec:ef:1c:c5:3c  txqueuelen 1000  (Ethernet)
eth0:auto.af0a: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 123.123.123.88  netmask 255.255.254.0  broadcast 123.123.123.255
        ether 3c:ec:ef:1c:c5:3c  txqueuelen 1000  (Ethernet)
eth0:auto.e7ff: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 123.123.123.197  netmask 255.255.254.0  broadcast 123.123.123.255
        ether 3c:ec:ef:1c:c5:3c  txqueuelen 1000  (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1395489571  bytes 10476506884474 (9.5 TiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1395489571  bytes 10476506884474 (9.5 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Если в одном из блоков строка inet пустая, укажите IP-адрес вашего сервера.
Затем сохраните изменения и закройте файл.

Запустите службы для работы сайта

Службы — это программы, которые предназначены для помощи в работе вашего сайта. Чаще всего используется следующее ПО:

  • веб-серверы Apache и Nginx,
  • СУБД MySQL и ее модификация MariaDB.

При выполнении команд по SSH-соединению нужно использовать специализированные наименования.

Служба

Наименование

Apache

apache2 или httpd

Nginx

nginx

MySQL

mysql или mysqld

MariaDB

mariadb

Чтобы проверить работу служб:

  1. Подключитесь к серверу по SSH.
  2. Проверьте работу службы:
service apache2 status

Вместо apache2 укажите наименование нужной вам службы.
Если в сообщении от службы указан статус Active (running), она запущена и работает:

  1. Если служба выключена, запустите ее. Для этого выполните команду:
service apache2 start

Вместо apache2 укажите наименование запущенной службы.

Проанализируйте дисковое пространство

Иногда ошибки в работе сайта связаны с тем, что на сервере закончилось место для файлов. Узнать об этом поможет диагностика дискового пространства сервера. Чтобы начать проверку:

  1. Подключитесь к серверу по SSH.
  2. Выполните команду:
df -h

На экране отобразится информация об объеме диска и занятом пространстве на нем:

Если диск переполнен, нужно удалить ненужные файлы с сервера или повысить тариф (если речь идет о виртуальном сервере). 
Чтобы получить дополнительную информацию о состоянии диска, используйте инструкцию Анализ дискового пространства.

Проверьте количество inodes

Индексные дескрипторы, или inodes, — это идентификатор файла в системах Linux. Каждый файл имеет только один индексный дескриптор.

Проблемы в работе сайта могут возникать, если число inodes превысило рамки тарифа. Чтобы проверить сервер сайта на количество индексных дескрипторов:

  1. Подключитесь к серверу по SSH(https://help.sweb.ru/entry/84/).
  2. Выполните команду:
df -hTi

На экране отобразится подробная информация о количестве свободных и занятых inodes:

Если количество inodes превышено, его можно изменить по инструкции.

Назначьте необходимые права для папок с логами

Лог — это текстовый файл, в который записывается информация о работе программы. В логах могут быть отражены дата и время запуска службы, а также ошибки в ее работе.
Так как на сервере установлено несколько программ, логи каждой из них записываются в отдельные директории: это помогает избежать путаницы. 

Чтобы логи записывались корректно, директории должны иметь права на запись. Чтобы проверить их наличие:

  1. Подключитесь к серверу по SSH.
  2. Проверьте наличие прав на запись:
ls -lah /var/log/

Вместо /var/log/ укажите путь к общей директории логов.
На экране отобразится содержимое общей папки и права на каждый объект:

Если у одной из директорий нет прав на запись, выполните следующие действия:

  1. Подключитесь к серверу по SSH.
  2. Назначьте права директории с логами:
chmod -R 755 /var/log/apache2/

Вместо /var/log/apache2/ укажите путь к директории, которой нужно назначить новые права.

Проверьте отработку скриптов в коде сайта

Иногда перебои в работе сайта могут быть вызваны скриптами в коде сайта: например, долгой их отработкой или ошибкой в синтаксисе. Чтобы выполнить поиск и устранение ошибок, нужно включить их отображение. Например, для PHP-скриптов существует несколько способов:

  • директива в php.ini,
  • директива в .htaccess.

О том, как включить отображение ошибок, мы рассказали ниже.

Как включить отображение ошибок через php.ini

  1. Подключитесь к серверу по SSH.
  2. Чтобы получить доступ к редактированию файла, выполните команду:
chmod -R 644 /usr/local/php/etc/php.ini

Вместо /usr/local/php/etc/php.ini укажите путь к файлу на вашем сервере.

  1. Откройте php.ini:
sudo nano /usr/local/php/etc/php.ini

Вместо /usr/local/php/etc/php.ini укажите путь к файлу на вашем сервере.

  1. Добавьте строку:
display_errors = on

После этого сохраните изменения и закройте файл.

  1. Верните стандартные права для php.ini:
chmod -R 444 /usr/local/php/etc/php.ini

Вместо /usr/local/php/etc/php.ini укажите путь к файлу на вашем сервере.

Как включить отображение ошибок через .htaccess

  1. Подключитесь к серверу по SSH.
  2. Откройте файл .htaccess:
sudo nano /var/www/test.ru/.htaccess

Вместо /var/www/test.ru/.htaccess укажите путь к директории, где размещен файл htaccess для сайта.

  1. Добавьте строки:
php_flag display_startup_errors on
php_flag display_errors on

После этого сохраните изменения и закройте файл.
Если у вас возникли сложности или сайт по-прежнему недоступен, обратитесь в службу поддержки.

Предыдущая статья
Анализ дискового пространства
Следующая статья
Данные о дисках: df, lsblk, parted, fdisk