我在 CentOS 7/Apache 上安装了全新的 Wordpress,但在导航到网站完成设置时,出现了可怕的“建立数据库连接时出错”错误消息。我为 Wordpress 创建了一个新的数据库,并为其指定了一个拥有所有权限的用户。
我的 MySQL(MariaDB)安装在单独的主机上,但我可以使用命令行客户端顺利连接到它:
mysqlshow -u <wordpress_db_user> -p -h <host ip>
显示数据库列表中information_schema
的<wordpress_db_name>
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
连接。
我还可以检查其他什么来让它正常工作吗?大多数指南都停留在“您是否拥有正确的凭据”和“您是否尝试过修复数据库”上...
答案1
答案与 CentOS 的许多方面一样,可以在 SELinux 中找到!虽然apache
用户是能够打开网络连接,httpd
进程(无论以哪个用户身份运行)不是默认情况下。控制它的设置是httpd_can_network_connect
,可以使用
setsebool -P httpd_can_network_connect 1
谢谢这个问题帮助我找到解决方案audit2why
!