PHP警告:PHP启动:无法加载动态库' mcrypt.so'

时间:2018-04-19 23:27:18

标签: php server ubuntu-16.04

我正在尝试使用ubuntu 06.04上的composer update更新laravel,但每次运行composer update时都会出现此警告。

PHP Warning:  PHP Startup: Unable to load dynamic library 'mcrypt.so' (tried: /usr/lib/php/20170718/mcrypt.so (/usr/lib/php/20170718/mcrypt.so: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/mcrypt.so.so (/usr/lib/php/20170718/mcrypt.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

有谁知道如何处理它?<​​/ p>

我使用的是php7.2

7 个答案:

答案 0 :(得分:4)

首先,打开一个终端窗口,并使用以下命令安装必要的依赖项:

python manage.py createsuperuser

一旦安装了依赖项,就可以使用以下命令安装mcrypt:

sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install php7.2-dev
sudo apt-get -y install libmcrypt-dev

然后您就去了。现在已安装Mcrypt。返回安装依赖此扩展的任何服务器软件的过程,您应该一切顺利。

答案 1 :(得分:1)

İts为我工作。

导出LC_ALL =“ C”

export LANG =“ C

sudo pecl install mcrypt-1.0.1

答案 2 :(得分:1)

当我在Ubuntu 18上安装Php7.2时,我遇到了类似的问题。尽管我已经使用PECL安装了mcryupt,但仍然收到问题中提到的错误。

我确实做了以下修正

sudo apt-get install php-pear php7.2-dev

然后卸载

pecl uninstall mcrypt

现在重新安装mcrypt

sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install libmcrypt-dev
sudo pecl install mcrypt-1.0.1

出现提示时

libmcrypt prefix? [autodetect] :

按[Enter]自动检测。

成功安装mcrypt trought pecl后,应将mcrypt.so扩展名添加到php.ini中。

输出将如下所示:

...
Build process completed successfully
Installing '/usr/lib/php/20170718/mcrypt.so'    ---->   this is our path to mcrypt extension lib
install ok: channel://pecl.php.net/mcrypt-1.0.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=mcrypt.so" to php.ini

现在重新启动Apache

sudo service apache2 restart

获取安装路径并添加到cli和apache2 php.ini配置中。

sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/cli/conf.d/mcrypt.ini"
sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/apache2/conf.d/mcrypt.ini"

答案 3 :(得分:1)

对于(> = PHP 7.3),您可以使用以下命令:

http.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint)

答案 4 :(得分:0)

此外,如果您使用的是php 7.2,并且收到此错误,并且您知道不需要/不需要mcrypt,但不知道如何排除它。...您需要编辑php.ini文件并添加注释通过在其前面使用分号来实现:

; extension=mcrypt.so

或只是完全删除该行。

答案 5 :(得分:0)

我将PHP升级到7.3时遇到了这个问题

我发现mcrypt.so仍然存在于/etc/php/7.3中,这不应该被PHP 7.3弃用,因此只需 /etc/php/7.3中删除mcrypt.so就可以解决问题。

我使用了以下命令:

  

cd /etc/php/7.3

     

sudo rm -rf mcrypt.so

     

sudo服务apache2重新启动

答案 6 :(得分:-5)

您在PHP安装中缺少mycrypt扩展。

使用本指南或运行Linux。

sudo apt-get install php7.2-mycrypt

mycrypt PHP