在Internet網絡環境中,Web服務無疑是最爲流行的應用系統。有了Web站點,企業能夠充分的展現本身的產品,宣傳企業形象。Web站點還爲企業提供了與客戶交流,電子商務交易平臺等豐富的網絡應用,部署與維護Web服務是運維工程師必須掌握的一個技能。html
Windows搭建Web服務能夠參考博文:Windows server 2016 搭建IIS(web)服務node
若是想要在Centos 7 利用Apache搭建網站服務,必需要了解的知識點有:web
Apache的起源apache
1.Apache HTTP Server是開源軟件項目的傑出表明,基於標準的HTTP網絡協議提供網頁瀏覽服務,Apache服務器能夠運行在Linux、UNIX、Windows等多種操做系統中;編程
2.Apache服務器是針對以前出現的若干個Web服務器程序進行整合,完善後造成的軟件,其名稱來源於「A Patchy Server」,意思就是「基於原有Web服務程序的代碼進行修改(補丁)後造成的服務器程序」;vim
3.目前Apache項目一直由ASF負責管理和維護。ASF的官方網站是http://www.apache.org安全
Apache的主要特色:bash
安裝httpd服務器
在配置Apache網站服務以前,須要正確安裝好httpd服務器軟件。httpd服務器的安裝能夠選用RPM安裝、源碼編譯安裝這兩種方式。前者相對比較簡單、快速,可是在功能上存在必定的侷限性,在實際的生產環境中,使用源代碼編譯安裝的方式的方式要更加廣泛。服務器
本次實驗將如下載的源碼包httpd-2.4.25.tar.gz爲例,介紹安裝過程。(源碼包httpd-2.4.25.tar.gz網盤連接:
https://pan.baidu.com/s/1_2qj0o11Ykt6DcS7dh0q0g
提取碼:87e4 )網絡
操做步驟:
具體實驗步驟
1、準備工做
爲了不發生端口衝突、程序衝突等現象,建議卸載使用RPM方式安裝的httpd。
[root@localhost ~]# rpm -e httpd --nodeps 錯誤:未安裝軟件包 httpd
Apache的配置及運行須要apr、pcre等軟件包的支持,所以應從系統光盤鏡像中預先安裝這些軟件及其開發包(devel),以便提供相應的支持,確保Apache的安裝順利完成。
須要的rpm軟件包有:
[root@localhost Packages]# rpm -ivh apr-1.4.8-3.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-devel-1.4.8-3.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh cyrus-sasl-devel-2.1.26-20.el7_2.x86_64.rpm [root@localhost Packages]# rpm -ivh expat-devel-2.1.0-8.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh libdb-devel-5.3.21-19.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh openldap-devel-2.4.40-13.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh pcre-devel-8.32-15.el7_2.1.x86_64.rpm [root@localhost Packages]# rpm -ivh pcre-8.32-15.el7_2.1.x86_64.rpm
按照順利安裝完成。
2、源碼編譯安裝
將下載好的源代碼httpd-2.4.25.tar.gz上傳到服務器本地,接下來開始編譯安裝。
1.解包
[root@localhost ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src [root@localhost ~]# cd /usr/src/httpd-2.4.25/
2.配置
根據服務器的實際應用須要,能夠靈活設置不一樣的定製項,若要獲知可用的各類配置選項及其含義,能夠執行「 ./configure --help」命令,「/」表示當前目錄,下面配置一些最經常使用的配置項:
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
上述配置命令中,各選項的含義:
3.編譯及安裝
完成配置後,執行「make」命令進行編譯,將源代碼轉換爲可執行的程序;而後執行「make install」命令完成最後的安裝過程。
[root@localhost httpd-2.4.25]# make && make install
3、確認安裝目錄
因爲指定的是安裝目錄爲/usr/local/httpd,所以httpd服務的各類程序、模塊、幫助文件都將複製到此目錄下。
[root@localhost httpd-2.4.25]# ls /usr/local/httpd bin cgi-bin error icons logs manual build conf htdocs include man modules
在安裝後的/usr/local/httpd目錄下,主要子目錄的用途:
httpd服務的目錄結構:
主要的目錄和文件
- 服務目錄:/usr/local/httpd/
- 主配置文件:/usr/local/httpd/conf/httpd.conf
- 網頁目錄:/usr/local/httpd/htdocs/
- 服務腳本:/usr/local/httpd/bin/apachectl
- 執行程序:/usr/local/httpd/bin/httpd
- 訪問日誌: /usr/local/httpd/log/access_log
- 錯誤日誌: /usr/local/httpd/log/error_log
4、優化執行路徑
經過源碼安裝的httpd服務,程序路徑並不在默認的搜索路徑中,爲了使該服務在使用時更加方便,能夠爲相關程序添加符號連接。
[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 30 7月 13 19:20 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectl lrwxrwxrwx. 1 root root 26 7月 13 19:20 /usr/local/bin/httpd -> /usr/local/httpd/bin/httpd
這樣在執行相關的命令就不須要輸入冗長的路徑了。好比:
[root@localhost httpd-2.4.25]# httpd -v //查看程序版本 Server version: Apache/2.4.25 (Unix) Server built: Jul 13 2019 18:49:20
5、添加httpd系統服務
CentOS 7系統下,將編譯安裝的程序添加爲系統服務有兩種方式:
①經過chkconfig命令添加爲系統服務,而後由systemctl進行管理(注意,經過這種方式不能設置程序開機自啓動);
②在/lib/systemd/system/目錄下,手動編寫以.service結尾的單元(unit)配置文件。
1)使用chkconfig添加系統服務
若但願將httpd添加爲系統服務,以便經過chkconfig進行管理,須要創建可控的服務器腳本。
[root@localhost ~]# cp /usr/local/httpd//bin/apachectl /etc/init.d/httpd [root@localhost ~]# vim /etc/init.d/httpd //添加以下內容 #!/bin/bash # chkconfig: 35 85 21 \\服務識別參數,在級別三、5中啓動;啓動和關閉的順序分別爲8五、21 #description: Startup script for the Apache HTTP Server \\服務描述信息,能夠忽略 ………… //忽略部份內容 [root@localhost httpd-2.4.25]# chkconfig --add httpd \\添加httpd爲系統服務 [root@localhost httpd-2.4.25]# systemctl start httpd //啓動httpd服務 [root@localhost httpd-2.4.25]# chkconfig --level 35 httpd on //設置httpd服務爲開機自啓動 [root@localhost httpd-2.4.25]# systemctl is-enabled httpd httpd.service is not a native service, redirecting to /sbin/chkconfig. Executing /sbin/chkconfig httpd --level=5 enabled //查看httpd服務是否爲開機自啓動,enabled爲開機自啓動
2)創建[service].service配置文件
在/lib/systemd/system/目錄下,創建一個以.service結尾的單元(unit)配置文件,用於控制httpd服務。配置內容分爲三部分:
①控制單元(unit)的定義;
②服務[service]的定義;
③安裝部分[install]。
具體內容,以下:
[root@localhost ~]# 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
配置文件的個配置項的做用,如圖所示:
httpd.service文件編寫完成後,就能夠設置開機自啓動了
[root@localhost ~]# systemctl enable httpd //設置開機自啓動 Created symlink from /etc/systemd/system/graphical.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. [root@localhost ~]# systemctl is-enabled httpd //查看自啓動服務狀態 enabled
經過Apache搭建的httpd服務已經完成!客戶端就已經能夠訪問了,可是咱們來認識一些基本的配置:
1、配置並啓動服務
1.配置httpd服務
編輯httpd服務的主配置文件httpd.conf,查找到配置項「ServerName」去除前面「#」號便可!(若是有合法的域名,建議修改爲合法的域名,未來經過域名訪問)
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf ………… //省略部份內容 ServerName www.example.com:80 ………… //省略部份內容
修改完成後,建議使用帶「-t」選項的apachectl命令對配置文件進行語法檢查!
[root@localhost ~]# apachectl -t Syntax OK
2.啓動httpd服務
[root@localhost ~]# systemctl start httpd //啓動httpd服務 [root@localhost ~]# netstat -anpt | grep httpd //查看監聽端口 tcp6 0 0 :::80 :::* LISTEN 59183/httpd
2、部署網頁文檔
httpd服務器已提供了一個名爲index.html的測試網頁,作爲訪問網站的默認首頁(能夠自行編輯)!
[root@localhost ~]# cat /usr/local/httpd/htdocs/index.html <html><body><h1>It works!</h1></body></html>
3、客戶機訪問
客戶機經過IP訪問
若是須要使用https的方式訪問,則須要:
[root@localhost yum.repos.d]# yum -y install mod_ssl \\安裝所選的ssl模塊 [root@localhost yum.repos.d]# systemctl restart httpd \\從新啓動httpd服務
客戶機訪問測試:
使用https訪問,默認的首頁時,將顯示APache官網首頁!
若是須要域名訪問,須要搭建DNS服務,搭建DNS服務能夠參考博文CentOS 7搭建DNS服務
4、查看Web站點的訪問狀況
httpd服務器使用兩種類型的日誌:訪問日誌和錯誤日誌。
經過查看訪問日誌文件access_log,能夠及時瞭解Web站點的訪問狀況。
訪問日誌中每行對應一條訪問記錄,記錄了客戶機的IP地址、訪問服務器的日期和時間、請求的網頁對象等信息。
[root@localhost ~]# tail /usr/local/httpd/logs/access_log 192.168.1.100 - - [13/Jul/2019:20:29:40 +0800] "GET / HTTP/1.1" 200 45
經過查看錯誤日誌err_log,能夠爲排查服務器運行故障提供參考依據。
錯誤日誌文件中每行對應一條錯誤記錄,記錄了發生錯誤的日期和時間、錯誤事件類型、錯誤時間的內容描述等。
上述過程是使用Apache搭建Web服務器的基本步驟,其中涉及httpd.conf配置文件的改動量很是少,要搭建一臺簡單的Web服務器仍是很是簡單的。
咱們來認識httpd服務的主要配置文件及各項的含義:
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf ServerRoot "/usr/local/httpd" Listen 80 User daemon Group daemon ServerAdmin you@example.com ServerName www.example.com:80 DocumentRoot "/usr/local/httpd/htdocs" DirectoryIndex index.html ErrorLog "logs/error_log" LogLevel warn CustomLog "logs/access_log" common PidFile "logs/httpd.pid" AddDefaultCharset UTF-8 Include conf/extra/httpd-default.conf
上述設置行中,各全局配置項的含義,如圖:
以上配置項是Httpd.conf文件中主要的全局配置項,還有不少其餘的配置項,在此就不一一介紹了,若是有須要能夠查看Apache服務器中的相關幫助手冊。