linux學習 Apache
Apache的基本安裝
<一>Apache簡介
一、Apache的主要優點:
支援HTTP/1.1協議:實現了HTTP/1.1與HTTP/1.0相容;
支援CGI協議:使用mod_cgi模組來支援CGI功能。
支援HTTP認證:
Apache支援虛擬主機:即在一臺伺服器上使用不同的主機名來提供多個HTTP服務等等
二、Apache的軟體安裝及基本配置檔案
(1)rpm -qa | grep httpd
yum install httpd -y ##Apache被重新命名為HTTP
(2)安裝成功後生成的主要檔案及目錄有:
1.apache的預設釋出目錄及檔案:
/var/www/html ##預設目錄
/var/www/html/index.html ##預設釋出檔案
2.apache的配置檔案:
/etc/httpd/conf/httpd.conf ##Apache的主配置檔案
/etc/httpd/conf.d/*.conf ##apache的子配置檔案
(3)apache的預設埠:80埠
可以使用命令來檢視Apache是否已經監聽80埠
netstat -an |grep :80
為保證客戶端能夠訪問Apache服務,可以在防火牆中開放對80埠的限制,命令如下:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
<二>Apache的基本配置
一、修改預設釋出檔案
vim /etc/httpd/conf/httpd.conf
164行原內容為:DirectoryIndex index.html ##預設釋出檔案為/var/www/html/index.html
修改為:DirectoryIndex westos.html ##預設釋出檔案為westos.html
:wq
二、修改預設釋出目錄
1.先建立目錄
mkdir /westos/www/test -p ##第歸建立目錄/westos/www/test
vim /westos/www/test/westos.html ##編輯預設釋出檔案
2.修改預設釋出目錄
vim /etc/httpd/conf/httpd.conf
編輯:
120DocumentRoot "/westos/www/test" ##預設釋出目錄為/westos/www/test
<Directory "/westos/www/test">
Require all granted ##授權
</Directory>
原內容如下:
修改後內容如下:
3.systemctl restart httpd ##一定要重啟服務
三、.測試:在客戶端訪問http://172.25.254.109
注意:當訪問時出現下列現象,需檢查selinux是否是enforcing狀態。若是enforcing狀態,則需要更改為disabled狀態或者檢視並更改預設釋出檔案的安全上下文。
檢視檔案安全上下文:
cd /westos/www/test
ls -Z
安全上下文修改:semanage fcontext -a -t http_sys_content_t '/westos(/.*)?'
restorecon -RvvF /westos ##重新整理
或者:檢視selinux狀態,編輯配置檔案使selinux為disabled狀態
vim /etc/selinux/config
SELINUX=disabled
:wq
reboot
<三>設定IP訪問
一、設定IP訪問許可權vim /etc/httpd/conf/httpd.conf
1.去掉119行註釋,使預設釋出目錄/var/www/html生效
164行改回:DirectoryIndex index.html
2.cd /var/www/html
mkdir admin ##新建目錄
cd admin
vim index.html ##編輯釋出檔案
3.vim /etc/httpd/conf/httpd.conf
編輯:
(1) ##允許所有人訪問admin目錄但是拒絕IP為172.25.254.90的機主
124 <Directory"/var/www/html/admin">
125 order Allow,Deny
126 Allow from All
127 Deny from 172.25.254.90
128</Directory>
:wq
重啟HTTP服務
在172.25.254.90主機測試結果如下:
在其他主機測試結果如下:
(2)#只允許172.25.254.90的機主訪問
124<Directory "/var/www/html/admin">
125 order Deny,Allow
126 Allow from 172.25.254.90
127 Deny from All
128</Directory>
:wq
重啟服務
在172.25.254.109主機測試如下:
在其他主機測試如下:
<三>設定使用者的訪問
1.對釋出目錄加密
[root@localhosthtml]# htpasswd -cm /etc/httpd/accessuser admin ##對該目錄加密
Newpassword: ##不顯行輸入密碼
Re-typenew password: ##不顯行確認密碼
Addingpassword for user admin ##設定成功
可以檢視密碼:cat /etc/httpd/accessuser
2.編輯配置檔案
vim /etc/httpd/conf/httpd.conf
124<Directory "/var/www/html/admin">
125 AllowOverride All ##允許使用目錄中.htaccess檔案
126 AuthUserFile /etc/httpd/accessuser ##設定檔案密碼的路徑
127 AuthName "Please input your name andpassword!" ##在瀏覽器訪問時顯示的內容
128 AuthType basic ##使用者認證的型別是由mod_auth提供的basic
129 Require valid-user ##定義允許訪問的使用者
##Require user admin 也可以用此命令來定義可以訪問的使用者
130</Directory>
:wq
3.systemctl restart httpd
4.測試:
若輸入正確的使用者和密碼即可訪問成功:
若輸入密碼或使用者錯誤會顯示“Authorization Required”的錯誤資訊
<四>Apache語言支援
1.php語言
vim /var/www/html/index.php
<?php
phpinfo();
?>
systemctl restart httpd
2.cgi語言
(1)mkdir /var/www/html/cgi
cd /var/www/html/cgi
(2)vim index.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date` ; ##執行該命令
:wq
(3)執行指令碼
perl index.cgi ##執行指令碼
chmod +x index.cgi ##新增執行許可權
則可以執行該命令來執行指令碼: ./index.cgi
3.客戶端訪問設定
(1)http服務端
vim /etc/httpd/conf/httpd.conf
編輯內容如下:
<Directory"/var/www/html/cgi">
Options+ExecCGI
AddHandler cgi-script.cgi
</Directory>
:wq
(2)systemctl restart httpd ##重啟服務
(3)在客戶端訪問:172.25.254.109/cgi/index.cgi,即在客戶端執行該檔案內容
<五>Apache的虛擬主機配置
一、定義:可以讓一臺Apache伺服器在被訪問不同域名時,顯示不同的主頁
二、配置過程
(1)先建立不同域名的預設釋出目錄及預設釋出檔案
mkdir /var/www/virtual -p
mkdir /var/www/virtual/news.westos.com -p
mkdir /var/www/virtual/news.westos.com/html -p ##建立news.westos.com網頁的預設釋出目錄
cd /var/www/
echo "news.westos.com'page" >virtul/news.westos.com/html/index.html
##建立news.westos.com的預設釋出檔案
(2)配置子配置檔案:指定域名的預設釋出目錄及預設釋出檔案
cd /etc/httpd/conf.d ##訪問其他域名時預設執行該檔案內容
vim default.conf
<Virtualhost _default_:80> ##訪問預設80埠時看以下檔案內容
DocumentRoot "/var/www/html" ##預設釋出目錄為/var/www/html
CustomLog "logs/default.log"combined ##將Apache的四種日誌檔案均記錄
</Virtualhost>
注:Apache的有四種日誌型別:被訪問時的日誌、拒絕訪問的日誌、警告日誌、Apache出現報錯的日誌
(3)systemctl restart httpd ##重啟服務
(4)測試端
1.修改本機解析
vim /etc/hosts
IP news.westos.com www.westos.com
2.瀏覽器端訪問:news.westos.com
(5)vim news.westos.conf ##子配置檔案
<Virtualhost *:80>
Servername "news.westos.com" ##訪問域名news.westos.com
DocumentRoot "/var/www/virtual/news.westos.com/html" ##設定預設釋出目錄
CustomLog "logs/news.log" combined
</Virtualhost>
<Directory"/var/www/virtual/news.westos.com/html"> ##授權,任何使用者訪問時都可以讀該目錄中內容
Require all granted
</Directory>
(3)systemctl restart httpd ##重啟服務
(3)測試端
1.修改本機解析
vim /etc/hosts
IP news.westos.com www.westos.com
3.瀏覽器端訪問:news.westos.com
(5)vim money.westos.conf
<Virtualhost *:80>
Servername "money.westos.com" ##訪問域名money.westos.com
DocumentRoot "/var/www/virtual/money.westos.com/html" ##設定預設釋出目錄
CustomLog "logs/news.log" combined
</Virtualhost>
<Directory "/var/www/virtual/money.westos.com/html"> ##授權,任何使用者訪問時都可以讀該目錄中內容
Require all granted
</Directory>
:wq
(7)重啟服務
(8)測試端訪問money.westos.com
<六>網頁訪問https
一、下載相關軟體
1.yum install mod_ssl -y ##下載加密認證模組
2.yum install crypto-utils ##下載證照
3.執行命令:genkey www.westos.com ##生成該網頁的證照和金鑰
如下:選擇密碼長度
如下生成密碼過程中,需要敲鍵盤或者移動滑鼠
如下:選擇將不給CSR傳送認證申請
二、建立域名預設目錄及檔案
1.cd /var/www/virtual
mkdir login.westos.com/html -p
vim /var/www/virtual/login.westos.com/html/index.com
<h1>login.westos.com</h1>
2.vim /etc/httpd/conf.d/login.conf ##寫子配置檔案
<Virtualhost *:443> ##設定以下內容訪問的埠是443,即https訪問
Servername "login.westos.com" ##域名login.westos.com
DocumentRoot "/var/www/virtual/login.westos.com/html"
CustomLog "logs/login.log" combined ##儲存日誌
SSLEngine on ##開啟網路認證
SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt ##證照檔案所在位置
SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key ##認證金鑰所在位置
</Virtualhost>
<Directory"/var/www/virtual/login.westos.com/html"> ##授權
Require all granted
</Directory>
3.systemctl restart httpd
4.測試端:
vim /etc/hosts
Ip login.westos.com ##解析
再訪問:https:login.westos.com
會出現以下提示資訊,選擇risk
再選擇獲得證照或認證
檢視證照資訊
(4)網頁重寫
vim /etc/httd/cond.g/login.conf
新增內容如下
<Virtualhost *:80> ##當域名訪問埠80時,即http訪問,執行以下內容
Servername login.westos.com
RewriteEngine on ##域名重寫功能開啟
RewriteRule ^ (/.*)$ https://%{HTTP_HOST}$1 [redirect=301] ##將所有字元臨時轉換為https格式的字元
</Virtualhost>
###[redirect=301]:表示臨時轉換
###[redirect=302]:表示永久轉換
:wq
(5)systemctl restart httpd
(6)測試
在證照所在端進行訪問先作地址解析
vim /etc/login.westos.com
172.25.254.109 login.westos.com
:wq
再訪問:login.westos.com
相關文章
- Apache學習筆記Apache筆記
- 如何解決apache 403錯誤問題?Linux學習教程ApacheLinux
- Apache Oozie學習筆記(一)Apache筆記
- Apache Hadoop Yarn 學習(二)ApacheHadoopYarn
- Apache ShenYu 學習筆記一Apache筆記
- apache學習筆記一(安裝apache2+php+resin)(轉)Apache筆記PHP
- Apache、NGINX、Tomcat的優缺點介紹!Linux雲端計算學習ApacheNginxTomcatLinux
- 關於Apache Tika的學習和使用Apache
- 為Apache Spark準備的深度學習ApacheSpark深度學習
- Linux該如何學習呢?Linux學習分享!Linux
- linux學習Linux
- 學習LinuxLinux
- centos5.4之apache學習筆記(一)CentOSApache筆記
- Linux運維需要持續學習嗎?Linux學習Linux運維
- Linux學習心得Linux
- 如何學習LinuxLinux
- Linux 學習概述Linux
- Linux學習04Linux
- Linux 命令學習Linux
- Linux學習(二)Linux
- IT民工學習——linuxLinux
- linux學習列表Linux
- LInux iptables學習Linux
- linux 學習之路Linux
- linux 學習 大全Linux
- linux 學習類Linux
- linux sed學習Linux
- Linux學習之旅Linux
- Apache Paimon流式湖倉學習交流群成立ApacheAI
- 偽靜態和重定向(apache)學習筆記Apache筆記
- 高中程度可以學習Linux嗎?Linux運維學習Linux運維
- 為什麼要學習Linux?如何學習Linux技術?Linux
- 學習Linux哪個比較好?入門學習LinuxLinux
- 怎樣系統的學習linux?Linux學習路線!Linux
- 報班學習Linux貴嗎?學習Linux怎麼樣?Linux
- 掌握Linux技能的學習方法有什麼?Linux學習Linux
- Linux基礎學習-Docker學習筆記LinuxDocker筆記
- 學習Linux運維有哪些學習方法?Linux運維