现象描述:

安装cacti软件时,apache配置正常,成功启动;

cacti软件包正常;

mysql数据库正常运行;

访问cacti的首页面为空白,并且apache日志中无任何记录产生,测试phpinfo页面可以正常显示,该问题到底出在哪里?

分析过程:

查看apache加载的php模块是否正确

httpd -M 查看php模块是否被apache正确加载

 php5_module (shared)

结果证明,php5模块被正常加载,从phpinfo页面可以正常显示也能证明了这一点。但为什么cacti的index.php页面就无法正常访问呢?

rpm -qa|grep php

查看后发现系统安装了两套php的rpm包,并且php-common和php53-common存在冲突,原因可能就在这里。

解决过程:

因为都是rpm安装的php包,使用yum卸载掉所有的php安装包,然后选择正确的重新安装。

yum remove php*

卸载了所有php包和php53的包

yum install php53*

因为apache加载的是php53的模块,所以我们这里安装php53的所有包。

成功安装完成后,在浏览器再次访问 http://192.168.1.10/cacti,成功显示出页面了,问题搞定。

小结:我遇到这个问题的时候在百度中搜索了一下,发现很多技术朋友都在问,但都没有一个很好的回答。我也是经过了闹心的分析以后发现是安装了多个php版本冲突导致,我把这个解决过程写到我的博客里,供大家参考吧。

网上很多人都遇到这问题,大体解释就是php-mysql没安装,安了就好。关键很多人安装了,却也依然有问题,本人就是如此。
先总结问题发生的环境。apache编译安装,mysql yum安装(当时懒就yum了) php编译安装。
问题就产生在这。php编译安装需要--with-mysql指定mysql目录,很多攻略解释如果不指定mysql目录,mysql是yum安装的,就会自动指定/var/lib/mysql/
当时直接不指定编译,编译也过了。没有发现问题,就最后导致的cacti的空白页出现。导致解决了一下午也没搞定。
前言说的太多了。还是尽快说说别人没说过的解决方法吧。
手动--with-mysql指定mysql目录
发现报错
configure: error: Cannot find libmysqlclient under /usr.
Note that the MySQL client library is not bundled anymore!

通过查找libmysqlclient,发现是在/usr/lib64/mysql/目录内的libmysqlclient.so.15.0.0做的软连接,PHP默认是去的/usr/lib/搜索,所以没有找到.
解决办法就是:
cp /usr/lib64/mysql/* /usr/lib/mysql/
然后进行./configure即可,如果服务器没有/usr/lib/mysql/ 目录,直接做个软连接就好。
然后make && make install 在访问,cacti install界面出现了。至此问题解决。

网上很多cacti空白页的问题,没人提到打开php错误信息,和mysql连接用的库文件的问题。所以很多人查看apache 会发现日志正常,而找不到解决方法。
在这总结出来,希望对遇到相同问题的人有所帮助。