最近我发现mysqli扩展没有安装在我的服务器Centos 2.6版本中 。 我确认它,因为我更改数据库连接的驱动程序从mysqli到mysql ,现在工作正常。 那么,还有另一种方法/日志来确定这个问题吗? 因为Apache的error_log没有提到任何关于它的事情。
这确实不是问题,但将来可能会更复杂。 为什么? 因为使用mysqli驱动程序,网站死亡与空白页面没有错误/警告,以帮助我解决它。 我不喜欢用魔法艺术或者每行testing线来发现问题的想法。 应该是一些日志文件,帮助我debugging它。
为了提供信息来帮助解决这个问题,我做了:
cat /proc/version Linux version 2.6.18-308.el5.028stab099.3 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46))
您可以通过列出已安装的模块来确认是否安装了mysqli 。 SSH到您的Cent OS框中,然后发出以下命令。
php -m | grep mysqli
如果没有返回,那么你没有mysqli.so加载。 检查您的系统上是否安装了共享对象。
# Located extension dir php -i | grep extension_dir # List mysql.so in the path returned from the previous command ls -la /usr/lib/php/extensions/no-debug-non-zts-20090626/mysqli.so
如果mysqli.so存在,并且具有权限-rwxr-x-rx ,则需要在系统全局php.ini文件中加载/启用mysqli扩展。
# Adjust path to correct php.ini file. # Run `php -i | grep "Configuration File"` to locate, if needed # It might be easier to use vi, or nano, for this sudo echo "extension=mysqli.so" >> /etc/php5/php.ini # Restart apache sudo service httpd restart
其他。 如果你的系统中没有mysqli.so 。 您可以按照您的系统软件包pipe理器来安装rpm,然后重复上一个php.ini步骤。
sudo yum install php5-mysqli
令人惊讶的sudo yum install php5-mysqli这并没有为我安装mysqli包。 更令人惊讶的是,我有PHP版本5.5.31,我认为它默认安装了mysqli。 但是我错了。 我不得不从WHM安装和重buildApache。
使用EachApache安装mysqli:
以“root”用户身份login到WHM。
search“EasyApache”或转到Software> EasyApache
向下滚动并select构build选项(以前保存的configuration)
点击开始“基于configuration文件开始自定义”
selectApache的版本,然后单击“下一步”。
selectPHP的版本,然后点击“下一步”。
在“短选项列表”中select其他选项
select“详尽的选项列表”,并寻找“MySQL改进的扩展”
点击“保存并生成”