This page provides basic installation instructions for beginners installing Drupal 7 from Drupal.org on an account at a localhost or webhost where you do not have ssh (command line) access. For more detailed instructions on how to install Drupal 7 in other ways or in other configurations, see the main Installation guide.

Before you start, make sure that your web host meets the minimum 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.

Download Drupal

To download Drupal and copy it to your Web Server:

  1. Using your web browser, navigate to http://drupal.org/project/drupal.
  2. Click the appropriate "tar.gz" or "zip" file link beside the version of Drupal you want to download.
     
    This will allow you to save the file to your computer. The file is a compressed archive, which contains many files and folders. Make note of the name of the file and where you save it on your computer.

Upload the Drupal files to your web hosting account

  1. Log in to your hosted account’s control panel (your hosting company will have provided this address to you).
  2. Navigate to your HTML directory.
     
    If you are hosting multiple sites, be sure to consider how you will organize your folders. When you are done with the upload process, you want to end up with a new folder containing all of the files and folders from the Drupal-7.0.tar.gz archive. This new folder should be on the same level as any other websites that you are hosting.
     
  3. Hopefully your ISP allows you to upload a compressed file and un-archive (‘uncompress’ or ‘unzip’) the file-set on the server.
     
    You may want to explore your upload and uncompress options or refer to your ISP's documentation. Uploading and uncompressing the archive is definitely preferred over decompressing on you PC and uploading the individual files. The archive contains many folders and many files and you definitely do not want to try to upload them piecemeal. It can be done but it is too easy to make a mistake, especially if your ISP only allows you to upload a few files at a time OR if your ISP allows you to upload a folder, but has restrictions on either the number of files or the total size permitted in one transfer.
     
  4. Upload your compressed .tar.gz or .zip file.
  5. Uncompress or Unarchive the file on the server. (This process will vary from one ISP to another.)
     
    Uncompressing the file will create a new folder or directory, which contains all of the files and folders in the archive. The new folder contain the uncompressed copies will have the same name as the archive file but without the “.tar.gz” or “.zip” extension in the name. If you are installing Drupal version 7.0 the name of your file will be “Drupal-7.0.tar.gz” and the name of your folder “Drupal-7.0”.
     
  6. Rename the folder from its current name: “Drupal-X.X” to the name you want to use to refer to your site, such as “myD7site”
     
    As an alternative to uploading and extracting the archive on your webhost, you can extract the files locally (on your computer) and then upload them. Generally, you can double click on the archived (.tar.gz or .zip file) and uncompress it locally. If your computer does not already know how to open this file, you may need to locate a tool to extract compressed files—you can do an Internet search using the name of your Operating System (e.g. Mac OSX, Ubuntu, Red Hat, or Windows) and ‘extract tar.gz’ or 'unzip' and you should find a free utility which would do the job.
     
    Please note: Attempting to upload the contents of the archive one by one or in small groups is best avoided, as the arrangement of these files must be maintained if Drupal is to function properly.
     
    Also, if you are going to upload the uncompressed files manually, you will want to create a new folder to put them in first, as our recommended approach creates the folder for you. Again, the folder for your new site should be created at the same level as your other websites within the HTML directory on your webhost.
     
    Important: (if you are using this alternative approach of uploading uncompressed files, be sure to navigate into your new empty directory before you start to upload the files. If you do not you risk polluting the HTML directory with files that should be in your site directory.

Read more information about downloading and uncompressing Drupal.

Set up a Domain and point it to the directory containing Drupal's files

To set up and configure a domain name which points to this new directory, you will need to refer to your Internet Service Provider (ISP). This process can be accomplished in a variety of ways and the process is specific to the tools provided by your ISP. In general you want to:

  • Register a Domain Name e.g. http://example.com.
  • Configure your hosting account to use this domain name.
  • Point the domain name to your new folder/directory, which contains the uncompressed Drupal files

Note: These steps can take some time. Many ISPs provide an ‘Add Domain’ function, which allows you to simply specify the domain name to be used and the directory which it points to. It can take minutes or hours for this setup to go into effect.

If you are registering a sub-domain, the portion of the name that is before the domain name, perhaps in place of the ‘www’ (e.g. http://internal.example.com), these tend to process almost immediately, but again it depends on your ISP.

Create the configuration file and grant permissions

In order to set up your new site, it is necessary to be able to modify the settings.php file via your browser. By default when you unarchive these files, only the default.settings.php file exists and the permissions are set to Read Only.

You will need to copy the file, rename it to settings.php, and then temporarily change the permissions so that the server can Read and Write to this file when a user makes changes via a web browser.

You then need to move up one level to the /sites directory and change the permission on the /sites/default directory (folder), as this is the place where files created or uploaded via the web interface will be stored.

  1. Copy the file default.settings.php and rename it to settings.php
    1. Use your ISP’s file manager to navigate to the /sites/default directory
    2. Select the default.settings.php file (usually done by checking a box next to the file)
    3. Copy the file, naming the new copy ‘settings.php’
  2. Change the permissions of the settings.php file.
    1. In your ISP’s file manager select the file ‘settings.php’ and click on permissions.
    2. Add the permissions for the file to be written by the web server (i.e. web users). If your system is asking you to use a numeric value to CHMOD the file you will want to use 666, this will set the file to be written by anyone.
    3. Save your changes.

    Please note: The installation script that runs when you first visit your site should change the permissions of the ‘settings.php’ file back to read-only when you are finished the initial configuration of your site; however, it is recommended that you check that the permissions for settings.php have been set back to Read Only once you are finished.

  3. Change the permissions of the /sites/default directory.
    1. In your ISP’s file manager select the /sites/default folder and click on permissions.
    2. Add the permissions for the folder to be written by the web server (i.e web users).
    3. Save your change.

Create the Drupal database

You must create a new, empty database for Drupal to use. You must also add a user who has full access to this newly created database.

The way in which you create a database will likely depend on your ISP.

One of the most popular tools used to administer databases is "phpMyAdmin". It is possible that you will have privileges to create new databases using this tool. However, it is more likely that your ISP provides access to phpMyAdmin so that you can work with content in your database. When you create a new site, the related database must be created using the ISP’s control panel.

Option 1: Create a new Database using your ISP’s Control Panel

In many cases your ISP will provide you with a database section in your account’s control panel. Here you will be able to create the database, adding a username and password to access the database. The approach and steps here will vary depending on your ISP, but generally you will be specifying:

  • A name for the database to be created (usually a shorthand version of the site name)
  • A username and
  • A password

The combination of these three things will be used by your website, and perhaps by you, to administer the new database.

Please note: Some ISPs will host the databases on a separate server than the server which hosts your website. In this case, you may also need to specify which server the database is on. Your ISP will let you know if this is necessary.

Option 2: Create a new Database using phpMyAdmin

  1. From your ISP’s control panel, open phpMyAdmin.
  2. In the Create new database field, type the name you want to use for your new Drupal database and then click Create.
  3. Click the Privileges tab.
  4. Click Add a new User.
    1. In the User name field, type the username that you want to add (this will be the username for site to access the database, not your own username).
    2. In the drop-down menu beside the Host field, select Local.
    3. In the Password and Re-type fields, type a password to use for the new user.
    4. In the “Database for user” section, select “Grant all privileges" on the database you just created.
    5. In the “Global privileges” section, leave all of the global privileges checkboxes unselected.
    6. Click Go.

This should mark the end of the work that is necessary it in the ISP’s control. From here we are going to use a web browser to configure your new site.

Read more about Creating the Drupal Database.

Run the installation script

To run the Drupal installation script:

  1. Using your web browser, navigate to the base URL of your new website, e.g. http://example.com. (If you have registered a new Domain name and it has has yet to go into effect, it is possible that you will still be able to access the website with a link provided by your ISP or even using a numeric IP address.) When you go to your new website, you should see the Drupal installation page. The installation wizard will guide you through the process of setting up your Drupal website.

    When you first visit your new website having completed the step above, if you receive an error similar to the following “Parse error: syntax error, unexpected '{' in .../includes/bootstrap.inc on line 679” it may be because you are attempting to install your new site on a server that is running an old version of PHP. Drupal 7 requires at least PHP 5.2.4. See the system requirements page for more information.

  2. On the Select an installation profile page, select Standard. Click Save and continue.
  3. On the Choose language page, select English. Click Save and continue.
  4. On the Database configuration page, select the type of database that you are using. Type the database name, database username and database password (the same ones you used to set up your database).
    Please note: If your database host is located on a different server, if your database server is listening to a non-standard port, or if more than one application will be sharing this database then you can configure Drupal options for this by clicking the Advanced options link.
    Click Save and continue. The Installing Drupal page is displayed.
  5. On the Configure site page, do the following:
    1. In the Site name field, type the name you want to give your site. In the Site email address field, type the email address that automated messages from your Drupal site will be sent from.
    2. In the site maintenance account section, type a username, email address and password to use for the maintenance account.
    3. In the server settings section, select a country from the list and then select a time zone.
    4. If desired, select Check for updates automatically and Receive email notifications (recommended to keep your site's security up to date).
    5. Click Save and continue.
  6. On the Drupal installation complete page, click the Visit your new site link.

You should see a newly installed Drupal homepage, as shown in the screenshot above. The administrator account is automatically logged in, and if you chose the "Standard" install, the black administration toolbar will be displayed across the top of the page.

Read more about Running the installation script

Installation is complete

Now that you've installed Drupal, there are a few additional tasks you'll need to do.

Please see After Installation for next steps.

Additional Help

There are a variety of ways you can get help. Here are a few suggestions:

  • The complete Installation Guide. You are reading the Quick install for beginners guide, which is a simplified version of the main installation guide, which has more detail.
  • IRC, which is an online text chat where you can get support from community members.
  • The Get Started with Drupal section of Drupal.org
  • The Community & Support section of Drupal.org
  • The Drupal Forums
  • Drupal Users Groups (by region or subject)
  • Resource Guides: A collection of resources and tools for building Drupal websites
  • Free training webinars, videos, archives and other events can be found on The Drupal Dojo (a Drupal Learning Resource Center) and the Drupal Dojo Group, as well as on various other corporate websites and video hosting sites (which you can find easily by searching the web).

Comments

binford2k’s picture

A stupid newb misconfiguration just hit me and I thought I'd make a note of it here.

If you place the contents of the .htaccess file in a global configuration, for whatever reason...MAKE SURE to delete the .htaccess or your gzip rules will be applied twice!

TMWagner’s picture

I've installed D7 5 or 6 times locally, but not on remote server. Instructions are well written and accurate. I will add that on the database setup step, some host services, in this case, Media Temple provides a somewhat restricted access to phpMyAdmin. The database is set up with funky menus; not via phpMyAdmin. Same for usernames. phpMyAdmin serves no purpose, at least in the setup phase, because a new db can not be created within that interface.

Frank_P’s picture

I'm trying to install the for the first time on a WAMP localhost but thing looks complex for me. For example there's no settings.php file in my drupal 7 files as I'll need to change some settings as directed here. Also, how do u compare the Drupal 7.0 and Drupal 7.x-dev. I downloaded Drupal 7.0.

JaDrupal’s picture

I installed Drupal on wamp localhost as well. I didn't make any changes in settings.php. I also used Drupal 6 as Drupal 7 is just launched and i wanted to give it some time to settle. Anyway this video really helped: http://www.youtube.com/watch?v=ooQONqyb_gU&feature=related. Especially the part about setting the php version to 5.2.11 on wamp server.

bradley.beckner’s picture

I believe the settings.php file that you are looking for is \"myD7site'\sites\default\default.settings.php. Above it directed to copy and rename this to "settings.php" and make sure that you gave it full read/write access. Giving you the real file that you are looking for at \"myD7site'\sites\default\settings.php.

faisal6621’s picture

I'd found it in "myDP7\sites\default\default.setting.php" now where to put the new "setting.php" file?

wolfrage’s picture

SQLite should be a branch for the setup path of Drupal 7, that a user can take. SQLite is fast and easy to setup in Drupal, as long as the host has php5-sqlite installed. Additionally SQLite may be bigger than the Drupal Community expects as it provides as extremly fast light weight database that can handle up to 2 Terabyte's of data. Which is more than enough for 95% of sites.

Redsuperted’s picture

Hi - I just completed installation of Drupal 7 on my web server, but a funny thing has happened. On my "welcome to ..." page, I'm missing the "Administer" button and the "Change the Default Front PAge" Button.

Any idea what might be going on?

Thanks!
R.

Pistachio Pony’s picture

These are some of the new changes in Drupal 7 ! Check out the drupal dojo on installing and test driving Drupal for more info on the changes...at drupaldojo.com
cheers

sudev’s picture

this is my blog where i have explained how to install drupal 6 locally in ubuntu.

Click Here
http://sudevshares.blogspot.com/2011/07/installing-drupallamp-in-ubuntu....

http://sudevshares.blogspot.com

webbroidrupal’s picture

I myself am a relative beginner on drupal. While learning I have put together some notes to help guide new users.

This is for Absolute Beginners.

It Covers History, System Requirements, Installation, Basic Modules.

Beginners Guide To Drupal

Background on Drupal:

Drupal started as a personal project of Dries in 1999. He wanted to create a small, internal website where he and his friends in college could discuss or share the things happening around their network.
Drupal logo

After graduation, Dries decided to move the site online so that the group can still communicate with each other. He originally wanted the name “dorp.org” for the site because dorp means village in Dutch. But he made a minor typo error during the registration of the domain, so he got the name “drop.org” instead.

The small site morphed into a personal experimentation environment, where members discuss stuff related to web technologies. These ideas were then implemented to the site’s software. All these developments led to the first release of the software running on the drop.org website in 2001.

arkokoley’s picture

When i navigate to my site the page displays this:

Warning: ini_set() has been disabled for security reasons in drupal_environment_initialize() (line 494 of /www/zxq.net/n/x/t/nxtclass/htdocs/includes/bootstrap.inc).
Warning: ini_set() has been disabled for security reasons in drupal_environment_initialize() (line 497 of /www/zxq.net/n/x/t/nxtclass/htdocs/includes/bootstrap.inc).
Warning: ini_set() has been disabled for security reasons in drupal_environment_initialize() (line 498 of /www/zxq.net/n/x/t/nxtclass/htdocs/includes/bootstrap.inc).
Warning: ini_set() has been disabled for security reasons in drupal_environment_initialize() (line 499 of /www/zxq.net/n/x/t/nxtclass/htdocs/includes/bootstrap.inc).
Warning: ini_set() has been disabled for security reasons in drupal_environment_initialize() (line 501 of /www/zxq.net/n/x/t/nxtclass/htdocs/includes/bootstrap.inc).
Warning: ini_set() has been disabled for security reasons in drupal_environment_initialize() (line 503 of /www/zxq.net/n/x/t/nxtclass/htdocs/includes/bootstrap.inc).
Warning: ini_set() has been disabled for security reasons in include_once() (line 253 of /www/zxq.net/n/x/t/nxtclass/htdocs/sites/default/settings.php).
Warning: ini_set() has been disabled for security reasons in include_once() (line 254 of /www/zxq.net/n/x/t/nxtclass/htdocs/sites/default/settings.php).
Warning: ini_set() has been disabled for security reasons in include_once() (line 262 of /www/zxq.net/n/x/t/nxtclass/htdocs/sites/default/settings.php).
Warning: ini_set() has been disabled for security reasons in include_once() (line 269 of /www/zxq.net/n/x/t/nxtclass/htdocs/sites/default/settings.php).
Warning: ini_set() has been disabled for security reasons in drupal_settings_initialize() (line 592 of /www/zxq.net/n/x/t/nxtclass/htdocs/includes/bootstrap.inc).

On selecting my language english when i click Save and Continue i am asked to download the Intall.php

uusijani’s picture

This claim made in the guide almost kept me from trying Drupal in the first place. You don't need a new, empty database. If you already have a database, even with data from other apps, it'll do just fine. Drupal won't erase it or refuse to install because the database isn't empty and reserved exclusively for Drupal.

jhealy’s picture

Thank you, my 1st installation on a shared server went flawlessly following this. When does that ever happen?

Mechanical Fruit’s picture

http://www.linuxcandy.com/2011/11/how-to-install-lamp-in-ubuntu-1110.htm...

I actually misposted this link, I intended it for linux thread. Nevertheless , it is a good guide for installling LAMP on linux.

dcc1225’s picture

I appreciate that people try to write detailed instructions for installation.

However, some further reading by colleagues is needed.

For example:

"Change the permissions of the settings.php file.

In your ISP’s file manager select the file ‘settings.php’ and click on permissions.
Add the permissions for the file to be written by the web server (i.e. web users). If your system is asking you to use a numeric value to CHMOD the file you will want to use 666, this will set the file to be written by anyone.
Save your changes."

This is not very useful to a beginner. How does a beginner know "permissions for the file to be written by the web server"? 755, 777? etc. and afterwards, should the permissions be changed back to something else?

At least, if you are not going to provide the info, then send the user to a page (link) where the information can be found.

Jyotimk’s picture

it is showing this error.Plz solve this one.
In order for Drupal to work, and to continue with the installation process, you must resolve all issues reported below. For more help with configuring your database server, see the installation handbook. If you are unsure what any of this means you should probably contact your hosting provider.

Failed to connect to your database server. The server reports the following message: SQLSTATE[HY000] [2002] No such file or directory.
Is the database server running?
Does the database exist, and have you entered the correct database name?
Have you entered the correct username and password?
Have you entered the correct database hostname?

mikedance’s picture

I resolved this issue by changing the Database Host from localhost to 127.0.0.1

mohitgodiya’s picture

hello everyone..
im a newbie to drupal learning from tutorials..
i have setup drupal on my lamp server at home and configured it to send emails through smtp(gmail)....
i have a static ip and can access my site externally...
till now everyhting worked fine...
but whenever i recieve a mail from drupal(smtp configured) the site url contains my local address and not the static ip
e.g., 192.16x.xxx.xxx and not my public IP....
please help

jim.miller@fox-tree.com’s picture

Hi all -

Thanks for the article and steps. Especially for us newbies, it was very well written and clear. i am having an issue, which I am hoping you can provide some insight. I say this before I begin, I am almost positive this is a user error (e.g. I'm at fault).

First, some background: I have two domain names on Pair networks. The first is a commercial site, built in Drupal by professionals, which is a functioning commercial site; I have no problems with this one. I took classes on Drupal (so I know the basics of how my site was built. I have another domain name, that was not being used, and I thought it would be fun (yes, "fun") to start using what I learned to build a basic page. I moved the second domain name to Pair, and I have it hosted as a shared IP address (feel free to make fun of me for setting it up this way).

The process started well: I got through the basic steps of unpacking Drupal (7.34), loading up the files via FTP, and I created a database for the second site. The problem for me is I am not able to run install.php. I can not seem to come up the site name to run it. Since I have not been able to even see the option of running install.php, I am fairly certain I have not entered the right address, though I am out of options on how to format the address. I have tried ever combination I can think of, including the (second) web address, the (second) web address/install.php, the primary address/second address, and every other half-baked idea of which I could think.

Do you have any thoughts on how I should be formatting the address to run Install.php, or other steps I may have missed? When i go to Pair networks, and log into the directory section, i can see the files, including install.php.

Many thanks from a newb.
Jim

gparsloe’s picture

Thanks for such a clear tutorial. I set up a database using 'MySQL Databases' in the site cpanel instead of using phpmyadmin (no way to use phpmyadmin on my site to create a database) and all went fine.