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

- 30,841
- 27
- 92
- 100

- 1,896
- 2
- 21
- 28
-
2You've tagged this Laravel 5.1, which is the newest version of Laravel. It does not require mcrypt to work. See http://laravel.com/docs/5.1/installation for reference of what you need. – Joel Hinz Dec 04 '15 at 08:05
-
2You could install it? Usually that's the workaround when you're missing a library – Damien Pirsy Dec 04 '15 at 08:08
-
@JoelHinz I changed the to Laravel 4. – Bishal Paudel Dec 04 '15 at 08:16
-
@DamienPirsy Thanks, I will try installing it manually. – Bishal Paudel Dec 04 '15 at 08:17
-
if you're on centos https://webtatic.com/packages/php70/ – astroanu Dec 04 '15 at 11:26
-
It is best not to use mcrypt, it is abandonware, has not been updated in years and does not support standard PKCS#7 (née PKCS#5) padding, only non-standard null padding that can't even be used with binary data. mcrypt has many outstanding [bugs](https://sourceforge.net/p/mcrypt/bugs/) dating back to 2003. The mcrypt-extension is deprecated will be removed in PHP 7.2. Instead consider using [defuse](https://github.com/defuse/php-encryption) or [RNCryptor](https://github.com/RNCryptor), they provide a complete solution and are being maintained and is correct. – zaph Jun 12 '17 at 14:09
9 Answers
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.

- 7,085
- 3
- 44
- 54

- 1,315
- 10
- 18
-
3
-
2@user985366 thanks ...yes we have to do this `sudo add-apt-repository ppa:ondrej/php` and then `sudo apt-get update sudo apt-get install mcrypt php7.0-mcrypt sudo apt-get upgrade` and then it worked for me – Osama Al-Banna Aug 20 '16 at 14:33
-
@Ryderpro Do we need to install `mcrypt` when we're already getting `php7.0-mcrypt`? Or are they 2 diff things entirely? – enchance Dec 15 '16 at 11:57
I'm on Mac and with laravel valet I've solved with this:
brew install php70-mcrypt

- 1,201
- 12
- 22
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
On ubuntu: According to launchpad.net the package for mcrypt is called php7.0-mcrypt.
sudo apt-get install php7.0-mcrypt
to install

- 767
- 12
- 17
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

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

- 7,931
- 7
- 55
- 89
-
4Can you please elaborate how I install `PHP7 Mcrypt`? I tried to find if `PHP7` has any `Mcrypt` extension, but to no avail. `PHP5` had `Mcrypt` as `php5-mcrypt` which can be enabled and disabled easily with `php5enmod` and `php5dismod` respectively. – Bishal Paudel Dec 04 '15 at 16:06
-
1In /etc/php/7.0/cli/conf.d/20-mcrypt.ini you have to check that the extension is enabled: extension=mcrypt.so and not ;extension=mcrypt.so – user3707264 Sep 29 '16 at 12:33
do like this:
wget http://jp2.php.net/distributions/php-7.0.3.tar.gz
tar zxf php-7.0.3.tar.gz
cd php-7.0.3/ext/mcrypt
/php7-path/bin/phpize
(when error such asconfigure: error: mcrypt.h not found. Please reinstall libmcrypt
runapt-get install libmcrypt-dev
)./configure --with-php-config=/php7-path/bin/php-config
(sudo) make && make install
.this will install the mcrypt.so inphp-7.0.3/ext/mcrypt/modules
- cp to the
/usr/lib/php/20151012/
what is the shared extensions dir - create a mcrypt.ini in
/etc/php/mods-available/
write asextension=mcrypt.so
- 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
- 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
sudo service nginx restart
sudo service php7.0-fpm restart
- yes it is.

- 22,251
- 15
- 81
- 96

- 21
- 6
-
This worked for me when the ppa for installation via apt-get was failing, so thanks! Would be great if you could fix the formatting in your answer though as it's a little hard to follow. – Tom Davies May 11 '16 at 21:49
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.
Update your
sources.list
deb http://packages.dotdeb.org {distribution} all deb-src http://packages.dotdeb.org {distribution} all
GnuPG keys
wget https://www.dotdeb.org/dotdeb.gpg sudo apt-key add dotdeb.gpg
Update apt & build something amazing.
sudo apt-get update
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