天天看點

Apache安裝配置管理

  下載下傳位址: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/