Я установил новую копию Wordpress на CentOS 7 / Apache, но получаю ужасную «Ошибка при установлении соединения с базой данных» "сообщение об ошибке при переходе на сайт для завершения настройки. Я создал новую базу данных для Wordpress, чтобы использовать ее вместе с пользователем, у которого есть все права на нее.
Моя установка MySQL (MariaDB) находится на отдельном хосте, однако я могу нормально подключиться к ней с помощью клиента командной строки :
mysqlshow -u <wordpress_db_user> -p -h <host ip>
показывает информационную_схему
и
в списке баз данных, а
mysql -u <wordpress_db_user> -p -h <host_ip> <wordpress_db_name>
открывает ожидаемый сеанс -однако запрашивать нечего, поскольку WP еще не настроил свои таблицы. Я даже попытался
sudo -H -u apache bash -c 'mysql -u <wordpress_db_user> -p -h <host_ip> <wordpress_db_name>'
убедиться, что SELinux не блокирует подключение apache
.
Могу ли я еще что-нибудь проверить, чтобы это заработало? Большинство руководств останавливаются на "У вас есть правильные учетные данные" и "Вы пытались восстановить базу данных" ...
Ответ, как и во многих других аспектах CentOS, находится в SELinux! В то время как apache
пользователь может открывать сетевые подключения, процесс httpd
(независимо от того, от имени какого пользователя он запущен) нет по умолчанию. Параметр, который управляет этим, — httpd_can_network_connect
, который можно установить с помощью
setsebool -P httpd_can_network_connect 1
Спасибо этот вопрос за помощь в решении с помощью audit2why
!