В этой статье разберём исправление ошибки HTTP 500 на форуме FluxBB 1.5.11 (модификация Visman) в окружении AlmaLinux 10, BrainyCP и PHP 8.4.27.
Путь к файлам форума:
Код : bash
/home/Admin/sites/сайт.ком
1. Проверяем HTTP-статусВыполняем проверку основных страниц:
Код : bash
for url in / /viewtopic.php /profile.php; do
echo "=== $url ==="
curl -s -o /dev/null -w "%{http_code}\n" "https://сайт.ком$url"
done
Код
200 означает успешный ответ. Код
500 указывает на внутреннюю ошибку, а
404 может быть ожидаемым, если странице нужны дополнительные параметры.
2. Проверяем журнал PHP-FPMОсновной журнал ошибок PHP-FPM:
Код : bash
tail -n 100 /home/Admin/var/log/php-fpm/www-error.log
Для наблюдения за новыми ошибками в реальном времени:
Код : bash
tail -f /home/Admin/var/log/php-fpm/www-error.log
Также проверяем журнал ошибок Apache:
Код : bash
tail -n 100 /etc/httpd/vhost_logs/сайт.ком_error
3. Проверяем настройки подключения к MySQLОткрываем конфигурацию:
Код : bash
grep -n '^\$db_host' /home/Admin/sites/сайт.ком/include/config.php
В первоначальной конфигурации использовалось:
Код : php
При работе PHP-FPM в изолированном окружении подключение через
localhost может приводить к попытке соединения через Unix-сокет, недоступный из окружения процесса.
4. Проверяем MySQLУбеждаемся, что MySQL работает и слушает TCP-порт 3306:
Код : bash
systemctl status mysqld
ss -lntp | grep ':3306'
Проверяем наличие Unix-сокета:
Код : bash
ls -l /home/Admin/var/run/mysqld/mysql.sock
5. Проверяем подключение к базе данных по TCPВыполняем тест подключения:
Код : bash
mysql --protocol=TCP -h 127.0.0.1 -P 3306 -u Admin_admin -p Admin_forum -e "SELECT 1 AS connection_test, DATABASE() AS db;"
После запуска команда запросит пароль пользователя базы данных.
Если подключение успешно, результат должен содержать значение
1 и имя базы данных
Admin_forum.
6. Исправляем адрес подключенияПеред изменением сохраняем резервную копию:
Код : bash
cp -a /home/Admin/sites/сайт.ком/include/config.php /home/Admin/sites/сайт.ком/include/config.php.bak-20261029
Заменяем
localhost на
127.0.0.1:
Код : bash
sed -i "s/^\$db_host = 'localhost';/\$db_host = '127.0.0.1';/" /home/Admin/sites/сайт.ком/include/config.php
Проверяем результат:
Код : bash
grep -n '^\$db_host' /home/Admin/sites/сайт.ком/include/config.php
Должно получиться:
Код : php
После изменения повторно проверяем главную страницу:
Код : bash
curl -s -o /dev/null -w "%{http_code}\n" https://сайт.ком/В нашем случае после изменения адреса подключения главная страница стала возвращать HTTP 200.
7. Разбираемся с дополнительными предупреждениямиВ журнале также встречались ошибки плагина
ezbbc:
-
Undefined variable $ezbbc_config-
Trying to access array offset on null-
Undefined array key 1- предупреждение
trim(): Passing null... deprecatedОни относятся к коду плагина и требуют отдельной проверки. Не следует смешивать их с причиной первоначальной ошибки подключения к MySQL.
Также были обнаружены ошибки базы данных:
Field 'lastAccessed' doesn't have a default valueIncorrect integer value: '' for column Admin_url3.stats.img_search at row 1Эти сообщения указывают на проблемы с заполнением полей при записи данных. Для исправления нужно проверить структуру таблиц и запросы, которые выполняются при сохранении соответствующих записей.
8. Повторно проверяем журналыПосле исправления подключения проверяем, не появляются ли новые ошибки:
Код : bash
tail -n 100 /home/Admin/var/log/php-fpm/www-error.log
tail -n 100 /etc/httpd/vhost_logs/сайт.ком_error
Если HTTP 500 сохраняется, необходимо ориентироваться на новую запись об ошибке, а не исправлять случайные предупреждения без проверки их причины.
9. Резервные копии и безопасностьПеред изменением конфигурации сохраняйте резервную копию файла. Пароли базы данных не следует публиковать в статьях, журналах общего доступа или открытых сообщениях.
Если пароль был раскрыт, его рекомендуется сменить и обновить в конфигурации форума.
ИтогВ рассмотренном случае причиной HTTP 500 стало подключение к MySQL через
localhost из окружения PHP-FPM, где доступ к Unix-сокету был проблемным. Замена адреса на
127.0.0.1 позволила подключаться по TCP и восстановить работу главной страницы.
Главный принцип диагностики: сначала найти конкретную фатальную ошибку в журнале, затем проверить её причину и только после этого менять конфигурацию или код.