Apache服務搭建

Apache服務器

1: www: world  wide  web      萬維網

http 協議:    超文本傳輸協議

HTML語言: 超文本標識語言 index.html


2: URL:統一資源定位: 協議+域名:端口+網頁文件名

http://www.baidu.com:80/phpmyadmin/index.php


3:搭建www的服務器的方法

windows: IIS  +  asp  +  SQLserver

IIS: Internet  Information  server

Linux     apache+mysql+php

              nginx

apache配置文件        

                     源碼包安裝:/usr/lcoal/apache2/etc/httpd.conf(主配置文件)

                                          /usr/local/apache/etc/extra/*.conf(子配置文件)

                     rpm包安裝:/etc/httpd/conf/httpd.conf

                     網頁保存位置:

                     源碼包:       /usr/local/apache2/htdocs/

                     rpm包安裝:  /var/www/html/

                     日誌保存位置

                     源碼包:/usr/local/apache2/logs/

                     rpm包: /var/log/httpd/

 

注意:apache配置文件嚴格區分大小寫

1:針對主機環境的基本配置

       ServerRoot    apache主目錄 /usr/local/apache2

       Listen      監聽端口  :80

       LoadModule   加載的相關模塊  php5           

       User

       Group                 用戶和組

       ServerAdmin       管理員郵箱

       ServerName        服務器名(沒有域名解析時,使用臨時解析。默認不開啓)

       ErrorLog "logs/error_log                               錯誤日誌

       CustomLog "logs/access_log" common        正確訪問日誌

       DirectoryIndex index.html index.php            默認網頁文件名,優先級順序

       Include  etc/extra/httpd-vhosts.conf          子配置文件中內容也會加載生效


2 :主頁目錄及權限

       DocumentRoot "/usr/local/apache2//htdocs"

       #網頁文件存放目錄(默認)

       <Directory "/usr/local/apache2//htdocs">

       #定義指定目錄的權限

       Options Indexes FollowSymLinks

              #options

                            None:        沒有任何額外權限

                            All:             所有權限

                            Indexes:     瀏覽權限(當此目錄下沒有默認網頁文件時,顯示目錄內容)

                            FollowSymLinks:准許軟連接到其他目錄

AllowOverride None

              #定義是否允許目錄下.htaccess文件中的權限生效

                            None:.htaccess中權限不生效

                            All:文件中所有權限都生效

                            AuthConfig:文件中,只有網頁認證的權限生效。

Require all granted    訪問控制列表

           #定義此目錄的允許訪問權限


例1:僅允許IP爲192.168.1.1的主機訪問

<RequireAll>

      Require all  granted

      Require ip 192.168.1.1

</RequireAll>


例2:僅允許192.168.0.0/24網絡的主機訪問

<RequireAll> 

      Require all  granted 

      Require ip 192.168.1.0/24

</RequireAll> 


例3:禁止192.168.1.2的主機訪問,其他的都允許訪問,

<RequireAll>

      Require all  granted

      Require not ip 192.168.1.2

</RequireAll>


例4:允許所有訪問,

Require all  granted(授權)                      


例5:拒絕所有訪問,

Require all  denied

 

實驗環境:

       使用lamp環境安裝好的apache進行試驗


       安裝完成後,先啓動apache進行服務驗證,是否安裝成功,並且主頁是否可以訪問。

       注:發現啓動服務報錯:AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

         解決辦法:打開主配置文件httpd.conf

         搜索ServerName     (約在200行左右)

         修改爲 ServerName  localhost:80(並且去掉前面的#註釋)


實驗一:目錄別名:

可以使特定的網站程序不出現在網站根目錄下面,而這樣的話,就可以避免和原來的程序本身發生混淆和衝突;縮短網頁目錄的縱深,減少URL的長度。

 

實驗一:目錄別名

可以使特定的網站程序不出現在網站根目錄下面,而這樣的話,就可以避免和原來的程序本身發生混淆和衝突;縮短網頁目錄的縱深,減少URL的長度。

 

  1. 打開apache主配置文件

#Include etc//extra/httpd-autoindex.conf (將#號去掉)

  1.  進到子配置文件目錄extra下,打開httpd-autoindex.conf

仿照例子寫一個別名:

Alias  /a/  "/www/a/"               #實際目錄結束要有/

<Directory "/www/a/">

    Options Indexes MultiViews

    AllowOverride None

    Require all granted

</Directory>

在/www/a/目錄下手動創建index.html文件

 

  1. 將apache服務重啓:

/usr/local/apache2/bin/apachectl stop

/usr/local/apache2/bin/apachectl start

注:重啓源碼包安裝的apache需要先關閉,再啓動。

 

  1. 驗證試驗結果:

打開瀏覽器輸入   服務器IP/a/

 

打開Apache主配置文件

#Include etc//extra/httpd-autoindex.conf (將#號去掉)

wKiom1lIvsrRTLnpAABHz2a4yjU062.png

進到子配置文件目錄extra下,打開httpd-autoindex.conf

仿照例子寫一個別名:

Alias  /a/  "/www/a/"               #實際目錄結束要有/

<Directory "/www/a/">

    Options Indexes MultiViews

    AllowOverride None

    Require all granted

</Directory>

在/www/a/目錄下手動創建index.html文件

wKiom1lIvsug8F4wAAD7yvu799o639.png

wKioL1lIvszjSM0_AAAxJfMORL0194.png

將apache服務重啓:

/usr/local/apache2/bin/apachectl stop

/usr/local/apache2/bin/apachectl start

注:重啓源碼包安裝的apache需要先關閉,再啓動。

驗證試驗結果:

打開瀏覽器輸入   服務器IP/a/

wKiom1lIvs3B7O21AADSjlIbXyw285.png

實驗二:用戶認證

       提高網站安全性,保護個別頁面的信息,限制特定目錄,只有指定用戶可以訪問。

 

實驗二:用戶驗證:

提高網站安全性,保護個別頁面的信息,限制特定目錄,只有指定用戶可以訪問。

1.    打開主配置文件在最下面添加:

<Directory "/usr/local/apache2/htdocs/baohu">     #被保護目錄

    Options Indexes

    AllowOverride All                           #(開啓權限認證文件.htaccess)

    Require all granted

</Directory>

修改配置文件:

高版本中Apache權限設置:(httpd-2.4.7)   (用這個)

wKioL1lIvs3ABWXrAABcrU5Tl3E914.png

wKiom1lIvs-jwFD8AADezMOwbMs268.png

wKioL1lIvs-glpZFAABS4EdTJeo726.png

2.    在指定目錄下創建權限文件:

cd  /usr/local/apache2/htdocs/baohu 

Vi   .htaccess  #添加下面的內容

AuthName "50 docs"

#提示信息

AuthType basic

#加密類型

AuthUserFile /usr/local/apache2/htdocs/baohu/apache.passwd

#密碼文件,文件名自定義。(但是路徑要對,使用絕對路徑)

require valid-user

#允許密碼文件中所有用戶訪問

3.    建立密碼文件,加入允許訪問的用戶。(此用戶和系統用戶無關

htpasswd  -c  /usr/local/apache2/htdocs/baohu/apache.passwd  test1

-c  建立密碼文件,只有添加第一個用戶時,才能-c

htpasswd  -m  /usr/local/apache2/htdocs/baohu/apache.passwd  test2

-m  再添加更多用戶時,使用-m 參數

wKioL1lIvtDA_c2NAAB01Ir0fLk201.png

4.    驗證訪問:(自己手動去目錄下創建index.html文件)

瀏覽器輸入 服務器IP/baohu/index.html

 

瀏覽器驗證:

wKiom1lIvtHgvdHbAAGqeC70VO0571.png

wKioL1lIvtLxHrOKAAEaRunlcrw664.png

實驗三:***虛擬主機***

 

虛擬主機的分類:

  1. 基於IP的虛擬主機:一臺服務器,多個ip,搭建多個網站

                           Ifconfig  eth0:0  IP      #建立網卡子端口

  1. 基於端口的虛擬主機:一臺服務器,一個ip,搭建多個網站,每個網絡使用不同端口訪問

  2. 基於名字的虛擬主機:一臺服務器,一個ip,搭建多個網站,每個網站使用不同域名訪問

 

  1. 實驗搭建(準備工作)

a.    域名解析:準備兩個域名

www.sohu.com        

www.sina.com

                     b.    沒搭建DNS,只能手動添加到本地hosts文件內進行解析

                            Windows系統中:

                                   C:\WINDOWS\system32\drivers\etc\hosts

                            Linux系統中:

                                   /etc/hosts

                     c.    網站主頁目錄規劃

在//htdocs/目錄下分別創建sohu 和 sina 兩個目錄

並且在分別在新建目錄內創建index.html文件(分別寫不一樣的內容

2.    實驗流程(修改配置文件)

A.    vi  /usr/local/apache2/etc/httpd.conf         #修改主配置文件開啓文件關聯

                                   Include etc//extra/httpd-vhosts.conf    #此行取消註釋

   

B.    vi  /usr/local/apache2/etc/extra/ httpd-vhosts.conf

    #添加下方內容(添加之前先把原先存在的示例刪除掉

   

<Directory "/usr/local/apache2/htdocs/sina">

Options Indexes

AllowOverride None

Require all granted

</Directory>

 

<Directory "/usr/local/apache2/htdocs/sohu">

Options Indexes

AllowOverride None

Require all granted

</Directory>

 

<VirtualHost 192.168.150.253>                                        

ServerAdmin [email protected]                          

DocumentRoot "/usr/local/apache2/htdocs/sina"     

ServerName www.sina.com                                       

ErrorLog "logs/sina-error_log"                     

CustomLog "logs/sina-access_log" common     

</VirtualHost>

 

<VirtualHost 192.168.150.253>

ServerAdmin [email protected]

DocumentRoot "/usr/local/apache2/htdocs/sohu"

ServerName www.sohu.com

ErrorLog "logs/sohu.com-error_log"

CustomLog "logs/sohu.com-access_log" common

</VirtualHost>

 

C.      重啓服務,驗證結果

Windows 下:瀏覽器下輸入兩個不同的域名驗證網頁內容

Linux下:通過elinks命令驗證:elinks 域名


實驗三:虛擬主機:

 

基於名字的虛擬主機:

a.    域名解析:準備兩個域名

www.sohu.com         

www.sina.com

b.    沒搭建DNS,只能手動添加到本地hosts文件內進行解析

                            Windows系統中:

                                   C:\WINDOWS\system32\drivers\etc\hosts

                            Linux系統中:

                                   /etc/hosts

c.     網站主頁目錄規劃

在//htdocs/目錄下分別創建sohu 和 sina 兩個目錄

並且在分別在新建目錄內創建index.html文件(分別寫不一樣的內容

 

搭建DNS服務器,能夠解析到sohu、sina的域名:

wKiom1lIvtORyOLfAAD1_cr42zw584.png

wKioL1lIvtSR3X8vAAEwu3_ZoFo720.png

wKioL1lIvtWRf9cEAAC3A--PCIA724.png

wKiom1lIvtaAlsTTAACge1aGNws790.png

將客戶端DNS設置成DNS服務器IP

wKiom1lIvteRUTPOAABAhj6eD3Y232.png

wKioL1lIvtjAsPbnAAGWR3GHYVc671.png

修改Apache虛擬主機配置文件:

取消虛擬機主機關聯註釋:

wKiom1lIvtmxRR7nAAAxE6AGMes128.png

wKioL1lIvtqwaUKyAAFYuuWpfC4358.png

wKioL1lIvtqhgkrlAACEyblQckA930.png

客戶端訪問(將客戶端DNS設置成DNS服務器IP)

wKiom1lIvtzRsPIYAAEToX0NgGo001.png

wKiom1lIvt3zwL8cAAFUmu7SHD8065.png

拓展:低版本的Apache配置(2.2.9)

wKioL1lIvt2AcA5tAAApqKLiAbM315.png

帶用戶驗證模式:

wKiom1lIvt_wdsURAAFAv93aWk4679.png

wKioL1lIvuDhqH8JAAEsQyf7O7I612.png

這裏的地址解析是用的Hosts文件:實際應使用DNS

wKiom1lIvuGjNdu9AACKZZbFACg723.png

wKioL1lIvuHSZS7zAAA9WnVkexU215.png

wKioL1lIvuLwZx_5AAFzRXfcWPY021.png

wKiom1lIvuOCwvykAAAwDlUdP60135.png

wKioL1lIvuThyQ7TAAB1bKGuMlk273.png

wKioL1lIvuSwP16pAAAyTrjWfAs639.png

實驗四:地址重寫

在URL中輸入一個地址,會自動跳轉爲另一個,多用於網站更換或者添加新域名。

實驗要求:

A     虛擬主機能正常訪問

B     打開主配置文件開啓重寫模塊

       LoadModule rewrite_module modules/mod_rewrite.so    #取消註釋

域名跳轉實驗:

1.    修改虛擬主機配置文件

vi  */extra/httpd-vhosts.conf

<Directory "/usr/local/apache2/htdocs/sina">

Options Indexes FollowSymLinks

AllowOverride All

Require all granted

</Directory>

wKiom1lIvuXj7FhtAAB_mebSYdo327.png

2.    創建規則匹配文件

vi  */.htaccess                    #在指定的網站網頁目錄下創建

RewriteEngine on

#開啓rewrite功能

RewriteCond %{HTTP_HOST} www.sina.com

#把以www.sina.com   開頭的內容賦值給HTTP_HOST變量

RewriteRule  .*   http://www.sohu.com

#.*  輸入任何地址,都跳轉到http://www.sohu.com

wKiom1lIvubALAz8AABKcznnVdc835.png

3.    重啓服務器,進行訪問驗證   

wKioL1lIwLvzfeuYAAAZecn9oiQ586.png

靜態向動態跳轉:

1.    修改虛擬主機配置文件

vi */extra/httpd-vhosts.conf

<Directory "/usr/local/apache2/htdocs/sohu">

Options Indexes FollowSymLinks

AllowOverride All

Require all granted

</Directory>

wKiom1lIvwujmskqAABptcf1TGA493.png

2.    創建規則文件

vi  */.htaccess

RewriteEngine on

RewriteRule index(\d+).html index.php?id=$1

#輸入index(數值).html時,跳轉到index.php文件

wKioL1lIvwuD6y-kAABPOrhFrXE523.png

3.    重啓服務,進行訪問驗證

驗證方式:在*/htdocs/sohu/目錄下新建index.php文件

訪問www.sohu.com/index(數值).html 看訪問的是否是你的index.php的網頁

注:靜態網頁向動態網頁跳轉這個實驗,只有完整的lamp環境下才能訪問。

wKioL1lIvwvy49gBAAAjeWNkOfs738.png

wKiom1lIvw3QSs95AAFFQHU1_8o044.png

六 常用子配置文件

httpd-default.conf        #apache線程控制,必須開啓

Timeout 300        #超時時間

KeepAlive On      

#開啓線程控制(不開啓的話用戶訪問頁面會產生一個進程,訪問其他頁面會產生另一個進程,這樣的話一個用戶會產生好多個進程,會降低apache性能。開啓此項,當用戶訪問網站時會產生一個進程,打開其他頁面時會產生線程,保證了一個用戶只產生一個進程。網站此項功能必須開啓。)

MaxKeepAliveRequests 100   #最大線程連接數

httpd-info.conf    #apache狀態統計

<Location /server-status>

SetHandler server-status

Order deny,allow

Deny from all

Allow from .example.com

</Location>

#通過訪問www.domain.com/server-status可以查看apache狀態。如果頁面顯示not found 則需要修改目錄權限,在Deny from all下加上allow from ip(允許的ip)。

httpd-manual.conf     #apache幫助文檔

通過訪問www.domain.com/manual 查看apache幫助文檔,一般爲英文,沒用,可以到apache官網下載幫助文檔。

httpd-languages.conf    #語言編碼

要使其生效需要在主配置文件中打開,如果中文亂碼不是瀏覽器編碼的原因可能是此配置文件註釋沒打開。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章