Database Uploads for WordPress with PHP: Difference between revisions

Created page with "...wanna import a big database file for WordPress using phpMyAdmin? Good luck. The default settings PHP settings in php.ini will likely prevent that. Solution?"
 
mNo edit summary
Line 2: Line 2:


Solution?
Solution?
= php.ini Settings for Large phpMyAdmin Database Imports =
Large WordPress database imports through phpMyAdmin may fail when PHP upload limits, post limits, memory limits, or execution timers are too low.
== Common PHP Settings ==
Recommended example for a large import:
<syntaxhighlight lang="ini">
upload_max_filesize = 512M
post_max_size = 600M
memory_limit = 768M
max_execution_time = 600
max_input_time = 600
</syntaxhighlight>
{| class="wikitable"
| ! Setting !! Purpose            |  |                                                                                            |
| -------------------------------- | - | ------------------------------------------------------------------------------------------ |
| <code>upload_max_filesize</code> |  | Maximum uploaded SQL file size.                                                            |
| -                                |  |                                                                                            |
| <code>post_max_size</code>      |  | Maximum total HTTP POST body size. Should be larger than <code>upload_max_filesize</code>. |
| -                                |  |                                                                                            |
| <code>memory_limit</code>        |  | PHP memory ceiling. Should usually be larger than <code>post_max_size</code>.              |
| -                                |  |                                                                                            |
| <code>max_execution_time</code>  |  | Maximum PHP script run time, in seconds.                                                  |
| -                                |  |                                                                                            |
| <code>max_input_time</code>      |  | Maximum time PHP may spend receiving input, including uploads.                            |
| }                                |  |                                                                                            |
== phpMyAdmin-Specific Settings ==
In <code>config.inc.php</code>:
<syntaxhighlight lang="php">
$cfg['ExecTimeLimit'] = 600;
$cfg['MemoryLimit'] = '768M';
$cfg['UploadDir'] = 'upload';
</syntaxhighlight>
<code>$cfg['UploadDir']</code> lets an SQL file be copied to the server first, then selected from phpMyAdmin, avoiding browser upload limits.
== Per-Site Configuration ==
Depending on the PHP handler:
<syntaxhighlight lang="apache">
# Apache module / mod_php only
php_value upload_max_filesize 512M
php_value post_max_size 600M
php_value memory_limit 768M
php_value max_execution_time 600
php_value max_input_time 600
</syntaxhighlight>
For CGI/FastCGI or PHP-FPM, use a per-directory <code>.user.ini</code> instead:
<syntaxhighlight lang="ini">
upload_max_filesize = 512M
post_max_size = 600M
memory_limit = 768M
max_execution_time = 600
max_input_time = 600
</syntaxhighlight>
== Notes ==
* Restart or reload the web server / PHP-FPM after changing global PHP configuration.
* Browser-based phpMyAdmin imports are convenient but not ideal for very large databases.
* For very large SQL files, command-line MySQL import is usually more reliable.
== External References ==
* [https://www.php.net/manual/en/ini.core.php PHP Manual: Core php.ini directives]
* [https://www.php.net/manual/en/features.file-upload.common-pitfalls.php PHP Manual: File upload common pitfalls]
* [https://www.php.net/manual/en/configuration.changes.php PHP Manual: How to change configuration settings]
* [https://www.php.net/manual/en/configuration.file.per-user.php PHP Manual: .user.ini files]
* [https://docs.phpmyadmin.net/en/latest/config.html phpMyAdmin Documentation: Configuration]
* [https://docs.phpmyadmin.net/en/master/faq.html phpMyAdmin FAQ: Cannot upload big dump files]