我正在尝试使用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
答案 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)