PHP Fatal error: Call to undefined function mysql_connect()解决方案

来源:互联网 发布:java 获取spring容器 编辑:程序博客网 时间:2024/06/11 16:22

今天从一台机器A移植php的gm后台到另外一个机器B,机器B上已经安装了mysql,php,apache,所以也没有管这些,直接数据库恢复,gm后台放到apache配置的目录下。 几分钟就搞定了,打开浏览器访问,查询一下数据结果什么都没有,看了一下数据是有数据的,于是只能看apache的日志,发现了一个问题Call to undefined function mysql_connect(),百度了一下原来是php-mysql没有安装,接下来我试了几种方法。

第一种:直接运行yum -y install php-mysql,悲剧出现了,跟mysql的一些lib冲突,由于是线上不能重新安装mysql。所以只能放弃。

第二种:我将A机器上的/usr/lib64/php/modules的so拷贝到b机器上,重新启动apache,发现B机器上的php没有去加载mysql的so。我查找php的so配置在哪才能去加载,找了/etc/php.d下有很多ini文件,找到有配置so的路劲,确认就是在这里配置,我就将A机器上的ini拷贝到B机器上,重新启动apache,这回终于去加载mysql.so了,但是另外一个问题就是这些so会去加载另外一个libmysqlclient.so。我在a机器上去找这个so,发现/usr/lib64/mysql目录下存在,于是我将a机器上的so拷贝到b机器上对应目录下,重新启动apache发现还是找不到libmysqlclient.so,百度上搜了一下,linux的so查找路径,在a机器看了一下/etc/ld.so.conf.d目录下的文件,有个mysql-x86_64.conf ,打开看了一下,就是制定了一个mysql的lib在的位置,于是我将这个文件拷贝到b机器上对应目录,必须要运行 /sbin/ldconfig 命令更新 /etc/ld.so.cache 文件之后才可以。重新启动apache,没有报错,访问数据库正常。

0 0
原创粉丝点击