歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~html
本文由 一步 發表於 雲+社區專欄
Apache HTTP服務器是世界上使用最普遍的Web服務器。它提供了許多強大的功能,包括可動態加載的模塊,強大的媒體支持以及與其餘流行軟件的普遍集成。apache
在本文中,咱們將介紹如何在騰訊雲Ubuntu 18.04服務器上安裝Apache Web服務器。瀏覽器
在開始本文以前,騰訊雲默認使用的是sudo的非root用戶。此外,您作起碼的還要啓動防火牆,屏蔽一些沒必要要的端口。您能夠按照咱們騰訊雲安全組配置瞭解如何配置常規用戶賬戶併爲您的服務器設置防火牆。安全
若是您有可用的賬戶,請以非root用戶身份登陸以開始。服務器
Apache能夠在Ubuntu的默認軟件存儲庫中使用,從而可使用傳統的包管理工具進行安裝。 微信
先更新本地的軟件包app
sudo apt update
而後,安裝:apache2
curl
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有三種配置文件:
建議您啓用限制性最強的配置文件,該配置文件仍要容許您配置的流量。因爲咱們還沒有在本文中爲咱們的服務器配置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服務器。
在安裝過程結束時,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文件和目錄位置的一些基本信息。
如今您已經啓動並運行了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 admin@example.com 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服務自己,您應該花幾分鐘時間熟悉一些重要的目錄和文件。
/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/pro...
參考文獻:《How To Install the Apache Web Server on Ubuntu 18.04》
翻譯:黃城浩,審校:Techeek
問答
相關閱讀
此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/dev...
歡迎你們前往騰訊雲+社區或關注雲加社區微信公衆號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~
海量技術實踐經驗,盡在雲加社區!