![](/img/trans.png)
[英]PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_mysqli.dll' and php_mysql.dll
[英]PHP Startup Unable to load dynamic library /usr/lib/php/20151012/php_mysqli.dll
我有 ubuntu 14.04 EC2 实例。 我已经在上面安装了 php 7。 当我执行任何 php 命令时,如 php --version 或任何其他命令。 我收到以下错误
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_mysqli.dll' - /usr/lib/php/20151012/php_mysqli.dll: cannot open shared object file: No such file or directory in Unknown on line 0
我试过以下
但对我没有任何用处。
有什么建议我可以解决这个问题吗?
如果你在 Linux 上,你不应该有 DLL 文件,而是 SO 文件。 因此,首先,您必须删除/禁用您在 php.ini 中添加的 php_mysqli.dll。
为了使用 mysqli,你应该:
apt-get install php-mysql
phpinfo()
)/etc/php/mods-available/
文件夹,如果有mysqli.ini
,包含extension=mysqli.so
,然后检查 CLI / FPM / Apache / other 如果有符号指向此文件的链接(例如,对于 CLI,在/etc/php/cli/conf.d/
: 20-mysqli.ini -> ../../mods-available/mysqli.ini
)就我而言,这是因为我取消了 php.ini 文件中的extension=php_mysqli.dll
行的注释,以运行其他一些包。 在谷歌搜索之后,我发现你不应该直接从 php.ini 取消注释任何东西,而是应该安装所需的 php 扩展,剩下的就交给它了。
最近在ubuntu16.04上遇到这个问题,最后在每一行加一个分号解决了,比如extension=php_*.dll
,我想是因为ubuntu上的LAMP足够智能,它会自动打开所有的我们的扩展。 在 Windows 上,我们必须通过删除每一行的分号来手动启用扩展,例如;extension=php_*.dll
in php.ini
。
运行Phpinfo()
搜索你的php.ini
路径
搜索extension=php_mysqli.so
像这样评论
;extension=php_mysqli.so
如果您使用 Linux 并使用 php8.1,
这种方法对我有用
我刚刚遇到了同样的问题,并意识到它们是我的/etc/php/7.0
中的两个文件夹,分别是apache2
和cli
。 原来cli/php.ini
的扩展行没有用 dll 文件注释,而不是apache2
目录中的那个。 评论它只是解决了问题。
我设法解决了这个问题:
将库添加到 php.ini (etc/php/7.3/apache2; etc/php/7.3/cli 文件夹) extension=pdo_mysql.so
重启 apache (sudo systemctl restart apache2)
php.ini 中的注释库(etc/php/7.3/apache2; etc/php/7.3/cli 文件夹) extension=pdo_mysql.so
去 etc/php/7.3/mod_available
注释扩展(因为已经加载了),例如 etc/php/7.3/mod_available/pdo_mysql.ini ;extension=pdo_mysql.so
如果您在 /etc/php/7.2 或 /etc/php/7.3 下看到 mcrypt.so 只需将其删除并重新启动服务器即可解决问题。 当我们将 php 升级到最新版本时,该文件可能会存储到不需要的最新版本。
我使用了以下命令:
cd /etc/php/7.3
须藤 rm -rf mcrypt.so
须藤服务 apache2 重启
只需注释掉所有带有 .dll 扩展名的行,因为您使用的是 Ubuntu。 Ubuntu 支持 .so 文件。
在Dynamic Extensions
下的php.ini
行extension=php_mysqli.dll
已启用。
我通过在行的开头添加一个分号来禁用它;extension=php_mysqli.dll
。
保存并退出php.ini
。 重新启动Apache
。
这为我解决了错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.