Note: if you meet these requirements but still have problems with your site, be sure to read through the Webhosting Troubleshooting FAQ.

To install and run Drupal, you need the following components:

  1. a web server
  2. a database server
  3. the PHP programming language runtime
  4. free disk space (this varies based on Drupal version)
  5. a Mail Transfer Agent (MTA) so PHP can send emails

See the phpinfo() page on Drupal.org to learn how to use phpinfo to get the details of your system. For example, phpinfo will tell you if you have a database already installed and what versions of PHP, MySQL, etc. your system is running. Phpinfo will also tell you what PHP variables are set as well as many other helpful things.

Drupal can run on a multitude of operating systems, web servers and databases. Not all the operating systems (OSes) support the same database and web server options. Here is a quick reference to which OSes support which servers. If an application or a version of an application does not appear in the list below then it is probably not supported by Drupal.

Apple MacOS:

FreeBSD:

GNU/Linux:

Microsoft Windows Platforms:

It is recommended to use:

Drupal version specific requirements:

Drupal 5.x

Drupal 6.x

Drupal 7.x

Disk space

If you install many contributed modules and contributed themes, the actual disk space for your installation could easily be 40 MB or more (exclusive of database content, media, backups and other files).

Web servers

Drupal has been deployed successfully on both Apache and IIS.

Apache (Recommended)

Microsoft IIS

Drupal is being developed to be web server independent, but we have limited or no reports of successful use on web servers not listed here.

Database server

Recommended: MySQL (or an equivalent such as MariaDB)

There are several drop-in replacements for MySQL. Drupal has been extensively tested with MariaDB, and version 5.1.44 (or greater) is recommended. It is also likely that other drop-in replacements will work well with Drupal, but they have not specifically undergone testing.

NOTE: Drupal makes use of some features not available on some inexpensive hosting plans so please check that your host allows database accounts with the following rights:
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER.
These rights are sufficient to run Drupal core 6.x.

Some contributed modules, and also Drupal core 5.x (but not Drupal core 6.x), additionally require the following rights:
CREATE TEMPORARY TABLES, LOCK TABLES.

Note: If your system/host is running MySQL 4.1 or newer and you receive the error "Client does not support authentication protocol requested by server", address the problem by following the instructions provided by MySQL AB. There is a minor OS issue with some MySQL 5+ installations primarily on Windows but affecting some versions of Unix/Linux as well.

Note: When using Drupal 5.x or later, particularly with contributed modules, it may be necessary to set the system variable max_allowed_packet to at least 16M. Some inexpensive hosting plans set this value too low (the MySQL default is only 1M). In that case, you may need to choose a better hosting plan. A value of 1M may be sufficient for 5.x.

Note: Drupal supports MyISAM and InnoDB table types. NDB tables (MySQL Cluster) are not supported.

Note that if your web hosting account is set up with a graphic control panel such as Plesk or CPanel, it is very likely that you do not need to worry about installing a driver for MySQL -- it is probably already installed on your server. You might wish to simply create your database and proceed with installing Drupal, and then refer back to Drupal documentation for specific troubleshooting help if you run into problems.

PostgreSQL

Note: Some contributed modules are not as abstracted from MySQL-specific code as everyone would like. If you are familiar with PostgreSQL please file issues with those contributed modules as you find them.

SQLite 3.x - Drupal 7 only

SQLite 3.3.7 or higher.

Note: Some contributed modules are not as abstracted from MySQL-specific code as everyone would like. If you are familiar with SQLite please file issues with those contributed modules as you find them.

Other database servers

Microsoft SQL Server and Oracle are supported by an additional module.

Please see discussions in the Enterprise Group if you are interested in working on database support.

PHP