下載下傳位址:http://httpd.apache.org/
1. 安裝apache
# tar zxvf httpd-2.2.11.tar.gz
# cd httpd-2.2.11
# ./configure --prefix=/usr/local/apache --enable-so
//編譯時加上加載子產品參數--enable-so
# make
# make install
2. 配置系統啟動時自動啟動apache服務。
# vi /etc/rc.d/rc.local
//在rc.local上加入一行/usr/local/apache/bin/apachectl –k start。
二、配置apache
1. 修改httpd.conf檔案
# vi /usr/local/apache/conf/httpd.conf
1) 設定根目錄的路徑
根目錄是指apache存放配置檔案和日志檔案的目錄,配置參數為serverroot,預設位于“/usr/local/apache”。指令如下:
2) 設定監聽ip位址及端口号
預設偵聽本機所有ip位址的tcp80端口,指令如下:
listen 80
使用者也可以按自己的需求,使用多個listen語句在多個位址和端口上偵聽用戶端請求。比如:
listen 192.168.99.9:80
listen 172.16.0.20:8080
3) 設定系統管理者e-mail
使用serveradmin參數設定管理者e-mail,比如管理者的email位址為[email protected]
4) 設定伺服器主機的名稱
參數servername用來設定伺服器的主機名稱,如果沒有域名則填入伺服器的ip位址,比如伺服器的ip位址為192.168.99.9:
5) 設定主目錄的路徑
使用者可以使用參數documentroot配置伺服器主目錄預設路徑,比如,主目錄路徑為:/usr/local/apache2/htdocs
6) 設定預設檔案
apache的預設檔案名為index.html,可以使用directory index參數來配置,比如,将index.php設定為預設檔案名:index.php index.html
打開浏覽器,輸入位址:http://192.168.99.9,可以打開站點了:
2. 配置目錄權限
使用<directory 目錄路徑>和</directory>設定目錄的權限。比如:
<directory “/var/www/icons”>
options indexes multiviews
allowoverride none
order allow,deny
allow from all
</directory>
說明:
1)定義目錄特性選項options
可選參數:
indexes:該特性表明目錄允許“目錄浏覽”;
multiviews:該特性表明目錄允許内容協商的多重試圖;
all:包含了除multiviews外的所有特性;
execcgi:該特性表明允許在該目錄下執行cgi腳本;
followsymlinks:該特性表明允許在該目錄下使用符号連接配接。
2).htaccess檔案
可以通過.htaccess檔案(通路控制檔案)設定目錄的權限。
accessfilename .htaccess
配置參數allowoverride指定目錄的.htaccess檔案中指令的類型,包括all、none與options、fileinfo、authconfig、limit的任意組合。一般将allowoverride設定為“none”,禁止使用.htaccess檔案,當allowoverride參數為all時,.htaccess檔案可以覆寫任何以前的配置。
3)設定通路控制
使用order選項來定義通路權限。
比如以下語句表明允許所有客戶機的通路:
以下語句表明隻允許網段192.168.99.0/24的客戶機通路,但ip位址為192.168.99.254這個客戶機除外:
allow from 192.168.99.0/24
deny from 192.168.99.254
使用者可以根據需要,按上述方法配置自己的目錄權限。
3. 建立虛拟目錄
使用alias選項建立虛拟目錄,比如,建立“/icons/”這個虛拟目錄,其對應的實體路徑為“/var/www/icons/”:
alias /icons/ “/var/www/icons/”
4. 使用者認證
比如,有一個名為myweb的虛拟目錄,其對應的實體路徑是“/usr/local/myweb”,現對其啟用使用者認證功能,隻允許使用者tonyguo和wayne通路。
1)建立虛拟目錄并設定使用者認證:
alias /myweb/ “/usr/local/myweb/”
<directory “/usr/local/myweb/”>
options none
authtype basic
authname “please login: ”
authuserfile/usr/local/apache/bin/mywebpwd
require user tongguo wayne
2) 建立密碼檔案并為使用者設定密碼
/usr/local/apache/bin/htpasswd –c /usr/local/apache/bin/mywebpwd tonyguo
-c選項表示無論密碼檔案是否已經存在,都會重新寫入檔案并删除原内容。是以第二個使用者wayne不需要使用-c選項
3)測試
在浏覽器中輸入:http://192.168.99.9/myweb,可以看到如下對話框:
輸入使用者名和密碼後就可以通路網站了:
三、配置虛拟主機
1. 配置基于ip的虛拟主機
1)ip位址相同,但端口号不同的虛拟主機配置
比如使用192.168.99.9的兩個不同端口80和8080釋出兩個不同站點, 虛拟主機分别對應的目錄為/usr/local/apache/htdocs/web1和/usr/local/apache/htdocs/web2:
listen 80
listen 8080
<virtualhost 192.168.99.9:80>
serversignature email
documentroot /usr/local/apache/htdocs/web1
directoryindex index.html index.htm
loglevel warm
hostnamelookups off
</virtualhost>
<virtualhost 192.168.99.9:8080>
documentroot /usr/local/apache/htdocs/web2
2)端口相同,ip不同的虛拟主機配置
比如伺服器有兩個ip位址192.168.99.9和192.168.99.10,使用這兩個ip建立兩台虛拟主機,虛拟主機分别對應的目錄為/usr/local/apache/htdocs/web1和/usr/local/apache/htdocs/web2。設定方法如下:
<virtualhost 192.168.99.9>
servername 192.168.99.9:80
<virtualhost 192.168.99.10>
servername 192.168.99.10:80
2. 配置基于域名的虛拟主機
比如有兩個域名guoxuemin.cn和tonyguo.com需要使用同一台伺服器192.168.99.9,那麼可以這樣配置:
namevirtualhost 192.168.99.9
<virtualhost www.guoxuemin.cn>
servername www.guoxuemin.cn:80
serveradmin [email protected]
errorlog logs/web1/error_log
customlog logs/web1/access_log combined
<virtualhost www.tonyguo.com>
servername www.tonyguo.com:80
serveradmin [email protected]
<virtualhost *:8088>
serveradmin [email protected]
documentroot "/web/web1"
<directory /web/web1>
options followsymlinks
allowoverride none
order allow,deny
allow from all
</directory>
directoryindex index.html index.php index.htm
<virtualhost *:8089>
documentroot "/web/web2"
<directory /web/web2>
<virtualhost 192.168.88.144:80>
documentroot "/web/web3"
<directory /web/web3>
<virtualhost 192.168.88.145:80>
documentroot "/web/web4"
<directory /web/web4>
<virtualhost ftp.com>
servername ftp.com:80
documentroot /web/ftp
<directory /web/ftp>
<virtualhost mail.com>
servername mail.com:80
documentroot /web/mail
<directory /web/mail>
負載均衡
#通路test目錄時負載均衡
在modules目錄下:導入mod
/usr/local/apache2/bin/apxs -c -i mod_proxy.c proxy_util.c
/usr/local/apache2/bin/apxs -c -i mod_proxy_balancer.c
/usr/local/apache2/bin/apxs -c -i mod_proxy_http.c
vi http.conf
loadmodule proxy_module modules/mod_proxy.so
loadmodule proxy_balancer_module modules/mod_proxy_balancer.so
loadmodule proxy_http_module modules/mod_proxy_http.so
proxyrequests off
<proxy balancer://clusterphpinfo>
balancermember http://192.168.88.134:8089 loadfactor=5
balancermember http://192.168.88.134:8088 loadfactor=1
#weight
proxyset lbmethod=bytraffic
</proxy>
proxypass /test balancer://clusterphpinfo stickysession=stick_port_token nofailover=on
proxypassreverse /test balancer://clusterphpinfo
<location /balancer-manager>
sethandler balancer-manager
order deny,allow
#allow from 192.168.88.*
</location>
最新内容請見作者的github頁:http://qaseven.github.io/