轉載自:https://www.howtoing.com/how-to-install-the-apache-web-server-on-ubuntu-16-04
介紹
Apache HTTP服務器是世界上使用最廣泛的Web服務器。它提供了許多強大的功能,包括動態加載模塊,強大的媒體支持,以及與其他流行軟件的廣泛集成。
在本指南中,我們將討論如何在Ubuntu 16.04服務器上安裝Apache Web服務器。
先決條件
在開始本指南之前,您應該有一個常規的非root用戶,在您的服務器上配置了sudo
權限。 另外,您需要配置一個基本的防火牆來阻止非必需端口。 您可以通過遵循Ubuntu 16.04的初始服務器設置指南,了解如何配置常規用戶帳戶並為服務器設置防火牆。
當您有可用的帳戶時,請以非root用戶身份登錄。
第1步:安裝Apache
Apache在Ubuntu的默認軟件庫中可用,因此我們將使用傳統的軟件包管理工具進行安裝。
我們將從更新本地包索引開始,以反映最新的上游更改。 之后,我們可以安裝apache2
包:
sudo apt-get update
sudo apt-get install apache2
第2步:調整防火牆
在我們測試Apache之前,我們需要修改我們的防火牆以允許外部訪問默認的Web端口。 假設您遵循先決條件中的說明,您應該配置一個UFW防火牆來限制對您的服務器的訪問。
在安裝過程中,Apache向UFW注冊自己,以提供一些應用程序配置文件。 我們可以使用這些配置文件來簡化通過我們的防火牆啟用或禁用訪問Apache的過程。
我們可以通過鍵入以下內容列出ufw
程序配置文件:
sudo ufw app list
您應該獲得應用程序配置文件的列表:
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
您可以看到,有三種可用於Apache的配置文件:
- Apache :此配置文件僅打開端口80(正常,未加密的Web流量)
- Apache Full :此配置文件打開端口80(正常,未加密的Web流量)和端口443(TLS / SSL加密流量)
- Apache Secure :此配置文件僅打開端口443(TLS / SSL加密流量)
為了我們的目的,我們將通過鍵入以下方式來允許Apache Full配置文件的傳入流量:
sudo ufw allow 'Apache Full'
您可以鍵入以下內容來驗證更改:
sudo ufw status
您應該在顯示的輸出中看到HTTP流量允許:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache Full (v6) ALLOW Anywhere (v6)
如果顯示status:inactive,請先執行如下命令:
sudo ufw enable
如您所見,配置文件已被激活以允許訪問Web服務器。
第3步:檢查您的Web服務器
在安裝過程結束時,Ubuntu 16.04啟動Apache。 Web服務器應該已經啟動並運行了。
我們可以使用systemd
init系統檢查以確保該服務正在運行,方法是輸入:
sudo systemctl status apache2
apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Fri 2017-05-19 18:30:10 UTC; 1h 5min ago Docs: man:systemd-sysv-generator(8) Process: 4336 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS) Process: 4359 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS) Tasks: 55 Memory: 2.3M CPU: 4.094s CGroup: /system.slice/apache2.service ├─4374 /usr/sbin/apache2 -k start ├─4377 /usr/sbin/apache2 -k start └─4378 /usr/sbin/apache2 -k start May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Stopped LSB: Apache2 web server. May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Starting LSB: Apache2 web server... May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]: * Starting Apache httpd web server apache2 May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]: 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 May 19 18:30:10 ubuntu-512mb-nyc3-01 apache2[4359]: * May 19 18:30:10 ubuntu-512mb-nyc3-01 systemd[1]: Started LSB: Apache2 web server
如上所述,服務似乎已成功啟動。 但是,測試這個的最好方法是從Apache實際請求一個頁面。
您可以訪問默認的Apache着陸頁,以確認軟件是否正常運行。 您可以通過服務器的域名或IP地址訪問此服務。
如果您使用DigitalOcean並且沒有為您的服務器設置域名,則可以按照我們的指南, 如何使用DigitalOcean設置一個域,以設置一個。
如果您不想為服務器設置域名,可以使用服務器的公網IP地址。 如果您不知道您的服務器的IP地址,可以從命令行中獲取幾種不同的方法。
嘗試在您的服務器的命令提示符下鍵入:
hostname -I
你會收到一些空格分開的地址。 您可以在Web瀏覽器中嘗試一下,看看它們是否正常工作。
另一種方法是鍵入這個,這應該給你你的公共IP地址,從互聯網上的另一個位置看:
sudo apt-get install curl
curl -4 icanhazip.com
當您擁有服務器的IP地址或域名時,請將其輸入到瀏覽器的地址欄中:
http://server_domain_or_IP
您應該看到默認的Ubuntu 16.04 Apache網頁,它應該是這樣的:
這個頁面被簡單地包含在內,表明Apache正常工作。 它還包括一些關於Apache文件和目錄位置的基本信息。
第4步:管理Apache進程
現在,您的Web服務器啟動並運行,我們可以通過一些基本的管理命令。
要停止您的Web服務器,您可以鍵入:
sudo systemctl stop apache2
要在Web服務器停止時啟動Web服務器,請鍵入:
sudo systemctl start apache2
要停止再次啟動服務,請鍵入:
sudo systemctl restart apache2
如果您只是進行配置更改,Apache通常可以重新加載而不會丟棄連接。 為此,您可以使用以下命令
sudo systemctl reload apache2
默認情況下,Apache配置為在服務器引導時自動啟動。 如果這不是您想要的,您可以通過鍵入以下內容來禁用此行為:
sudo systemctl disable apache2
要在啟動時重新啟用服務啟動,您可以鍵入:
sudo systemctl enable apache2
當服務器再次啟動時,Apache現在應該自動啟動。
第5步:熟悉重要的Apache文件和目錄
現在你知道如何管理服務本身,你應該花幾分鍾時間來熟悉幾個重要的目錄和文件。
內容
/var/www/html
:實際的Web內容(默認情況下只包含您之前看到的默認Apache頁面)由/var/www/html
目錄提供。 這可以通過更改Apache配置文件來更改。
服務器配置
/etc/apache2
:Apache配置目錄。 所有Apache配置文件駐留在此處。/etc/apache2/apache2.conf
的主配置文件。 這可以修改為對Apache全局配置進行更改。 該文件負責在配置目錄中加載許多其他文件。/etc/apache2/ports.conf
:該文件指定Apache將監聽的端口。 默認情況下,當啟用提供SSL功能的模塊時,Apache會監聽端口80,並在端口443上進行監聽。/etc/apache2/sites-available/
:可以存儲每個站點“虛擬主機”的目錄。 Apache不會使用此目錄中找到的配置文件,除非它們鏈接到sites-enabled
了sites-enabled
目錄(見下文)。 通常,所有服務器塊配置都在此目錄中完成,然后通過使用a2ensite
命令鏈接到另一個目錄來啟用。/etc/apache2/sites-enabled/
:存儲啟用了每個站點“虛擬主機”的目錄。 通常,這些是通過鏈接到具有a2ensite的sites-available
目錄中找到的配置文件創建的。 Apache在啟動或重新加載以編譯完整配置時讀取此目錄中找到的配置文件和鏈接。/etc/apache2/conf-available/
,/etc/apache2/conf-enabled/
:這些目錄與sites-available
和sites-enabled
目錄具有相同的關系,但用於存儲不屬於虛擬主機conf-available
目錄中的文件可以使用a2enconf
命令啟用,並使用a2enconf
命令禁用。/etc/apache2/mods-available/
,/etc/apache2/mods-enabled/
:這些目錄分別包含可用和啟用的模塊。 以.load
結尾的文件包含加載特定模塊的片段,而以.conf
結尾的文件包含這些模塊的配置。 可以使用a2enmod
和a2dismod
命令啟用和禁用模塊。
服務器日志
/var/log/apache2/access.log
:默認情況下,對Web服務器的每個請求都記錄在此日志文件中,除非Apache被配置為執行其他操作。/var/log/apache2/error.log
:默認情況下,所有錯誤都記錄在此文件中。 Apache配置中的LogLevel
指令指定錯誤日志將包含多少細節。
結論
現在,您已經安裝了Web服務器,您可以選擇要投放的內容類型和要使用的技術來創建更豐富的體驗。
了解如何在這里使用Apache虛擬主機 。 如果您想要構建更完整的應用程序,請參閱有關如何在Ubuntu 16.04上配置LAMP的文章。
參考鏈接:
1、https://www.howtoing.com/how-to-set-up-a-firewall-with-ufw-on-ubuntu-16-04
2、https://www.howtoing.com/how-to-install-the-apache-web-server-on-ubuntu-16-04