Wednesday, November 23, 2011

Installing Drupal 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, so 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 configuration steps and clicked Install button to start the installation, you will probably see 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 map “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 80 later.
4. Follow the rest of 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 restrict security feature - UAC, in order to change a system file, we needs administrator right. Another way to allow change 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 browse and enter http://laptop:8888. You suppose 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 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 following if not in httpd.conf (PHP windows installer will add PHP5 section, but I found it’s not always 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 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
<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
<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 acount
CREATE USER 'demoadmin'@'localhost' IDENTIFIED BY 'demoadmin123';
24. Run script in Query window to grant permission to demoadmin account
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 your time.

No comments:

Post a Comment