Community Documentation

System requirements

Last updated January 27, 2012. Created by gpk on February 2, 2003.
Edited by skottler, jredding, David_Rothstein, pwolanin. Log in to edit this page.

To install and run Drupal your web host must meet certain minimal requirements. Most web hosts meet these requirements. However, a few stand out by also supporting the Drupal community. If you need a host, consider selecting one of our reviewed web hosts.

Drupal's minimum requirements.
(Click the section headers for detailed information):

Disk space
15 Megabytes

Web server
Apache 1.3, Apache 2.x, or Microsoft IIS

Database server
Drupal 5: MySQL 3.23.17 or higher
Drupal 6: MySQL 4.1 or higher, PostgreSQL 7.1,
Drupal 7: MySQL 5.0.15 or higher with PDO, SQLite 3.3.7 or higher
Note: Microsoft SQL Server and Oracle are supported by an additional module
PHP
Drupal 5: 4.4.0 or higher (5.2 recommended)
Drupal 6: 4.4.0 or higher (5.2 recommended)
Drupal 7: 5.2.5 or higher (5.3 recommended)

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

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.

Disk space

A minimum base installation requires at least 15MB of disk space but you should assume that your actual disk space needs will be much larger.

For example, if you install many contributed modules and contributed themes, the actual disk space for your installation could easily be (and likely will be) larger than 60 MB (exclusive of database content, media, backups and other files which should be considered too when planning for your site).

Web server

Drupal has been deployed successfully on both Apache and IIS.

Apache (Recommended)

  • Drupal will work on Apache 1.3 or Apache 2.x hosted on UNIX/Linux, OS X, or Windows. The majority of Drupal development and deployment is done on Apache, so there is more community experience and testing performed on Apache than on other web servers.
  • You can use the Apache 'mod_rewrite' extension to allow for clean URLs.

Microsoft IIS

  • Drupal core will work using IIS 5, IIS 6, or IIS 7 if PHP is configured correctly.
  • To achieve clean URLs you may need to use a third party product. For IIS7 you can use the Microsoft URL Rewrite Module or a third party solution.
  • When using Drupal on IIS 7 with fastcgi you must install Hotfix kb954946, or wait until the hotfix appears in a package update (recommended). KB954946 was included in Windows 2008 Server SP2

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.

The total file size of your Drupal installation will depend on what you add to your site, but Drupal core files alone will take up approximately 2 to 3 MB uncompressed. The exact size depends on the version of Drupal you have installed.

Database server

Recommended: MySQL (or an equivalent such as MariaDB)

  • Drupal 5.x and earlier supports MySQL 3.23.17 or higher. MySQL 4.1 or higher is strongly recommended.
  • Drupal 6 supports MySQL 4.1 or higher.
  • Drupal 7 will only support MySQL 5.0.15 or higher, and requires the PDO database extension for PHP (see What is PDO?).

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.

Notes

  • 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.
  • 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.
  • 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.
  • 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.

  • Drupal 6 supports PostgreSQL 7.1 or higher
  • Drupal 7 will only support PostgreSQL 8.3 or higher
  • PHP 5.2.6 for Windows has a bug in its pgsql extension. You will need to replace it with the php_pgsql.dll from version 5.2.5.

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

Drupal 5 and 6: 4.4.0 or higher (5.2 recommended)
Drupal 7: PHP 5.2.5* or higher (5.3 recommended)

*For Drupal 7, versions of PHP 5.2.4 that include backported security patches also meet the requirements. The PHP version included with Ubuntu 8.04 is the most common example of this.

General PHP configuration notes

  • The PHP extension for connecting to your chosen database must be installed and enabled. Drupal's currently supported database connectors are: mysql (the original MySQL extension), mysqli (an improved connector for newer MySQL installations), and pgsql (for PostgreSQL). Note: PHP 5.x no longer enables the mysql extension by default. Please read the links above for installing and enabling your chosen connector. Additionally, Drupal 6.x does not provide the option to select the mysql connector if mysqli is enabled in your PHP configuration.
  • PHP XML extension (for Blog API, Drupal, and Ping modules). This extension is enabled by default in a standard PHP installation; the Windows version of PHP has built-in support for this extension. Enabling the XML extension also enables PHP DOM. DOM is now a systems requirement.
  • An image library for PHP such as the GD library is needed for image manipulation (resizing user pictures, image and imagecache modules). GD is included with PHP 4.3 and higher and usually enabled by default. ImageMagick is also supported for basic image manipulations in Drupal core but there is much less support from contributed modules.
    If you have administrator rights on a Debian/Ubuntu server, and GD is not already available (see your phpinfo) it can usually be installed by running the following command:
    sudo apt-get install php5-gd
    or on Redhat/Centos:
    sudo yum install php-gd
    See the ImageMagick install instructions for your platform if you want that.
  • PHP memory requirements can vary significantly depending on the modules in use on your site. Drupal 6 core requires PHP's memory_limit to be at least 16MB. Drupal 7 core requires 32MB. Warning messages will be shown if the PHP configuration does not meet these requirements. However, while these values may be sufficient for a default Drupal installation, a production site with a number of commonly used modules enabled (CCK, Views etc.) could require 64 MB or more. Some installations may require much more, especially with media-rich implementations. If you are using a hosting service it is important to verify that your host can provide sufficient memory for the set of modules you are deploying or may deploy in the future. (See the Increase PHP memory limit page in the Troubleshooting FAQ for additional information on modifying the PHP memory limit.)
  • Some of these settings are contained in the default .htaccess file that ships with Drupal, so you shouldn't need to set them explicitly. Note, however, that setting PHP configuration options from .htaccess only works under the following conditions:
    • With Apache (or a compatible web server)
    • If the .htaccess file is actually read, i.e. AllowOverride is not None
    • If PHP is installed as an Apache module
  • In some shared hosting environments, access to these settings is restricted. If you cannot make these changes yourself, please ask your hosting provider to adjust them for you.
  • PHP needs the following configuration directives for Drupal to work (only directives that differ from the default php.ini-dist / php.ini-recommended):
  • See the PHP manual for how to change configuration settings for other interfaces to PHP.
  • If using xdebug, ensure that the xdebug.show_exception_trace value is set to 0, or this could cause Drupal's installer to crash.

Drupal 5 notes

  • Drupal 5.x does not support PHP 5.3.

Drupal 6 notes

  • Although PHP 5.3 is supported by Drupal 6.14 core and higher (see the release notes for 6.14), some contributed modules may not be compatible with PHP 5.3, and some PHP 5.3 configurations still show warnings with Drupal 6.14; work is ongoing to resolve the latter in #360605: PHP 5.3 Compatibility.

Drupal 7 notes

  • The standard PHP extensions (enabled by default) Hash and JSON are required by Drupal 7.
  • Drupal 7 Update manager can install/update modules and themes via SSH if the required libraries have been installed on the server. If you have administrator rights on a Debian/Ubuntu server, and SSH is not already available (see your phpinfo) it can usually be installed by executing:
    apt-get install libssh2-php.
  • Php Data Objects (PDO) must be activated for Drupal 7 to install and run correctly. Look in your php.ini. Uncomment (remove the leading semicolon) at line extension=php_pdo.dll, extension=php_pdo_mysql.dll. In Linux, these would be extension=pdo.so and extension=pdo_mysql.so. Some Linux distributions may have these extensions by default in files found in the conf.d folder. If these lines are not there, you will need to add them. The PECL version of PDO is not compatible with Drupal 7 and cannot be used. More information can be found on the What is PDO page.
  • Drupal 7 may require the time parameter to be at least 30 seconds.

Comments

FreeBSD note

I had an issue while installing Drupal yesterday on my FreeBSD system, and I think others have had this issue too.

It turns out it was an issue with the PCRE (Perl Common Regular Expressions) extension of PHP. I think FreeBSD deals with PHP extensions in a different way than on most systems.

If you're getting warning messages about PCRE not having UTF-8 support, try this:

  • cd into /usr/ports/lang/php5-extensions
  • run make config and deselect PCRE
  • cd into /usr/ports/devel/pcre
  • run make install clean

You might have to make deinstall in the /usr/ports/lang/php5-extensions directory and apachectl restart.

For reference, check out these pages:
http://drupal.org/node/97673 (scroll to bottom)
http://jake.wyrr.org/content/fix-pcre_utf8-errors-in-drupal-sites-hosted...

some notes for Firebird 2.1 and Drupal 7.x

Here are my notes for installing drupal 7.x on ubuntu with firebird 2.1.x and firebird pdo support

http://wiki.firebirdsql.org/wiki/index.php?page=Drupal+7+on+Ubuntu+Jaunty+

xdebug

Perhaps change "ensure that the xdebug.show_exception_trace value is set to 0" to "ensure that the xdebug.show_exception_trace value is set to 0 in php.ini" to be parallel with all the other php.ini settings.

OS X pdo Troubeshooting

If you have issues related to pdo on os x like Warning: PDO::__construct(): [2002]...
Have a look at this post for a possible fix : Document OS X PDO socket installation issues

Safe Mode

In addition to interfering with file and image upload, safe_mode on will also cause warnings when sending users mail.

Do not enable apc.include_once_override

Note that in Drupal 7, apc.include_once_override APC setting cannot be enabled (the php session dies with an error message that says that some Class is already defined).

D7: the filter php extension. Is it REQUIRED?

Hello, i got same issue like this: https://drupal.org/node/810680
If its the FILTER php extension REQUIRED, why is not written higher on the page?
THNX

You could add Nginx as as

You could add Nginx as as supported webserver. It works pretty much out of the box with minor .conf file tweaking -- which is available from nginx group here.

Nginx cannot be a supported

Nginx cannot be a supported web server since there is no info in the INSTALL.txt on how to set up Drupal in Nginx.

On the other hand I'm happy to push for supporting Nginx in core: Add support for Nginx web server =)

Does Drupal support Lighttpd?

Hi,

Does Drupal support Lighttpd?

Yes. lighttpd handling Drupal

Yes. lighttpd handling Drupal pretty well. You can use also rewrites for handling pretty url's. Google for lighttpd mod_rewrite

I use the vps. it's OK

I use the vps for drupal7. it's OK

Just a programmer, Just a developer, Just good good study day day up!

PDO documentation needs updating

I think that PDO documentation needs updating - it currently says:

Look in your php.ini. Uncomment (remove the leading semicolon) at line extension=php_pdo.dll, extension=php_pdo_mysql.dll. In Linux, these would be extension=pdo.so and extension=pdo_mysql.so. Some Linux distributions may have these extensions by default in files found in the conf.d folder. If these lines are not there, you will need to add them.

My Ubuntu (Natty Narwhal version) has no such lines in the php.ini, yet phpinfo() says that PDO drivers for mysql are enabled out of the box.

Thanks for this information.

Thanks for this information. actually i am beginner. i have started it last sunday.

Installing Drupal 8 on Dev Desktop

If you are getting a parse error when installing Drupal 8 on Dev Desktop, make sure it is using PHP 5.3.2 or higher.

Here is the error message you might be seeing:
Parse error: syntax error, unexpected T_CONST in /Users/[username]/Sites/[sitename]/core/install.php on line 19

Here are instructions:

  1. ensure you are using a recent version of Dev Desktop (current version is 7.9.9)
  2. once Dev Desktop is installed and running, from the Dev Desktop Control Panel navigate to Settings > Config and select PHP 5.3.2

ownsourcing.com - Drupal training

PHP Handler

So I haven't seen anything mentioned on here about this, but it keeps creeping up as an issue for me so I thought I'd mention it.

The server's PHP handler needs to be set so that your scripts run as a user allowed to read,write and execute any and all files in your install. For example, whenever your compressed CSS and JS files need to be updated. I'd recommend setting SuPHP as your PHP handler although I think there are other ways of achieving this with CGI. DSO has always given me problems.

I'm not really a SysAd myself, maybe someone on here could better explain or have better recommendations for a setup, but that's just what I have discovered for my sites.

Broken Links in "General PHP Configuration Notes"

Hi -

The following links in the "General PHP Configuration Notes" above appear to be broken:

  1. directives
  2. php.ini-dist
  3. php.ini-recommended

They're located in the following bullet point:

PHP needs the following configuration directives for Drupal to work (only directives that differ from the default php.ini-dist / php.ini-recommended)

Thanks so much for providing such a detailed system requirements document.

nobody click here