Mcrypt PHP extension required on Mac OS X

后端 未结 5 750
太阳男子
太阳男子 2021-02-12 15:28

I keep getting this error

Mcrypt PHP extension required

at the bottom after I run a composer update :

相关标签:
5条回答
  • 2021-02-12 16:01

    You'll need to add the line

     extension=mcrypt.so
    

    In your phi.ini file responsible for the CLI PHP version. To find where it is, run:

    php -i | grep 'Configuration File'
    
    0 讨论(0)
  • 2021-02-12 16:06

    After update brew:

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

    If you have installed php5.6 (or higher), you can use the following command to find out what versions are available in 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
    

    In my case, I am using php7.0:

    $ brew install php70-mcrypt
    
    0 讨论(0)
  • 2021-02-12 16:15

    In use XAMPP on my Mac, so I had to install php and then compile mcrypt using pecl, after that I copied mcrypt.so to XAMPP.

    The actual list of available releases is: http://pecl.php.net/package/mcrypt

    The commands was:

    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
    

    The last message of build process of pecl was:

    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
    

    Based on path of build process I copied the compiled mcrypt.so to XAMPP and enable the extension on 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
    

    Check if it works:

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

    The result have to be:

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

    Remember to restart Apache to see it working using browser.

    Maybe it helps someone and I win one thumbs up. Thanks

    0 讨论(0)
  • 2021-02-12 16:20

    Steps

    I solved this by running the following commands

    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
    

    Result

    No more Mcrypt warning !!

    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Nothing to install or update
    Generating autoload files
    Generating optimized class loader
    
    0 讨论(0)
  • 2021-02-12 16:25

    On macOS High Sierra I did this steps:

    1- Search the package:

    brew search mcrypt
    

    Result:

    ==> Searching local taps... 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- Search my php version to know what can I need to install:

    php --version
    

    Result:

    PHP 7.1.7 (cli) (built: Jul 15 2017 18:08:09) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

    3- Install the correct package, for me was 7.1.7 => homebrew/php/php71-mcrypt

    brew install homebrew/php/php71-mcrypt
    

    4- Find the find "mcrypt.so" extension file

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

    Result:

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

    5- Search the php.ini

    php -i | grep 'Configuration File'
    

    Result (if exist):

    Configuration File (php.ini) Path => /etc Loaded Configuration File => /etc/php.ini

    6- Add the next line at the end on /etc/php.ini (see the last step your correct path) the extension mcrypt.so

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

    Finish, you can now execute your command.

    0 讨论(0)
提交回复
热议问题