2

我设置 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)
4

3 回答 3

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

谢谢大家

于 2012-12-23T10:37:01.000 回答
1

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

我建议您检查 php 可执行文件是否是 rpm 包提供的。

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

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

于 2012-12-21T17:30:16.910 回答
0

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

  1. 百胜删除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. 百胜安装php
于 2013-04-23T08:42:14.033 回答