Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / Apache

Installing Drupal on Windows 7

4.43/5 (5 votes)
2 Oct 2011CPOL4 min read 57.1K  
In this article, I will explain how to install and configure Drupal 7.8, HTTP Server 2.2.21, PHP 5.3.8, and MySQL 5.5.1 on Windows 7.

Introduction

Drupal is an open source content management platform powering millions of websites and applications. In this article, I will show you how to install Drupal 7.8 on Windows 7 with Apache HTTP Server 2.2.21, PHP 5.3.8 and MySQL 5.5.1.

Before Installation

Before you start the installation process, you must have the following installer or package downloaded:

  1. Drupal 7.8 (http://www.drupal.org)
  2. Apache HTTP Server 2.2.21 (http://httpd.apache.org/)
  3. PHP 5.3.8 (http://windows.php.net)
  4. MySQL 5.5.1 (http://www.mysql.com/)

Install Apache HTTP Server

  1. Run httpd-2.2.21-win32-x86-no_ssl.msi to start the Apache HTTP Server installation.

    InstallApache.gif

  2. Enter Network Domain, Server Name, and Adminstrator's Email Address:

    InstallApacheServerInformation.gif

    Because Apache is used in my laptop as development environment, I put my laptop name “laptop” in both Network Domain and Server Name textbox and entered a fictional email “webmaster@laptop” in Administrator’s Email Address textbox.

  3. Follow the wizard to complete the configuration steps and clicked Install button to start the installation, you will probably see the following error messages in command windows.

    InstallApacheError.gif

    http:exe: Could not reliably determine the server’s fully qualified domain name, using 192.168.1.105 for ServerName
    (OS 10013) An attempt was made to access a socket in a way forbidden by its access permissions. : make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down

    The ServerName “laptop” can’t be recognized error is because I haven’t mapped “laptop” to my laptop IP yet. The port 80 is forbidden error is because access permission reason. I will use a different port 8888 instead of 80 later.

  4. Follow the rest of the installation wizard steps to complete the installation.
  5. Use Windows “Search programs and files” box to find the Notepad.

    FindNotepad.gif

    Right click on Notepad and select “Run as administrator” to open the Notepad.

    RunAsAdministrator.gif

    The reason to do this is because Windows 7 has a more restricted security feature - UAC, in order to change a system file, we need administrator rights. Another way to allow changing a system file is turning off UAC.

  6. Open httpd.conf file in C:\Program Files\Apache Software Foundation\Apache2.2\conf.
  7. Find the line...
    Listen 80

    ...and change it to:

    Listen 8888
  8. Save and close httpd.conf file.
  9. Open hosts file in C:\Windows\System32\drivers\etc.
  10. Add a line in it:
    127.0.0.1 laptop
  11. Open a browser and enter http://laptop:8888. You are supposed to see this:

    ItWorks.gif

Install PHP

  1. Run php-5.3.8-Win32-VC9-x86.msi to start the installation.

    InstallPHP.gif

  2. Select Apache 2.2.x Module.

    InstallPHPWebServerSetup.gif

  3. Follow the rest of the installation wizard steps to complete installation.

Install MySQL

  1. Run mysql-installer-5.5.15.0.msi to start the MySQL installation.

    InstallMySQL.gif

  2. Follow the wizard to complete MySQL installation.

Install Drupal

  1. Create a server folder: C:\server.
  2. Create a www folder in C:\server.
  3. Create a demo folder in C:\server\www.
  4. Extract drupal-7.8.zip into the demo folder.
  5. Open httpd.conf in C:\Program Files\Apache Software Foundation\Apache2.2\conf
  6. Find the line:
    #LoadModule rewrite_module modules/mod_rewrite.so

    Change it to:

    LoadModule rewrite_module modules/mod_rewrite.so
  7. Add the following if not in httpd.conf (PHP windows installer will add PHP5 section, but I found it’s not always a success):
    #PHP5
    LoadModule php5_module "C:\Program Files\PHP\php5apache2_2.dll"
    PHPIniDir "C:\Program Files\PHP"
  8. Find the line:
    AddType application/x-gzip .gz .tgz

    Add the following:

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
  9. Find the line:
    DirectoryIndex index.html

    Change it to:

    DirectoryIndex index.html index.php
  10. Find the line:
    #Include conf/extra/httpd-vhosts.conf

    Change it to:

    Include conf/extra/httpd-vhosts.conf
  11. Save and close httpd.conf.
  12. Open http-vhosts.conf in C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra
  13. Find the line:
    NameVirtualHost *:80

    Change it to:

    NameVirtualHost *:8888
  14. Find the section:
    <VirtualHost *:80>
    …
    </VirtualHost>

    There are two matched sections.

    Change the first section to:

    XML
    <VirtualHost *:8888>
        ServerAdmin webmaster@laptop
        DocumentRoot "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs"
        ServerName laptop
        ServerAlias laptop
        ErrorLog "logs/laptop-error.log"
        CustomLog "logs/laptop-access.log" common
    </VirtualHost>

    Change the second section to:

    XML
    <VirtualHost *:8888>
        ServerAdmin webmaster@demo.com
        DocumentRoot "C:/Server/www/Demo "
        ServerName demo.com
        ServerAlias www.demo.com
        ErrorLog "logs/demo-error.log"
    CustomLog "logs/demo-access.log" common
    <directory "C:/Server/www/Demo">
    AllowOverride All
    Options Indexes FollowSymLinks
    Order allow,deny
    Allow from all
    </directory>
    </VirtualHost>
  15. Save and close httpd-vhosts.conf.
  16. Restart Apache HTTP Server.
  17. Open hosts in C:\Windows\System32\drivers\etc.
  18. Add line:
    127.0.0.1 www.demo.com
  19. Save and close hosts file.
  20. Open MySQL Workbench 5.2 CE from Program menu MySQL group.

    MySQLWorkbench.gif

  21. Click Local instance MySQL55 to open the database.

    MySQLLocalInstance.gif

  22. Click Add schema to add a new schema demo
  23. Run script in Query window to create demoadmin account:
    SQL
    CREATE USER 'demoadmin'@'localhost' IDENTIFIED BY 'demoadmin123';
  24. Run script in Query window to grant permission to demoadmin account:
    SQL
    GRANT ALL ON demo.* TO 'demoadmin'@'localhost';
  25. Open http://www.demo.com:8888 in browser. You should see Drupal installation page.

    InstallDrupal.gif

  26. Follow the wizard to complete installation. Your Drupal site is ready.

    CompleteInstallDrupal.gif

Summary

Installing Drupal on Windows 7 is not a simple work for a beginner. You need to use trial and error to figure out how to install and configure each component. I was stuck on PHP configuration for one week. Hope this article could save a little bit of your time.

History

  • 2nd October, 2011: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)