天天看點

Apache Web 伺服器的安裝配置方法

學習如何在 Apache 上托管你自己的網站,這是一個可靠、流行且易于配置的 Web 伺服器。

我托管自己的網站已經有很多年了。自從 20 多年前從 OS/2 切換到 Linux 以來,我一直将 Apache 作為我的伺服器軟體。Apache 是可靠、流行的,且基本的安裝配置也很容易。對于更複雜的設定(比如多個網站)也并不是那麼困難。

Apache Web 伺服器的安裝和配置必須以 root 身份執行。 防火牆的配置也需要以 root 身份執行。 使用浏覽器檢視安裝配置的結果應該以非 root 使用者的身份完成。 (我在我的虛拟主機上使用 student 這個使用者。)

安裝

注意:我使用的實驗環境是安裝有 Fedora 27 的虛拟機,Apache 版本為 2.4.29。 如果您使用的是不同的發行版或不同版本的 Fedora,您的指令以及配置檔案的位置和内容可能會有所不同。 但是,您需要修改的配置行是相同的。

Apache Web 伺服器非常容易安裝。 在我的 CentOS 6.x 伺服器上,它隻需要一個簡單的 yum 指令。 它會安裝所有必要的依賴(如果需要的話)。 我在我的 Fedora 虛拟機上使用了下面的 dnf 指令。 除了指令本身的名稱之外, dnf 和 yum 的文法是相同的。

dnf -y install httpd

這個虛拟機是個非常基礎的桌面環境,我正在使用它作為編寫書籍的測試平台。 即使在這個系統上,也隻安裝了六個依賴項,用了一分鐘。

Apache 的所有配置檔案都位于 /etc/httpd/conf 和 /etc/httpd/conf.d 。網站的資料預設位于 /var/www,但如果你願意,你可以改變它。

配置

Apache 主要的配置檔案是 /etc/httpd/conf/httpd.conf 。 它包含許多在基本安裝中不需要更改的配置。 實際上,隻需對此檔案進行一些更改即可啟動并運作一個簡單的網站。 該檔案非常大,是以,我不會将這篇文章與大量不必要的東西混淆起來,而隻會顯示那些需要更改的指令。

首先,花點時間熟悉一下 httpd.conf 檔案。我喜歡 Red Hat 的一個原因是它的配置檔案注釋非常的詳細。 httpd.conf 檔案也不例外,因為它有很好的注釋。可以使用這些注釋來了解檔案的配置。

第一個要修改的是 Listen 配置項,它定義了 Apache 要監聽頁面請求的 IP 位址和端口。 現在,你隻需要使這個網站可以從本地通路,是以使用 localhost 位址。 完成後,該行應該看起來像這樣:( LCTT 譯注:localhost 的 IP 位址是 127.0.0.1,80 是端口)

Listen 127.0.0.1:80

通過将此配置項設定為 localhost的 IP 位址,Apache 将隻偵聽來自本地主機的連接配接。 如果您希望 Web 伺服器偵聽來自遠端主機的連接配接,則可以使用主機的外部 IP 位址。

DocumentRoot 配置項指定組成網站頁面的 HTML 檔案的位置。 該配置項不需要更改,因為它已經指向标準位置。 該行應該看起來像這樣:

DocumentRoot "/var/www/html"

Apache 安裝包會建立 /var/www 目錄。 如果您想更改存儲網站檔案的位置,則使用此配置項來完成此操作。 例如,您可能想要為 www 目錄使用不同的名稱,以更明确地識别網站。 這可以是這樣的:

DocumentRoot "/var/mywebsite/html"

這些是建立一個簡單網站需要唯一修改的 Apache 配置項。 對于這個小練習,隻對 httpd.conf 檔案(Listen 配置項)進行了一些修改。 其它的配置項對于一個簡單的 Web 伺服器暫時無需配置。

另一個需要改變的地方是:在我們的防火牆中打開端口 80。 我使用 iptables 作為我的防火牆,是以我更改 /etc/sysconfig/iptables 檔案以添加允許使用 HTTP 協定。 整個檔案看起來像這樣:

# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT           

複制

我在檔案的倒數第三行上添加了一個新行,它允許在端口 80 上輸入流量。現在我重新加載 iptables 配置檔案。

[root@testvm1 ~]# cd /etc/sysconfig/ ; iptables-restore iptables           

複制

建立 index.html 檔案

index.html 檔案是你使用域名通路網站而不是通路特定網頁時的預設檔案。在 /var/www/html中,建立一個名字為 index.html 的檔案,在其中添加字元串 Hello World 。你不需要添加任何的 HTML 标志去完成這項工作。web 伺服器的唯一任務是提供文本資料流,伺服器不知道資料是什麼,也不知道如何呈現它。它隻是将資料流傳輸給請求主機。

儲存檔案後,将所有權設定為 apache.apache 。

[root@testvm1 html]# chown apache.apache index.html           

複制

啟動 Apache

Apache 很容易啟動。 目前版本的 Fedora 使用 systemd 。 運作以下指令啟動它,然後檢查伺服器的狀态:(LCTT 譯注:systemctl 是一個 systemd 工具)

[root@testvm1 ~]# systemctl start httpd
[root@testvm1 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
  Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Active: active (running) since Thu 2018-02-08 13:18:54 EST; 5s ago
   Docs: man:httpd.service(8)
 Main PID: 27107 (httpd)
  Status: "Processing requests..."
  Tasks: 213 (limit: 4915)
  CGroup: /system.slice/httpd.service
      ├─27107 /usr/sbin/httpd -DFOREGROUND
      ├─27108 /usr/sbin/httpd -DFOREGROUND
      ├─27109 /usr/sbin/httpd -DFOREGROUND
      ├─27110 /usr/sbin/httpd -DFOREGROUND
      └─27111 /usr/sbin/httpd -DFOREGROUND
Feb 08 13:18:54 testvm1 systemd[1]: Starting The Apache HTTP Server...
Feb 08 13:18:54 testvm1 systemd[1]: Started The Apache HTTP Server.           

複制

您的伺服器上的指令可能不同。在使用 SystemV 啟動腳本的 Linux 系統上,指令如下:

[root@testvm1 ~]# service httpd start
Starting httpd: [Fri Feb 09 08:18:07 2018]     [ OK ]
[root@testvm1 ~]# service httpd status
httpd (pid 14649) is running...           

複制

如果您的主機上有像 Firefox 或 Chrome 這樣的浏覽器,您可以在浏覽器的 URL 行上使用 URL localhost 來顯示您的 web 頁面,盡管看起來很簡單。您還可以使用像 Lynx 這樣的文本模式 web 浏覽器來檢視 web 頁面。首先,安裝 Lynx (如果它還沒有被安裝)。

[root@testvm1 ~]# dnf -y install lynx           

複制

然後使用下面的指令來顯示網頁。

[root@testvm1 ~]# lynx localhost           

複制

結果在我的終端中是這樣的。我已經删除了頁面上的很多空白。

Hello World
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
 Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
 H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list```           

複制

接下來,編輯您的 index.html 檔案并添加一些 HTML 标記,使其看起來像這樣:

<h1>Hello World</h1>

現在重新整理浏覽器。對于 Lynx,使用組合鍵 Ctrl + R 。 結果看起來有點不同。如果你的終端支援彩色的話文本是彩色顯示的,Lynx 會顯示标題,現在它處于居中狀态。 在 GUI 浏覽器中,文本将以大字型顯示。

Hello World
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
 Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
 H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list           

複制

後記

從這個小練習中可以看到,建立一個 Apache Web 伺服器很容易。 具體情況取決于您的發行版和該發行版提供的 Apache 版本。 在我的環境中,這是一個非常簡單的練習。

以上所述是小編給大家介紹的Apache Web 伺服器的配置方法步驟,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對ZaLou.Cn網站的支援!