PHP:加载共享库时出错:libmysqlclient.so.18

时间:2012-12-21 16:51:27

标签: php mysql apache centos

我是设置Crontab:

[root@root mysql]# crontab -l
5 *  *  *  *  php /home/admin/public_html/scheduleSendMail.php

但不执行PHP代码!

[root@root mysql]# php /home/admin/public_html/scheduleSendMail.php 
php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory


[root@root mysql]# rpm -qR postfix

找到:

..
libmysqlclient.so.16  
libmysqlclient.so.16(libmysqlclient_16)  
..

我正在使用Centos和DirectAdmin

PHP v: php-5.3.3-14.el6_3.i686
mysql v: mysql-5.1.66-2.el6_3.i686
centos v: CentOS release 6.3 (Final)

3 个答案:

答案 0 :(得分:5)

代码:

#ls -l /usr/lib/mysql | grep libmysqlclient.so

输出:

lrwxrwxrwx 1 root root      24 Dec 21 21:41 libmysqlclient.so -> libmysqlclient.so.16.0.0
lrwxrwxrwx 1 root root      24 Dec 21 21:41 libmysqlclient.so.16 -> libmysqlclient.so.16.0.0
-rwxr-xr-x 1 root root 1524000 Dec  7 18:27 libmysqlclient.so.16.0.0

#ln /usr/lib/mysql/libmysqlclient.so.16.0.0  /usr/lib/mysql/libmysqlclient.so.18

不工作!

但是:

#ln /usr/lib/mysql/libmysqlclient.so.16.0.0  /usr/lib/libmysqlclient.so.18

工作非常好:D

全部谢谢

答案 1 :(得分:1)

Php是针对错误的mysql lib编译的。

我建议你检查php可执行文件是否与rpm包一起提供。

您也可以尝试一个脏的解决方法,转到libmysqlclient.so.16所在的目录并写入:

ln -s libmysqlclient.so.16 libmysqlclient.so.18

答案 2 :(得分:0)

更好的选择是删除你的php并安装版本5.3.23:

  1. yum remove php
  2. wget http://repo.webtatic.com/yum/centos/5/latest.rpm
  3. rpm -ivh latest.rpm
  4. 启用webtatic存储库并禁用rhea存储库(/etc/yum.repos.d /)
  5. yum install php