Apache超文字傳輸協議(http)
Apache的基本配置
首先使用yum命令安裝httpd服務
yum install httpd -y
然後關閉防火牆,開啟httpd服務
systemctl stop firewalld.service
systemctl start httpd
httpd的基本配置檔案為/etc/httpd/conf/httpd.conf
我們可以使用vim進入檢視或者修改其中的一些引數
預設的釋出目錄為/var/www/html
預設的釋出檔案為index.html
我們可以編輯/var/www/html下的index.html檔案如下
vim /var/www/html/index .html
然後在瀏覽器中輸入本機ip,有如下的效果
如果需要修改預設釋出目錄,需要將SELinux設定為disabled然後,進入主配置檔案中修改
vim /etc/httpd/conf/httpd.conf
假設我要將預設釋出目錄設定為我新建的一個目錄
mkdir /test/www -p
然後進入配置檔案中修改如下(先註釋119行原先的目錄)
然後重啟服務即可
systemctl restart httpd
tips:
如果在SElinux是enforcing的狀態下,我們可以進行以下操作來解決上下文不匹配的問題
semanage fcontext -a -t httpd_sys_content_t '/test(/.*)?'
restorecon -RvvF /test/
apache虛擬主機
如果是同一個站點的不同網頁,好比騰訊,www.qq.com與news.qq.com都是同一個IP,在這時就需要用到虛擬主機,虛擬主機配置的方法與流程大致如下
首先我們先將測試頁建立好
cd /var/www/
mkdir virtual/news.test.com/html -p
echo "<h1>news.test.com's page</h1>" > virtual/news.test.com/html/index.html
配置預設的配置檔案
vim /etc/httpd/conf.d/default.conf
<Virtualhost _default_:80>
DocumentRoot "/var/www/html"
CustomLog "logs/default.log" combined
</Virtualhost>
vim /etv/httpd/conf.d/news.conf #配置子配置檔案
<Virtualhost *80> #虛擬主機的開啟埠
ServerName "news.test.com" #主機名
DocumentRoot "/var/www/virtual/news.test.com/html"#預設釋出目錄
CustomLog "logs/new.log" combined #目錄
</Virtualhost>
<Directory "/var/www/virtual/news.test.com/html">
Require all granted#預設釋出目錄授權
</Directory>
重啟服務
systemctl restart network
然後修改/etc/hosts下檔案進行測試
IP地址 www.test.com news.test.com
最後測試效果為
apache使用者登入訪問釋出目錄的設定
首先我們建立使用者的目錄
cd /var/www/html/
mkdir admin
vim index.html
接下來,開始設定使用者的訪問
htpasswd -m -c /etc/httpd/accessuser admin
設定使用者名稱為admin,然後密碼為redhat
然後進入主配置檔案中進行修改
158<Directory "/var/www/html/admin">
159 AuthUserFile /etc/httpd/accessuser #使用者認證檔案
160 AuthName "please input your name and password!"#使用者認證提示資訊
161 AuthType basic #認證型別
162 Require valid-user#認證使用者,認證檔案使用者中所有可以訪問
163 </Directory>
重啟服務
systemctl restart httpd
最後的測試效果如下
輸入使用者和密碼之後,頁面如下
自定義證書
HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
首先我們安裝ssl和加密的軟體
yum install mod_ssl -y
yum intall crypto-utils -y
然後執行genkey命令加密 www.test.com網頁
然後copy下證書檔案的絕對地址和金鑰的絕對地址
/etc/pki/tls/cert/www.westos.com.crt
/etc/pki/tls/private/www.test.com.key
然後進入ssl配置檔案中進行以下修改
vim /etc/httpd/conf.d/ssl_conf
然後進入子配置檔案中修改如下
vim /etc/httpd/conf.d/login.conf
<Virtualhost *:443>
ServerName "login.test.com"
DocumentRoot "/var/www/virtual/login.test.com/html"
CustomLog "logs/login.log" combined
SSlEngine on #開啟https的功能
SSLCertificateFile /etc/pki/tls/cert/www.westos.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.test.com.key##證書檔案與金鑰檔案
</Virtualhost>
<Directory "/var/www/virtual/login.test.com/html">
Require all granted
</Directory>
<Virtualhost *:80>##網路重寫自動訪問https
ServerName login.test.com
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</Virtualhost>
tips:
在RULE中
^(/.*)
^(/.*)
301代表臨時重定向,302代表永久重定向
然後重啟httpd服務即可
systemctl restart httpd
apache的語言支援
http預設支援的有三種指令碼語言
1.html
2.php
3.cgi
html之前已經演示過了,主要是php和cgi的使用
php語言只需要安裝一個php支援的庫
yum install php -y
cgi指令碼