System requirements

Last modified: October 27, 2009 - 01:28

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

Resources

Drupal 7 installation has been tested with several operating systems. It is difficult to recommend an absolute memory or runtime amount. A Drupal installation may have none, few, or many contributed modules which drive an increase in memory requirements.

Servers successfully installed Drupal 7 with no errors when memory was a minimum of 32M to 90M. Runtime was successful when the time parameter was at least 30 to 60 seconds.

MAMP memory changes should be made in the main php.ini file usually located in: /Applications/MAMP/conf/php5/php.in

A minimum base installation requires at least 3MB of disk space but you should assume that your actual disk space will be somewhat higher. For example, 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 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.

PHP

Recommended: PHP 5.2.x
Required: PHP version 4.3.5 or higher

  • PHP 5.3 is only supported by Drupal 6.14 and above.
  • PHP 5.2 or higher will be a requirement for Drupal 7.
  • PHP memory requirements can vary significantly depending on your use of modules. While 16 MB may be sufficient for a default Drupal 6 installation and 30 MB may be sufficient for a default Drupal 7 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.)
  • 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.
  • 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 enabled by default. ImageMagick is also supported for basic image manipulations in Drupal core but there is much less support from contributed modules.
  • PHP needs the following configuration directives for Drupal to work (only directives that differ from the default php.ini-dist / php.ini-recommended):
    • register_globals: off; this is the default value, but some hosts have it enabled
    • session.save_handler: user
    • error_reporting set to E_ALL & ~E_NOTICE. Work is ongoing to change this to E_ALL for Drupal 6 and Drupal 7.
    • safe_mode: off. Safe mode may interfere with file and image uploads.
    • Php Data Objects (PDO) must be activated for Drupal 7 to install and run correctly. Look in your php.ini. Uncomment (remove the leading semicolin) at line extension=php_pdo.dll, extension=php_pdo_mysql.dll. If these lines are not there, you will need to add them. You can also use pecl install pdo to install pdo.
    • In addition, we recommend the following setting: session.cache_limiter: nocache
  • 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
  • See the PHP manual for how to change configuration settings for other interfaces to PHP.
  • 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.

Database server

Recommended: MySQL 4.1 or MySQL 5.0

  • 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 or higher.
  • 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 7.4 or higher

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

Currently Microsoft SQL Server and Oracle are not supported, but various efforts are underway to supply schema. Please see discussions in the Enterprise Group if you are interested in working on this.

Need suggested baselines for Server Resource Requirements

Drupee - January 13, 2009 - 02:55

It would help to know baseline requirements for Drupal and just the Core Modules:

- Simultaneous MySQL Connections
- Simultaneous PHP Connections
- CPU Thresholds

The following discussions state:

"Drupal regularly makes more than 100 queries per page load"
(Does 1 query = 1 connection?)

http://drupal.org/node/190070

"Is it reasonable to expect 100s of simultaneous connections"

http://drupal.org/node/312868

Maybe these should be addressed under a separate book page, titled "Capacity Planning".

PHP Configuration Directives

ozcan - February 21, 2009 - 19:46

Correct me if I am wrong, but "session.save_handler: user" seems not a crucial requirement to be configured in the php.ini file.

Since this directive can be changed from anywhere (PHP_INI_ALL) as is listed here: http://www.php.net/manual/en/ini.list.php
and since this is set to "user" in the PHP Settings section of the "settings.php" file in the default directory, nobody needs to set it in the php.ini file.

This info should especially be valuable for those who do not have access to the php.ini file, i.e. for those who will run Drupal on a shared server.

Hope this helps...

"user" setting generates errors

bzunnssukj - June 18, 2009 - 22:49

Even more than this setting being non-crucial, specifying "session.save_handler = user" can result in errors. On a Windows platform, it can cause a PHP error, e.g., "Failed to initialize storage module: user (path: C:\\DOCUME~1\\Owner\\LOCALS~1\\Temp\\php\\session)".

Also, most Web hosting companies appear to specify "session.save_handler = files", but Drupal works fine on their servers.

Important system requirements in php.ini

asb - April 6, 2009 - 14:54

There are crucial system requirements in php.ini, also: in some distributions, "session.auto_start" is set to "1" which results in loads of errors during install of Drupal. This option has to be changed to "0" since Drupal initiates sesions by itself.

Greetings, -asb

PHP tokenizer extension loaded is required by Drupal 7

dropcube - April 25, 2009 - 15:14

The registry uses Tokenizer functions, which requires the tokenizer extension enabled.

See how to fix it: #357970: Undefined function token_get_all

FreeBSD note

hartkemd - May 4, 2009 - 14:50

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

mariuz - May 15, 2009 - 14:55

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+

It might be a more logical

Neutrino Sunset - July 12, 2009 - 03:51

It might be a more logical layout to describe the DB dependency before the PHP one, since it makes sense to install them in that order.

In the PHP dependency notes it might be worth pointing out that if you would like your Drupal site to be able to use an SSL SMTP mail server (Gmail for instance) you will need SSL support enabled in PHP. Since in Windows this is a module you can chose during the installation of PHP it saves time to know this in advance.

The GD Library in PHP was removed in 4.3.2 and replaced by GD2.

Full HOWTO for WinXP Apache MySql here:

http://drupal.org/node/516734

OS: Windows 2008 Server PHP

Vc Developer - August 6, 2009 - 05:47

OS: Windows 2008 Server
PHP 5.2.10
Drupal 6.x

Regarding the session.save_handler. The PHP installed with a value of "files" and the save_path of "C:\Windows\Temp". Is this a problem with drupal, because you say to use "user"? if I have to use "user" then what should the save_path be set to?

Coding is like a box of chocolates!...

SQLite?

frank0987 - September 5, 2009 - 16:41

On my machine, Drupal has an "SQLite" option in the installer.

- Regards,
Francis Dinh

Required: PHP version 4.3.5

hansrossel - October 7, 2009 - 07:18

Required: PHP version 4.3.5 or higher

It should be noted that Drupal 6 core will probably work on php 4.3.5, but that several important contributed modules like date and filefield require php 5.2, and that there are also quite a bit of other contributed modules that have issues on php 4.

 
 

Drupal is a registered trademark of Dries Buytaert.