快速上手:在CVM上安裝Apache
歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐幹貨哦~
本文由一步 發表於雲+社區專欄
介紹
Apache HTTP服務器是世界上使用最廣泛的Web服務器。它提供了許多強大的功能,包括可動態加載的模塊,強大的媒體支持以及與其他流行軟件的廣泛集成。
在本文中,我們將介紹如何在騰訊雲Ubuntu 18.04服務器上安裝Apache Web服務器。
必備條件
在開始本文之前,騰訊雲默認使用的是sudo的非root用戶。此外,您做起碼的還要啟動防火墻,屏蔽一些不必要的端口。您可以按照我們騰訊雲安全組配置了解如何配置常規用戶帳戶並為您的服務器設置防火墻。
如果您有可用的帳戶,請以非root用戶身份登錄以開始。
第一步、安裝Apache
Apache可以在Ubuntu的默認軟件存儲庫中使用,從而可以使用傳統的包管理工具進行安裝。
先更新本地的軟件包
sudo apt update
然後,安裝:apache2
sudo apt install apache2
確認安裝後,apt
將安裝Apache和所有必需的依賴項。
第二步、設置防火墻
在測試Apache之前,有必要修改防火墻設置,以允許外部能訪問默認的Web端口。
在安裝過程中,Apache在UFW防火墻註冊了自己,以及提供一些應用程序配置文件,這些配置文件可用於啟用或禁用通過防火墻訪問Apache。
輸入以下內容列出應用程序配置ufw
sudo ufw app list
您將看到應用程序配置文件的列表:
OutputAvailable application:
Apache
Apache Full
Apache Secure
OpenSSH
如您所見,Apache有三種配置文件:
- Apache:此配置文件僅打開端口80(正常,未加密的Web流量)
- Apache Full:此配置文件打開端口80(正常,未加密的Web流量)和端口443(TLS / SSL加密流量)
- Apache Secure:此配置文件僅打開端口443(TLS / SSL加密流量)
建議您啟用限制性最強的配置文件,該配置文件仍要允許您配置的流量。由於我們尚未在本文中為我們的服務器配置SSL,因此我們只需要允許端口80上的流量:
sudo ufw allow ‘Apache‘
您可以輸入以下內容來查看是否修改成功:
sudo ufw status
您應該在顯示的輸出中看到允許的HTTP流量:
OutputStatus :active
to action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH ( v6 ) ALLOW Anywhere ( v6 )
Apache ( v6 ) Allow Anywhere ( v6 )
如您所見,已經激活的配置文件,已允許訪問Web服務器。
第三步、檢查Web服務器
在安裝過程結束時,Apache就會在Ubuntu 18.04運行。Web服務器應該已經啟動並運行。
通過輸入以下命令檢查systemd
init 系統以確保服務正在運行:
sudo systemctl status apache2
Output● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Tue 2018-04-24 20:14:39 UTC; 9min ago
Main PID: 2583 (apache2)
Tasks: 55 (limit: 1153)
CGroup: /system.slice/apache2.service
├─2583 /usr/sbin/apache2 -k start
├─2585 /usr/sbin/apache2 -k start
└─2586 /usr/sbin/apache2 -k start
從此輸出中可以看出,該服務似乎已成功啟動。但是,最佳的測試方法還是打開Apache的網頁。
您可以訪問默認的Apache登錄頁面,以確認軟件是否通過您的IP地址正常運行。如果您不知道服務器的IP地址,可以從命令行獲得幾種不同的方法。
嘗試在服務器的命令提示符下輸入:
hostname -I
你會得到一些用空格分隔的地址。您可以在Web瀏覽器中嘗試各自以查看它們是否有效。
另一種方法是輸入下面這段命令,它應該幫您查到您的IP地址:
curl - 4 icanhazip.COM
獲得服務器的IP地址後,將其輸入瀏覽器的地址欄:
http://your_server_ip
您應該看可以到Ubuntu 18.04 Apache的默認頁面:
small_apache_default
此頁面表明Apache正常運行。它還包括有關重要Apache文件和目錄位置的一些基本信息。
第4步 - 管理Apache進程
現在您已經啟動並運行了Web服務器,讓我們來看一些基本的管理命令。
要停止Web服務器,請輸入:
sudo systemctl stop apache2
要在Web服務器停止時啟動它,請輸入:
sudo systemctl start apache2
要重啟該服務,請輸入:
sudo systemctl restart apache2
如果您只是進行配置更改,Apache通常可以在不丟棄連接的情況下重新加載。請使用以下命令:
sudo systemctl reload apache2
在默認情況下,Apache是默認開機啟動的。如果不想開機啟動,請輸入以下命令:
sudo systemctl disable apache2
要重新開機啟動Apache,請輸入:
sudo systemctl start apache2
Apache現在應該能夠開機啟動了。
第五步、設置虛擬主機
使用Apache Web服務器時,您可以使用虛擬主機(類似於Nginx中的服務器塊)來封裝配置詳細信息,並且可以服務器托管多個域名。我們將設置一個名為example.com的域名,但您應將其替換為您自己的域名。
Ubuntu 18.04上的Apache默認啟用了一個服務器塊,配置為從 /var/www/html/ 目錄中提供文檔。雖然這適用於單個站點,但如果您托管多個站點,這就有點困難了。與其修改/var/www/html/,還不如在/var/www/html/ 中為example.com站點內創建一個目錄結構,如果客戶端請求與任何其他站點不匹配,則將/var/www/html/作為默認的目錄。
按如下所示為example.com創建目錄,使用-p
標誌創建必需的父目錄:
sudo mkdir - p /var/www/example.com/html
接下來,使用環境變量分配目錄的所有權:$USER
sudo chown - R $USER:$USER/var/www/xample.com/html
如果您尚未修改您的值,則您的Web根目錄的權限應該是正確的,通過下面的命令來給你的網站打上權限
sudo chmod - R 755 /var/www/example.com
接下來,您可以使用nano
來編輯。
nano /var/www/example.com/html/index.html
添加以下代碼到 /var/www/example.com/html/index.html
裏:
<html>
<head>
<title>Welcome to Example.com</title>
</head>
<body>
<h1>Success! The example.com server block is working!</h1>
</body>
</html>
完成後保存並關閉文件。
為了使Apache能夠提供此內容,必須使用正確的指令創建虛擬主機文件。不要直接修改位於/etc/apache2/sites-available/000-default.conf
的默認配置文件,而是在以下位置創建一個新文件:/etc/apache2/sites-available/example.com.conf
sudosudo nano /etc/apache2/sites-available/example.com.conf
復制下面這段代碼到/etc/apache2/sites-available/example.com.conf
,並作出相對應的修改
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
請註意,我們已將DocumentRoot
更新為新目錄,將ServerAdmin
更新為example.com站
點管理員可以訪問的電子郵件。 我們還添加了兩個指令:ServerName
它建立了應該與此虛擬主機定義匹配的基本域; ServerAlias
它定義了應該匹配的更多名稱,就像它們的名稱一樣。
完成後保存並關閉文件。
讓我們使用該工具啟用該文件:a2ensite
sudo a2ensite example.com.conf
禁用以下定義的默認站點:000-default.conf
sudo a2dissite 000-default.conf
接下來,讓我們測試一下配置是否錯誤:
sudo apache2ctl configtest
您應該看到以下輸出:
OutputSyntax Ok
重啟Apache:
sudo systemctl restart apache2
Apache現在應該為您的域名服務。你可以通過導航來測試這個,你應該看到這樣的東西:http://example.com
example
第六步、熟悉的Apache文件和目錄
現在您已了解如何管理Apache服務本身,您應該花幾分鐘時間熟悉一些重要的目錄和文件。
內容
/var/www/html
:網頁包括首頁的其他文件都在這個目錄下(默認情況下僅包含您之前看到的默認Apache頁面)是在/var/www/html
這個目錄中的。這可以通過更改Apache配置文件來更改。
服務器配置
/etc/apache2
:Apache配置目錄。所有Apache配置文件都駐留在此處。/etc/apache2/apache2.conf
:主要的Apache配置文件。可以對其進行修改以更改Apache全局配置。該文件負責加載配置目錄中的許多其他文件。/etc/apache2/ports.conf
:此文件指定Apache將偵聽的端口。默認情況下,Apache在端口80上偵聽,並在啟用提供SSL功能的模塊時另外偵聽端口443。/etc/apache2/sites-available/
:可以存儲所有虛擬主機站點的目錄。Apache不會使用此目錄中的配置文件,除非它們鏈接到sites-enabled
目錄。通常,所有服務器塊配置都在此目錄中完成,然後通過使用該a2ensite
命令鏈接到其他目錄。/etc/apache2/sites-enabled/
:存儲已啟用的所有的虛擬主機站點的目錄。通常,這些是通過鏈接到sites-available
目錄中的配置文件來創建的a2ensite
。Apache在啟動或重新加載以編譯完整配置時讀取此目錄中的配置文件和鏈接。/etc/apache2/conf-available/
,/etc/apache2/conf-enabled/
:這些目錄與sites-available
和目錄具有相同的關系sites-enabled
,但用於存儲不屬於虛擬主機的配置片段。conf-available
可以使用該a2enconf
命令啟用目錄中的文件,並使用該命令禁用該文件a2disconf
。/etc/apache2/mods-available/
,/etc/apache2/mods-enabled/
:這些目錄分別包含可用和已啟用的模塊。帶.load
結尾的文件,包含用於加載特定模塊的片段,而文件以.conf
結尾的文件包含這些模塊的配置。可以使用a2enmod
和a2dismod
命令啟用和禁用模塊。
服務器日誌
/var/log/apache2/access.log
:默認情況下,除非將Apache配置為執行其他操作,否則對Web服務器的每個請求都將記錄在此日誌文件中。/var/log/apache2/error.log
:默認情況下,所有錯誤都記錄在此文件中。LogLevel
:Apache配置中的指令,可以設置錯誤日誌將包含多少詳細信息。
在Ubuntu 16.04上面搭建Apache網站服務器你學會了嘛?購買一臺服務器試試吧:https://cloud.tencent.com/product/cvm
參考文獻:《How To Install the Apache Web Server on Ubuntu 18.04》
翻譯:黃城浩,審校:Techeek
問答
消失存儲過程?
相關閱讀
騰訊雲CIS入門——Kubernetes部署
騰訊雲API:用Python使用騰訊雲API(機器翻譯實例)
主機遷移實踐分享
此文已由作者授權騰訊雲+社區發布,原文鏈接:https://cloud.tencent.com/developer/article/1158260?fromSource=waitui
歡迎大家前往騰訊雲+社區或關註雲加社區微信公眾號(QcloudCommunity),第一時間獲取更多海量技術實踐幹貨哦~
海量技術實踐經驗,盡在雲加社區!
快速上手:在CVM上安裝Apache