在CentOS系统中,如果你发现通过PHPinfo()函数无法显示MySQL扩展信息,这可能意味着MySQL扩展没有被正确安装或配置。以下是一份详细的排查和解决指南,帮助你快速解决这个问题。

1. 确认MySQL服务状态

首先,确保MySQL服务正在运行。

systemctl status mysqld

如果MySQL服务没有运行,可以使用以下命令启动它:

systemctl start mysqld

2. 检查PHP配置文件

2.1 查找PHP配置文件

find / -name php.ini

2.2 打开并检查配置文件

在找到的php.ini文件中,查找以下设置:

    extension_dir:确保这个值指向了包含MySQL扩展的目录,通常是/usr/local/lib/php/modules//usr/lib/php/modules/

    extension=php_mysql.dllextension=mysqlnd.so:对于不同的PHP版本,MySQL扩展的加载指令可能不同。

如果extension_dir的值不正确或MySQL扩展没有被加载,需要根据实际情况进行调整。

3. 重启Apache或Nginx

在修改了php.ini文件后,需要重启Apache或Nginx服务以使更改生效。

对于Apache:

systemctl restart httpd

对于Nginx:

systemctl restart nginx

4. 使用PHPinfo()验证

再次访问PHPinfo()页面,你应该能看到MySQL扩展的信息了。

5. 如果问题仍然存在

5.1 检查PHP版本

确保你的PHP版本支持MySQL扩展。对于较新的PHP版本,推荐使用mysqlnd作为MySQL的驱动。

5.2 安装或更新MySQL扩展

如果MySQL扩展没有安装,你可以通过以下命令安装:

对于PHP 5:

yum install php-mysql

对于PHP 7或更高版本:

yum install php70u-mysql

安装后,重启Apache或Nginx服务。

5.3 检查权限问题

确保运行PHP的Web服务器用户(如apache或nginx)有权限访问MySQL扩展文件。

5.4 查看错误日志

检查Apache或Nginx的错误日志,以获取更多关于问题的信息。

tail -f /var/log/httpd/error_log

tail -f /var/log/nginx/error.log

6. 结论

通过以上步骤,你应该能够解决CentOS系统中PHPinfo()显示无MySQL的问题。如果问题依旧存在,可能需要进一步检查系统配置或寻求专业帮助。