幾種中間件:
IIS、Apache、Nginx
幾種架構:
LAMP、LNMP、LNMPA
yum倉庫的格式
[ ]
name=
baseurl=
enable=
gpgcheck=
多個源的情況下,網絡源以速度優先,本地源以字母優先,混合的情況下,最新版本優先,都是最新的情況下,本地爲主
下載軟件包:httpd
下載完成後,需要啓動該服務,並加入開機啓動項
出現默認頁面的可能性:
- 網站目錄內無文件
- 無權限
網絡默認路徑:/var/www/html
編輯index.html
更換網站默認路徑,如/home/wwwroot(home目錄下是用戶的私有文件,正常來說一般服務不能訪問到)
- 找到主配置文件:/etc/httpd/conf/httpd.conf
- DocumentRoot
- <Directory>
- 新建文件夾
- 重啓服務(此時還是出席默認頁面)
- 編輯index.html
- 刷新(此時出現報錯,因爲SELinux)
SELinux功能:
- 管理SELinux域:對服務功能進行限制
- 管理SELinux安全上下文:限制文件權限
查看SELinux上下文:ls -ldZ /var/www/html
SELinux主配置文件:/etc/selinux/config
- 狀態:enforce/permissive/disable(強制開啓/警告/禁用)
SELinux命令:
- setenforce:0/1—臨時關閉/開啓SELinux
- setsebool:設置SE布爾值
- getsebool:獲取SE布爾值(需要加-a參數)
- semanage:管理SELinux上下文(semanage fcontext -a -t XXXXX /dir)(後面沒有斜槓)
- restorecon:讓SELinux值立即生效(restorecon -Rv /dir)
批量新建網站:
- 用戶目錄:/etc/httpd/conf.d/userdir.conf
- UserDir XXXXX(每個用戶在自己的家目錄中新建XXX目錄,然後就有自己的網站功能了)
- 更改目錄讀寫權限:chmod -Rf 777 XXXX
- 重啓httpd
- 訪問:http://XX.XX.XX.XX/~(用戶名)—SELinux阻斷訪問
- 修改SELinux域:setsebool -P httpd_enable_homedirs=on
需要密碼訪問:
- htpasswd -c /etc/httpd/passwd xiaoqi
- xiaoqi是專門用來做網站驗證的
- 開啓密碼訪問:/etc/httpd/conf.d/userdir.conf
- 最末行添加
- 重啓服務
<Directory "/home/*/public_html">
allowoverride all #是否允許僞靜態(默認允許)
authuserfile /etc/httpd/passwd #密碼存放位置
authname xxxxxxxxx #描述信息
authtype basic #驗證類型
require user xiaoqi #用戶名稱
虛擬網站主機(在一個主機內部署多個網站)
- 主機上配置多個IP
- 網站主目錄下新建多個目錄
- 目錄中新建index.html
- 在httpd主配置文件中啓用虛擬主機功能(A)
- 重啓服務
- 設置SELinux(semanger,沒有-R遞歸參數)
- 生效(restorecon -Rv /XXXXX)
(A)
<Virtualhost 192.168.10.10 #虛擬網站主機IP>
Documentroot /XXXXX #虛擬網站主機主目錄
servername www.xxxx.com #虛擬網站主機域名
<directory /XXXXX> #設置虛擬網站主機目錄權限
allowoverride none #是否允許僞靜態
require all granted #允許所有人的請求
</directory>
</Virtualhost>
hosts文件
- 存在路徑/etc/hosts
- 強制解析
- 192.168.10.10 www.xxxxx.com
開啓端口訪問
- 配置httpd主配置文件:listen XXX
- 在虛擬網站主機配置中,添加IP的時候後面接上端口
- semanage port -l | grep http(查看httpd服務監聽端口)
- semanage port -a -t http_port_t -p -tcp XXXX(以上屬於SELinux域的範疇)
設置訪問條件
- 編輯httpd主配置文件:在網站directory參數裏面,加上setenvif
- 如setenvif User -Agent “Firefox” ff=1 #ff的意思是前面的env定義爲ff,=1的意思是啓用該策略
- 寫上策略:Order
Order allow,deny #先allow,後deny
allow from env=ff #如果env是ff的話,放行