我有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
我试过以下
但没有任何对我有用。
有什么建议我可以解决这个问题吗?
答案 0 :(得分:10)
如果你在Linux上,你不应该有DLL文件而是SO文件。 首先,你必须删除/禁用你在php.ini中添加的php_mysqli.dll。
为了使用mysqli,你应该:
Wrapper
iframe
)apt-get install php-mysql
文件夹中是否有phpinfo()
,包含/etc/php/mods-available/
,然后检查CLI / FPM / Apache /其他是否存在指向此文件的符号链接(例如,对于CLI,mysqli.ini
:extension=mysqli.so
)答案 1 :(得分:1)
我最近在ubuntu16.04上遇到过这个问题,我最后通过在extension=php_*.dll
这样的每一行添加一个分号来解决它,我想这是因为ubuntu上的LAMP足够智能,它会自动打开所有我们的扩展。在Windows上,我们必须通过删除;extension=php_*.dll
中php.ini
等每一行的分号来手动启用扩展程序。
答案 2 :(得分:1)
在我的情况下,它发生了,因为我在php.ini文件中取消注释extension=php_mysqli.dll
行以运行其他包。谷歌搜索后我发现你不应该直接从php.ini取消注释任何东西,而应该安装所需的php扩展,它将完成其余的工作。
答案 3 :(得分:1)
我设法解决了这个问题:
将库添加到php.ini(etc / php / 7.3 / apache2; etc / php / 7.3 / cli文件夹) extension = pdo_mysql.so
重启apache(sudo systemctl restart apache2)
注释php.ini中的libs(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
答案 4 :(得分:0)
只需注释掉所有带有.dll扩展名的行,因为你在Ubuntu上。 Ubuntu支持.so文件。
答案 5 :(得分:0)
运行Phpinfo()
搜索您的php.ini
路径
搜索extension=php_mysqli.so
这样的评论
;extension=php_mysqli.so
答案 6 :(得分:0)
如果在/etc/php/7.2或/etc/php/7.3下看到mcrypt.so,只需将其删除并重新启动服务器,它将解决此问题。 当我们将php更新到最新版本时,该文件可能会存储到不需要的最新版本。
我使用了以下命令:
cd /etc/php/7.3
sudo rm -rf mcrypt.so
sudo服务apache2重新启动
答案 7 :(得分:0)
我只是遇到了同样的问题,并且意识到它们是我的/etc/php/7.0
中的两个文件夹,分别是apache2
和cli
。原来cli/php.ini
中的扩展名行未与dll文件一起注释,而不是apache2
目录中的扩展名。评论它就解决了问题。
答案 8 :(得分:-2)
在php.ini
下的Dynamic Extensions
,extension=php_mysqli.dll
行已启用。
我通过在行;extension=php_mysqli.dll
的行首添加一个分号来禁用它。
保存并退出php.ini
。重新启动Apache
。
这解决了我的错误。