天天看點

使用Apache搭建Web網站伺服器

使用Apache搭建Web網站伺服器

一:實驗目标

 apache伺服器常見概念

 apache伺服器安裝及相關配置檔案

例1:為公司内網搭建一個web伺服器

例2:使用rpm搭建lamp 環境

例3:修改網根目錄及對應參數,設定通路權限

例4,:使用别名,引用網站根目錄以外的路徑。

例5:打開軟連結功能。 通過軟體連結直接引用網站根目錄以外的内容

例6:當一個目錄下沒有預設首頁時,通路http://192.168.1.63/phpmyadmin/禁止顯示目錄清單

例7:通過使用者認證的方式,對網站下/usr/local/phpmyadmin/目錄進行保護。

例8:配置apache虛拟主機,實作在一台伺服器上運作多個網站

二:實驗環境

服務端:xuegod63.cn   IP:192.168.1.63

用戶端:xuegod64.cn   IP:192.168.1.64

三:實驗步驟

一:相關服務概述

Apache HTTP Server(簡稱Apache)是Apache軟體基金會的一個開放源碼的網頁伺服器,可以在大多數計算機作業系統中運作,由于其多平台和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。它快速、可靠并且可通過簡單的API擴充,将Perl/Python等解釋器編譯到伺服器中。

WEB伺服器也稱為WWW(WORLD WIDE WEB,網際網路)伺服器,主要功能是提供網上資訊浏覽服務。

模式: B/S 模式,服務的端口為:80: http  443:https

  在Apache中,其配置檔案目錄為“/etc/httpd/conf/httpd.conf”,這裡面包括設定網站資源的存放目錄及一些相關的配置。

二:服務安裝及相關配置詳解

1:安裝httpd伺服器

1.1:安裝伺服器端:httpd及測試工具

[root@xuegod63 ~]# yum install httpd -y

[root@xuegod63 ~]# yum install elinks  -y

[root@xuegod63 ~]# yum install httpd-devel -y

[root@xuegod63 Packages]# yum install elinks  -y

1.2啟動服務

[root@xuegod63 ~]# service httpd restart

[root@xuegod63 ~]# chkconfig httpd on

1.3:檢視端口

[root@xuegod63 ~]# netstat -anutp | grep 80

tcp        0      0 :::80            :::*            LISTEN      3854/httpd

2:服務相關配置檔案

2.1:檢視目錄下相關檔案作用

[root@xuegod63 httpd]# pwd

/etc/httpd

[root@xuegod63 httpd]# ls

conf  conf.d  logs  modules  run

注釋:

Conf 是存放服務的主配置檔案

conf.d 是存放apache的首頁面資訊

2.2:檢視配置資訊

[root@xuegod63 ~]#vim /etc/httpd/conf/httpd.conf

1)apache伺服器的外部相關配置内容

ServerRoot "/etc/httpd"  #apache配置檔案的根目錄

Timeout 60  #逾時時間,即連接配接服務端在60秒内沒有任何操作,即自動斷開

Listen 80   #監聽的端口

ServerAdmin root@localhost  #設定管理者,e-mail 位址

2)apache伺服器的主配置内容

DocumentRoot "/var/www/html"   #網站頁面根目錄,存放文檔的地方

<Directory "/var/www/html">  

Options Indexes FollowSymLinks #O目錄浏覽 #Followsymlinks:可以用連接配接,要是想要禁止顯示檔案目錄,可以直接在‘indexes’前加‘-’。

    AllowOverride None

    Order allow,deny #目錄與通路的控制

    Allow from all 

</Directory>

注釋:Allow,Deny都會讀取,如果有沖突和未說明的時候按照Order選項逗号後面的那個為準。

誰寫到後面,誰的優先級高。

3)别名功能,引用網站根目錄以外的路徑。

Alias /icons/ "/var/www/icons/" #别名和别名目錄

<Directory "/var/www/icons">

    Options Indexes MultiViews FollowSymLinks

    Order allow,deny

    Allow from all

4)網站沒有預設首頁的時候顯示的内容

</Directory> Options Indexes  #當一個目錄沒有預設首頁時,允許顯示此目錄清單

<Directory />

    Options FollowSymLinks

DirectoryIndex index.html index.html.var #指定預設首頁

AddDefaultCharset UTF-8   #設定伺服器的預設編碼為: UTF-8

三:實戰

實戰1:

1:實驗要求

2:實驗步驟

例1:為公司内網搭建一個web伺服器  

(1)apache預設歡迎頁如下圖所示,其歡迎頁的預設目錄為“/etc/httpd/conf.d/welcome.conf”

(2)取消apache預設歡迎頁:它會顯示目錄,清單,圖示

[root@xuegod63 ~]# vim /etc/httpd/conf.d/welcome.conf

#<LocationMatch "^/+$">   #把紅色内容注釋

#    Options -Indexes

#    ErrorDocument 403 /error/noindex.html

#</LocationMatch>

(3)重新建立首頁并重新開機服務

[root@xuegod63 conf.d]# echo 'welcome to www.xuegod.cn!' > /var/www/html/index.html

測試:

LAMP 環境是由多個資料包共同搭建完成的,LAMP = linux+apache+mysql資料庫+php,搭建完成之後,最終會支援php

1:安裝相應的軟體包

[root@xuegod63 ~]# yum install httpd  mysql-server php php-mysql -y

[root@xuegod63 ~]# service mysqld start

[root@xuegod63 ~]# chkconfig mysqld on

2:編寫php首頁文檔

[root@xuegod63 html]# cd  /var/www/html/

[root@xuegod63 html]# vim index.php

<?php

phpinfo();

?>

[root@xuegod63 html]# service httpd restart

3:測試apache是否支援php

例3:修改網頁根目錄及對應參數,設定通路權限

1):建立根目錄并拷貝資料

[root@xuegod63 html]# mkdir bbs

[root@xuegod63 html]# cp -r /boot/grub/ bbs/

[root@xuegod63 bbs]# cp /etc/passwd   /var/www/html/bbs/

2):修改Apache主配置檔案,給其權限

[root@xuegod63 html]# vim /etc/httpd/conf/httpd.conf

改:#DocumentRoot “/var/www/html”

為:DocumentRoot “/var/www/html/bbs”

<Directory "/var/www/html/bbs">      

    Options  FollowSymLinks

    #Allow from all

    allow from 192.168.1.0/24

    deny from 192.168.2.0/24

    allow from .baidu.com

#Allow,Deny都會讀取,如果有沖突和未說明的時候按照Order選項逗号後面的那個為準。

3)重新開機測試

[root@xuegod63 conf]# service httpd restart

例4:使用别名功能,引用網站根目錄以外的路徑

在這裡/phpmyadmin/ "/usr/local/phpmyadmin/ 引用别名功能,實作通路别名直接能夠充分從網頁根目錄進行通路。所謂的别名功能指的就是跳闆原理,将網站根目錄與新建立的目錄關聯起來。當方位新目的之手,直接從新目錄跳轉到網站的根目錄,進而通路到網站的根目錄。

   建立别名目錄,拷貝資料并建立網頁首頁面

[root@xuegod63 ~]# mkdir /usr/local/phpmyadmin

[root@xuegod63 ~]# cp -r /boot/grub/ /usr/local/phpmyadmin/

[root@xuegod63 ~]# echo "wecome to my test" > /usr/local/phpmyadmin/test.html

修改Apache伺服器的主配置檔案

[root@xuegod63 ~]# vim /etc/httpd/conf/httpd.conf

注:Alias /phpmyadmin/ "/usr/local/phpmyadmin/"     #/phpmyadmin/ 可以随意起。比如改/phpmyadmin/ 為/php/  則通路連結: http://192.168.1.63/php

測試

<a href="https://s3.51cto.com/wyfs02/M00/92/36/wKioL1j9brXRadolAABadB_7y28944.png" target="_blank"></a>

<a href="https://s3.51cto.com/wyfs02/M01/92/37/wKiom1j9brbQdFV2AABdxofGPAc829.png" target="_blank"></a>

注釋:這裡做的時候即使不顯示内容,也是正常的。

實戰2:

例6,當一個目錄下沒有預設首頁時,通路http://192.168.1.63/phpmyadmin/禁止顯示目錄清單

當一個目錄下沒有預設首頁時,通路http://192.168.1.63/phpmyadmin/禁止顯示目錄清單

修改配置檔案。在打開軟連結功能。 通過軟體連結直接引用網站根目錄以外的内容。通過使用者認證的方式,對網站下/usr/local/phpmyadmin/目錄進行保護。 設定/usr/local/phpmyadmin/目錄,隻能通過使用者名密碼方式通路。

1)禁止顯示目錄清單

[root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf  # 修改紅色标記内容

Alias /phpmyadmin/ "/usr/local/phpmyadmin/"

&lt;Directory "/usr/local/phpmyadmin/"&gt;

    Options -Indexes FollowSymLinks   #在Indexes 前加-減号,此目錄下沒有預設首頁時,禁止顯示目錄

Order deny,allow

3)通過軟體連結直接引用網站根目錄以外的内容

[root@xuegod63 html]# mkdir /web2

[root@xuegod63 html]# echo "welcome to the test1" &gt; /web2/b.html

[root@xuegod63 html]#  ln -s /web2   /var/www/html/web2 #ln建立軟連接配接,s指原目标

[root@xuegod63 html]#  vim /etc/httpd/conf/httpd.conf

&lt;Directory "/var/www/html/bbs"&gt;

    Options Indexes FollowSymLinks #預設開啟

3)通過使用者認證的方式

方法一:

[root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf   #在需要使用使用者驗證的目錄的相關Directory段落添加以下紅色标記内容:

    Options Indexes FollowSymLinks

    Order deny,allow

    authtype basic

    authname "MySQL admin software......."

    authuserfile /etc/httpd/conf/passwd.secret

    #require user tom

    #require user tom bob

    require valid-user

參數說明:

authtype basic  # 1)authtype指令:指定認證類型為:basic。

authname "MySQL admin software......."   #請不要動我的奶酪

#  AuthName指令:指定認證區域名稱。區域名稱是在提示要求認證的對話框中顯示給使用者的。如圖:

authuserfile /etc/httpd/conf/passwd.secret  #AuthUserFile指令:指定一個包含使用者名和密碼的文本檔案,每行一對。

require指令:指定哪些使用者才能被授權通路。如:

require user user1 user2(隻有使用者user1和user2可以通路)

require valid-user (在AuthUserFile指定的檔案中任何使用者都可以通路)

利用Apache附帶的程式htpasswd,生成包含使用者名和密碼的文本文

[root@xuegod63 phpmyadmin]# htpasswd -h   #檢視參數

-c  Create a new file.

-m  Force MD5 encryption of the password.

[root@xuegod63 conf]# htpasswd -cm 存放使用者名和密碼的檔案名 使用者名

[root@xuegod63 conf]# htpasswd -cm /etc/httpd/conf/passwd.secret tom

New password: 123456

Re-type new password: 123456

Adding password for user tom

#第一個生成使用者名和密碼,需要建立檔案,是以需要加-c參數

[root@xuegod63 conf]# htpasswd -m /etc/httpd/conf/passwd.secret bob

Adding password for user bob

http://192.168.1.63/phpmyadmin/

注釋:這裡記得把之前寫的“禁止顯示目錄清單”的‘-’給去掉。

方法二:

#vim httpd.conf    #在需要使用使用者驗證的目錄的相關Directory段落添加

    AllowOverride AuthConfig

# AllowOverride AuthConfig一行表示允許對/usr/local/phpmyadmin/目錄下的檔案進行使用者認證。

在要保護的目錄下建立一個存放進行使用者認證資訊的檔案:

[root@xuegod63 conf]# vim /usr/local/phpmyadmin/.htaccess  #寫入以下内容

authtype basic

authname "MySQL admin software by .htaccess"

authuserfile /etc/httpd/conf/passwd.secret

#require user tom

require valid-user

[root@xuegod63 conf]# htpasswd -cm /etc/httpd/conf/passwd.secret tom

[root@xuegod63 conf]# htpasswd -m /etc/httpd/conf/passwd.secret bob

[root@xuegod63 conf]# cat /etc/httpd/conf/passwd.secret   #檢視内容

tom:$apr1$WJicnaIz$ejqYMmcqukEMsAVEjLcKf.

bob:$apr1$S8pXfxJh$tletPNMKd33WZXqdkSLFy0

例8 ,配置apache虛拟主機,實作在一台伺服器上運作多個網站

apache虛拟主機實作有三種方法:

1、通過不同的IP位址

2、通過不同的域名

3、通過不同的端口号

三種都需要把虛拟主機功能打開:

[root@xuegod63 html]# vim /etc/httpd/conf/httpd.conf  

改:#NameVirtualHost *:80

為:NameVirtualHost *:80

方法1:1、通過不同的IP位址,解析不同域名

1)給伺服器增加IP(另一個域名解析出來的那個IP)

[root@xuegod63 ~]##ifconfig eth0:1 192.168.1.56 netmask 255.255.255.0

[root@xuegod63 ~]## mkdir  /var/www/html/bbs/

[root@xuegod63 ~]# echo "bbs.xuegod.cn"  &gt; /var/www/html/bbs/index.html

[root@xuegod63 ~]# echo "www.xuegod.cn"  &gt; /var/www/html/index.html

2)修改httpd.conf

#vim httpd.conf   在檔案的最後,添加以下内容

&lt;VirtualHost 192.168.1.63:80&gt;

    ServerAdmin [email protected]

    DocumentRoot /var/www/html/

    ServerName dummy-host.example.com

    ErrorLog logs/dummy-host.example.com-error_log

    CustomLog logs/dummy-host.example.com-access_log common

&lt;/VirtualHost&gt;

&lt;VirtualHost 192.168.1.56:80&gt;

    DocumentRoot /var/www/html/bbs/

3)測試:

http://192.168.1.56/  bbs.xuegod.cn

http://192.168.1.63/  www.xuegod.cn

方法二:通過不同域名:

在域名管理背景,修改DNS配置,www.xuegod.com與bbs.xuegod.com解析成相同的IP。

1)修改httpd.conf

#vim httpd.conf

&lt;VirtualHost *:80&gt;

    DocumentRoot /var/www/html/

    ServerName www.xuegod.cn

    ErrorLog logs/www.xuegod.cn-error_log

    CustomLog logs/www.xuegod.cn-access_log common

&lt;VirtualHost *:80&gt;

    ServerName bbs.xuegod.cn

    ErrorLog logs/bbs.xuegod.cn-error_log

    CustomLog logs/bbs.xuegod.cn-access_log common

2)添加主機域名

[root@xuegod63 ~]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.63   xuegod63.cn

192.168.1.63   www.xuegod.cn

192.168.1.63   bbs.xuegod.cn

192.168.1.64   xuegod64.cn

[root@xuegod63 conf]# service httpd restart

[root@xuegod63 ~]# elinks www.xuegod.cn

[root@xuegod63 ~]# elinks bbs.xuegod.cn

<a href="https://s5.51cto.com/wyfs02/M01/92/37/wKiom1j9bxCxvrImAAA7oz_m2pE231.png" target="_blank"></a>

<a href="https://s2.51cto.com/wyfs02/M02/92/37/wKiom1j9bxCQbchyAAAmCklGN7E340.png" target="_blank"></a>

方法三:基于端口配置虛拟主機:

[root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf   

改: Listen   80  

為:Listen   80  

    Listen   81  #  更改為你要添加的多個端口

1)再建立兩個虛拟主機: 

   [root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf   #  在檔案的最後添加

    ServerName www.example.com

    ErrorLog logs/www.example.com-error_log

    CustomLog logs/www.example.com-access_log common

&lt;VirtualHost *:81&gt;

    DocumentRoot /var/www/html/bbs/

    ServerName bbs.example.com

    ErrorLog logs/bbs.example.com-error_log

    CustomLog logs/bbs.example.com-access_log common

2)

http://192.168.1.63/

http://192.168.1.63:81/

本文轉自 于學康 51CTO部落格,原文連結:http://blog.51cto.com/blxueyuan/1918749,如需轉載請自行聯系原作者