Apache HTTP服務器是世界上使用最廣泛的Web服務器。 它是一個免費的,開源的,跨平臺的HTTP服務器,具有強大的功能,并且可以通過多種模塊進行擴展。
在所有可用的Web服務器中,Apache Web Server可能是最受歡迎的服務器之一。由Apache基金會開發的Apache非常流行,它可以在線運行所有Web服務器的70%。
這是每個系統管理員都應該知道的可靠,安全的Web服務器。Apache是LAMP堆棧的一部分,代表Linux,Apache,MariaDB和PHP,并且在許多公司中通常用于托管內部和外部網站。
在本文中,我們將說明如何在CentOS 8上安裝和管理Apache網絡服務器,輕松配置虛擬主機。
必要條件
確保您的防火墻在CentOS 8實例上正確運行。請以root或具有sudo特權的用戶身份運行命令。
[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在默認的CentOS存儲庫中可用,并且安裝非常簡單。為了安裝Apache Web Server,首先通過運行以下命令更新本地軟件包
在基于RHEL的發行版中,Apache軟件包和服務稱為httpd。 要安裝Apache,運行以下命令:
[linuxidc@localhost www.linuxidc.com]$ sudo yum update
更新完成后,就可以安裝Apache了。
[root@localhost www.linuxidc.com]# yum install httpd
啟動Apache Web服務器
為了啟動您的Apache Web服務器,請運行以下命令
[root@localhost www.linuxidc.com]# systemctl start httpd
確保啟用您的httpd服務,以使其在系統啟動時啟動。
[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服務器正常運行。
[root@localhost www.linuxidc.com]# systemctl status httpd
您還可以檢查Web服務器的版本,以確保已正確安裝。
[root@localhost www.linuxidc.com]# httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Oct 7 2019 21:42:02
測試您的Apache Web服務器
為了測試Apache Web服務器是否正常運行,您首先需要找到您的當前IP地址。
要獲取您的IP地址,請運行以下命令
[root@localhost www.linuxidc.com]# hostname -I | awk ‘{print $1}’
192.168.229.165
默認情況下,Apache將在服務器上的端口80上運行。
為了檢查Apache是否正常運行,可以運行簡單的curl命令,也可以使用Web瀏覽器進行檢查。
$ curl <ip_address>:80
如果您瀏覽到前面討論過的正確URL,則這是默認頁面。
這只是一個標準的演示頁面,上面有一些基本說明。 如果您不熟悉Web服務器管理,則可以閱讀此頁面上提供的段落。
為 Apache 配置你的CentOS 8防火墻
為了使外部主機可以使用Web服務器,您將需要在防火墻上打開特定的端口。
默認情況下,CentOS使用firewalld,它是在主機上作為守護程序運行的防火墻,并為其提供基本安全性。
為了接受HTTP和HTTPS連接,您將打開服務器上的端口80和443。
$ sudo firewall-cmd –permanent –zone=public –add-service=http
$ sudo firewall-cmd –permanent –zone=public –add-service=https
$ sudo firewall-cmd –reload
通過運行以下命令,確保服務已正確授權
$ sudo firewall-cmd –list-all | grep services
services : cockpit dhcpv6-client http https ssh
恭喜你!
您已在CentOS 8上成功安裝了Apache。
您的服務器現在正在接受對Web服務器的傳入HTTP請求。
在CentOS 8上管理Apache Web服務器
為了管理您的Apache Web服務器,您有多種選擇。
為了在CentOS 8上重新啟動Apache,請輸入以下命令
sudo systemctl restart httpd
為了停止Web服務器,請運行以下命令
$ sudo systemctl stop httpd
如果要重新啟動,可以運行
$ sudo systemctl start httpd
如果對Apache配置進行了一些修改,則可以重新加載服務器,而不必完全重新啟動服務器。
如果您修改了一個網站,它將重新啟動其他未修改的網站,這顯然是我們要避免的事情。
$ sudo systemctl reload httpd
如果您希望您的Web服務器在啟動時啟動(如果您更新服務器而忘記重新啟動Web服務器,建議您這樣做),則必須運行
$ sudo systemctl enable httpd
另一方面,如果要阻止Web服務器在系統啟動時啟動,請運行
$ sudo systemctl disable httpd
為Apache Web服務器創建虛擬主機
在Apache上創建虛擬主機非常有用。
您可以使用一組不同的自定義規則定義多個網站,而不是在Web服務器上存儲一個網站。 每個網站可以有自己的一套策略規則,自己的SSL密鑰和自己的重定向。
它使網站管理更加容易,并使網站彼此分離。
為了在CentOS 8上為Apache創建虛擬主機,我們將以一個名為“linuxmi.com”的網站為例。
創建域文件夾
默認情況下,文件存儲在主機上的 “/var/www/html”中。
/var/www
├── cgi-bin
├── html
此路徑也稱為“DocumentRoot”(文檔根目錄),它用作服務器上網站的默認入口點。
為了存儲多個網站,您需要在“/var/www/”中創建多個文件夾,并修改httpd配置文件以指向這些目錄。
在本例中,讓我們創建以下目錄結構。
[root@localhost html]# tree -Ld 2 /var/www
/var/www
├── cgi-bin
├── html
└── linuxmi.com
├── html
└── log
為您的新網站創建專用文件夾。
[root@localhost html]# mkdir -p /var/www/linuxmi.com/html
確保創建文件以存儲網站的日志文件。
[root@localhost html]# mkdir -p /var/www/linuxmi.com/log
創建您的第一個HTML頁面
現在您的文件夾已準備就緒,您可以創建要顯示給用戶的第一個HTML頁面。
創建一個名為“ index.html”的新HTML文件,并將以下內容粘貼到其中。
$ 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>
保存文件,然后退出編輯器。
現在您的網站已經準備就緒,我們可以通過創建虛擬主機文件來發布您的網站。
在CentOS 8上創建虛擬主機文件
如前所述,為了發布您的網站,我們將創建一個虛擬主機文件。
與NGINX類似,我們將創建兩個目錄:
- sites-available:包含我們Web服務器上可用網站的完整列表。 默認情況下,不一定要啟用這些網站,這是第二個文件夾的目的。
- sites-enabled:該容器包含用戶可訪問的網站列表。 將在此目錄中創建一個符號鏈接,以便根據需要激活和取消激活網站。
首先,在主機上創建這兩個目錄。
$ sudo mkdir -p /etc/httpd/sites-enabled /etc/httpd/sites-available
現在已經創建了文件夾,然后編輯默認的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
現在,您的Apache Web服務器配置已更新,為“ linuxmi.com”網站創建一個虛擬主機文件。
$ 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
現在,重新啟動Apache Web服務器就無法直接訪問您的網站,它必須位于sites-enabled的文件夾中。
要將其鏈接到啟用站點的目錄,請使用此命令創建符號鏈接。
$ sudo ln -s /etc/httpd/sites-available/linuxmi.com.conf /etc/httpd/sites-enabled/linuxmi.com.conf
更新您的SELinux防火墻規則
默認情況下,SELinux被配置為與默認的Apache配置文件夾一起使用。
創建自定義項時,需要在SELinux中啟用它們。
為了正確啟動Apache Web服務器,您需要修改Apache策略以包括自定義日志目錄。
要啟用自定義目錄,請運行以下命令
$ sudo setsebool -P httpd_unified 1
重新啟動您的Apache服務器
現在,一切都已正確設置,是時候重新啟動服務器以查看更改了。
$ sudo systemctl restart httpd
轉到您在虛擬主機文件中指定的URL,您應該可以看到您的網站正在運行。(見本文最上面截圖)
總結
在本教程中,您學習了如何在CentOS 8上安裝Apache。
您還學習了如何設置虛擬主機,以便在單個Apache Web服務器上存儲許多不同的網站。