Officially, the only requirements for WordPress are php 4.3 and MySQL 4.0. In practice, you need a little bit more than that.
This document goes through each of these requirements. If they sound like chinese to you, skip directly to its “how to ask your host” section.
Linux or BSD server with Apache
Windows servers manage permissions differently from Linux or BSD servers. Making files and folders writable by php scripts on a Windows server is a mess that you’ll only achieve with difficulty.
In practice, this means you’ll miss out on features that include:
- Google Sitemaps (SEO)
- File Uploads (images, media…)
- WP-Cache (performance)
Windows is not supported as a result.
At the other end of the spectrum, old or non-GNU systems like SunOS or Solaris do not allow the complete use of some remarkably useful php functions, and are not supported either.
Linux (any flavor) and FreeBSD are the only tried and true systems in practice.
mod_rewrite turned on and working
Apache features a module called mod_rewrite, which allows WordPress to generate fancy urls for your site.
On some hosts, the module is not installed. On others, Apache is configured to not follow symbolic links. Either way, this means fancy urls won’t work.
php 5.0 and MySQL 4.1.1
php 5.0 introduces a couple of fairly useful functions, and the Simple XML library. MySQL 4.1 introduces sub-queries, and 4.1.1 introduces a few extra date-processing functions. As these functionalities are used in many plugins (mine in particular), you’d be ill-advised to stick the “default” php 4.3 and MySQL 4.0 requirements.
If your server is running MySQL 5, make sure that the MySQL strict mode is turned off.
safe_mode turned off
safe_mode is an architecturally incorrect attempt to try to solve shared-server security problems at the php level.
You really don’t want to mess around with a host that turns safe_mode on and disables part or all of php.
32 Megs of php memory limit
By default, the maximum memory a php script can use is 8 Megs. This limit was increased to 16 Megs in php 5.1.
Simply put, WordPress will not even run with only 8 Megs of memory. 16 Megs is the bare minimum if you’re using it as is. When you start activating a bunch of plugins, you may end up needing more.
In practice, 32 Megs of is the minimum php memory limit that you need.
Recommended additional requirements
Maximum file upload size of 8 Megs or more
By default, the maximum size of a file that you can upload through a php script is 2 Megs.
If you ever need to upload a large image, audio or video file, you want to be sure that it doesn’t get discarded by the server due to its size.
The maximum post request size needs to be adjusted accordingly, but you can usually trust your host knows this already.
WordPress available as a one-click install
This is by no means necessary if you know how to create a wp-config.php file, but very desirable.
Errors should be displayed on screen
Code ninjas that deliver support to you can readily identify what’s wrong with a broken site if errors are displayed on screen.
Host should not be Godaddy or Yahoo
Well… You can use either if you want, but FTP timeout problems are simply too numerous on both, so expect no installation/upgrade support from us if you do.
Host should not be 1&1
From the 1&1 Script Language FAQ :
Can the memory usage limit be increased on shared hosting with a php.ini file?
Due to resource limits on our Shared Hosting machines, it is not possible to allocate more than 20M of memory to PHP, although phpinfo() may report a higher number. You will be unable to increase the memory usage limit with a php.ini file.
How to ask your host
Feel very free to send the following as is to your host:
I’m looking into installing WordPress on your server. Can you confirm that it meets the minimum requirements?
For reference, they are:
- Linux or BSD server running Apache
- mod_rewrite turned on and working by default
- php 5.0 and MySQL 4.1.1
- safe_mode turned off
- memory_limit set to 32 Megs or higher
Moreover, in case I ever decide to upload a large file from the WordPress admin interface, can you confirm that upload_max_filesize and post_max_size are both set to 8 Megs or higher?
Lastly, do you by any odds offer WordPress as a one-click install?
If your host does not comply with the requirements, select one from the recommended WordPress hosts.