基於 Linux 安裝 web 服務及基本配置

在網絡環境中,web 服務無疑是最爲流行的應用系統。有了 web 站點,企業能夠充分展現本身的做品,宣傳企業形象。web 站點還爲企業提供了與客戶交流、電子商務交易平臺等豐富的網絡應用。
Apache HTTP Server 是 ASF 旗下著名的軟件項目,其正式名稱是「httpd」,也就是歷史上的 Apache 網站服務器。
那咱們爲何不選擇使用系統盤中的httpd服務呢,由於系統盤中的httpd不方便更新,麻煩。
Apache 的話不論是卸載仍是更新新版本,都很方便。
Apache 的主要特色:
一、開放源代碼
二、跨平臺使用
三、支持各類 Web 編程語言
四、模塊化設計
五、運行穩定
六、良好的安全性
下面是Apache 的源碼編譯安裝包,須要能夠下載,也可自行從網頁上下載:
https://pan.baidu.com/s/1LFabNY2sbFqnPI1lluuV2w
提取碼:olpz html

接下來咱們就能夠來安裝 httpd 服務了
準備工做:node

爲了不發生端口衝突、程序衝突等現象,咱們可使用:
rpm   -qa  |  grep   httpd   (查詢系統中的httpd)
若是有的話 ,使用 :rpm -e httpd --nodeps  (nodeps:不檢測依賴關係)

Apache 的配置及運行須要幾個軟件包的支持,所以咱們須要從系統光盤中預先安裝這些軟件及其開發包(devel) 以便提供相應的庫和頭文件。
基於 Linux 安裝 web 服務及基本配置
依賴包都安裝完畢後,咱們將下載得到的 httpd 源碼包解壓並釋放到 /usr/src 中,而後切換到源碼目錄中:web

[root@localhost tmp]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/
#-C 指定解壓到的位置

配置:
根據服務器的實際應用須要,能夠靈活設置不一樣的定製選項(須要的話能夠執行 「./configure --help 獲取」)shell

[root@localhost httpd-2.4.25]# ./configure   --prefix=/usr/local/httpd   --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
--prefix:指定將 httpd 服務程序安裝到那個目錄下
--enable-so:啓用動態加載模塊支持
--enable-rewrite:啓用網頁地址重寫功能
--enable-charset-lite:啓動字符集支持
--enable-cgi:啓用 CGI 腳本程序支持

接下來,編譯及安裝:apache

[root@localhost httpd-2.4.25]# make && make install    
& make :進行編譯,將源代碼轉換爲可執行的程序    
& make install :將編譯完的 httpd 程序及相關目錄、文件複製到預設的安裝目錄(--prefix 選項指定)

確認安裝結果:
[root@localhost /]# /usr/local/httpd/bin/apachectl start # 執行此命令啓動服務
啓動以後能夠執行此命令查看 tcp 的80端口有沒有啓用:編程

[root@localhost /]# netstat -anpt | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      20412/httpd

基於 Linux 安裝 web 服務及基本配置
經過源碼編譯安裝的 httpd 服務,程序路徑並不在默認的搜索路徑中,執行起來比較麻煩,爲了使該服務使用時更加方便,能夠爲相關程序添加符號連接vim

[root@localhost httpd-2.4.25]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
[root@localhost httpd-2.4.25]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl 
lrwxrwxrwx 1 root root 28 7月  27 17:08 /usr/local/bin/apachectl -> /usr/src/httpd/bin/apachectl
lrwxrwxrwx 1 root root 24 7月  27 17:08 /usr/local/bin/httpd -> /usr/src/httpd/bin/httpd

而後再執行的話就不用輸入冗長的路徑了,例如,當執行「httpd -v」 命令(查看程序版本)時,至關於執行「/usr/local/httpd/bin/httpd -v」安全

[root@localhost httpd-2.4.25]# httpd -v
Server version: Apache/2.4.25 (Unix)
Server built:   Jul 27 2019 16:48:44

添加 httpd 爲系統服務:
Centos 7 系統下,將編譯安裝的程序添加爲系統服務有兩種方式:
一、經過 chkconfig 命令添加,而後由 systemctl 進行管理;咱們須要創建可控的服務腳本,例如,可將 apachectl 腳本複製爲 /etc/init.d/httpd 並在文件開頭添加 chkconfig 識別配置bash

[root@www /]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@www /]# vim /etc/init.d/httpd 
 #!/bin/bash   // shell環境
 #chkconfig: 35 85 21    //服務識別參數 在級別三、5中啓動 啓動和關閉的順序分別是8五、21
 #description: Apache HTTP Server   //服務描述信息
[root@www /]# chkconfig --add httpd   // 將httpd添加爲系統服務

二、在/lib/systemd/system/目錄下,手動編寫以.service結尾的單元 (unit)配置文件。內容以下:服務器

[root@www /]# vim /lib/systemd/system/httpd.service 
[Unit]
Description=The Apache HTTP Server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/httpd/bin/apachectl $OPTIONS
ExecReload=/bin/kill  -HUP  $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=graphical.target

基於 Linux 安裝 web 服務及基本配置
編寫完 httpd.service 文件後,執行以下命令設置 httpd 開機啓動:

[root@www /]# systemctl enable httpd.service 
Created symlink from /etc/systemd/system/graphical.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@www /]# systemctl is-enabled httpd.service 
enabled

httpd.conf 是 httpd 服務的主配置文件。
若要向 Internet 中發佈一個 web 站點,須要申請一個合法的 IP地址,並向 DNS服務器提供商註冊一個完整的網站名稱。
配置httpd服務:編輯主配置文件,查找配置項 ServerName,在附近添加內容,用於設置網站名稱

[root@www /]# vim usr/local/httpd/conf/httpd.conf 
……//省略部份內容
ServerName www.test.com
……//省略部份內容

修改完畢以後可使用帶「-t 」 選項的 apachectl 命令進行語法檢測,顯示以下表示正確

[root@www /]# apachectl -t
Syntax OK

部署網頁文檔:網站根目錄位於 /usr/local/httpd/htdocs 下

[root@www /]# cat /usr/local/httpd/htdocs/index.html 
<html><body><h1>It works!</h1></body></html>

若想經過域名訪問httpd服務器,須要在客戶機上指定DNS服務器地址或在hosts文件中增長 httpd服務器的 IP解析記錄。
DNS參考文章:https://blog.51cto.com/14227204/2384462

httpd 服務器使用了兩種類型的日誌:訪問日誌和錯誤日誌。這兩種日誌分別爲 access_log 和 error_log ,均位於/usr/localhttpd/logs 目錄下,經過查看訪問日誌,能夠及時瞭解 web站點的訪問狀況。

[root@www /]# tail /usr/local/httpd/logs/access_log 
192.168.1.123 - - [27/Jul/2019:18:00:13 +0800] "GET / HTTP/1.1" 200 45
192.168.1.123 - - [27/Jul/2019:18:00:13 +0800] "GET /favicon.ico HTTP/1.1" 404 209
192.168.1.123 - - [27/Jul/2019:18:00:17 +0800] "GET / HTTP/1.1" 304 -
192.168.1.123 - - [27/Jul/2019:18:00:17 +0800] "GET /favicon.ico HTTP/1.1" 404 209
192.168.1.123 - - [27/Jul/2019:18:00:18 +0800] "GET / HTTP/1.1" 304 -

httpd 各主配置項含義以下:
基於 Linux 安裝 web 服務及基本配置
基於 Linux 安裝 web 服務及基本配置
以上只是 httpd中比較主要的全局配置項,還有不少其餘的,在此就不一一列舉了
除了全局配置項之外,httpd.conf 文件中的大多數配置是包括在區域中的。區域配置項使用一對組合標記,限定了配置項的做用範圍,例如,最多見的目錄區域配置的形式以下:
基於 Linux 安裝 web 服務及基本配置在以上區域定義中,設置了一個根目錄的區域配置,其中添加的訪問控制相關配置只對根目錄有效,而不會做用於全局或其餘區域。(注意:這裏的根目錄是指httpd服務器 server root 指定的值,而不是Centos 7 系統的根目錄)

相關文章
相關標籤/搜索