在Internet網(wǎng)絡(luò)環(huán)境中,Web服務(wù)無疑是最為流行的應(yīng)用系統(tǒng)。有了Web站點,企業(yè)可以充分的展示自己的產(chǎn)品,宣傳企業(yè)形象。Web站點還為企業(yè)提供了與客戶交流,電子商務(wù)交易平臺等豐富的網(wǎng)絡(luò)應(yīng)用,部署與維護Web服務(wù)是運維工程師必須掌握的一個技能。
Windows搭建Web服務(wù)可以參考博文:Windows Server 2016 搭建IIS(web)服務(wù)
如果想要在CentOS 7 利用Apache搭建網(wǎng)站服務(wù),必須要了解的知識點有:
Apache的起源
1.Apache HTTP Server是開源軟件項目的杰出代表,基于標準的HTTP網(wǎng)絡(luò)協(xié)議提供網(wǎng)頁瀏覽服務(wù),Apache服務(wù)器可以運行在Linux、UNIX、Windows等多種操作系統(tǒng)中;
2.Apache服務(wù)器是針對之前出現(xiàn)的若干個Web服務(wù)器程序進行整合,完善后形成的軟件,其名稱來源于“A Patchy Server”,意思就是“基于原有Web服務(wù)程序的代碼進行修改(補?。┖笮纬傻姆?wù)器程序”;
3.目前Apache項目一直由ASF負責管理和維護。ASF的官方網(wǎng)站是http://www.apache.org
Apache的主要特點:
- 開放源代碼;
- 跨平臺應(yīng)用;
- 支持各種Web編程語言;
- 模塊化設(shè)計;
- 運行非常穩(wěn)定;
- 良好的安全性。
安裝httpd服務(wù)器
在配置Apache網(wǎng)站服務(wù)之前,需要正確安裝好httpd服務(wù)器軟件。httpd服務(wù)器的安裝可以選用RPM安裝、源碼編譯安裝這兩種方式。前者相對比較簡單、快速,但是在功能上存在一定的局限性,在實際的生產(chǎn)環(huán)境中,使用源代碼編譯安裝的方式的方式要更加普遍。
本次實驗將以下載的源碼包httpd-2.4.25.tar.gz為例,介紹安裝過程。(源碼包httpd-2.4.25.tar.gz可以到Linux公社資源站下載:
——————————————分割線——————————————
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /2019年資料/8月/16日/CentOS 7 利用Apache搭建Web網(wǎng)站服務(wù)/
下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm
——————————————分割線——————————————
操作步驟:
具體實驗步驟
一、準備工作
為了避免發(fā)生端口沖突、程序沖突等現(xiàn)象,建議卸載使用RPM方式安裝的httpd。
[root@localhost ~]# rpm -e httpd --nodeps 錯誤:未安裝軟件包 httpd
Apache的配置及運行需要apr、pcre等軟件包的支持,因此應(yīng)從系統(tǒng)光盤鏡像中預(yù)先安裝這些軟件及其開發(fā)包(devel),以便提供相應(yīng)的支持,確保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
按照順利安裝完成。
二、源碼編譯安裝
將下載好的源代碼httpd-2.4.25.tar.gz上傳到服務(wù)器本地,接下來開始編譯安裝。
1.解包
[root@localhost ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src [root@localhost ~]# cd /usr/src/httpd-2.4.25/
2.配置
根據(jù)服務(wù)器的實際應(yīng)用需要,可以靈活設(shè)置不同的定制項,若要獲知可用的各種配置選項及其含義,可以執(zhí)行“ ./configure –help”命令,“/”表示當前目錄,下面配置一些最常用的配置項:
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
上述配置命令中,各選項的含義:
3.編譯及安裝
完成配置后,執(zhí)行“make”命令進行編譯,將源代碼轉(zhuǎn)換為可執(zhí)行的程序;然后執(zhí)行“make install”命令完成最后的安裝過程。
[root@localhost httpd-2.4.25]# make && make install
三、確認安裝目錄
由于指定的是安裝目錄為/usr/local/httpd,因此httpd服務(wù)的各種程序、模塊、幫助文件都將復(fù)制到此目錄下。
[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服務(wù)的目錄結(jié)構(gòu):
主要的目錄和文件
服務(wù)目錄:/usr/local/httpd/
主配置文件:/usr/local/httpd/conf/httpd.conf
網(wǎng)頁目錄:/usr/local/httpd/htdocs/
服務(wù)腳本:/usr/local/httpd/bin/apachectl
執(zhí)行程序:/usr/local/httpd/bin/httpd
訪問日志: /usr/local/httpd/log/access_log
錯誤日志: /usr/local/httpd/log/error_log
四、優(yōu)化執(zhí)行路徑
通過源碼安裝的httpd服務(wù),程序路徑并不在默認的搜索路徑中,為了使該服務(wù)在使用時更加方便,可以為相關(guān)程序添加符號鏈接。
[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
這樣在執(zhí)行相關(guān)的命令就不需要輸入冗長的路徑了。比如:
[root@localhost httpd-2.4.25]# httpd -v //查看程序版本 Server version: Apache/2.4.25 (Unix) Server built: Jul 13 2019 18:49:20
五、添加httpd系統(tǒng)服務(wù)
CentOS 7系統(tǒng)下,將編譯安裝的程序添加為系統(tǒng)服務(wù)有兩種方式:
①通過chkconfig命令添加為系統(tǒng)服務(wù),然后由systemctl進行管理(注意,通過這種方式不能設(shè)置程序開機自啟動);
②在/lib/systemd/system/目錄下,手動編寫以.service結(jié)尾的單元(unit)配置文件。
1)使用chkconfig添加系統(tǒng)服務(wù)
若希望將httpd添加為系統(tǒng)服務(wù),以便通過chkconfig進行管理,需要建立可控的服務(wù)器腳本。
[root@localhost ~]# cp /usr/local/httpd//bin/apachectl /etc/init.d/httpd [root@localhost ~]# vim /etc/init.d/httpd //添加如下內(nèi)容 #!/bin/bash # chkconfig: 35 85 21 \服務(wù)識別參數(shù),在級別3、5中啟動;啟動和關(guān)閉的順序分別為85、21 #description: Startup script for the Apache HTTP Server \服務(wù)描述信息,可以忽略 ………… //忽略部分內(nèi)容 [root@localhost httpd-2.4.25]# chkconfig --add httpd \添加httpd為系統(tǒng)服務(wù) [root@localhost httpd-2.4.25]# systemctl start httpd //啟動httpd服務(wù) [root@localhost httpd-2.4.25]# chkconfig --level 35 httpd on //設(shè)置httpd服務(wù)為開機自啟動 [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服務(wù)是否為開機自啟動,enabled為開機自啟動
2)建立[service].service配置文件
在/lib/systemd/system/目錄下,建立一個以.service結(jié)尾的單元(unit)配置文件,用于控制httpd服務(wù)。配置內(nèi)容分為三部分:
①控制單元(unit)的定義;
②服務(wù)[service]的定義;
③安裝部分[install]。
具體內(nèi)容,如下:
[root@localhost ~]# vim /lib/systemd/system/httpd.service //填寫如下內(nèi)容 [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文件編寫完成后,就可以設(shè)置開機自啟動了
[root@localhost ~]# systemctl enable httpd //設(shè)置開機自啟動 Created symlink from /etc/systemd/system/graphical.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. [root@localhost ~]# systemctl is-enabled httpd //查看自啟動服務(wù)狀態(tài) enabled
通過Apache搭建的httpd服務(wù)已經(jīng)完成!客戶端就已經(jīng)可以訪問了,但是我們來認識一些基本的配置:
一、配置并啟動服務(wù)
1.配置httpd服務(wù)
編輯httpd服務(wù)的主配置文件httpd.conf,查找到配置項“ServerName”去除前面“#”號即可!(如果有合法的域名,建議修改成合法的域名,將來通過域名訪問)
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf ………… //省略部分內(nèi)容 ServerName www.example.com:80 ………… //省略部分內(nèi)容
修改完成后,建議使用帶“-t”選項的apachectl命令對配置文件進行語法檢查!
[root@localhost ~]# apachectl -t Syntax OK
2.啟動httpd服務(wù)
[root@localhost ~]# systemctl start httpd //啟動httpd服務(wù) [root@localhost ~]# netstat -anpt | grep httpd //查看監(jiān)聽端口 tcp6 0 0 :::80 :::* LISTEN 59183/httpd
二、部署網(wǎng)頁文檔
httpd服務(wù)器已提供了一個名為index.html的測試網(wǎng)頁,做為訪問網(wǎng)站的默認首頁(可以自行編輯)!
[root@localhost ~]# cat /usr/local/httpd/htdocs/index.html <html><body><h1>It works!</h1></body></html>
三、客戶機訪問
客戶機通過IP訪問
如果需要使用https的方式訪問,則需要:
[root@localhost yum.repos.d]# yum -y install mod_ssl \安裝所選的ssl模塊 [root@localhost yum.repos.d]# systemctl restart httpd \重新啟動httpd服務(wù)
客戶機訪問測試:
使用https訪問,默認的首頁時,將顯示APache官網(wǎng)首頁!
如果需要域名訪問,需要搭建DNS服務(wù),搭建DNS服務(wù)可以參考博文CentOS 7搭建DNS服務(wù)
四、查看Web站點的訪問情況
httpd服務(wù)器使用兩種類型的日志:訪問日志和錯誤日志。
通過查看訪問日志文件access_log,可以及時了解Web站點的訪問情況。
訪問日志中每行對應(yīng)一條訪問記錄,記錄了客戶機的IP地址、訪問服務(wù)器的日期和時間、請求的網(wǎng)頁對象等信息。
[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,可以為排查服務(wù)器運行故障提供參考依據(jù)。
錯誤日志文件中每行對應(yīng)一條錯誤記錄,記錄了發(fā)生錯誤的日期和時間、錯誤事件類型、錯誤時間的內(nèi)容描述等。
上述過程是使用Apache搭建Web服務(wù)器的基本步驟,其中涉及httpd.conf配置文件的改動量非常少,要搭建一臺簡單的Web服務(wù)器還是非常簡單的。
我們來認識httpd服務(wù)的主要配置文件及各項的含義:
[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
上述設(shè)置行中,各全局配置項的含義,如圖:
以上配置項是Httpd.conf文件中主要的全局配置項,還有很多其他的配置項,在此就不一一介紹了,如果有需要可以查看Apache服務(wù)器中的相關(guān)幫助手冊。