编译php时遇到的错误:

/root/dev/php-5.3.6/sapi/cli/php: error while loading shared libraries: 
libmysqlclient.so.18: cannot open shared object file: No such file or directory
make: *** [ext/phar/phar.php] Error 127


网上找到的解决办法是

ln -s /usr/local/mysql/lib/libmysqlclient.so.18  /usr/lib/

照做后仍然报错,原因是该方法适用于32位系统,64位系统应使用下面的这行

ln -s /usr/local/mysql/lib/libmysqlclient.so.18  /usr/lib64/

另外:在编译的时候,不写mysql的路径,而使用mysqlnd代替,也可解决该问题的出现。

  

php-fpm启动报错:

Starting php_fpm /usr/local/webserver/php/bin/php-cgi: error while loading shared libraries: 
libmysqlclient.so.16: cannot open shared object file: No such file or directory failed。

报错信息指示libmysqlclient.so.16没有找到。

进入/usr/local/mysql/lib/ 目录查看,呵呵,还真没有,只有一个libmysqlclient.so.16.0.0 。于是我建立了一个软件链接来指向libmysqlclient.so.16。

ls -s libmysqlclient.so.16 libmysqlclient.so.16.0.0

再次启动php-fpm,问题解决了。

听有些网友说问题仍然存在,那可以试试其它网友的解决方案,在/usr/lib/下建立个软链接:

ln -s /usr/local/mysql/lib/libmysqlclient.so.16/usr/lib/

如果不行,往下看

export LD_LIBRARY_PATH=”/usr/local/mysq/lib:$LD_LIBRARY_PATH”

加上这句后在去安装编译就ok了。

1.找到libmysqlclient.so.16所在的目录

2.将该目录加入到/etc/ld.so.conf的第一行

3.ldconfig

更新库所在位置

/usr/local/mydns/sbin/named -4 -n 1 -S 52428