Posted under » PHP » Apache on 5 January 2011
The trick about making it work in Windows is knowing what to download. Knowing what to edit comes next.
Installing Apache by MSI is a good idea because over the years, Apache has greatly improved its automated installation.
PHP installers sux. Do not download it, instead download the Zip version. If you don't have the missing files, you can download it later right? Wrong. This is dangerous because it could be a virus or in most likely scenario, the wrong version of the file and it will not work. You don't have to pull your hair trying to compile it from source. Just download, unzip to a folder like c:\php\
In order to enable PHP to run with Apache (on Windows), you have to edit the Apache config. You might find it here.
C:\Apache2.2\conf\httpd.conf
Now add this
LoadModule php5_module "c:/php/php5apache2_2.dll" AddType application/x-httpd-php .php DirectoryIndex index.php index.html index.htm PHPIniDir "c:/PHP"
For more details ... read here. PHP.net VC9 x86 Thread Safe zip contains the dll. Non Thread Safe has no apache dll.
Some modules that I often use
LoadModule rewrite_module modules/mod_rewrite.so LoadModule vhost_alias_module modules/mod_vhost_alias.so
Other configs
DocumentRoot D:/webroot <Directory D:\webroot > </Directory> <Directory E:\webroot\drupal > AllowOverride All </Directory> # Virtual hosts only applies to windows Include conf/extra/httpd-vhosts.conf
A virtual host typically look like this. It is important to define your directory config. Otherwise you might get a "permission error".
<VirtualHost *:80> ServerName sample.com ServerAlias www.sample.com ServerAdmin webmaster@localhost DocumentRoot "E:\www\sample" <Directory E:\www\sample\> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog E:\Apache2.2\logs\error-sample.log LogLevel warn CustomLog E:\Apache2.2\logs\access-sample.log combined </VirtualHost>
As for MySQL. Installing the community server via msi is straight forward. While at it, you may want to install the MySQL workbench tool. It's like phpmyAdmin on steroids.
Next step is to fine tune your PHP installation by modifying the php.ini or your my.cnf.