本節所講內容:
• apache服務器常見概念
• apache服務器安裝及相關配置文件
• 實戰:
例1:為公司內網搭建一個web服務器
例2:取消apache默認歡迎頁:
例3:
使用rpm搭建lamp 環境
例3:修改網根目錄及對應參數,設置訪問權限
例4, 使用別名,引用網站根目錄以外的路徑。
例6: 打開軟鏈接功能。 通過軟件鏈接直接引用網站根目錄以外的內容
例5,當一個目錄下沒有默認首頁時,訪問http://192.168.1.63/phpmyadmin/禁止顯示目錄列表
例7:通過用戶認證的方式,對網站下/usr/local/phpmyadmin/目錄進行保護。
學習一個服務的過程:
1、 此服務器的概述:名字,功能,特點,端口號2、 安裝3、 配置文件的位置4、 服務啟動關閉腳本,查看端口5、 此服務的使用方法6、 修改配置文件,實戰舉例7、 排錯(從下到上,從內到外)
apache
服務端:xuegod63.cn IP:192.168.1.63
web
服務概述:
WEB
服務器也稱為WWW(WORLD WIDE WEB,萬維網)服務器,主要功能是提供網上信息瀏覽服務。
常風web服務器(web):
httpd (apache)、nginxtomcatwin: IIS
客戶端:IE、firefox、chrome
apache 概述:
Apache HTTP Server (簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,可以在大多數計算機操作系統中運行,由於其多平台和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠並且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。
安裝服務器端:httpd
[root@xuegod63 ~]# yum -yinstall httpd
httpd-2.2.3-11.el5.i386.rpm :Apache 服務的主程序包,服務器端必須安裝該軟件包httpd-devel-2.2.3-11.el5.i386.rpm :Apache 開發程序包httpd-manual-2.2.3-11.el5.i386.rpm :Apache 手冊文檔,包含HTML 格式的Apache 計划的
Apache User's Guide 說明指南
注:
httpd-devel-2.2.3-11.el5.i386.rpm
包要解決以下兩個依賴關系:
apr-devel-1.2.7-11.i386.rpmapr-util-devel-1.2.7-6.i386.rpm
安裝字符界面的下瀏覽器客戶端:
elinks
[root@xuegod63 ~]# yum -yinstall elinks或者使用rpm命令手動安裝以下2個軟件包nss_compat_ossl-0.9.6-1.el6.x86_64elinks-0.12-0.21.pre5.el6_3.x86_64
使用方法:
[root@xuegod63 ~]# elinkswww.baidu.com[root@xuegod63 ~]# elinks192.168.1.63
配置文件
[root@xuegod63 ~]# ls/etc/httpd/conf/httpd.conf/etc/httpd/conf/httpd.conf
啟動服務
[root@xuegod63 ~]#service httpd restart停止 httpd: [確定]正在啟動httpd: [確定]
查看端口監聽狀態
[root@xuegod63 ~]#netstat -antpu | grep 80tcp 0 0 192.168.1.63:51905 23.62.109.73:80 ESTABLISHED 2727/clock-applettcp 0 0 :::80 :::* LISTEN 2966/httpdudp 0 0 fe80::20c:29ff:fee0:19a9:123 :::* 1988/ntpd
修改配置文件,實戰舉例
例1:
搭建一台測試web服務器
案例:
部門內部搭建一台WEB服務器,采用的IP地址和端口為192.168.1.63:80,首頁采用index.html文件。管理員E-mail地址為 xuegod@xuegod.cn ,網頁的編碼類型采用UTF-8,所有網站資源都存放在/var/www/html目錄下,並將Apache的配置文件根目錄設置為/etc/httpd目錄。
安裝服務器:
[root@xuegod63 ~]# yum -yinstall httpd 剛才已安裝不在重復安裝[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf
修改配置文件相關參數:
[root@xuegod63 ~]# vim /etc/httpd/conf/httpd.conf # 以下參數需要我們掌握57 ServerRoot "/etc/httpd"#apache 配置文件的根目錄70 Timeout 60 # 超時時間,接收和發送前超時秒數136 Listen 80 # 監聽的端口262 ServerAdmin root@localhost # 設置管理員,e-mail 地址277 ServerName 192.168.1.163:80 # 服務器主機名.
293 DocumentRoot "/var/www/html" # 網站頁面根目錄
Options Indexes FollowSymLinks #當一個目錄沒有默認首頁時,允許顯示此目錄列表
禁止 Apache 顯示目錄結構列表,只需將 Option 中的 Indexes 去掉即可
403 DirectoryIndex index.html index.html.var#
指定默認首頁
編碼:
AddDefaultCharset UTF-8 # 設置服務器的默認編碼為:UTF-8
例2:取消apache默認歡迎頁:
[root@xuegod63 ~]# vim/etc/httpd/conf.d/welcome.conf## This configuration fileenables the default "Welcome"# page if there is nodefault index page present for# the root URL. To disable the Welcome page, comment# out all the linesbelow.##<LocationMatch"^/+$"> # 把紅色內容進行注釋# Options -Indexes# ErrorDocument 403 /error/noindex.html#</LocationMatch>
重啟:
[root@xuegod63 ~]#service httpd restart
創建首頁文件
[root@xuegod63 ~]# echo'welcome to www.xuegod.cn' >/var/www/html/index.html 注:selinux 關閉 getenforce查看

例3:
使用rpm搭建lamp 環境
LAMP = linux+apache+mysql 數據庫+php[root@xuegod63 ~]# yum -yinstall httpd mysql-server php php-mysql
測試數據庫
[root@xuegod63 ~]# servicemysqld start[root@xuegod63 ~]#chkconfig mysqld on[root@xuegod63 ~]# mysqlmysql> show databases;mysql>exit;[root@xuegod63 ~]# cd/var/www/html/[root@xuegod63 html]# vimindex.php<?phpphpinfo();?>
重啟apache服務
[root@xuegod63 html]#service httpd restart
MaxClients 256 # 設置客戶端最大連接數為 256
例4:修改網站根目錄及對應參數,設置訪問權限
例:
設置文檔目錄為/var/www/html/bbs
目錄與訪問控制:
<Directory "/var/www/html/bbs"> # 子目錄會繼承這個目錄的屬性Options FollowSymLinks #Options:Indexes: 目錄瀏覽 #Followsymlinks:可以用連接AllowOverrideNone # 不允許任何OverrideOrderallow,denyAllow from192.168.1.0/24 # 從哪里來的允許Deny from 192.168.1.0/24 #從哪里來的拒絕Allow from .baidu.com#Allow,Deny 都會讀取,如果有沖突和未說明的時候按照Order選項逗號后面的那個為准。誰寫到后面,誰的優先級高。</Directory>配置完重啟apache服務如果報錯檢查目錄是否已創建?
測試:
service httpd restart # 拒絕
例5, 使用別名功能,引用網站根目錄以外的路徑。
將/usr/local/phpmyadmin 目錄通過虛擬目錄功能添加到網站根目錄。當訪問http://192.168.1.63/phpmyadmin/ 時,就可以訪問目錄/usr/local/phpmyadmin中的內容。
注:apache的別名也叫虛擬目錄
語法:
Alias URL 路徑 PATH物理路徑
創建測試目錄和數據
[root@xuegod63 ~]# mkdir/usr/local/phpmyadmin[root@xuegod63 ~]# cp -r/boot/grub/ /usr/local/phpmyadmin/[root@xuegod63 ~]# echo"test1" >/usr/local/phpmyadmin/a.html
修改配置文件
[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf
Alias /phpmyadmin"/usr/local/phpmyadmin/"<Directory"/usr/local/phpmyadmin/">Options Indexes MultiViews FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all</Directory>
注:Alias/phpmyadmin/ "/usr/local/phpmyadmin/" #/phpmyadmin/ 可以隨意起。比如改/phpmyadmin/ 為/php/ 則訪問鏈接: http://192.168.1.63/php/
例5,當一個目錄下沒有默認首頁時,訪問http://192.168.1.63/phpmyadmin/禁止顯示目錄列表
修改配置文件:
[root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf # 修改紅色標記內容Alias /phpmyadmin/ "/usr/local/phpmyadmin/"<Directory "/usr/local/phpmyadmin/">Options -Indexes FollowSymLinks # 在Indexes 前加-減號,此目錄下沒有默認首頁時,禁止顯示目錄AllowOverrideNoneOrderdeny,allowAllow from all</Directory>
例6: 打開軟鏈接功能。通過軟件鏈接直接引用網站根目錄以外的內容
root@xuegod63 ~]# mkdir/web2[root@xuegod63 ~]# echotest1 > /web2/a.html[root@xuegod63 ~]# ln -s/web2/ /var/www/html/web2[root@xuegod63 ~]# rm -rf/var/www/html/index.html[root@xuegod63 ~]# rm -rf/var/www/html/index.php[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf
例7:通過用戶認證的方式,對網站下/usr/local/phpmyadmin/目錄進行保護。 設置/usr/local/phpmyadmin/目錄,只能通過用戶名密碼方式訪問。
方法一:
Alias /phpmyadmin/ "/usr/local/phpmyadmin/"<Directory "/usr/local/phpmyadmin/">Options IndexesFollowSymLinksAllowOverrideNoneOrderdeny,allowAllow from allauthtype basic # 基本認證authname "MySQL admin software"authuserfile /etc/httpd/conf/passwd.secret # 密文配置文件路徑#require usertom#require usertom bobrequire valid-user # 有效用戶</Directory>重啟apache 訪問 http://192.168.1.63/phpmyadmin驗證
生成認證賬號和密碼
[root@xuegod63 ~]#htpasswd -cm /etc/httpd/conf/passwd.secret manNew password:Re-type new password:Adding password for user man
驗證:

方法二:
[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf<Directory"/usr/local/phpmyadmin/">Options Indexes MultiViews FollowSymLinksAllowOverride NoneOrder allow,denyAllow from allAllowOverride AuthConfig</Directory># AllowOverride AuthConfig一行表示允許對/usr/local/phpmyadmin/目錄下的文件進行用戶認證。
[root@xuegod63 ~]# vim/usr/local/phpmyadmin/.htaccessauthtype basicauthname "MySQL admin software by .htaccess"authuserfile /etc/httpd/conf/passwd.secret#require user tomrequire valid-user
例8 ,配置apache虛擬主機,實現在一台服務器上運行多個網站
apache
虛擬主機實現有三種方法:
1 、通過不同的IP地址2 、通過不同的域名3 、通過不同的端口號
[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf
改:
#NameVirtualHost*:80為:NameVirtualHost*:80
方法1:通過不同的IP地址,解析不同的域名
給服務器增加IP(另一個域名解析)
[root@xuegod63 ~]# ifconfigeth0:1 192.168.1.65[root@xuegod63 ~]# mkdir/var/www/html/bbs[root@xuegod63 ~]# echo"bbs.xuegod.cn" >/var/www/html/bbs/index.html[root@xuegod63 ~]# echo"www.xuegod.cn" > /var/www/html/index.html
修改httpd.conf
[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf<VirtualHost192.168.1.63:80>ServerAdmin root@xuegod.cnDocumentRoot /var/www/html/ServerName www.xuegod.cnErrorLog logs/www.xuegod.cn-error_logCustomLog logs/www.xuegod.cn-access_logcommon</VirtualHost><VirtualHost 192.168.1.65:80>ServerAdmin root@xuegod.cnDocumentRoot /var/www/html/bbs/ServerName bbs.xuegod.cnErrorLog logs/bbs.xuegod.cn-error_logCustomLog logs/bbs.xuegod.cn-access_logcommon</VirtualHost>
重啟服務
service httpd restart測試:http ://192.168.1.63http ://192.168.1.64
方法2:通過不同的域名配置虛擬主機
#vim httpd.conf改:#NameVirtualHost *:80NameVirtualHost192.168.1.63
方法2:通過不同的域名配置虛擬主機
#vim httpd.conf
改:#NameVirtualHost *:80
NameVirtualHost192.168.1.63<VirtualHostwww.xuegod63.cn>ServerAdmin root@xuegod.cnDocumentRoot /var/www/html/ServerName www.xuegod.cnErrorLog logs/www.xuegod.cn-error_logCustomLog logs/www.xuegod.cn-access_logcommon</VirtualHost><VirtualHostbbs.xuegod63.cn>ServerAdmin root@xuegod.cnDocumentRoot /var/www/html/bbs/ServerName bbs.xuegod.cnErrorLog logs/bbs.xuegod.cn-error_logCustomLog logs/bbs.xuegod.cn-access_logcommon</VirtualHost>
重啟服務
service httpd restart
修改電腦hosts文件C:\Windows\System32\drivers\etc\hosts作解析:
192.168.1.63 www.xuegod63.cn192.168.1.63 bbs.xuegod63.cn
方法3:通過不同的端口配置虛擬主機
[root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf改:Listen 80
為:Listen 80Listen 8080# 更改為你要添加的端口
再創建2個虛擬主機
<VirtualHost *:80>ServerAdmin root@xuegod.cnDocumentRoot /var/www/html/ServerName www.xuegod.cnErrorLog logs/www.xuegod.cn-error_logCustomLog logs/www.xuegod.cn-access_logcommon</VirtualHost><VirtualHost *:8080>ServerAdmin root@xuegod.cnDocumentRoot /var/www/html/bbs/ServerName bbs.xuegod.cnErrorLog logs/bbs.xuegod.cn-error_logCustomLog logs/bbs.xuegod.cn-access_logcommon</VirtualHost>
重啟服務
service httpd restart
驗證:
