Fixing maximum upload and php memory limit issues in WordPress

Typical warning message related to upload and memory limit

While working on your WordPress website, you might sometimes see the following type of warning.

  • warning post content-length of bytes exceeds the limit...
  • The uploaded file exceeds the upload_max_filesize directive in php.ini...
  • exceeds the maximum upload size for this site...
  • Fatal error: Allowed memory size of 12345678 bytes exhausted (tried to allocate 2345678 bytes) in /home/your-username/public_html/wp-includes/plugin.php on line 1000...
  • 413 Error: Request Entity Too Large

=> Those messages are typically related to your website's server settings for maximum upload size or memory limit.

Check your current system settings

First of all, check your current server memory settings.

In the Customizr or Customizr Pro WordPress themes, we have a feature to let you easily check your system's informations. This will be helpful when troubleshooting errors.

  1. For Customizr Pro Theme, you can find it in WordPress admin -> Appearance -> About Customizr Pro
  2. For Customizr Theme, you can find it in WordPress admin -> Appearance ->About Customizr
  3. Scroll down the page and you will see the section - System Informations.

File exceeds the upload_max_filesize

You may have encountered the following error message when you are installing your Customizr Pro Theme.

The uploaded file exceeds the upload_max_filesize directive in php.ini

Please see the following screenshot.

Or the following error when you are uploading an image.

..exceeds the maximum upload size for this site.

Please see the following screenshot.

This happens when your PHP Upload Max Filesize (upload_max_filesize) set in your php.ini file is smaller than the file size of Customizr Pro Theme or the file size of the image that you are trying to upload.

At the time of writing, the file size of Customizr Pro Theme (zip file) is 11.2M.

Look into your System Informations for the value of PHP Upload Max Filesize, you will need to increase it to a higher and healthier value.

Solutions

The following are some solutions available to fix your exceeded upload max filesize issue in WordPress.

Contact your Hosting Company

Yes, this is the most prefer way. Contact your hosting company and show them a screenshot of your error or write to them the error message. Ask them to assist in increasing the following values, until you are able to install your Customizr Theme or upload your image. Your hosting company may have restrictions on these values.
memory_limit
upload_max_size
post_max_size
upload_max_filesize
max_execution_time
max_input_time
Preferably to the following values.
memory_limit = 256M
upload_max_size = 64M
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 300
max_input_time = 1000

Editing php.ini File

The  php.ini file is the default PHP configuration file. Most of the Shared Hosting Company does not allow access to this file. If you are certain that you have access to php.ini file on your server, you may proceed with the following steps.

  1. Access it using your FTP program. (how to do use a FTP software with WordPress ?)
  2. Backup a copy of this file before attempting to edit it.
  3. Open it and find the following values, one at a time (They are located at different lines within the file)
    memory_limit
    upload_max_size
    post_max_size
    upload_max_filesize
    max_execution_time
    max_input_time
    	
  4. Preferably, edit them to the following values.
    memory_limit = 256M
    upload_max_size = 64M
    post_max_size = 64M
    upload_max_filesize = 64M
    max_execution_time = 300
    max_input_time = 1000
    	

Using .htaccess file

In WordPress, there is a .htaccess file. WordPress uses this file to manipulate how Apache (server) serves files from its root directory, and subdirectories. Therefore, this file is very important. Do not edit what's originally written in this file. You can add some directives at the end of the file to increase the PHP Upload Max Filesize.  Learn more about the htaccess file in WordPress here.

  1. Use your favorite FTP program to access your WordPress installation.
  2. Go to the root directory, it's the directory where you can find your wp-config.php file. You should be able to find your .htaccess file.
  3. Download a copy of it onto your computer to save as backup.
  4. Open it and added the following into a newline at the end of the file.
    php_value memory_limit 256
    php_value upload_max_filesize 64M
    php_value post_max_size 64M
    php_value max_execution_time 300
    php_value max_input_time 1000
    	
  5. Save your changes and overwrite the .htaccess file on your server.
  6. Go back to your System Informations and check if your values have changed. If not, you should contact your hosting company for assistance in editing these values in your php.ini file.

Fatal Error: Memory Exhaust

If you are experiencing white screen on your site or at intermittent and in different webpages. Set WP_DEBUG to true in your wp-config.php. If you are seeing something similar to the following error message on screen or in your server error log

Fatal error: Allowed memory size of 12345678 bytes exhausted (tried to allocate 2345678 bytes) in /home/your-username/public_html/wp-includes/plugin.php on line 1000

This means your PHP does not have enough memory to work properly.

Solutions

The following are some solutions available to fix your memory exhaust issue.

Contact your Hosting Company

As mentioned above, this is the preferred way. Show them a screenshot of your error or write to them the error message. Ask them to assist in increasing the PHP memory, until you are able to get your site working properly.

Amending your wp-config.php

You can try adding a memory define to WordPress in it's wp-config.php, but this will not work, if your defined memory exceeds your actual server allocated memory.

  1. Use your ftp program and navigate to your WordPress root directory.
  2. Find your wp-config.php and download a copy to your computer as backup.
  3. Open up wp-config.php using your plain text editor or code editor.
  4. Insert the following code at the end of the file.
    define('WP_MEMORY_LIMIT', '256M');
    	
  5. Save and upload back your wp-config.php to your WordPress installation.
  6. Clear your browser cache and re-load your website.
  7. If you are still experiencing error, you should contact your web hosting company for assistance.

Editing php.ini File

If you have access to the php.ini file. you can try the following.

  1. Using FTP program, navigate to your hosting server and look for the php.ini file.
  2. Download and keep a backup copy.
  3. Open it using your code or plain text editor.
  4. Find the following.
    memory_limit
    	
  5. Change the value to a much higher value. For example.
    memory_limit = 256M
    	
  6. Save and upload back your php.ini to your WordPress installation.
  7. Clear your browser cache and re-load your website.
  8. If you are still experiencing error, you should contact your web hosting company for assistance.

Using .htaccess file

  1. Use your FTP program to access your WordPress installation.
  2. Go to the root directory, it's the directory where you can find your wp-config.php file. You should be able to find your .htaccess file.
  3. Download a copy of it onto your computer to save as backup.
  4. Open it and added the following into a newline at the end of the file.
    php_value memory_limit 256
    	
  5. Save your changes and overwrite the .htaccess file on your server.
  6. Go back to your System Informations and check if your values have changed. If not, you should contact your hosting company for assistance in editing these values in your php.ini file.

That's all for this documentation. Hope it helps!

Further reading

WordPress Codex

External Resources