Last updated June 18, 2015. Created on February 2, 2003.
Edited by catch, jcnventura, David_Rothstein, klausi. Log in to edit this page.

Note: this page should not be edited without first discussing the changes in a Drupal Core issue as the requirements for each version of Drupal are decided upon by the Drupal Core developers.

To install and run Drupal your web server must meet certain minimum requirements. Most web hosting companies meet these requirements. However, a few stand out by also actively supporting the Drupal community. If you need hosting, consider selecting one of these web hosts.

Disclaimer

Note that the minimum requirements of Drupal core can be subject to change, given an important enough reason. Where such a change is likely to have broad impact on Drupal's user base, every effort will be made to communicate these decisions ahead of time.

Disk space

A minimum installation requires 15 Megabytes. 60 MB is needed for a website with many contributed modules and themes installed. Keep in mind you need much more for the database, files uploaded by the users, media, backups and other files.

Web server

Apache, Nginx, or Microsoft IIS
More details about web server requirements.

Database

  • Drupal 6: MySQL 4.1 or higher, PostgreSQL 7.1,
  • Drupal 7: MySQL 5.0.15 or higher with PDO, PostgreSQL 8.3 or higher with PDO, SQLite 3.3.7 or higher
  • Drupal 8: MySQL 5.5.3/MariaDB/Percona/equivalent or higher with PDO and an InnoDB-compatible primary storage engine, PostgreSQL 8.3 or higher with PDO, SQLite 3.3.7 or higher

Microsoft SQL Server and Oracle are supported by additional modules.
More details about database requirements.

PHP

  • Drupal 6: PHP 5.x only (5.2.5 or higher recommended). Warning: support for PHP 4.x has been dropped. Drupal core should work with PHP 5.3.x, but PHP 5.3.x and higher may produce errors or unexpected behavior especially for contributed modules and themes.
  • Drupal 7: PHP 5.2.5 or higher (5.4 or higher recommended).
  • Drupal 8: PHP 5.5 or higher

More details about PHP requirements, including PHP memory.

See also the Site Performance section of the Administration Guide and the webhosting troubleshooting FAQ.

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.

Comments

hartkemd’s picture

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

redben’s picture

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

bfroehle’s picture

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

Coornail’s picture

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

Powerclam’s picture

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.

JohnnyBKK’s picture

Perhaps simply note that nothing needs to be changed on Debian and Ubuntu.

This was true for everything wrt PHP.INI except error_reporting, which defaulted to E_ALL & ~E_DEPRECATED.

However it seems this gets overridden by includes/common.inc anyway? or is it bootstrap?

And perhaps note the fact that phpinfo() returns numbers 22527 vs 30711

All that needs to be clarified/simplified, spend a lot of time googling to verify stuff that's already OK.

rpjanaka’s picture

Installed the 'commerce_kickstart-7.x-2.9' with below mentioned env
httpd-2.2.25-win32-x86-no_ssl
php-5.2.17-Win32-VC6-x86
mysql-installer-community-5.6.12.0

PHP.INI
-------
So I had to add the following extensions
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll

Also I had to change the 'max_execution_time' parameter in the php.ini. The default value was 30s, but for me 500s was not enough. So I changed it to 1000, and then it was OK.

And do not forget to set the php, in the PATH env variable.

httpd.conf
----------
Changed 'AllowOverride' to All (in all the places 'AllowOverride All')

Janaka

jnettik’s picture

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.

CPJS’s picture

I remember that there was a php file that would analyze your server's installed modules and software versions to tell if it is compatible with drupal 7. I'm unable to find this file. Does anyone know where is that file located, or i downloaded it from another site?

fabius’s picture

I remember that there was a php file that would analyze your server's installed modules and software versions to tell if it is compatible with drupal 7

I think this is a good idea. Every few years I have to set up a new IDE but things change (including my memory) and I am very unfamiliar with server settings. Perhaps this page could also make a reference to the essential apache settings (I have seen them somewhere on this domain). For example, most LAMPs come with the doc-root set as /var/www but I may want to change this for various reasons or to line up with my hosted server (/home/public-html). Many new users will have little idea on how to edit apache settings (a danger area).

fabius

fabius

Gemini Lights’s picture

Create a new file named phpinfo.php and place it in the root of your Drupal installation.

Edit it and place the following in your phpinfo.php file:

<?php

// Show all information, defaults to INFO_ALL
phpinfo();

?>

Open up the URL for the phpinfo.php and you can read the details of your server.

millionleaves’s picture

You should be able to get this info by clicking the PHP version in the Drupal Status report.

I provide Drupal, Drupal Commerce and CiviCRM development services for customers in New Zealand and beyond

shark’s picture

FYI, there are a known issues with PHP 5.4 and the Views module and the Panels module. The first is warnings from Views due to PHP's E_ALL including E_STRICT as of 5.4, and the second is empty output in Panels.

There may be other issues with PHP 5.4 and Drupal; search the issue queue first or simply be aware of this when developing or upgrading.

drupal@jayanta.org’s picture

I'm using EasyPHP latest version , where PHP version - 5.4.6 . But with in \php\ext directory , 'php_pdo.dll' file is not present & as a result corresponding 'php.ini' file also not containing the 'extension=php_pdo.dll' . So right now what should i do ?? ( To add php_pdo.dll by downloading or check for other version and include it within 'php.ini' file . plz , anyone has the 'php_pdo.dll' file of PHP version 5.4.6 , share the link . Thanks .

Jayanta Sarkar

ucef23’s picture

Drupal wont work if you running PHP older than 5.3.10, Redhat runs PHP 5.3.3 the 02/22/2013 built. There is a way to update PHP is to install and enable a 3rd party repo like Remi, but the think is a lot of corporations use Redhat so they don't have to deal with updates and configurations etc... i was sys admin in a Bank where i faced that problem with Zend Framework and i had to upgrade PHP but i couldn't cause their info security department didn't allow 3rd party Repos like Remi.
Bottom line... do you have to stick with a distro like Ubuntu or it will be a solution in the near future to run Drupal 8 in environment running a lower PHP version than 5.3.10?

Youssef Lamani,

Youssef Lamani,

ucef23’s picture

good link if you want to wget/enable Remi and upgrade PHP on you Centos or Redhat server:

http://kb.parallels.com/en/115875

Youssef Lamani,

Youssef Lamani,

lpalgarvio’s picture

Debian IMO is the best alternative to RHEL / CentOS.

Luís Pedro Algarvio
Drupal Linux DevOps
lp.algarvio.org

F.Abdou’s picture

I am using a debian 5.0.10 server that I upgrade whenever necessary and each time drupal works perfectly :-)

Php mysql developper.

bailey86’s picture

I would advise to avoid using libapache2-mod-php5filter as it has a bug currently http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=709023

I would use libapache2-mod-php5 instead.

Greg Boggs’s picture

It's important to note that the Requirements page is missing a key requirement. GD will not do anything if you have not also compiled PHP with JPEG support.

So, it's possible to follow this requirements page exactly, and Drupal will show the GD requirement as met in the status report, but image styles will not generate for JPEG files.

thinkyhead’s picture

I had some thoughts about this very question... https://www.drupal.org/node/2336585

• scott lahteine / www.thinkyhead.com

Stephen Ollman’s picture

I'm seeing a lot of confusing comments about enabling via a local php.ini file.

Some say

extension=php_pdo_mysql.dll

others

extension=pdo_mysql.so

which is it???

OPC IT eBusiness

wla_g’s picture

.dll ist used in Windows based installations
.so is found in Unix based installations

kala4ek’s picture

Hi everybody, whats about php 5.3 in Drupal 7? As I can see, the PHP 5.3 series will receive only security fixes for the current(2014) year.

Xano’s picture

These are minimum requirements. You can still run Drupal on newer PHP versions and you are encouraged to do so to keep your site secure.

nevets’s picture

Currently PHP requirements tend to read something like

Drupal 7: PHP 5.2.5 or higher (5.3 recommended).

The "or higher" though is misleading and I wonder if it wouldn't be better to have an explicate cut off as each new release of PHP tends to have one or more elements that break older scripts.

deanflory’s picture

I'm reprovisioning a server and am finding it a very difficult decision on whether to stay with PHP 5.3 for D7 or update to the latest available.

I've seen far too many issues for contributed modules that have issues with PHP 5.4 and I don't think it's a good idea for this page to let that notion go unsaid. Yes, Drupal 7 core may work on PHP 5.4 but there are lots of modules that simply won't work unless they're updated (and it's becoming more and more likely they won't).

I see this as a pretty significant issue as it puts a hard limit on the lifespan of a Drupal site.

Xano’s picture

If a contributed project does not work with newer PHP versions, then that's a problem in that project. I would personally even go so far as to say that if a module does not work on PHP 5.4 or higher, it is a bug, as using the module would require you to use unmaintained and potentially unsafe versions of PHP.

deanflory’s picture

Thanks Xano, what I was heading towards anyway.

andribas’s picture

At this time php 5.3 is unmaintained and don't get security fixes http://php.net/releases/5_3_29.php
Drupal Core version 7.34 itself don't pass tests on php 5.4(5)
here is test fail for filter module filter_xss('<img src=" &#14;  javascript:alert(0)">', array('img'));
it doesn't filter javascript
is this a bug?
related issue https://www.drupal.org/node/1867192

alexus’s picture

I get following:

Database support Disabled
Your web server does not appear to support any common PDO database extensions. Check with your hosting provider to see if they support PDO (PHP Data Objects) and offer any databases that Drupal supports.

even though I have following:

[root@j ~]# pkg info | grep -E 'php5-(mysql|pdo)'
php5-mysql-5.4.34              The mysql shared extension for php
php5-mysqli-5.4.34             The mysqli shared extension for php
php5-pdo-5.4.34                The pdo shared extension for php
[root@j ~]#

please advise.

Xano’s picture

PHP through Apache and the command-line usually use different configuration. On some systems, it can happen two completely different PHP binaries (with their own extensions) are used by Apache and the CLI. You have to perform your test in a PHP file that is served by Apache to be sure.

ElGranPelado’s picture

My doubts about drupal requirements are:
- Can run Drupal 7 on a Oracle WebLogic Server? How would the integration be?
- Can i use the Oracle driver for this porpuse?

chegor’s picture

Drupal 8's minimum PHP version increased to 5.5.9

https://groups.drupal.org/node/473473
https://www.drupal.org/node/2508231