Skip to content

Understanding PHP post_max_size

The post_max_size directive in PHP sets the maximum size for POST data that PHP will accept. This includes all form data submitted via the POST method. The default value for post_max_size is typically 8MB, but you can adjust it based on your application’s needs.

Increasing post_max_size is essential when your application needs to handle large form submissions. This is common in:

  • File uploads
  • Large data forms
  • Multimedia submissions

To configure post_max_size, you need to edit the php.ini file. Here’s how you can do it:

  1. Locate php.ini: This file is usually found in your PHP installation directory. If you’re unsure of its location, you can create a PHP file with the phpinfo() function to find the path.
  2. Edit php.ini: Open the file in a text editor.
  3. Set post_max_size: Find the line that contains post_max_size and update its value. For example:
post_max_size = 64M

This sets the limit to 64MB.

  1. Restart the Web Server: After making changes, restart your web server to apply the new settings.

If you encounter issues with POST data being truncated or not accepted, ensure that:

  1. The post_max_size value in php.ini is adequately set.
  2. The upload_max_filesize directive is less than or equal to post_max_size.
  3. The web server config does not have its own limits.

Interaction with Other WordPress and PHP Settings

Section titled “Interaction with Other WordPress and PHP Settings”

WP_MEMORY_LIMIT and WP_MAX_MEMORY_LIMIT are constants in WordPress that define the maximum amount of memory WordPress can use.

  1. WP_MEMORY_LIMIT: This is the default memory limit for WordPress. It affects both front-end and back-end operations.

  2. WP_MAX_MEMORY_LIMIT: This is the memory limit for administrative tasks. It typically has a higher value.

These settings do not directly affect post_max_size, but they ensure that WordPress has enough memory to handle large POST requests.

max_execution_time sets the maximum time in seconds that a PHP script is allowed to run before being terminated by the parser. The default is usually 30 seconds.

While max_execution_time does not directly interact with post_max_size, it plays a crucial role in handling large uploads or data submissions. If the execution time is too low, large POST requests might fail.

  • post_max_size: Controls the maximum size of POST data.
  • WP_MEMORY_LIMIT and WP_MAX_MEMORY_LIMIT: Ensure WordPress has sufficient memory to process POST data.
  • max_execution_time: Ensures scripts have enough time to process large POST requests.

By understanding and configuring these directives, you can optimize your WordPress site to handle larger data submissions effectively.

The Site health screen shows the setting under Details, as Max post size in the Server panel. When it is below 32 MB, the Reliability area shows the warning Form posts are limited to 8 MB (with your value): this also caps uploads. A value of -1 (no limit) never counts as too low.