Magento 2.1.18 is the final 2.1.x release. After June 2019, Magento 2.1.x will no longer receive security patches, quality fixes, or documentation updates.
To maintain your site's performance, security, and PCI compliance, upgrade to the latest version of Magento.

The PHP mcrypt extension is not installed properly

Detail

Errors can include the following:

1
exception 'Exception' with message 'PHP Warning: [PHP](https://glossary.magento.com/php) Startup: Unable to load dynamic [library](https://glossary.magento.com/library) '/usr/lib/php5/20121212/mcrypt.so' - /usr/lib/php5/20121212/mcrypt.so: cannot open shared object file: No such file or directory
1
2
3
4
Installing data fixtures:
/usr/bin/php -f '/Users/username/www/magento/dev/shell/run_data_fixtures.php' -- --bootstrap='MAGE_DIRS[base][path]=/Users/username/www/magento' 2>&1
[ERROR] [exception](https://glossary.magento.com/exception) 'Exception' with message '
Fatal error: Uncaught exception 'Exception' with message 'Module 'Magento_Core' depends on 'mcrypt' PHP [extension](https://glossary.magento.com/extension) that is not loaded.'
1
2
3
4
5
6
======================================================================
   The application has thrown an exception!
======================================================================
 Magento\Framework\Exception
 Command returned non-zero exit code:
`/usr/bin/php5 -f '/var/www/magento2/dev/shell/run_data_fixtures.php' -- --bootstrap='MAGE_DIRS[base][path]=/var/www/magento2' 2>&1`

Description

Particularly on developer systems that include a Linux/Apache/MySQL/PHP (LAMP) “stack” that is separate from the operating system, it’s possible that mcrypt is either not installed at all or it’s installed in the LAMP stack’s path but not the operating system’s path.

As a result, the Magento installer cannot locate the extension and the installation fails.

Suggestion

Determine if the mcrypt extension is loaded in any of the following ways:

  • Set up a phpinfo.php file in the web server’s root directory and examine the output in a web browser.
  • Run the following command:
1
  php -r "phpinfo();" | grep mcrypt
1
If mycrypt is *not* installed, messages similar to the following display:
1
  PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/mcrypt.so' - /usr/lib/php5/20121212/mcrypt.so: cannot open shared object file: No such file or directory in Unknown on line 0

In some cases, you might need to install the Magento software from the command line and specify the full path to the LAMP stack that has mcrypt installed.

Updated