Mac OS X上需要Mcrypt PHP扩展

时间:2015-03-29 13:59:44

标签: macos laravel laravel-4 mamp mcrypt

我一直收到此错误

  

需要Mcrypt PHP扩展

运行composer update之后

在底部:

enter image description here

由于我使用的是Mac,我尝试过运行:

brew search mcrypt brew install php56-mcrypt

我仍然收到相同的错误消息。

5 个答案:

答案 0 :(得分:32)

的步骤

我通过运行以下命令解决了这个问题

brew update
brew upgrade
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
brew install php54-mcrypt
php --version // To Test your php 
sudo composer update

结果

没有Mcrypt警告!!

Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
Generating optimized class loader

答案 1 :(得分:9)

更新brew后:

brew update
brew upgrade
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php

如果您已安装php5.6(或更高版本),则可以使用以下命令查找brew中可用的版本:

$ brew search mcrypt
homebrew/php/php53-mcrypt     homebrew/php/php55-mcrypt         homebrew/php/php70-mcrypt     mcrypt
homebrew/php/php54-mcrypt     homebrew/php/php56-mcrypt     homebrew/php/php71-mcrypt

就我而言,我使用的是php7.0:

$ brew install php70-mcrypt

答案 2 :(得分:3)

您需要添加

 extension=mcrypt.so

在负责CLI PHP版本的phi.ini文件中。 要找到它的位置,请运行:

php -i | grep 'Configuration File'

答案 3 :(得分:3)

macOS High Sierra 上,我执行了以下步骤:

1-搜索包裹:

brew search mcrypt

结果:

  

==>搜索本地水龙头... homebrew / php / php71-mcrypt mcrypt homebrew / php / php53-mcrypt
  homebrew / php / php54-mcrypt homebrew / php / php55-mcrypt   homebrew / php / php56-mcrypt homebrew / php / php70-mcrypt   libtomcrypt

2-搜索我的php版本以了解我需要安装的内容:

php --version

结果:

  

PHP 7.1.7(cli)(建于:2017年7月15日18:08:09)(NTS)版权所有(c)   1997-2017 PHP Group Zend Engine v3.1.0,版权所有(c)1998-2017   Zend Technologies

3-安装正确的包装,对我来说是7.1.7 =>自制/ PHP / php71-mcrypt的

brew install homebrew/php/php71-mcrypt

4-找到发现" mcrypt.so"扩展文件

find /usr/ -type f -name "mcrypt.so"

结果:

  

查找:   /usr//local/Cellar/php71-mcrypt/7.1.13_19/mcrypt.so

5-搜索php.ini

php -i | grep 'Configuration File'

结果(如果存在):

  

配置文件(php.ini)Path => / etc Loaded Configuration File =>   /etc/php.ini中

6-在/etc/php.ini末尾添加下一行(参见最后一步你的正确路径)扩展名mcrypt.so

 extension=/usr/local/Cellar/php71-mcrypt/7.1.13_19/mcrypt.so

完成后,您现在可以执行命令。

答案 4 :(得分:1)

在Mac上使用 XAMPP ,因此我必须先安装php,然后使用pecl编译mcrypt,然后再将mcrypt.so复制到XAMPP。

可用版本的实际列表是:http://pecl.php.net/package/mcrypt

命令是:

echo Install php...
brew install php
/usr/local/opt/php/bin/php -v

echo Correction of "error Connection to `ssl://pecl.php.net:443' failed"...
wget http://curl.haxx.se/ca/cacert.pem
sudo cp cacert.pem /private/etc/ssl/cert.pem
sudo mv cacert.pem /Applications/XAMPP/xamppfiles/share/openssl/cert.pem
/usr/local/opt/php/bin/pecl list-all

echo Compile and Install mcrypt.so...
sudo /usr/local/opt/php/bin/pecl install mcrypt-1.0.1

pecl 的构建过程的最后一条消息是:

Build process completed successfully
Installing '/usr/local/Cellar/php/7.2.7/pecl/20170718/mcrypt.so'
install ok: channel://pecl.php.net/mcrypt-1.0.1
Extension mcrypt enabled in php.ini

基于构建过程的路径,我将编译后的mcrypt.so复制到XAMPP并在php.ini上启用扩展名:

sudo cp /usr/local/Cellar/php/7.2.7/pecl/20170718/mcrypt.so /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20170718/mcrypt.so 
echo 'extension=mcrypt.so' >> /Applications/XAMPP/xamppfiles/etc/php.ini

检查是否有效:

/Applications/XAMPP/bin/php -i | grep "mcrypt"

结果必须是:

mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value

请记住重新启动Apache ,以使其在浏览器中正常工作。

也许它可以帮助某人,而我赢了一个竖起大拇指。谢谢