Skip to main content
1 of 2
Chris O'Toole
  • 4.5k
  • 3
  • 23
  • 15

As others have already said, Magento 2 will work on Mac, Linux and Windows. The issue you are experiencing is caused by the default xdebug max nesting level value of 100.

Magento 2 has an ObjectManager that is used for Dependency Injection which will make a number of recursive calls to build up dependencies, and their nested dependencies, which tends to cause the default limit of 100 to be exceeded.

The error you are seeing will only exist if:

  1. Xdebug is installed
  2. xdebug.max_nesting_level hasn't been increased from the default value

I suggest that you find the php.ini file being used by your server and modify the xdebug.max_nesting_level there.

There are a couple of ways that you could figure out which php.ini file is use, assuming that more than one such file exists on your system.

  1. You can open up the root level index.php file and add phpinfo(); die(); towards the top of the file. Load any page of your Magento instance and look for the row that says "Loaded Configuration File", which will tell you the exact path to the file that needs to be modified.
  2. You could run php --ini from the command line and hope that the loaded configuration file is the same as the one used by your web server.

Open up the php.ini file with your favorite editor, note that you might need to use sudo to edit the file. sudo vim /path/to/your/php.ini

Look for a line that starts with xdebug.max_nesting_level, it might already exist and be explicitly set to the default value. If you find it, update it to a value like 200.

If you don't find such a line, you'll need to add it yourself: xdebug.max_nesting_level = 200

Save your changes to the file and restart your webserver. That should fix the error message.

Chris O'Toole
  • 4.5k
  • 3
  • 23
  • 15