root@ip-10-131-9-200:/etc/php5/apache2# php -a
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/curl.so' - /usr/lib/php5/20090626+lfs/curl.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mcrypt.so' - /usr/lib/php5/20090626+lfs/mcrypt.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysql.so' - /usr/lib/php5/20090626+lfs/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysqli.so' - /usr/lib/php5/20090626+lfs/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo.so' - /usr/lib/php5/20090626+lfs/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo_mysql.so' - /usr/lib/php5/20090626+lfs/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
Interactive shell
Run Code Online (Sandbox Code Playgroud)
Mik*_*ike 139
尽管其他几个答案表明,安装更多不必要的软件通常不是最佳解决方案.相反,你应该解决潜在的问题.这些消息出现的原因是您尝试加载这些扩展,但它们未安装.所以简单的解决方案就是告诉PHP停止尝试加载它们:
首先,找出哪些文件正在尝试加载上述扩展名:
$ grep -Hrv ";" /etc/php5 | grep -E "extension(\s+)?="
Run Code Online (Sandbox Code Playgroud)
Ubuntu的输出示例:
/etc/php5/mods-available/gd.ini:extension=gd.so
/etc/php5/mods-available/pdo_sqlite.ini:extension=pdo_sqlite.so
/etc/php5/mods-available/pdo.ini:extension=pdo.so
/etc/php5/mods-available/pdo_mysql.ini:extension=pdo_mysql.so
/etc/php5/mods-available/mysqli.ini:extension=mysqli.so
/etc/php5/mods-available/mysql.ini:extension=mysql.so
/etc/php5/mods-available/curl.ini:extension=curl.so
/etc/php5/mods-available/sqlite3.ini:extension=sqlite3.so
/etc/php5/conf.d/mcrypt.ini:extension=mcrypt.so
/etc/php5/conf.d/imagick.ini:extension=imagick.so
/etc/php5/apache2/php.ini:extension=http.so
Run Code Online (Sandbox Code Playgroud)
现在只需找到正在加载导致错误的扩展名的文件,并用a注释掉那些行;
.由于某些原因,我发现Ubuntu的默认安装,所以希望这有助于其他人.
小智 47
sudo apt-get install php5-mcrypt
sudo apt-get install php5-mysql
Run Code Online (Sandbox Code Playgroud)
...等为我解决了:)
希望能帮助到你
ruu*_*ter 11
似乎您将PHP升级到较新版本,旧的.ini文件仍然指向旧位置.
解决方案:找出现在模块的位置
ls -l /usr/lib/php5
Run Code Online (Sandbox Code Playgroud)
应该有一个类似于旧的目录20090626
.就我而言,现在是20131226
给出错误的.ini文件位于 /etc/php5/cli/conf.d/
只需编辑那些模块给你错误的.ini文件.例如,如果错误是针对mcrypt模块:
sudo vi /etc/php5/cli/conf.d/20-mcrypt.ini
Run Code Online (Sandbox Code Playgroud)
换行:
extension=/usr/lib/php5/20090626/mcrypt.so
Run Code Online (Sandbox Code Playgroud)
反映.so文件的新路径.在我的情况下,正确的路径应该是:
extension=/usr/lib/php5/20131226/mcrypt.so
Run Code Online (Sandbox Code Playgroud)
而已!错误消失了.对于每个模块,你必须这样做,给你一个错误.
如果你把; 符号,此操作无效扩展.
我有同样的问题并做了以下事情:
使用purge参数卸载php:
sudo apt-get --purge remove php5-common
Run Code Online (Sandbox Code Playgroud)然后重新安装:
sudo apt-get install php5 php5-mysql
Run Code Online (Sandbox Code Playgroud)