对我来说,解决方案是:
locate --regex /mcrypt[.]so\$ /gd[.]so\$ /suhosin[.]so\$ /pdo_mysql.so\$ /pdo[.]so /mysqli[.]so\$ '/php5/.*/mysql[.]so$'
这将返回我安装的php5找不到的所有库的位置:
/usr/lib/php5/20090626+lfs/gd.so
/usr/lib/php5/20090626+lfs/mcrypt.so
/usr/lib/php5/20090626+lfs/mysql.so
/usr/lib/php5/20090626+lfs/mysqli.so
/usr/lib/php5/20090626+lfs/pdo.so
/usr/lib/php5/20090626+lfs/pdo_mysql.so
我有点担心这些看起来可能是旧版本,但我仍然使用了它们的路径。Stefgosselin确定了ini文件的位置,/etc/php5/conf.d/
。我对它们进行了修改。下面的命令将修改那里的所有*.ini
文件,因此请确保您的所有文件都需要进行修改。显然,您需要使用定位命令发现的目标路径替换我的路径,/usr/lib/php5/20090626+lfs/
:
sudo sed -ri -e "s|^(extension=)(\w{2,10}[.]so)$|\1/usr/lib/php5/20090626+lfs/\2|g" /etc/php5/conf.d/*.ini
在找到这个解决方案之前,我尝试了几次
apt-get purge
和
apt-get reinstall
命令,但都没有成功。我不确定,但我的问题可能源于从源代码安装zend或使用aptitude安装phpmyadmin。它从未引起任何php错误,只是你提到的烦人的警告。最终,php5可以无错误启动:
php5 --version
输出为...
PHP 5.3.5-1ubuntu7.2 with Suhosin-Patch (cli) (built: May 2 2011 23:18:30) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
php5-gd
软件包,另一个解决方案是将其卸载:sudo apt-get purge php5-gd
。 - bonsaiviking