Linux下使用Apache搭建Web網站服務器

實驗目標

apache服務器常見概念

apache服務器安裝及相關配置文件

實戰:

例1:爲公司內網搭建一個web服務器
例2:取消apache默認歡迎頁:
例3:使用rpm搭建lamp 環境
例4, 使用別名,引用網站根目錄以外的路徑。
例6:打開軟鏈接功能。 通過軟件鏈接直接引用網站根目錄以外的內容
例5,當一個目錄下沒有默認首頁時,訪問http://192.168.1.63/phpmyadmin/禁止顯示目錄列表
例7:通過用戶認證的方式,對網站下/usr/local/phpmyadmin/目錄進行保護。


實驗環境
apache服務端:xuegod-63   IP:192.168.1.63
apache客戶端:xuegod-64   IP:192.168.1.64

實驗概述
web服務概述

WEB服務器也稱爲WWW(WORLDWIDE WEB,萬維網)服務器,主要功能是提供網上信息瀏覽服務。

web服務器(web):

PHP: httpd(apache)、nginx

JAVA: tomcat   jsp + html         

.net :  win: IIS

客戶端:IE 、firefox、chrome 、手機(瀏覽器)Browser


apache 概述:

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

圖標

102141i0l9ya09a9z3c53y.jpg

模式:
B/S 模式

端口:

[iyunv@xuegod63 ~]# vim /etc/services

80: http

443:https

實驗腳本
實驗環境搭建

安裝服務器端:httpd

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

[iyunv@xuegod-63 ~]# yum install elinks –y

主配置文件
[iyunv@xuegod-63 ~]# ls/etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
#我們又是怎麼知道httpd的注配置文件是在你那裏的呢?

查看httpd注配置文件位置
[iyunv@xuegod-63 ~]# rpm -pql/mnt/Packages/httpd-2.2.15-15.el6.x86_64.rpm
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf  #這裏的就是httpd的主配置文件

[iyunv@xuegod-63~]#  rpm -pqiopenssh-server-5.3p1-70.el6.x86_64.rpm

重新啓動服務
[iyunv@xuegod-63 ~]# service httpd restart
停止 httpd:                                              [失敗]
正在啓動 httpd:httpd: Could not reliably determine the server's fully qualified domainname, using 192.168.1.63 for ServerName                              [確定]                                                        
或者
[iyunv@xuegod-63 ~]# /etc/init.d/httpdrestart
停止 httpd:                                              [確定]
正在啓動httpd:httpd: Could not reliably determine the server's fully qualifieddomain name, using 192.168.1.63 for ServerName                              [確定]

開機加載與顯示                                                        
[iyunv@xuegod-63 ~]# chkconfig httpd on
[iyunv@xuegod-63 ~]# chkconfig --list httpd
httpd              0:關閉      1:關閉      2:啓用      3:啓用      4:啓用      5:啓用      6:關閉

查看httpd的端口
[iyunv@xuegod-63 ~]# netstat -anutp | grephttpd
tcp       0      0 :::80                       :::*                        LISTEN      10629/httpd      
#可以看到httppd的端口是80,在沒有重新啓動服務之前是不會出現端口號的
也可以反向查看端口
[iyunv@xuegod-63 ~]# lsof -i:80
或者
[iyunv@xuegod-63 ~]# netstat -anutp | grep80


此服務的使用方法
1:通過瀏覽器訪問,直接輸入網址就OK了

2:通過elinks,elinxs  192.168.1.63


實戰舉例

例1:
搭建一臺測試web服務器
案例:
部門內部搭建一臺WEB服務器,採用的IP地址和端口爲192.168.1.63:80,首頁採用index.html
文件。管理員E-mail地址爲 [email protected],網頁的編碼類型採用UTF-8,所有網站資源都存放在/var/www/html目錄下,並將Apache的配置文件根目錄設置爲/etc/httpd目錄。

腳本步驟
[iyunv@xuegod-63~]# vim /etc/httpd/conf/httpd.conf
修改配置文件相關參數:

[iyunv@xuegod63 chroot]#vim /etc/httpd/conf/httpd.conf   #以下參數需要我們掌握
102141sven0z0lvfee3zs3.jpg
#ServerRoot"/etc/httpd"  #apache配置文件的根目錄,”ServerRoot-服務主目錄“
102141sz3v9x2mh9xx9ngj.jpg
#這裏是pid文件
102142l9pnwiy2sjnll9wr.jpg
#Timeout 60  #超時時間  
102142qi4828fiew4ewfei.jpg
#Listen 80   監聽的端口,這裏監聽的是httpd的端口。
102142wgycoomg8mq0aytm.jpg
#ServerAdminroot@localhost  #設置管理員,e-mail地址
102142v5ec5e5cciitcc5l.jpg
#ServerName192.168.1.63:80   #服務器主機名.
102143a2booxwes1v2vy97.jpg
# DirectoryIndexindex.html index.php   #指定默認首頁

102143q3attary9555t2yz.jpg
#這是他的字符
102143gg5y24poy65jyaaz.jpg
#Options Indexes #當一個目錄沒有默認首頁時,允許顯示此目錄列表
102144rqc69926va45vhnx.jpg
#DocumentRoot"/var/www/html"   #網站頁面根目錄

重啓服務
[iyunv@xuegod-63 ~]# /etc/init.d/httpdrestart
停止 httpd:                                              [確定]
正在啓動 httpd:                                           [確定]
網頁上測試
102144vtft9hhjzllfqz89.jpg
#這樣就看到了測試頁面,其實這個測試頁面會暴露很多重要的信息,因此我們要將其關掉!

例2:取消apache默認歡迎頁:
[iyunv@xuegod-63~]# vim /etc/httpd/conf.d/welcome.conf
102144moao577f97o9oxro.jpg
#將下面的幾行給註釋掉

重啓服務
[iyunv@xuegod-63 ~]# /etc/init.d/httpdrestart
停止httpd:                                              [確定]
正在啓動 httpd:                                           [確定]

修改啓動頁面
[iyunv@xuegod-63 ~]# echo 'welcome towww.xuegod.cn!'  >/var/www/html/index.html
102145sanh10sjh5bbo6za.jpg
重新測試
刪除頁面
[iyunv@xuegod-63 ~]# rm -rf /var/www/html/index.html

重新測試
102145jxaofhc7fyc9hhco.jpg


例2:
使用rpm搭建lamp 環境
LAMP = linux+apache+mysql數據庫+php

安裝數據包
[iyunv@xuegod-63 ~]# yum install httpdmysql-server php php-mysql -y
Httpd==阿帕奇
mysql-server==數據庫
php ==php
php-mysql==php相關的插件
或者
mysql-server
rpm -ihv /mnt/Packages/perl-DBD-MySQL-4.013-3.el6.x86_64.rpm
rpm -ihv/mnt/Packages/perl-DBD-MySQL-4.013-3.el6.x86_64.rpm
php
rpm -ivh/mnt/Packages/php-common-5.3.3-26.el6.x86_64.rpm
rpm -ivh/mnt/Packages/php-cli-5.3.3-26.el6.x86_64.rpm
rpm -ivh /mnt/Packages/php-5.3.3-26.el6.x86_64.rpm
php-mysql
m -ivh/mnt/Packages/php-pdo-5.3.3-26.el6.x86_64.rpm
rpm -ivh/mnt/Packages/php-mysql-5.3.3-26.el6.x86_64.rpm

啓動服務
[iyunv@xuegod-63 ~]# service mysqld start

開機加載並測試
[iyunv@xuegod-63 ~]# chkconfig mysqld on
[iyunv@xuegod-63 ~]# mysql
102145m66grdzzp66gppk9.jpg
#可以看到測試的數據庫已經出現,用exit退出,在每一個命令後面都要加“;”。

創建一個測試頁
[iyunv@xuegod-63 ~]# vim/var/www/html/index.php  #在這下面進行編輯
<?php
phpinfo();
?>

重啓服務
[iyunv@xuegod-63 ~]# /etc/init.d/httpdrestart
停止 httpd:                                              [確定]
正在啓動 httpd:                                           [確定]

測試php有沒有起來
102146u0vcboh80zkv2ri1.jpg
#可以看到php已經起來了
這樣lamp就搭建完成了


例3:
修改網根目錄及對應參數,設置訪問權限

創建目錄並拷貝文件
[iyunv@xuegod-63 ~]# mkdir /var/www/html/bbs
[iyunv@xuegod-63 ~]# cp -r /boot/grub//var/www/html/bbs/

修改配置文件
[iyunv@xuegod-63 ~]# vim/etc/httpd/conf/httpd.conf
102146a5dklzvxtk0224cx.jpg
102146roz5ioufcdho3oie.jpg

測試
102147qzrpr1363p0lcz3s.jpg


例4:
使用別名功能,引用網站根目錄以外的路徑。
將/usr/local/phpmyadmin目錄通過虛擬目錄功能添加到網站根目錄。當訪問http://192.168.1.63/phpmyadmin/ 時,就可以訪問目錄/usr/local/phpmyadmin中的內容。
注:apache的別名也叫虛擬目錄
語法:
Alias URL路徑   PATH物理路徑

[iyunv@xuegod-63 ~]# vim/etc/httpd/conf/httpd.conf
Alias /icons/ "/var/www/icons/"
/icons/ "#引用的別名
/var/www/icons/"#真實的路徑

查看路徑
102147hspgugvxyolaomum.jpg
創建目錄與拷貝
[iyunv@xuegod-63 ~]# mkdir/usr/local/phpmyadmin
[iyunv@xuegod-63 ~]# cp -r /boot/grub//usr/local/phpmyadmin/

添加
[iyunv@xuegod-63 ~]# echo "test1"> /usr/local/phpmyadmin/a.html

修改配置文件
[iyunv@xuegod-63 ~]# vim/etc/httpd/conf/httpd.conf
102147o2vicihp3v2gzn0g.jpg

重啓服務
[iyunv@xuegod-63 ~]# /etc/init.d/httpdrestart
停止 httpd:                                               [確定]
正在啓動 httpd:                                           [確定]

測試
102148u5zl8o25iv4hhmho.jpg
真正的地址
[iyunv@xuegod-63 ~]# ls/usr/local/phpmyadmin
a.html  grub

5
當一個目錄下沒有默認首頁時,訪問http://192.168.1.63/phpmyadmin/禁止顯示目錄列表
102148tve3dr3a667dxcec.jpg
#現在我們是可以訪問到這裏的,我們要實現目標,不能夠訪問到這裏

修改配置文件:
[iyunv@xuegod-63 ~]# vim/etc/httpd/conf/httpd.conf
102148npnyvyvbbydqhlbb.jpg
#在Indexes前加-減號,此目錄下沒有默認首頁時,禁止顯示目錄

重啓服務
[iyunv@xuegod-63 ~]# /etc/init.d/httpdrestart
停止 httpd:                                              [確定]
正在啓動 httpd:                                           [確定]

測試
102149o1al21jl2xvj4tcd.jpg
#現在可以看到,而且已經打不開這裏了
102149j44di4dqmeb6fcmz.jpg
#在後面追加a.html,仍然能夠打開。

例6:
打開軟鏈接功能。 通過軟件鏈接直接引用網站根目錄以外的內
創建一個目錄並拷貝
[iyunv@xuegod-63 ~]# ls/usr/local/phpmyadmin/
a.html grub
[iyunv@xuegod-63 ~]# mkdir /web2
[iyunv@xuegod-63 ~]# cp /etc/passwd /web2

創建一個軟連接
[iyunv@xuegod-63 ~]# ln -s /web2//usr/local/phpmyadmin/web2
[iyunv@xuegod-63 ~]# ls/usr/local/phpmyadmin/
a.html grub  web2
#我們可以看到web2以被成功設置成軟連接

這個時候在將主配置文件中的禁用給消除,並且重啓服務
[iyunv@xuegod-63 ~]# vim/etc/httpd/conf/httpd.conf
[iyunv@xuegod-63 ~]# /etc/init.d/httpdrestart
停止 httpd:                                              [確定]
正在啓動 httpd:                                           [確定]

測試
102149k4esc5qfow8ss85c.jpg
#點擊web2軟連接
102150hcpj57en42cf7pac.jpg
#有我們剛纔所拷貝的passwd的文件了

例7:

通過用戶認證的方式,對網站下/usr/local/phpmyadmin/目錄進行保護-設置密碼。 設置/usr/local/phpmyadmin/目錄,只能通過用戶名密碼方式訪問。


實驗前
102150tywu9b9ogeuypzjb.jpg
#在實驗前我們是可以進入/usr/local/phpmyadmin/這裏的

方法一:
修改配置文件
[iyunv@xuegod-63 ~]# vim /etc/httpd/conf/httpd.conf   #在需要使用用戶驗證的目錄的相關Directory段落添加以下紅色標記內容:
<Directory "/usr/local/phpmyadmin/">
    Allow from all
    authtype basic  #這些都是後添加的命令
    authname "MySQL adminsoftware......."
    authuserfile /etc/httpd/conf/passwd.secret
    #require user tom                                    
    #require usertom bob
    require valid-user
</Directory>
參數說明:                       
authtype basic  # 1)authtype命令:指定認證類型爲:basic。
authname "MySQLadmin software......."   #請不要動我的奶酪
#  AuthName命令:指定認證區域名稱。區域名稱是在提示要求認證的對話框中顯示給用戶的。如圖:

創建用戶並加密

利用Apache附帶的程序htpasswd,生成包含用戶名和密碼的文本文件

[iyunv@xuegod-63~]# htpasswd –cm #存放用戶名和密碼的文件名 用戶名

[iyunv@xuegod-63 ~]# htpasswd -cm/etc/httpd/conf/passwd.secret yu

New password: 123456

Re-type new password123456:

Adding password for user yu  #此用戶是創建了文件和加密

[iyunv@xuegod-63 ~]# htpasswd -m/etc/httpd/conf/passwd.secret mk

New password: 123456

Re-type new password123456:

Adding password for user mk #此用戶只加了密,但沒有創建文件

#在第一次創建用戶的時候,需要加 “–c”的命令,是創建用戶文件的意思,那麼在創建第二個用戶端 時候就不能在加“-c”的命令了。因爲你要是在加這個命令的話,它就會默認自動的將第一個用戶給取代了,也就是說最終創建完成之後,只有最後一個用戶存在了。

equire命令:指定哪些用戶才能被授權訪問。如:

require user user1 user2(只有用戶user1和user2可以訪問)

require valid-user (在AuthUserFile指定的文件中任何用戶都可以訪問

查看一下用戶信息

[iyunv@xuegod-63 ~]# cat /etc/httpd/conf/passwd.secret

yu:$apr1$w8uubsVD$oT0TMoaeHmL4QdpP.E6OG/

mk:$apr1$7SAJo3uT$2IXlCcw4lpOmvO3Jt2itj0

#第一個生成用戶名和密碼,需要創建文件,因此需要加-c參數

查看htpasswd的命令參數
[iyunv@xuegod-63 ~]# htpasswd -h
Usage:
-c  Create a new file. #創建文件
-n Don't update file; display results on stdout.
-m Force MD5 encryption of the password. #加密碼
-d Force CRYPT encryption of the password (default).

重啓服務
[iyunv@xuegod-63 ~]# /etc/init.d/httpdrestart
停止 httpd:                                               [確定]
正在啓動 httpd:                                           [確定]

測試
102151ne21s4eeq2qszbec.jpg
#現在我們登陸的時候都需要賬戶和密碼纔可以登錄進去的 。

方法二:
實驗前:
將方法一的配置文件給刪掉,測試登陸不需要賬戶密碼驗證

修改配置文件
[iyunv@xuegod-63 ~]# vim/etc/httpd/conf/httpd.conf  #在需要使用用戶驗證的目錄的相關Directory段落添加
102151joljj6l3tbobjh1g.jpg

在要保護的目錄下創建一個存放進行用戶認證信息的文件:

[iyunv@xuegod-63 ~]# 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

創建用戶並加密
[iyunv@xuegod-63 ~]# htpasswd -cm/etc/httpd/conf/passwd.secret xiaoyu
New password: 123456
Re-type new password:123456
Adding password for user xiaoyu
[iyunv@xuegod-63 ~]# htpasswd -m/etc/httpd/conf/passwd.secret laoyuyu
New password: 123456
Re-type new password:123456
Adding password for user laoyuyu

查看用戶信息
[iyunv@xuegod-63 ~]# cat/etc/httpd/conf/passwd.secret
xiaoyu:$apr1$QIoDvMMg$FSjvjuQFONXrRushKtset.
laoyuyu:$apr1$uYUPxAGL$m0tBTAH47zYdkWA8Q3TVZ0
#可以看到用戶都是加密的

重啓服務
[iyunv@xuegod-63 ~]# /etc/init.d/httpdrestart
停止 httpd:                                              [確定]
正在啓動 httpd:                                           [確定]

測試
102151k25q99eztteqodec.jpg
102152ulu87x5ng8e58e7m.jpg

例8:
配置apache虛擬主機,實現在一臺服務器上運行多個網站

apache虛擬主機實現有三種方法:
1、通過不同的IP地址
2、通過不同的域名
3、通過不同的端口號
三種都需要把虛擬主機功能打開:

修改配置文件---開啓虛擬主機
[iyunv@xuegod-63 ~]# vim/etc/httpd/conf/httpd.conf
102152vduf47l4fojwj37a.jpg
改:
#NameVirtualHost *:80
爲:
NameVirtualHost *:80

方法1:1、通過不同的IP地址,解析不同域名
給服務器增加IP(另一個域名解析出來的那個IP)
添加一個網卡並加ip地址
[iyunv@xuegod-63 ~]# ifconfig eth0:1192.168.1.56 netmask 255.255.255.0
[iyunv@xuegod-63 ~]# mkdir /var/www/html/bbs  #創建一個目錄

將兩個網址加入進去
[iyunv@xuegod-63 ~]# echo"bbs.xuegod.cn" > /var/www/html/bbs/index.html
[iyunv@xuegod-63 ~]# echo"www.xuegod.cn" > /var/www/html/index.html
查看
[iyunv@xuegod-63 ~]# ls /var/www/html/
bbs index.html


修改配置文件
102152k9iizwmwoz1oedo9.jpg

重啓服務
[iyunv@xuegod-63 ~]# /etc/init.d/httpdrestart
停止 httpd:                                              [失敗]
正在啓動 httpd:[Fri Aug 21 18:28:24 2015] [warn] NameVirtualHost *:80 has no VirtualHosts
                                                          [確定]

測試
102153x5blonrrvlntxeu5.jpg

102153gck6hzvkk61jtkwh.jpg
#在方法1.1中是具有缺陷的,它是比較佔網絡資源的。

方法二:通過不同域名:
在域名管理後臺,修改DNS配置,www.xuegod.com與bbs.xuegod.com解析成相同的IP。
修改配置文件—在方法一的配置文件基礎之上進行修改
[iyunv@xuegod-63 ~]# vim/etc/httpd/conf/httpd.conf
102153mpe6fe9rrw9w1r3y.jpg
修改的腳本如下
DocumentRoot /var/www/html/
    ServerName www.xuegod.cn
    ErrorLoglogs/www.xuegod.cn-error_log
    CustomLoglogs/www.xuegod.cn-access_log common
<VirtualHost *:80>
    [email protected]
    DocumentRoot /var/www/html/bbs/
    ServerName bbs.xuegod.cn
    ErrorLoglogs/bbs.xuegod.cn-error_log
    CustomLoglogs/bbs.xuegod.cn-access_log common

Hosts進行解析ip
102154bcugeuvdghuhi82w.jpg

重啓服務
[iyunv@xuegod-63 ~]# /etc/init.d/httpdrestart
停止 httpd:                                              [確定]
正在啓動 httpd:                                           [確定]

測試
102154zivt2zz6995nio9o.jpg
102154fzcjkzxk67qfafcu.jpg



在windows下

路徑如下
102155a0k0t1fhhlqqwh0u.jpg


以文本的格式打開,在後面添加


102155g6klhnk6b1kth0p0.jpg


注:對於這個文本文件在沒有給權限之前是無法保存的,所以要點擊屬性,中找到安全,給權限!

測試
102155ttbeirkq1gltaaii.jpg
102155yrpsrdvyr5yvrhrc.jpg





方法3:基於端口配置虛擬主機:
修改配置文件
[iyunv@xuegod63 conf]# vim/etc/httpd/conf/httpd.conf   
102156eqe6ytysx37q7n3p.jpg
改:
Listen   80  
爲:
Listen   80  
Listen   81  
#  
更改爲你要添加的多個端口
102156oq0661z1p88zm8y8.jpg

重啓服務
[iyunv@xuegod-63 ~]#/etc/init.d/httpd restart
停止 httpd:                                              [確定]
正在啓動 httpd:                                           [確定]

測試

102156rsej2j9grlvjtjzz.jpg
102157ronnuo1b2b1qcur1.jpg






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