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

Fil*_*Fil 8 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
Run Code Online (Sandbox Code Playgroud)

有谁知道怎么处理?

我正在使用 php7.2

Muk*_*esh 9

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

我做了以下修复

sudo apt-get install php-pear php7.2-dev
Run Code Online (Sandbox Code Playgroud)

然后卸载了

pecl uninstall mcrypt
Run Code Online (Sandbox Code Playgroud)

现在重新安装 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
Run Code Online (Sandbox Code Playgroud)

当您看到提示时

libmcrypt prefix? [autodetect] :
Run Code Online (Sandbox Code Playgroud)

按 [Enter] 自动检测。

使用 pecl 安装 mcrypt 成功后,您应该将 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
Run Code Online (Sandbox Code Playgroud)

现在重新启动Apache

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

获取安装路径并添加到 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"
Run Code Online (Sandbox Code Playgroud)


Jit*_*dra 5

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

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
Run Code Online (Sandbox Code Playgroud)

安装依赖项后,您可以使用以下命令安装 mcrypt:

sudo pecl install mcrypt-1.0.1
Run Code Online (Sandbox Code Playgroud)

你去吧。Mcrypt 现在已安装。回到安装依赖于这个扩展的任何服务器软件的过程,你应该很高兴。