Главная

Drupal 11: Решение ошибки Service Unavailable после переноса сайта на хостинг

23-03-2025

После переноса сайта Drupal 11 на сервер вы можете столкнуться с ошибкой 503:

Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Это может быть вызвано различными причинами, связанными с настройками сервера, базы данных или файлов Drupal. Разберёмся, как решить проблему.

1. Проверьте статус веб-сервера

Первым делом убедитесь, что ваш веб-сервер работает. В зависимости от используемого ПО выполните команду:

systemctl status apache2   # для Apache
systemctl status nginx     # для Nginx
systemctl status php-fpm   # если используете PHP-FPM

Если сервер остановлен, запустите его:

sudo systemctl restart apache2
sudo systemctl restart nginx
sudo systemctl restart php-fpm

2. Отключите режим обслуживания в Drupal

Если перед переносом сайт был в режиме обслуживания, он останется в этом состоянии. Отключите его в базе данных:

UPDATE key_value SET value = 'b:0;' WHERE collection = 'system.site' AND name = 'maintenance_mode';

Или выполните команду Drush (если установлен):

drush sset system.maintenance_mode 0
drush cache:rebuild

3. Проверьте settings.php

В файле sites/default/settings.php должны быть правильные данные для подключения к базе:

$databases['default']['default'] = [
  'database' => 'имя_базы_данных',
  'username' => 'пользователь',
  'password' => 'пароль',
  'host' => 'localhost',
  'port' => '3306',
  'driver' => 'mysql',
  'prefix' => '',
];

4. Проверьте права на папку files

Drupal требует доступ к папке sites/default/files:

chmod -R 775 sites/default/files
chown -R www-data:www-data sites/default/files

5. Очистите кеш вручную

Удалите временные файлы Drupal:

rm -rf sites/default/files/php
rm -rf sites/default/files/js
rm -rf sites/default/files/css
rm -rf sites/default/files/.htaccess
# Или выполните команду Drush:
drush cache:rebuild

6. Проверьте логи сервера

Если сайт по-прежнему не работает, проверьте логи веб-сервера:

tail -f /var/log/apache2/error.log   # Для Apache
tail -f /var/log/nginx/error.log     # Для Nginx
tail -f /var/log/php8.1-fpm.log      # Для PHP-FPM

7. Убедитесь, что установлены нужные PHP-модули

Drupal 11 требует некоторых модулей PHP. Проверьте их наличие:

php -m | grep -E 'gd|pdo_mysql|mbstring|xml|json|curl|zip'

Если чего-то не хватает, установите недостающие модули:

sudo apt install php-gd php-xml php-mbstring php-curl php-zip php-mysql
sudo systemctl restart apache2

8. Проверьте версию PHP

Drupal 11 требует PHP 8.1 или выше. Проверьте версию:

php -v

Если версия ниже 8.1, обновите её:

sudo apt update
sudo apt install php8.3 php8.3-fpm php8.3-mysql php8.3-xml php8.3-mbstring php8.3-curl php8.3-zip
sudo systemctl restart apache2

Заключение

Если ваш сайт Drupal 11 не работает после переноса, следуйте этим шагам:

  • Проверьте работу сервера
  • Отключите режим обслуживания
  • Проверьте settings.php
  • Исправьте права на sites/default/files
  • Очистите кеш
  • Проанализируйте логи
  • Проверьте установленные модули PHP
  • Обновите PHP до версии 8.1+

После выполнения этих шагов ваш сайт должен снова заработать.

Похожие статьи