Server upload limits
The Backup, Sync & Migrate module uploads a .emcp archive to your site in chunks, and the uploader adapts to whatever your host allows. If a chunk is rejected it automatically retries with a smaller one. So you rarely need to change anything. Raising your PHP limits simply lets large backups upload in fewer, faster requests.
The Restore tab shows your current values next to the recommended ones. A green pill means you are already good; an amber pill means raising it would help.
What to aim for
Section titled “What to aim for”| Setting | Recommended | Why it matters |
|---|---|---|
upload_max_filesize | 64 MB or more | The largest single upload the server accepts. |
post_max_size | 64 MB or more | The largest request body; should be at least upload_max_filesize. |
memory_limit | 256 MB or more | Headroom for packaging and restoring. |
max_execution_time | 300 s or more (0 = unlimited) | Time a single restore step may run. |
How to raise them
Section titled “How to raise them”The right place depends on your host. Try these in order; the first that your host honours wins.
1. Hosting control panel (easiest)
Section titled “1. Hosting control panel (easiest)”Most managed hosts (SiteGround, Kinsta, Cloudways, WP Engine, cPanel “MultiPHP INI Editor”, etc.) expose these under a PHP settings / PHP options screen. This is the most reliable option on shared hosting.
2. php.ini
Section titled “2. php.ini”If you can edit php.ini:
upload_max_filesize = 128Mpost_max_size = 128Mmemory_limit = 256Mmax_execution_time = 3003. .htaccess (Apache)
Section titled “3. .htaccess (Apache)”Add to the site’s .htaccess:
php_value upload_max_filesize 128Mphp_value post_max_size 128Mphp_value memory_limit 256Mphp_value max_execution_time 3004. wp-config.php (memory only)
Section titled “4. wp-config.php (memory only)”For memory, you can also add near the top of wp-config.php:
define( 'WP_MEMORY_LIMIT', '256M' );define( 'WP_MAX_MEMORY_LIMIT', '512M' );Invisible per-request caps
Section titled “Invisible per-request caps”Some servers enforce a maximum request size that PHP can’t see, so the Restore panel may show 2 GB while the server actually rejects anything larger than about 77 MB. The most common culprits:
- Apache
mod_fcgid:FcgidMaxRequestLen(often around 64 to 77 MB). - nginx:
client_max_body_size(often 1 MB by default). - Cloudflare: a hard 100 MB upload cap on the free plan.
You don’t need to know these values. The uploader detects a rejection and automatically retries with smaller chunks until it fits. Raising them (in your server config, or your host’s control panel) just makes large uploads faster.
The always-reliable method: FTP drop
Section titled “The always-reliable method: FTP drop”For very large sites, or any host that fights browser uploads, skip the uploader entirely:
- Copy your
.emcpfile intowp-content/emcp-backups/uploads/via FTP/SFTP or your host’s file manager. - It appears in the Available to restore list on the Restore tab with no browser upload at all.
This has no size limit and never touches the request-size caps above.