Apache HTTP服務(wù)器是世界上使用最廣泛的Web服務(wù)器。 它是一個免費的,開源的,跨平臺的HTTP服務(wù)器,具有強(qiáng)大的功能,并且可以通過多種模塊進(jìn)行擴(kuò)展。
在所有可用的Web服務(wù)器中,Apache Web Server可能是最受歡迎的服務(wù)器之一。由Apache基金會開發(fā)的Apache非常流行,它可以在線運行所有Web服務(wù)器的70%。
這是每個系統(tǒng)管理員都應(yīng)該知道的可靠,安全的Web服務(wù)器。Apache是LAMP堆棧的一部分,代表Linux,Apache,MariaDB和PHP,并且在許多公司中通常用于托管內(nèi)部和外部網(wǎng)站。
在本文中,我們將說明如何在CentOS 8上安裝和管理Apache網(wǎng)絡(luò)服務(wù)器,輕松配置虛擬主機(jī)。
必要條件
確保您的防火墻在CentOS 8實例上正確運行。請以root或具有sudo特權(quán)的用戶身份運行命令。
[linuxidc@localhost www.linuxidc.com]$ sudo systemctl status firewalld
● firewalld.service – firewalld – dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 一 2019-11-18 00:08:12 EST; 6min ago
Docs: man:firewalld(1)
Main PID: 960 (firewalld)
CGroup: /system.slice/firewalld.service
└─960 /usr/bin/Python -Es /usr/sbin/firewalld –nofork –nopid
11月 18 00:08:11 localhost.localdomain systemd[1]: Starting firewalld – dyna…
11月 18 00:08:12 localhost.localdomain systemd[1]: Started firewalld – dynam…
Hint: Some lines were ellipsized, use -l to show in full.
在CentOS 8上安裝Apache
Apache在默認(rèn)的CentOS存儲庫中可用,并且安裝非常簡單。為了安裝Apache Web Server,首先通過運行以下命令更新本地軟件包
在基于RHEL的發(fā)行版中,Apache軟件包和服務(wù)稱為httpd。 要安裝Apache,運行以下命令:
[linuxidc@localhost www.linuxidc.com]$ sudo yum update
更新完成后,就可以安裝Apache了。
[root@localhost www.linuxidc.com]# yum install httpd
啟動Apache Web服務(wù)器
為了啟動您的Apache Web服務(wù)器,請運行以下命令
[root@localhost www.linuxidc.com]# systemctl start httpd
確保啟用您的httpd服務(wù),以使其在系統(tǒng)啟動時啟動。
[root@localhost www.linuxidc.com]# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
最后,通過運行一個簡單的status命令,確保您的Apache Web服務(wù)器正常運行。
[root@localhost www.linuxidc.com]# systemctl status httpd
您還可以檢查Web服務(wù)器的版本,以確保已正確安裝。
[root@localhost www.linuxidc.com]# httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Oct 7 2019 21:42:02
測試您的Apache Web服務(wù)器
為了測試Apache Web服務(wù)器是否正常運行,您首先需要找到您的當(dāng)前IP地址。
要獲取您的IP地址,請運行以下命令
[root@localhost www.linuxidc.com]# hostname -I | awk ‘{print $1}’
192.168.229.165
默認(rèn)情況下,Apache將在服務(wù)器上的端口80上運行。
為了檢查Apache是否正常運行,可以運行簡單的curl命令,也可以使用Web瀏覽器進(jìn)行檢查。
$ curl <ip_address>:80
如果您瀏覽到前面討論過的正確URL,則這是默認(rèn)頁面。
這只是一個標(biāo)準(zhǔn)的演示頁面,上面有一些基本說明。 如果您不熟悉Web服務(wù)器管理,則可以閱讀此頁面上提供的段落。
為 Apache 配置你的CentOS 8防火墻
為了使外部主機(jī)可以使用Web服務(wù)器,您將需要在防火墻上打開特定的端口。
默認(rèn)情況下,CentOS使用firewalld,它是在主機(jī)上作為守護(hù)程序運行的防火墻,并為其提供基本安全性。
為了接受HTTP和HTTPS連接,您將打開服務(wù)器上的端口80和443。
$ sudo firewall-cmd –permanent –zone=public –add-service=http
$ sudo firewall-cmd –permanent –zone=public –add-service=https
$ sudo firewall-cmd –reload
通過運行以下命令,確保服務(wù)已正確授權(quán)
$ sudo firewall-cmd –list-all | grep services
services : cockpit dhcpv6-client http https ssh
恭喜你!
您已在CentOS 8上成功安裝了Apache。
您的服務(wù)器現(xiàn)在正在接受對Web服務(wù)器的傳入HTTP請求。
在CentOS 8上管理Apache Web服務(wù)器
為了管理您的Apache Web服務(wù)器,您有多種選擇。
為了在CentOS 8上重新啟動Apache,請輸入以下命令
sudo systemctl restart httpd
為了停止Web服務(wù)器,請運行以下命令
$ sudo systemctl stop httpd
如果要重新啟動,可以運行
$ sudo systemctl start httpd
如果對Apache配置進(jìn)行了一些修改,則可以重新加載服務(wù)器,而不必完全重新啟動服務(wù)器。
如果您修改了一個網(wǎng)站,它將重新啟動其他未修改的網(wǎng)站,這顯然是我們要避免的事情。
$ sudo systemctl reload httpd
如果您希望您的Web服務(wù)器在啟動時啟動(如果您更新服務(wù)器而忘記重新啟動Web服務(wù)器,建議您這樣做),則必須運行
$ sudo systemctl enable httpd
另一方面,如果要阻止Web服務(wù)器在系統(tǒng)啟動時啟動,請運行
$ sudo systemctl disable httpd
為Apache Web服務(wù)器創(chuàng)建虛擬主機(jī)
在Apache上創(chuàng)建虛擬主機(jī)非常有用。
您可以使用一組不同的自定義規(guī)則定義多個網(wǎng)站,而不是在Web服務(wù)器上存儲一個網(wǎng)站。 每個網(wǎng)站可以有自己的一套策略規(guī)則,自己的SSL密鑰和自己的重定向。
它使網(wǎng)站管理更加容易,并使網(wǎng)站彼此分離。
為了在CentOS 8上為Apache創(chuàng)建虛擬主機(jī),我們將以一個名為“linuxmi.com”的網(wǎng)站為例。
創(chuàng)建域文件夾
默認(rèn)情況下,文件存儲在主機(jī)上的 “/var/www/html”中。
/var/www
├── cgi-bin
├── html
此路徑也稱為“DocumentRoot”(文檔根目錄),它用作服務(wù)器上網(wǎng)站的默認(rèn)入口點。
為了存儲多個網(wǎng)站,您需要在“/var/www/”中創(chuàng)建多個文件夾,并修改httpd配置文件以指向這些目錄。
在本例中,讓我們創(chuàng)建以下目錄結(jié)構(gòu)。
[root@localhost html]# tree -Ld 2 /var/www
/var/www
├── cgi-bin
├── html
└── linuxmi.com
├── html
└── log
為您的新網(wǎng)站創(chuàng)建專用文件夾。
[root@localhost html]# mkdir -p /var/www/linuxmi.com/html
確保創(chuàng)建文件以存儲網(wǎng)站的日志文件。
[root@localhost html]# mkdir -p /var/www/linuxmi.com/log
創(chuàng)建您的第一個HTML頁面
現(xiàn)在您的文件夾已準(zhǔn)備就緒,您可以創(chuàng)建要顯示給用戶的第一個HTML頁面。
創(chuàng)建一個名為“ index.html”的新HTML文件,并將以下內(nèi)容粘貼到其中。
$ cd /var/www/linuxmi.com/html
$ sudo vi index.html
<!doctype html>
<html lang=”zh-cn”>
<head>
<meta charset=”utf-8″>
<title>LinuxMi.com</title>
<meta name=”description” content=”linuxmi.com Homepage”>
<meta name=”author” content=”devconnected”>
</head>
<body>
這是LinuxMi.com的索引頁,歡迎您!
這是www.linuxidc.com的索引頁,歡迎您!
</body>
</html>
保存文件,然后退出編輯器。
現(xiàn)在您的網(wǎng)站已經(jīng)準(zhǔn)備就緒,我們可以通過創(chuàng)建虛擬主機(jī)文件來發(fā)布您的網(wǎng)站。
在CentOS 8上創(chuàng)建虛擬主機(jī)文件
如前所述,為了發(fā)布您的網(wǎng)站,我們將創(chuàng)建一個虛擬主機(jī)文件。
與NGINX類似,我們將創(chuàng)建兩個目錄:
- sites-available:包含我們Web服務(wù)器上可用網(wǎng)站的完整列表。 默認(rèn)情況下,不一定要啟用這些網(wǎng)站,這是第二個文件夾的目的。
- sites-enabled:該容器包含用戶可訪問的網(wǎng)站列表。 將在此目錄中創(chuàng)建一個符號鏈接,以便根據(jù)需要激活和取消激活網(wǎng)站。
首先,在主機(jī)上創(chuàng)建這兩個目錄。
$ sudo mkdir -p /etc/httpd/sites-enabled /etc/httpd/sites-available
現(xiàn)在已經(jīng)創(chuàng)建了文件夾,然后編輯默認(rèn)的Apache配置并找到以下行。
$ sudo vi /etc/httpd/conf/httpd.conf
# Load config files in the “/etc/httpd/conf.d” directory if any
IncludeOptional conf.d/*.conf
用以下行替換此行。
IncludeOptional sites-enabled/*.conf
現(xiàn)在,您的Apache Web服務(wù)器配置已更新,為“ linuxmi.com”網(wǎng)站創(chuàng)建一個虛擬主機(jī)文件。
$ sudo vi /etc/httpd/sites-available/linuxmi.com.conf
在其中粘貼以下配置。
<VirtualHost *:80>
ServerName linuxmi.com
ServerAlias www.linuxmi.com
DocumentRoot /var/www/linuxmi.com/html
ErrorLog /var/www/linuxmi.com/log/error.log
CustomLog /var/www/linuxmi.com/log/requests.log combined
</VirtualHost>
保存文件,并通過運行以下命令確保配置正確。
$ sudo apachectl configtest
Syntax OK
現(xiàn)在,重新啟動Apache Web服務(wù)器就無法直接訪問您的網(wǎng)站,它必須位于sites-enabled的文件夾中。
要將其鏈接到啟用站點的目錄,請使用此命令創(chuàng)建符號鏈接。
$ sudo ln -s /etc/httpd/sites-available/linuxmi.com.conf /etc/httpd/sites-enabled/linuxmi.com.conf
更新您的SELinux防火墻規(guī)則
默認(rèn)情況下,SELinux被配置為與默認(rèn)的Apache配置文件夾一起使用。
創(chuàng)建自定義項時,需要在SELinux中啟用它們。
為了正確啟動Apache Web服務(wù)器,您需要修改Apache策略以包括自定義日志目錄。
要啟用自定義目錄,請運行以下命令
$ sudo setsebool -P httpd_unified 1
重新啟動您的Apache服務(wù)器
現(xiàn)在,一切都已正確設(shè)置,是時候重新啟動服務(wù)器以查看更改了。
$ sudo systemctl restart httpd
轉(zhuǎn)到您在虛擬主機(jī)文件中指定的URL,您應(yīng)該可以看到您的網(wǎng)站正在運行。(見本文最上面截圖)
總結(jié)
在本教程中,您學(xué)習(xí)了如何在CentOS 8上安裝Apache。
您還學(xué)習(xí)了如何設(shè)置虛擬主機(jī),以便在單個Apache Web服務(wù)器上存儲許多不同的網(wǎng)站。