天天看點

Apache與PHP環境下配置本地虛拟主機

APACHE+PHP+MYSQL 基本環境安裝并設定完成了之後,在此基礎之上設定多個虛拟主機,即一個IP,可以有多個域名通路,也可以說一個WEB SERVER上架設多個網站(其實以前早就弄過,隻是這次換了一個新環境,想自己從零開始重新弄一遍,在網上找了很久的資料,然後自己慢慢琢磨,前後用了我相當長的時間啊)。

在上面的環境之上要做如下設定:

1.找到Apache的\conf目錄下的httpd.conf檔案,打開它,找到下面這兩行:(大概在465,466行(不同版本不一樣))

# Virtual hosts

#Include conf/extra/httpd-vhosts.conf

把它改成下面這樣:

# Virtual hosts

Include conf/extra/httpd-vhosts.conf (去掉它前面的注釋符 #)

這個的意思是啟用虛拟主機的設定檔案httpd-vhosts.conf,虛拟主機的設定都在這個檔案下設定的,不用去改httpd.conf,這樣比較清晰。

2.找到Apache的\conf\extra目錄下的httpd-vhost.conf(步驟1中提到的)這個檔案。

打開它的時候裡面已經含有像下面這樣的内容:(在檔案的最後幾行)

–虛拟主機配置開始

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot “C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.localhost”

ServerName dummy-host.localhost

ServerAlias www.dummy-host.localhost

ErrorLog “logs/dummy-host.localhost-error.log”

CustomLog “logs/dummy-host.localhost-access.log” common

</VirtualHost>

複制上面這幾行,關鍵是:把

DocumentRoot “”–虛拟主機的目錄,即域名對應的根目錄

ServerName dummy-host.localhost–你想要的域名。

還要在每個虛拟主機配置開始前加入以下内容:

<Directory “c:\test”>

Options Indexes FollowSymLinks Includes ExecCGI

AllowOverride All

Order allow,deny

Allow from all

</Directory>

其中:

<Directory “c:\test”>  –這是你的虛拟主機的被授權的目錄一般與DocumentRoot “”–虛拟主機的目錄,即域名對應的根目錄相同。

Allow from all –這句是重點,隻要allow别人才行通路上面定義的目錄,否則在IE或firefox通路時會顯示503錯誤,即禁止通路。

如果你不想在httpd-vhost.conf 裡加入

<Directory “c:\test”>

Options Indexes FollowSymLinks Includes ExecCGI

AllowOverride All

Order allow,deny

Allow from all

</Directory>

那麼你也可以這樣做:

在httpd.conf裡找到以下内容:

<Directory />

Options FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

</Directory>

這是Apache預設的設定,最後一行是這樣的

Deny from all

意思是拒絕所有通路對根目錄的通路,别人是通路不了你的網站的,

是以要改成

Allow from all

不過還是建議用第一種方法,即修改httpd-vhost.conf的内容,這樣比較清楚,也比較安全。

這樣apache的設定就完成了,不過還要做下面這一步。

3.還有關鍵的一步:

這一步不做,一定不行因為你本地的機器沒有DNS解析。

找到C:\WINDOWS\system32\drivers\etc目錄下的hosts檔案

加上這樣的記錄

127.0.0.1 demo.com      –這個是你的域名,你要設定多少個虛拟主機,就要加多少行這樣的記錄。

OK,現在你可以設定N+1個域名了。

也可以參考一下這個位址:http://httpd.apache.org/docs/2.0/vhosts/examples.html

樣例:

--------------------------------------------------------------------------

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot /www/docs/dummy-host.localhost

ServerName dummy-host.localhost

ServerAlias www.dummy-host.localhost

ErrorLog logs/dummy-host.localhost-error_log

CustomLog logs/dummy-host.localhost-access_log common

</VirtualHost>

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot /www/docs/dummy-host2.localhost

ServerName dummy-host2.localhost

ErrorLog logs/dummy-host2.localhost-error_log

CustomLog logs/dummy-host2.localhost-access_log common

</VirtualHost>

#配置預設的虛拟主機 localhost

<Directory "D:\phpwork">

Options Indexes FollowSymLinks Includes ExecCGI

AllowOverride All

Order allow,deny

Allow from all

</Directory>

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot D:\phpwork

ServerName localhost

ErrorLog logs/dummy-host2.localhost-error_log

CustomLog logs/dummy-host2.localhost-access_log common

</VirtualHost>

#配置phpmyadmin

<Directory "D:\phpwork\phpMyAdmin">

Options Indexes FollowSymLinks Includes ExecCGI

AllowOverride All

Order allow,deny

Allow from all

</Directory>

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot D:\phpwork\phpMyAdmin

ServerName phpMyAdmin

ErrorLog logs/dummy-host2.localhost-error_log

CustomLog logs/dummy-host2.localhost-access_log common

</VirtualHost>

#配置虛拟主機 test.com

<Directory "D:\phpwork\test">

Options Indexes FollowSymLinks Includes ExecCGI

AllowOverride All

Order allow,deny

Allow from all

</Directory>

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot D:\phpwork\test

ServerName test.com

ErrorLog logs/dummy-host2.localhost-error_log

CustomLog logs/dummy-host2.localhost-access_log common

</VirtualHost>