快速上手:在CVM上安裝Apache

歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~html

本文由 一步 發表於 雲+社區專欄

介紹

Apache HTTP服務器是世界上使用最普遍的Web服務器。它提供了許多強大的功能,包括可動態加載的模塊,強大的媒體支持以及與其餘流行軟件的普遍集成。apache

在本文中,咱們將介紹如何在騰訊雲Ubuntu 18.04服務器上安裝Apache Web服務器。瀏覽器

必備條件

在開始本文以前,騰訊雲默認使用的是sudo的非root用戶。此外,您作起碼的還要啓動防火牆,屏蔽一些沒必要要的端口。您能夠按照咱們騰訊雲安全組配置瞭解如何配置常規用戶賬戶併爲您的服務器設置防火牆。安全

若是您有可用的賬戶,請以非root用戶身份登陸以開始。服務器

第一步、安裝Apache

Apache能夠在Ubuntu的默認軟件存儲庫中使用,從而可使用傳統的包管理工具進行安裝。 微信

先更新本地的軟件包app

sudo apt update

而後,安裝:apache2curl

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的默認頁面:

imgsmall_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 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

imgexample

第六步、熟悉的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結尾的文件包含這些模塊的配置。可使用a2enmoda2dismod命令啓用和禁用模塊。

服務器日誌

  • /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

問答

消失存儲過程?

相關閱讀

騰訊雲CIS入門——Kubernetes部署

騰訊雲API:用Python使用騰訊雲API(機器翻譯實例)

主機遷移實踐分享

此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/dev...

歡迎你們前往騰訊雲+社區或關注雲加社區微信公衆號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~

海量技術實踐經驗,盡在雲加社區

相關文章
相關標籤/搜索