在CentOS环境下借助PHP连接数据库时,往往遭遇服务未启动、扩展缺失或配置偏差等难题,以下逐项梳理常见故障及其处理办法。

首要步骤是确认数据库服务(例如MySQL或MariaDB)处于运行状态。
sudo systemctl status mysqld
若服务尚未启动,执行以下命令来开启:
sudo systemctl start mysqld
核实是否已安装对应的PHP数据库扩展。以MySQL为例,需要安装php-mysql扩展。
sudo yum install php-mysql
若使用PHP 7.x或更高版本,可能需安装php-mysqlnd扩展:
sudo yum install php-mysqlnd
安装完毕后,重启Web服务器(如Apache或Nginx)使配置生效。
sudo systemctl restart httpd
或
sudo systemctl restart nginx
确认PHP代码中数据库连接参数准确无误。以MySQL为例,连接代码通常如下:
<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>
确保CentOS防火墙放行数据库端口(默认3306)的流量。
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
若SELinux处于启用状态,可能阻碍PHP与数据库的通信。可临时关闭SELinux进行测试:
sudo setenforce 0
若关闭后问题消失,建议配置SELinux以允许PHP连接数据库,而非永久禁用(不推荐)。
查阅PHP和数据库的错误日志以获取更详细的诊断信息。
/var/log/php-fpm/error.log或/var/log/httpd/error_log。/var/log/mysqld.log。sudo tail -f /var/log/php-fpm/error.log
sudo tail -f /var/log/mysqld.log
依循上述操作,绝大多数CentOS上PHP连接数据库的障碍都能得到化解。若问题依然存在,建议深入分析错误日志以获取更精确的异常信息,从而进行针对性修复。