【问题标题】:PHP: error while loading shared libraries: libmysqlclient.so.18PHP:加载共享库时出错:libmysqlclient.so.18
【发布时间】:2012-12-09 06:24:22
【问题描述】:

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

【问题讨论】:

  • 有几件事可能是错误的。要么你没有安装 mysql 客户端库。或者 PHP 是针对错误版本的库编译的。

标签: php mysql apache centos


【解决方案1】:

PHP 是针对错误的 mysql 库编译的。

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

你也可以尝试一个肮脏的变通方法,到libmysqlclient.so.16所在的目录下写:

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

【讨论】:

  • MerC.但是甚至看不到我的版本 php.#php -v --> Error libmysqlclient.so.18: cannot open....我做了你说的但不行。
【解决方案2】:

代码:

#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

谢谢大家

【讨论】:

    【解决方案3】:

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

    1. yum 删除 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 安装 php

    【讨论】:

      猜你喜欢
      • 2011-05-29
      • 1970-01-01
      • 2017-11-05
      • 2014-12-09
      • 2022-01-04
      相关资源
      最近更新 更多