Server Environment

WordPress will run in a minimum server environment. However, WordPress doesn’t run optimally on the minimum system requirements. This section will cover the recommended server environment for WordPress to run more effectively.

WordPress recommends using one of these servers:

  • ApacheApache Apache is the most widely used web server software. Developed and maintained by Apache Software Foundation. Apache is an Open Source software available for free. 2.4 or higher
  • NGINXNGINX NGINX is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, NGINX can also function as a proxy server for email (IMAP, POP3, and SMTP) and a reverse proxy and load balancer for HTTP, TCP, and UDP servers. https://www.nginx.com/. 1.14 or higher

Top ↑

PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. http://php.net/manual/en/intro-whatis.php. PHP

PHP Version PHP Version

PHP 7.4 or greater is highly encouraged but WordPress will run on older versions. Please note, however, that versions of PHP lower than 7.2 have reached end-of-life status (EOL) and are no longer receiving security updates. For this reason, PHP versions lower than 7.2 are not recommended.

Top ↑

PHP Extensions PHP Extensions

WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. makes use of PHP extensions. If the preferred extension is missing WordPress will either have to do more work to do the task the module helps with or, in the worst case, will remove functionality. Therefore the PHP extensions listed below are recommended.

  • curl – Performs remote request operations.
  • dom – Used to validate Text WidgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. content and to automatically configuring IIS7+.
  • exif – Works with metadata stored in images.
  • fileinfo – Used to detect mimetype of file uploads.
  • hash – Used for hashing, including passwords and update packages.
  • jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. – Used for communications with other servers.
  • mbstring – Used to properly handle UTF8 text.
  • mysqli – Connects to MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. for database interactions.
  • libsodium – Validates Signatures and provides securely random bytes.
  • openssl – Permits SSLSSL Secure Socket Layer - Encryption from the server to the browser and back. Prevents prying eyes from seeing what you are sending between your browser and the server.-based connections to other hosts.
  • pcre – Increases performance of pattern matching in code searches.
  • imagick – Provides better image quality for media uploads. See WP_Image_Editor is incoming! for details. Smarter image resizing (for smaller images) and PDF thumbnail support, when Ghost Script is also available.
  • xml – Used for XML parsing, such as from a third-party site.
  • zip – Used for decompressing Plugins, Themes, and WordPress update packages.

For the sake of completeness, below is a list of the remaining PHP modules WordPress may use in certain situations or if other modules are unavailable. These are fallbacks or optional and not necessarily needed in an optimal environment, but installing them won’t hurt.

  • filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. – Used for securely filtering user input.
  • gd – If Imagick isn’t installed, the GD Graphics Library is used as a functionally limited fallback for image manipulation.
  • iconv – Used to convert between character sets.
  • mcrypt – Generates random bytes when libsodium and /dev/urandom aren’t available.
  • simplexml – Used for XML parsing.
  • xmlreader – Used for XML parsing.
  • zlib – Gzip compression and decompression.

These extensions are used for file changes, such as updates and pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party/theme installation, when files aren’t writeable on the server.

  • ssh2
  • ftp
  • sockets (For when the ftp extension is unavailable)

The priority of the transports are Direct file IO, SSH2, FTPFTP FTP is an acronym for File Transfer Protocol which is a way of moving computer files from one computer to another via the Internet. You can use software, known as a FTP client, to upload files to a server for a WordPress website. https://codex.wordpress.org/FTP_Clients. PHP Extension, FTP implemented with Sockets, and FTP implemented through PHP alone.

Top ↑

System Packages System Packages

  • ImageMagick – Required by Imagick extension
  • Ghost Script – Enables Imagick/ImageMagick to generate PDF thumbnails for the media library. See Enhanced PDF Support in WordPress 4.7 for details.

Top ↑

Database Database

WordPress stores content, configuration, and other information inside of a database. The database for a WordPress website is where all of the WordPress website’s user-defined data is stored. WordPress is primarily designed to use a MySQL or MySQL-related database server; WordPress officially only supports MySQL or MariaDB, a drop-in replacement for MySQL.

Top ↑

MySQL MySQL

MySQL is a widely used relational database server. MySQL comes in both open-source and commercial distributions. Either distribution should work with MySQL. The commercial distribution has additional features not found in the open-source distribution; however, WordPress does not require or use the additional features. It is designed to run on either the open-source or the commercial distribution.

Top ↑

MariaDB MariaDB

MariaDB is a drop-in replacement for MySQL supported by WordPress. It’s a fork of the open-source distribution of MySQL. MariaDB was originally created to maintain a more open-source version of MySQL, but it has grown into its own relational database server alternative to MySQL with features and changes not found in MySQL. Despite its differences, MariaDB is still a fully compatible replacement for MySQL and can generally seamlessly replace MySQL.

Top ↑

Percona Percona

Percona server is a drop-in replacement for MySQL, focused on performance. Although it’s a drop-in replacement for MySQL, WordPress does not officially support Percona.

Top ↑

WordPress recommends the following versions for your Database:

  • MySQL 5.6 or greater
  • MariaDB 10.1 or greater
Note: If you’re interested in improving this handbook, leave a message in the #hosting-community channel of the official WordPress Slack.

Last updated: