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:
To resolve the error:
-
Locate your
php.ini
using aphpinfo.php
page.(Sometimes you have a different
php.ini
for the PHP command line and the web server. Thephp.ini
you must change displays as Loaded Configuration File) - As a user with
root
privileges, openphp.ini
in a text editor. - Uncomment the following line:
1
always_populate_raw_post_data = -1
- Save your changes to
php.ini
and exit the text editor. - Wait for all steps in the readiness check to finish.
- Resolve any other issues displayed by the readiness check.
-
As a user with
root
privileges, restart your web server.Examples follow:
- Ubuntu:
service apache2 restart
- CentOS:
service httpd restart
- Ubuntu:
- 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:
- Log in to your Magento server.
-
Locate your
php.ini
file using the following command:1
php --ini
- As a user with
root
privileges, use a text editor to open thephp.ini
specified byLoaded Configuration File
. - Locate
memory_limit
. - Change it to a value of
2GB
for normal use and debugging. - Save your changes to
php.ini
and exit the text editor. -
Restart your web server.
Examples follow:
- CentOS:
service httpd restart
- Ubuntu:
service apache2 restart
- nginx (both CentOS and Ubuntu):
service nginx restart
- CentOS:
- Try the installation again.
max-input-vars error due to large forms
Configurations with a high number of storeviews, products, attributes, or options can generate forms that exceed the preset PHP limit.
If the number of values sent surpasses the max-input-vars
limit set within php.ini
(default is 1000), the remaining data is not transferred and those database values do not get updated.
When this occurs, a warning appears in the PHP log:
1
PHP message: PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini.
There is no ‘proper’ value for max-input-vars
; it depends on the size and complexity of your configuration. Modify the value in the php.ini
file as needed. See Required PHP settings.
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:
1
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:
1
2
3
4
5
<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.