[[install-requirements]]

=== Concept: Server Requirements

[role="summary"]
Overview of server requirements for installing and running the core software.

(((Installation requirements,overview)))
(((Installation requirements,disk space)))
(((Installation requirements,web server)))
(((Installation requirements,database)))
(((Installation requirements,PHP programming language)))
(((Installing,core software)))
(((Core software,installation requirements)))
(((Disk space,installation requirements)))
(((Web server,installation requirements)))
(((Apache web server,version requirements)))
(((Hiawatha web server,version requirements)))
(((Nginx web server,version requirements)))
(((Microsoft IIS web server,version requirements)))
(((Database,installation requirements)))
(((MySQL database,version requirements)))
(((PostgreSQL database,version requirements)))
(((SQLight database,version requirements)))
(((PHP programming language,version requirements)))

// ==== Prerequisite knowledge

==== What are the requirements for running the core software?

===== Disk space

The total amount of disk space needed for your site is not a fixed amount, as it
depends on your site. The base files for the core software take up about 100 MB
on the web server. You will need more space if you install additional modules or
themes, and you'll also need space for media, backups, and other files generated
by and uploaded to your site. The database also uses disk space, although that
is typically not in the same area (and in some cases, not even on the same
server) as that used by the site files.

===== PHP

PHP 7.2 or higher. PHP must be set up with a minimum memory size of 64MB; if you
are running multiple modules on your site or using memory-intensive PHP-based
command-line tools (such as Composer), considerably more memory than that may be
needed.

Certain PHP extensions are also required; the exact list of required PHP
extensions depends on how you install the core software and which modules you
are using on your site. Generally, hosting service providers have installed all
the PHP extensions you will need. If you are self-hosting or running your site
on your local computer, you will get error messages during installation if any
required PHP extensions are missing, and should be able to install them and
continue.

===== Web server

Apache (Recommended)::
  Apache is the most commonly used web server. The core software will work on
  Apache 2.x hosted on UNIX/Linux, OS X, or Windows that have the Apache
  mod_rewrite module installed and enabled. The Apache VirtualHost configuration
  must contain the directive _AllowOverride All_ to allow the _.htaccess_ file
  to be used.
PHP Local Server::
  You can temporarily run a local demo site on your computer using just PHP,
  without installing web server software.
Nginx::
  Nginx is a commonly used web server that focuses on high concurrency,
  performance and low memory usage. The core software will work on Nginx 1.1 or
  greater hosted on UNIX/Linux, OS X, or Windows. The ngx_http_rewrite_module
  must be installed and enabled.
Hiawatha::
  Hiawatha is a web server with a strong focus on security. It also aims at
  being easy to use and lightweight. Research performed by independent
  researchers proves that Hiawatha offers a performance comparable to other web
  servers under normal conditions, but much better while under attack. URL
  Toolkit must be installed and configured to rewrite URLs.
Microsoft IIS::
  Microsoft IIS is a web server and set of feature extension modules for use
  with Microsoft Windows. The core software will work with IIS 5, IIS 6, or IIS
  7 if PHP is configured correctly. Because clean URLs are required, you may
  need to use a third party product. For IIS 7, you can use the Microsoft URL
  Rewrite module or a third party solution.

===== Database

Use one of the following databases:

* MySQL - 5.5.3 (MariaDB 5.5.20, Percona 5.5.8) or higher with an
InnoDB-compatible primary storage engine

* PostgreSQL - 9.1.2 or higher

* SQLite - 3.4.2 or higher. Temporary local demo sites use SQLite, which is
distributed as part of PHP and doesn't require installing separate database
software.

//==== Related topics

==== Additional resources

* https://www.drupal.org/docs/8/system-requirements[_Drupal.org_ community documentation page "System requirements"]
* https://secure.php.net/manual/en/configuration.php[PHP Runtime Configuration (PHP memory limit and other settings)]


*Attributions*

Adapted by https://www.drupal.org/u/KarlKedrovsky[Karl Kedrovsky],
https://www.drupal.org/u/bemery987[Brian Emery], and
https://www.drupal.org/u/jhodgdon[Jennifer Hodgdon] from
https://www.drupal.org/docs/8/system-requirements["System requirements"],
copyright 2000-2017 by the individual contributors to the
https://www.drupal.org/documentation[Drupal Community Documentation].
