Bishal Paudel
Bishal Paudel

Reputation: 1946

How can I install mcrypt under PHP7? Laravel needs it

Since Laravel4 requires mcrypt extension, and PHP7 doesn't seem to have mcrypt extension, is there any workaround for this to work?

Upvotes: 44

Views: 61347

Answers (9)

Ryderpro
Ryderpro

Reputation: 1315

Had the same issue - PHP7 missing mcrypt.

This worked for me. When asked, keep local PHP configuration files.

sudo apt-get update
sudo apt-get install mcrypt php7.0-mcrypt
sudo apt-get upgrade

Restart FPM (or Apache or NGINX etc.) after installation.

Upvotes: 85

Behind Methods
Behind Methods

Reputation: 41

Open terminal with Ctrl + Alt + T and run following commands for PHP7.0 on Ubuntu 16.4

sudo apt-get install mcrypt php7.0-mcrypt
sudo service apache2 restart

Upvotes: 4

Sorin
Sorin

Reputation: 757

On ubuntu: According to launchpad.net the package for mcrypt is called php7.0-mcrypt.

sudo apt-get install php7.0-mcrypt to install

Upvotes: 8

user3451822
user3451822

Reputation:

I use, Dotdeb, an extra repository providing up-to-date all kinds of cool toys for your Debian servers like Nginx, PHP, MySQL, Redis etc.

  1. Update your sources.list

    deb http://packages.dotdeb.org {distribution} all 
    deb-src http://packages.dotdeb.org {distribution} all
    
  2. GnuPG keys

    wget https://www.dotdeb.org/dotdeb.gpg
    sudo apt-key add dotdeb.gpg
    
  3. Update apt & build something amazing.

    sudo apt-get update
    

Upvotes: 1

eaglewu
eaglewu

Reputation: 470

PHP7 contains mcrypt extension internally (source-path/ext/mcrypt/). But it depends on Libmcrypt soft.

Step 1.

Download libmcrypt-x.x.tar.gz from http://mcrypt.sourceforge.net/ and build it.

cd libmcrypt-x.x
./configure
make
make install

Step 2.

Rebuild PHP7 from source and add --with-mcrypt option.

./configure ... --with-mcrypt

Other way without rebuilding PHP7

cd php7-source-path/ext/mcrypt/
/php7-path/bin/phpize
./configure --with-php-config=/php7-path/bin/php-config
make && make install
echo "extension=mcrypt.so" >> /php7-path/ext/php.ini

Restart php

Upvotes: 0

Hemantha
Hemantha

Reputation: 353

Even if you enable mcrypt in php.ini, this issue may occur. Try the following steps.

sudo apt-get update
sudo apt-get install mcrypt php7.0-mcrypt

I am working in ubuntu 16.04 and the following commands also helped me.

whereis php  -shows the files with this name
php -v   -shows the php version
which php -shows current php version that is running on the server

Upvotes: 13

carlituxman
carlituxman

Reputation: 1221

I'm on Mac and with laravel valet I've solved with this:

brew install php70-mcrypt

Upvotes: 29

devqin
devqin

Reputation: 21

do like this:

  1. wget http://jp2.php.net/distributions/php-7.0.3.tar.gz
  2. tar zxf php-7.0.3.tar.gz
  3. cd php-7.0.3/ext/mcrypt
  4. /php7-path/bin/phpize (when error such as configure: error: mcrypt.h not found. Please reinstall libmcrypt run apt-get install libmcrypt-dev)
  5. ./configure --with-php-config=/php7-path/bin/php-config
  6. (sudo) make && make install .this will install the mcrypt.so in php-7.0.3/ext/mcrypt/modules
  7. cp to the /usr/lib/php/20151012/ what is the shared extensions dir
  8. create a mcrypt.ini in /etc/php/mods-available/ write as extension=mcrypt.so
  9. create link to this such as sudo ln -s /etc/php/mods-available/mcrypt.ini 20-mcrypt.ini in /etc/php/7.0/fpm/conf.d
  10. create link to this such as sudo ln -s /etc/php/mods-available/mcrypt.ini 20-mcrypt.ini in /etc/php/7.0/cli/conf.d
  11. sudo service nginx restart
  12. sudo service php7.0-fpm restart
  13. yes it is.

Upvotes: 2

fico7489
fico7489

Reputation: 8560

php7 have mcrypt, you can enable it in php.ini and then everything will work fine.

Upvotes: 3

Related Questions