您好,登錄后才能下訂單哦!
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:準許軟連接到其他目錄
AllowOverrideNone
#定義是否允許目錄下
.htaccess文件中的權限生效
None:.htaccess中權限不生效
All:文件中所有權限都生效
AuthConfig:文件中,只有網頁認證的權限生效。
Require all granted 訪問控制列表
#定義此目錄的允許訪問權限
以下5個例子都是在Require allgranted緊下面插入(很重要)
例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 fullyqualified domain name, using localhost.localdomain. Set the 'ServerName'directive globally to suppress this message
解決辦法:打開主配置文件httpd.conf
搜索ServerName (約在200行左右)
修改為 ServerName localhost:80(并且去掉前面的#注釋)
實驗一:目錄別名
可以使特定的網站程序不出現在網站根目錄下面,而這樣的話,就可以避免和原來的程序本身發生混淆和沖突;縮短網頁目錄的縱深,減少URL的長度。
1. 打開apache主配置文件
#Includeetc//extra/httpd-autoindex.conf (將#號去掉)
2. 進到子配置文件目錄extra下,打開httpd-autoindex.conf
仿照例子寫一個別名:
Alias /a/ "/www/a/" #實際目錄結束要有/
<Directory"/www/a/">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
在/www/a/目錄下手動創建index.html文件
3. 將apache服務重啟:
/usr/local/apache2/bin/apachectlstop
/usr/local/apache2/bin/apachectlstart
注:重啟源碼包安裝的apache需要先關閉,再啟動。
4. 驗證試驗結果:
打開瀏覽器輸入 服務器IP/a/ (最后的“/”必須有)
實驗二:用戶認證
提高網站安全性,保護個別頁面的信息,限制特定目錄,只有指定用戶可以訪問。
1.打開主配置文件在最下面添加:
<Directory"/usr/local/apache2/htdocs/baohu"> #被保護目錄
Options Indexes
AllowOverride All #(開啟權限認證文件.htaccess)
Require all granted
</Directory>
2.在指定目錄下創建權限文件:
cd /usr/local/apache2/htdocs/baohu
Vi .htaccess #添加下面的內容
AuthName"50 docs" #提示信息
AuthTypebasic #加密類型
AuthUserFile/usr/local/apache2/htdocs/baohu/apache.passwd
#密碼文件,文件名自定義。(但是路徑要對,使用絕對路徑)
requirevalid-user #允許密碼文件中所有用戶訪問
3.使用命令生成密碼文件apache.passwd,加入允許訪問的用戶。(此用戶和系統用戶無關)
Htpasswd
–c /usr/local/apache2/htdocs/baohu/apache.passwd test1
-c 建立密碼文件,只有添加第一個用戶時,才能-c
htpasswd
-m /usr/local/apache2/htdocs/baohu/apache.passwd test2
-m 再添加更多用戶時,使用-m參數
4. 驗證訪問:(自己手動去目錄下創建index.html文件)
瀏覽器輸入 服務器IP/baohu/index.html
實驗三:***虛擬主機***
虛擬主機的分類:
1) 基于IP的虛擬主機:一臺服務器,多個ip,搭建多個網站
Ifconfig eth0:0 IP #建立網卡子端口
2) 基于端口的虛擬主機:一臺服務器,一個ip,搭建多個網站,每個網絡使用不同端口訪問
3) 基于名字的虛擬主機:一臺服務器,一個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 webmaster@sina.com #管理員郵箱
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 webmaster@sohu.com
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 域名
實驗四:rewrite重寫功能
在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>
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
3. 重啟服務器,進行訪問驗證
靜態向動態跳轉:
1. 修改虛擬主機配置文件
vi */extra/httpd-vhosts.conf
<Directory "/usr/local/apache2/htdocs/sohu">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
2. 創建規則文件
vi */.htaccess
RewriteEngine on
RewriteRule index(\d+).html index.php?id=$1
#輸入index(數值).html時,跳轉到index.php文件
3. 重啟服務,進行訪問驗證
驗證方式:在*/htdocs/sohu/目錄下新建index.php文件
訪問www.sohu.com/index(數值).html看訪問的是否是你的index.php的網頁
注:靜態網頁向動態網頁跳轉這個實驗,只有完整的lamp環境下才能訪問。
四、常用子配置文件
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 #語言編碼
要使其生效需要在主配置文件中打開,如果中文亂碼不是瀏覽器編碼的原因可能是此配置文件注釋沒打開。
五、yum安裝apache后的虛擬主機
目的:實現apache的虛擬主機 和 DNS的搭配使用
應用技術:基于域名的虛擬主機 和 基于IP的虛擬主機
前提:1、一臺雙網卡的WEB服務器,eth0-192.168.115.195
eth2-192.168.115.199
2、一臺DNS服務器eth0-192.168.115.194
3、一臺客戶機192.168.115.200
5.1、規劃
網站 IP DocumentRoot ServerAdmin
---------------------------------------------------------------------www.163.com 192.168.115.195 /www/163.com www.163.com
www.sina.com 192.168.115.195 /www/sina.com www.sina.com
www.sohu.com 192.168.115.195 /www/sohu.com www.sohu.com
www.baidu.com 192.168.115.199 /www/baidu.com www.baidu.com
www.baidu.com是基于IP的
---------------------------------------------------------------------
5.2、配置DNS服務器
5.2.1、配置本地yum源,安裝軟件bind
啟動服務service named start
5.2.2、配置網卡服務并重啟網絡服務
service network restart
5.2.3、配置主配置文件named.conf
刪除其他所有多余行,只保存下面的內容
5.2.4、配置數據配置文件
創建相關域名的正向解析文件并更改所有者為 named
配置各個相關域名的正向解析文件
163.com
sina.com
Sohu.com
Baidu.com(基于IP的虛擬主機)
重啟DNS服務 service named restart
5.3、配置115.200客戶機測試
此處使用的是Win客戶機,配置如下:
測試
5.4、配置apache服務器
5.4.1、配置網卡并重啟網絡服務
Eth0
Eth2
重啟網絡服務service network restart
5.4.2、配置本地yum源,安裝httpd
yum -y install httpd
service httpd start
5.4.3、創建相關目錄及主頁
實現重啟服務時不出現warning信息
vi /etc/httpd/conf/httpd.conf
ServerName www.example.com:80 //改成192.168.115.195:80
配置Apache實現虛擬主機
vi /etc/httpd/conf/httpd.conf
NameVirtualHost *:80// 改為NameVirtualHost 192.168.115.195:80,IP是本機的IP
NameVirtualHost 192.168.115.195:80支持基于主機名的虛擬主機
vi /etc/httpd/conf/httpd.conf 主配置文件最下面添加以下內容
5.4.4、測試驗證
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。