Apache HTTP Server 是目前應(yīng)用最多的 web server 服務(wù)軟件之一茵臭,Apache提供了許多強(qiáng)大的功能,而且可以通過(guò)其他模塊進(jìn)行擴(kuò)展舅世。Apache HTTP Server是一個(gè)開(kāi)源的跨平臺(tái)的服務(wù)器軟件旦委,目前大部分網(wǎng)站都采用Apache作為網(wǎng)站HTTP服務(wù)器。
在本教程中雏亚,我們將向你介紹如何在Debian 10中安裝Apache并配置虛擬主機(jī)缨硝。
1、前提條件
首先你得有一臺(tái)安裝了Debian的服務(wù)器罢低,這樣便于你在上面進(jìn)行演練操作查辩。如果你沒(méi)有可以考慮自己在虛擬機(jī)中安裝一個(gè)Debian 10。當(dāng)然,我也推薦您購(gòu)買(mǎi)一臺(tái)阿里云VPS或者騰訊云VPS虛擬主機(jī)宜岛,如果你更喜歡國(guó)外服務(wù)器匀钧,推薦你嘗試Vultr上的VPS,注冊(cè)即送$50美元體驗(yàn)谬返,性?xún)r(jià)比非常高。
當(dāng)然有主機(jī)了日杈,為安全考慮不建議使用root賬號(hào)遣铝,建議創(chuàng)建一個(gè)具有sudo權(quán)限的用戶(hù)。
同時(shí)莉擒,你的Debian已經(jīng)安裝了PHP酿炸,如果沒(méi)有安裝可以參考「如何在Debian 10安裝PHP」教程。
2涨冀、安裝Apache軟件
Apache的安裝包在Debian的默認(rèn)源中提供了填硕,所以只需要執(zhí)行安裝命令即可安裝。執(zhí)行安裝Apache命令之前我們需要先更新一下系統(tǒng)鹿鳖,命令如下:
sudo apt update
安裝完成后扁眯,apache將默認(rèn)自動(dòng)運(yùn)行,我們通過(guò)以下命令查看apache服務(wù)狀態(tài)翅帜。
sudo systemctl status apache2
輸出命令類(lèi)似如下:
● apache2.service - The Apache HTTP Server
3姻檀、配置防火墻
開(kāi)啟防火墻可以加強(qiáng)服務(wù)器的安全性,我們通過(guò)防火墻只開(kāi)放需要訪問(wèn)的端口涝滴⌒灏妫可以通過(guò)防火墻管理軟件ufw
或者nftables
進(jìn)行管理。
如果系統(tǒng)沒(méi)有安裝ufw
或者nftables
歼疮,可以通過(guò)如下命令直接安裝杂抽。
sudo apt install ufw
UFW 如果需要開(kāi)啟(HTTP)80
或者(HTTPS)443
端口,可以通過(guò)執(zhí)行如下命令開(kāi)啟:
sudo ufw allow 80
nftables 如果需要開(kāi)啟(HTTP)80
或者(HTTPS)443
端口韩脏,可以通過(guò)執(zhí)行如下命令開(kāi)啟:
sudo nft add rule inet filter input tcp dport {80, 443} ct state new,established counter accept
這個(gè)更建議使用UFW
作為防火墻管理軟件缩麸,相對(duì)來(lái)說(shuō)操作更簡(jiǎn)單。
4骤素、校驗(yàn)Apache是否安裝成功可用
Apache安裝完成后匙睹,需要校驗(yàn)一下Apache是否正常工作。校驗(yàn)方法是打開(kāi)瀏覽器济竹,在地址欄中輸入 http://ip_or_domain
痕檬,如果能正常顯示類(lèi)似如下界面,說(shuō)明Apache安裝成功運(yùn)行正常送浊。
5梦谜、Apache的配置文件**
Apache安裝完成后,默認(rèn)的安裝配置文件路徑如下:
/etc/apache2
默認(rèn)安裝配置文件路徑/etc/apache2/apache2.conf
主配置文件/etc/apache2/ports.conf
Apache指定監(jiān)聽(tīng)端口配置文件/etc/apache2/sites-available
Apache 虛擬主機(jī)配置文件目錄, 除非將這些文件鏈接到/etc/apache2/sites-enabled
目錄唁桩,否則Apache不會(huì)使用該文件闭树。可以通過(guò)使用a2ensite
命令創(chuàng)建一個(gè)符號(hào)鏈接荒澡,該符號(hào)鏈接從可在sites-available
目錄中找到的配置文件到sites-enabled目錄中报辱。要停用虛擬主機(jī),請(qǐng)使用a2dissite
命令单山。強(qiáng)烈建議您遵循標(biāo)準(zhǔn)的命名約定碍现,例如,如果您的域名是mydomain.com
米奸,則域配置文件應(yīng)命名為/etc/apache2/sites-available/mydomain.com.conf
昼接。/etc/apache2/mods-available
用于加載各種Apache模塊的配置文件目錄,可以通過(guò)使用a2enconf
命令創(chuàng)建到/etc/apache2/mods-enable
目錄的符號(hào)鏈接來(lái)啟用mods-available
目錄中的配置悴晰,并使用a2disconf
命令禁用該鏈接慢睡。/etc/apache2/conf-available
全局配置片段的文件存儲(chǔ)在該目錄中,可以通過(guò)使用a2enconf
命令創(chuàng)建到/etc/apache2/conf-enabled
的符號(hào)鏈接來(lái)啟用conf-available
目錄中的文件铡溪,并使用a2disconf
命令禁用它漂辐。/var/log/apache
Apache 日志文件,建議為每個(gè)虛擬主機(jī)使用不同的訪問(wèn)和錯(cuò)誤日志文件./var/www
默認(rèn)站點(diǎn)文件存放的目錄棕硫,可以存放多個(gè)網(wǎng)站者吁,需要配置對(duì)應(yīng)的虛擬主機(jī)。
6饲帅、配置網(wǎng)站目錄
我們?cè)?code>/var/www目錄中創(chuàng)建一個(gè)網(wǎng)站目錄复凳,例如example.com
。默認(rèn)情況灶泵,目錄結(jié)構(gòu)如下:
/var/www/example.com/public_html
可以通過(guò)以下命令創(chuàng)建:
sudo mkdir -p /var/www/example.com/public_html
在該目錄下我們創(chuàng)建一個(gè)index.php
文件育八,文件內(nèi)容如下:
<?php
7、創(chuàng)建虛擬主機(jī)
首先赦邻,進(jìn)入/etc/apache2/sites-available
目錄髓棋,創(chuàng)建配置文件example.com.conf
文件,并在其中添加如下內(nèi)容惶洲。
<VirtualHost *:80>
- ServerName
:與此虛擬主機(jī)配置匹配的域名按声。- ServerAlias
:與此虛擬主機(jī)匹配的所有子域名,通常是www子域恬吕。- DocumentRoot
:Apache將在其中提供網(wǎng)站文件的目錄签则。- Options
:此偽指令控制特定目錄中可用的服務(wù)器功能。--Indexes
:防止訪問(wèn)網(wǎng)站目錄以列表形式展現(xiàn)铐料。- FollowSymLinks
:?jiǎn)⒂么诉x項(xiàng)后渐裂,Apache將遵循符號(hào)鏈接豺旬。- AllowOverride
:指定.htaccess
文件中聲明的指令可以覆蓋配置指令。- ErrorLog柒凉,CustomLog
:指定日志文件的位置族阅。
您可以根據(jù)需要命名虛擬主機(jī)配置文件,但是建議使用域名作為配置文件的名稱(chēng)膝捞。
要啟用新的虛擬主機(jī)文件坦刀,請(qǐng)創(chuàng)建一個(gè)從虛擬主機(jī)文件到啟用站點(diǎn)的目錄的符號(hào)鏈接,該鏈接在啟動(dòng)過(guò)程中由Apache讀取蔬咬。
在Debian系統(tǒng)中求泰,您可以使用名為a2ensite
的幫助程序腳本來(lái)啟用虛擬主機(jī),命令如下:
sudo a2ensite example.com
當(dāng)然你也可以選擇手動(dòng)創(chuàng)建符號(hào)鏈接计盒,如下所示:
sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/
啟用配置后,通過(guò)鍵入以下命令測(cè)試語(yǔ)法是否正確:
sudo apachectl configtest
如果一切正常芽丹,會(huì)輸出如下內(nèi)容:
Syntax OK
重啟服務(wù)北启,使配置生效,命令如下:
sudo systemctl restart apache2
在瀏覽器地址欄中輸入http://example.com
拔第,正常情況下你將看到如下輸出:
Hello Apache!
至此咕村,本教程交接完畢。
8蚊俺、寫(xiě)在最后
通過(guò)本教程懈涛,你將學(xué)會(huì)如何在Debian 10上安裝Apache并設(shè)置虛擬主機(jī),如果你有自己的的Debian 10主機(jī)不妨按照教程進(jìn)行安裝嘗試泳猬,如果沒(méi)有自己的Debian自己建議可以安裝一臺(tái)Debian10虛擬主機(jī)或者去阿里云或者騰訊云或者Vultr購(gòu)買(mǎi)一臺(tái)自己的VPS服務(wù)器批钠。