PHP settings errors

always_populate_raw_post_data error

If you’re upgrading the Magento 2 software, the following error can display during the readiness check:

If all readiness checks pass, click Next and continue with the next step

To resolve the error:

  1. Locate your php.ini using a phpinfo.php page.

    (Sometimes you have a different php.ini for the PHP command line and the web server. The php.ini you must change displays as Loaded Configuration File)

  2. As a user with root privileges, open php.ini in a text editor.
  3. Uncomment the following line:

    always_populate_raw_post_data = -1
    
  4. Save your changes to php.ini and exit the text editor.
  5. Wait for all steps in the readiness check to finish.
  6. Resolve any other issues displayed by the readiness check.
  7. As a user with root privileges, restart your web server.

    Examples follow:

    • Ubuntu: service apache2 restart
    • CentOS: service httpd restart
  8. On the readiness check page, click Try Again.

PHP memory limit error

The readiness checks makes sure you have at least 1GB of memory set aside for PHP processes. This setting should be sufficient for most installations, including installing optional sample data. However, we recommend at least 2GB for debugging.

To increase your PHP memory limit:

  1. Log in to your Magento server.
  2. Locate your php.ini file using the following command:

    php --ini
    
  3. As a user with root privileges, use a text editor to open the php.ini specified by Loaded Configuration File.
  4. Locate memory_limit.
  5. Change it to a value of 1GB for normal use or at least 2GB for debugging.
  6. Save your changes to php.ini and exit the text editor.
  7. Restart your web server.

    Examples follow:

    • CentOS: service httpd restart
    • Ubuntu: service apache2 restart
    • nginx (both CentOS and Ubuntu): service nginx restart
  8. Try the installation again.

xdebug maximum function nesting level error

See During installation, xdebug maximum function nesting level error.

Errors display when you access a PHTML template

Error text is typically:

Parse error: syntax error, unexpected 'data' (T_STRING)

Solution: Set asp_tags = off in php.ini

Multiple templates have syntax for support abstract level on templates (use different templates engines like Twig) wrapped in <% %> tags, like this template for displaying a product image:

 
<?php
<img
    class="product-image"
    src="<%- data.url %>"
    data-position="<%- data.position %>"
    alt="<%- data.label %>" />
?>

More information about asp_tags.

Edit php.ini and set asp_tags = off. For more information, see Required PHP settings.