MAATRIX / Блог / Joomla на сервере: частые ошибки и решения

Joomla на сервере: частые ошибки и решения

Joomla на сервере: частые ошибки и решения

MAATRIX

Joomla надёжна, но на собственном сервере всплывают классические проблемы: белый экран, ошибка соединения с базой, 500 из-за .htaccess, сбои прав доступа, проблемы после обновления или последствия взлома через устаревшее расширение. Практически все частые ошибки Joomla объясняются понятными причинами — PHP, база, права, конфиг веб-сервера, безопасность расширений — и решаются проверенным набором действий. Разберём их по порядку, начиная с самых частых, с командами и указанием, где искать логи. Где искать причины. Ошибки PHP пишутся в лог веб-сервера: /var/log/apache2/error.log или /var/log/nginx/error.log. У самой Joomla есть журнал в админке (Система → Информация о системе → Журнал), а для детальной отладки в конфиге configuration.php можно включить режим отладки ($debug = '1';) и повысить уровень отчёта об ошибках ($error_reporting). Первый шаг при любом сбое — заглянуть в лог веб-сервера и прочитать конкретное сообщение, а не гадать по внешнему симптому вроде пустой страницы.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Белый экран или ошибка 500

Сайт открывается пустой белой страницей или отдаёт 500 Internal Server Error. Причина почти всегда в фатальной ошибке PHP: конфликт расширения, несовместимая версия PHP или превышение лимита памяти. Первым делом включите отображение ошибок, повысив уровень отчётности в configuration.php, и обновите страницу — появится текст ошибки с указанием файла и строки.

Частая причина — несовместимость расширения или шаблона с текущей версией Joomla или PHP. Если недавно обновляли PHP, проверьте, поддерживает ли ваша версия Joomla этот PHP. Вторая частая причина — нехватка памяти PHP: увеличьте memory_limit в конфиге PHP до 256M и перезапустите веб-сервер:

systemctl restart apache2

Если ошибку даёт конкретное расширение, отключить его без доступа в админку можно через базу данных, изменив статус в таблице расширений, либо временно переименовав его каталог в /plugins или /modules.

Ошибка соединения с базой данных

Joomla пишет об ошибке подключения к базе. Проверьте три вещи. Первое: верны ли данные в configuration.php — хост ($host), имя базы ($db), пользователь ($user), пароль ($password) и префикс таблиц ($dbprefix). Опечатка или смена пароля пользователя базы — частая причина. Второе: запущена ли сама СУБД:

systemctl status mysql

Если сервис не запущен, стартуйте его и посмотрите, почему падал. Третье, очень частое: переполнен диск, и база ушла в режим только для чтения:

df -h

Переполнение раздела мгновенно роняет базу. Почистите старые бэкапы, логи и кэш Joomla (каталог cache/ и administrator/cache/). Если база повреждена после аварийного выключения, восстанавливайте таблицы штатными средствами MySQL и из резервной копии.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS

Ошибка 500 из-за .htaccess и SEO-ссылок

Частая ситуация: включили человекочитаемые URL (SEF) с переписью адресов, и сайт стал отдавать 500 или ссылки перестали работать. Причина — не активирован модуль перезаписи Apache или неверно настроен .htaccess. Убедитесь, что модуль rewrite включён:

a2enmod rewrite
systemctl restart apache2

Также в конфиге виртуального хоста Apache для каталога сайта должно стоять AllowOverride All, иначе .htaccess игнорируется. Проверьте, что файл .htaccess существует в корне сайта (Joomla поставляет его как htaccess.txt — переименуйте в .htaccess). На Nginx .htaccess не работает вовсе — там правила SEF-ссылок задаются в конфиге Nginx отдельным блоком location. После исправления SEO-ссылки заработают.

Проблемы с правами доступа

Joomla не может установить расширение, загрузить изображение или пишет об ошибке записи. Причина — неверные права или владелец файлов. Владельцем каталога сайта должен быть пользователь веб-сервера (www-data на Ubuntu/Debian), а не root. Восстановите владельца и корректные права:

chown -R www-data:www-data /var/www/vashdomen.ru
find /var/www/vashdomen.ru -type d -exec chmod 755 {} \;
find /var/www/vashdomen.ru -type f -exec chmod 644 {} \;

Каталоги — 755, файлы — 644, владелец — www-data. Особое внимание к configuration.php: он должен быть доступен только на чтение (444 или 644), чтобы его нельзя было изменить извне. Частая причина проблем с правами — загрузка файлов по FTP под другим пользователем: тогда веб-сервер не может их перезаписать. Загружайте файлы под правильным владельцем или исправляйте права после загрузки.

Последствия взлома через расширения

Если сайт стал перенаправлять на чужие ресурсы, показывать спам или в файлах появился незнакомый код — вероятен взлом. Главный вектор атак на Joomla — устаревшие сторонние расширения с известными уязвимостями. Найдите недавно изменённые PHP-файлы:

find /var/www/vashdomen.ru -name "*.php" -mtime -7

Самый надёжный путь восстановления — развернуть сайт из чистого бэкапа до заражения, затем обновить ядро Joomla и все расширения до актуальных версий, удалить неиспользуемые расширения и сменить все пароли (админов, базы, FTP). Впредь: своевременные обновления (особенно сторонних расширений), удаление каталога installation, нестандартный префикс таблиц, ограничение попыток входа и регулярные бэкапы вне сервера. Большинство взломов Joomla — следствие заброшенных расширений, поэтому ставьте только поддерживаемые и обновляйте их.

Нехватка ресурсов и медленная работа

Сайт тормозит, админка открывается долго, под нагрузкой возможны 502/503. Причины — нехватка памяти, тяжёлые расширения или неоптимизированная база. Проверьте потребление памяти:

free -m

Если система в свопе, серверу мало RAM. Включите кэширование в Joomla (Система → Общие настройки → Система → Кэш) — это заметно снижает нагрузку на базу и PHP. Оптимизируйте базу через админку или средствами MySQL. Отключите неиспользуемые расширения и модули — каждый из них добавляет работу на каждый запрос. Если после оптимизации и кэша сайт всё равно упирается в ресурсы, честный вывод — нужна конфигурация помощнее. На VPS MAATRIX память и CPU наращиваются без переустановки сайта.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

Белый экран без текста — с чего начать?

Повысьте уровень отчёта об ошибках в configuration.php и обновите страницу, чтобы увидеть текст ошибки. Чаще всего виновато несовместимое расширение или версия PHP, либо нехватка memory_limit — увеличьте его и перезапустите веб-сервер.

После включения SEF-ссылок сайт отдаёт 500 — почему?

Не активирован модуль перезаписи Apache или нет AllowOverride All, либо отсутствует .htaccess (переименуйте htaccess.txt). На Nginx правила SEF задаются в его конфиге, а не через .htaccess.

Не устанавливаются расширения и не грузятся файлы — что делать?

Проблема с правами: владельцем каталога должен быть www-data, каталоги 755, файлы 644. Восстановите права командами chown и chmod. Частая причина — загрузка по FTP под другим пользователем.

Сайт взломали — как быть?

Восстановите из чистого бэкапа, обновите ядро и все расширения, удалите заброшенные, смените пароли. Главный вектор атак — устаревшие сторонние расширения, поэтому их своевременное обновление критично. Держите бэкапы вне сервера.

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.