如何在Ubuntu 18.04上安裝和配置Apache 2 Web服務器
什么是Apache Web Server?
Apache或Apache HTTP服務器是一個免費的開源Web服務器,由Apache軟件基金(Apache Software Foundation)開發和維護。它的受歡迎程度可以通過以下事實來判斷:全球約有46%的網站由Apache提供支持。 Apache允許網站開發人員通過網絡提供他們的內容。
本教程是關於在Ubuntu系統上安裝和配置Apache2的。本文中提到的命令和過程已在Ubuntu 18.04 LTS系統上運行。因為我們在本文中使用了Ubuntu命令行,終端;您可以通過系統Dash或Ctrl + Alt + T快捷方式打開它。
在Ubuntu Linux上安裝Apache 2
請按照以下步驟通過Ubuntu官方存儲庫安裝Apache2軟件。
第1步:更新系統存儲庫
您可以通過首先更新Ubuntu存儲庫的本地包索引來下載最新版本的軟件。打開終端並輸入以下命令以執行此操作:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo apt update
步驟2:使用apt命令安裝Apache 2
接下來,輸入以下命令作為sudo,以便安裝Apache2及其所需的依賴項:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo apt install apache2
系統可能會提示您使用y / n選項繼續安裝。 請輸入Y,然后安裝程序將開始。
第3步:驗證Apache安裝
安裝完成后,您可以檢查版本號,從而通過輸入以下命令驗證系統上是否確實安裝了Apache2:
linuxidc@linuxidc:~/桌面/linuxidc.com$ apache2 -version
輸出如下:
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2018-10-10T18:59:25
配置UFW防火牆
為了配置Apache,我們首先需要允許外部訪問我們系統的某些Web端口,並在您的UFW防火牆上允許Apache。
第1步:列出UFW應用程序配置文件
為了配置防火牆,讓我們首先列出我們啟用Apache訪問所需的應用程序配置文件。 使用以下命令列出此類可用應用程序:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo ufw app list
輸出如下:
可用應用程序:
Apache
Apache Full
Apache Secure
CUPS
OpenSSH
Samba
在上面的輸出中,您可以看到三個Apache配置文件都提供不同級別的安全性; Apache是一個提供最大限制但端口80仍處於打開狀態的Apache。
步驟2:在UFW上允許Apache並驗證其狀態
在UFW上允許Apache將為網絡流量打開端口80,同時為服務器提供最大的安全性。 請通過以下命令配置UFW以允許Apache:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo ufw allow 'Apache'
防火牆規則已更新
規則已更新(v6)
UFW的狀態現在將在防火牆上顯示啟用Apache。
$ sudo ufw status
配置Apache Web服務器
步驟1:驗證Apache服務是否正在運行
第一步是通過以下命令驗證Apache2服務是否在您的系統上啟動並運行:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Sun 2018-11-25 19:26:03 CST; 10min ago
Main PID: 11590 (apache2)
Tasks: 6 (limit: 3500)
CGroup: /system.slice/apache2.service
├─11590 /usr/sbin/apache2 -k start
├─11610 /usr/sbin/apache2 -k start
├─11611 /usr/sbin/apache2 -k start
├─11612 /usr/sbin/apache2 -k start
├─11616 /usr/sbin/apache2 -k start
└─11618 /usr/sbin/apache2 -k start
11月 25 19:26:03 linuxidc systemd[1]: Starting The Apache HTTP Server...
11月 25 19:26:03 linuxidc apachectl[11574]: AH00558: apache2: Could not reliably
11月 25 19:26:03 linuxidc systemd[1]: Started The Apache HTTP Server.
狀態:active(running)驗證apache2服務是否正在運行。
第2步:驗證Apache是否正常運行並偵聽您的IP地址
您還可以通過從Apache服務器請求頁面來驗證Apache是否正在運行。 為此,您可以使用服務器的IP來訪問Apache登錄頁面。
使用以下命令了解服務器的IP:
linuxidc@linuxidc:~/桌面/linuxidc.com$ hostname -I
192.168.182.188 172.16.43.1 172.16.238.1 172.17.0.1
然后在Web瀏覽器中逐個嘗試IP,如下所示:
http://server_IP
就我而言,http://192.168.182.188和http://172.16.43.1。 這樣做將顯示Ubuntu的以下Apache網頁,驗證Apache服務器是否正常工作。
在Apache中設置虛擬主機
虛擬主機類似於Nginx中的服務器塊。 它用於管理來自一個服務器的多個域的配置。 我們將提供一個如何通過Apache服務器設置虛擬主機的示例。 我們將使用Apache for Ubuntu 18中默認啟用的服務器塊來建立一個名為linuxidc.com的網站。
第1步:設置域名
默認情況下啟用的服務器塊能夠提供來自 /var/www/html的文檔。 但是,我們將在/var/www/創建一個目錄,保留默認目錄。
通過以下命令創建此目錄,將linuxidc.com替換為您各自的域名。
sudo mkdir -p /var/www/linuxidc.com/html
然后通過以下命令分配目錄的所有權:
sudo chown -R $USER:$USER /var/www/linuxidc.com/html
sudo chmod -R 755 /var/www/linuxidc.com
現在讓我們創建一個索引頁面,如果Apache運行我們的域名,我們以后可以訪問它們進行測試。 通過Nano編輯器或任何您喜歡的文本編輯器創建HTML文件。
nano /var/www/linuxidc.com/html/index.html
為索引頁輸入以下HTML:
<html>
<head>
<title>歡迎來到Linux公社頁面 www.linuxidc.com</title>
</head>
<body>
<h1>你真是棒! 您的linuxidc.com服務器塊已啟動!</h1>
</body>
</html>
我們使用nano編輯器來創建HTML文件。
您可以使用Ctrl + X將文件保存為nano,然后輸入Y並按Enter鍵。
Apache需要一個虛擬主機文件來提供服務器的內容。 已經創建了用於此目的的默認配置文件,但我們將為自定義配置創建一個新配置文件。
sudo nano /etc/apache2/sites-available/linuxidc.com.conf
輸入域名的以下自定義配置詳細信息:
<VirtualHost *:80>
ServerAdmin admin@linuxidc.com
ServerName linuxidc.com
ServerAlias www.linuxidc.com
DocumentRoot /var/www/linuxidc.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我們正在使用nano編輯器來創建此.conf文件。
您可以使用Ctrl + X將文件保存為nano,然后輸入Y並按Enter鍵。
步驟2:啟用域配置文件
讓我們啟用使用a2ensite工具創建的配置文件:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo a2ensite linuxidc.com.conf
Enabling site linuxidc.com.
To activate the new configuration, you need to run:
systemctl reload apache2
輸出將建議激活新配置,但我們可以在運行以下禁用原始配置文件的命令后集體執行此操作:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo a2dissite 000-default.conf
Site 000-default disabled.
To activate the new configuration, you need to run:
systemctl reload apache2
現在重啟Apache服務:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo systemctl restart apache2
第3步:測試錯誤
最后,讓我們通過以下命令測試是否存在任何配置錯誤:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo apache2ctl configtest
如果您沒有收到任何錯誤,您將獲得以下輸出:
Syntax OK
但是,Ubuntu 18.04中常見以下錯誤
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
解決錯誤:
輸入以下命令以解決上述錯誤:
linuxidc@linuxidc:~/桌面/linuxidc.com$ echo "ServerName linuxidc.com" | sudo tee /etc/apache2/conf-available/servername.conf
然后:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo a2enconf servername
Enabling conf servername.
To activate the new configuration, you need to run:
systemctl reload apache2
現在,當您再次檢查錯誤時,您將看到通過以下輸出解決了此錯誤:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo apache2ctl configtest
Syntax OK
第4步:測試Apache是否為您的域名提供服務
Apache服務器現在配置為提供您的域名。 這可以通過在系統上運行的任何Web瀏覽器中輸入您的服務器名稱來驗證:
http://www.linuxidc.com
索引頁面應顯示如下,表示Apache現在已准備好為您的服務器塊提供服務!
通過域名訪問您的網站
中文亂碼:
Apache 2網頁中文亂碼的解決方法:
linuxidc@linuxidc:~$ sudo nano /etc/apache2/conf-available/charset.conf
修改charset.conf的AddDefaultCharset UTF-8,把AddDefaultCharset UTF-8前面的#去掉即可。
如下圖:
然后重啟apache2
linuxidc@linuxidc:~$ sudo systemctl restart apache2
再次打開,OK,中文網頁亂碼解決了。
一些常見的Apache管理命令
設置Web服務器后,您可能必須在Apache上執行一些基本的管理操作。 以下是您可以在終端應用程序中輸入的用於這些操作的命令。
sudo systemctl start apache2 //將此命令用作sudo以啟動Apache服務器。
sudo systemctl stop apache2 //將此命令用作sudo,以便在Apache服務器處於啟動模式時停止它。
sudo systemctl restart apache2 //將此命令用作sudo以便停止然后再次啟動Apache服務。
sudo systemctl reload apache2 //將此命令用作sudo,以便在不重新啟動連接的情況下應用配置更改。
sudo systemctl啟用apache2 //將此命令用作sudo,以便在每次啟動系統時啟用Apache。
sudo systemctl disable apache2 //將Apache設置為每次啟動系統時啟動
總結
通過本文,您學習了如何在Ubuntu系統上安裝和配置Apache Web服務器。 這包括對您的UFW防火牆進行一些更改,然后為您的IP地址配置Web服務器。 我們還建議您通過Apache設置虛擬主機; 這將為您提供如何使用Apache在Internet上托管文件的基礎。 基本的Apache管理命令還可以幫助您作為Web管理員以最佳方式管理Web服務器。