注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com
先决条件
运行最新Arch Linux的Vultr服务器。有关更多信息,请参见本指南。
须藤访问。
需要以root身份运行的命令以前缀 #
,以及可以由 $
。建议以root用户身份运行命令的方式是,以普通用户的身份为每个命令添加前缀 sudo
。
安装并熟悉文本编辑器,例如 vi
, vim
, nano
, emacs
等等。
安装Apache 2.4 Web服务器
如果您使用的是防火墙,则需要启用到端口的传入TCP通信 80
。
安装Apache:
# pacman -S apache
启动Apache,并使其在每次启动后启动:
# systemctl enable --now httpd
测试Apache是否正在运行。访问 https://YOUR-SERVER-WEB-ADDRESS-OR-IP
,您将看到一个显示“ /的索引”的页面。跑 ip addr
如果您需要知道IP地址。
Apache的配置文件是 /etc/httpd/conf/httpd.conf
。尽管Apache由root用户启动, User http
出于安全原因,使其立即切换为以该用户身份运行。 DocumentRoot "/srv/http"
设置它将在何处查找网络文件。 CustomLog "/var/log/httpd/access_log" common
设置将记录对Apache的成功访问的位置。 ErrorLog "/var/log/httpd/error_log"
设置访问Apache的错误记录位置。
禁用索引
默认情况下,如果为Apache提供了一个目录,该目录找不到配置为使用其扩展名的索引文件,它将自动生成一个显示目录内容的索引。这可以被视为安全漏洞。要禁用它,请编辑 /etc/httpd/conf/httpd.conf
并在
,来自 Options
,删除 Indexes
。重新启动后,Apache将给出“禁止访问!”错误消息,除非文件类似 /srv/http/index.html
存在。
重新启动Apache:
# systemctl restart httpd
用户目录
默认情况下,用户的 ~/public_html/
目录将显示在 https://YOUR-SERVER-WEB-ADDRESS-OR-IP/~USERNAME/
。但是,用户 http
必须对用户目录及其目录具有可执行位访问权限 public_html
目录:
$ mkdir ~/public_html
$ chmod o+x ~/
$ chmod o+x ~/public_html
另外,用户 http
必须具有对单个文件的读取访问权限。如有必要,运行以下命令:
$ chmod o+r ~/public_html/
如果要禁用用户的 public_html
目录,而不管目录和文件权限如何,请注释此行(添加 #
到开始) /etc/httpd/conf/httpd.conf
:
Include conf/extra/httpd-userdir.conf
重新启动Apache:
# systemctl restart httpd
虚拟主机
您可以在同一个Apache服务器上托管多个域名,并为它们提供不同的内容。
创建一个文件夹来保存您的虚拟主机配置:
# mkdir /etc/httpd/conf/vhosts
为每个虚拟主机创建一个配置文件,例如 /etc/httpd/conf/vhosts/YOUR-DOMAIN-NAME.com
:
ServerAdmin [email protected]
DocumentRoot "/srv/YOUR-DOMAIN-NAME.com"
ServerName YOUR-DOMAIN-NAME.com
ServerAlias YOUR-DOMAIN-NAME.com
ErrorLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-error_log"
CustomLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-access_log" common
Require all granted
制作虚拟主机服务目录:
# mkdir /srv/YOUR-DOMAIN-NAME.com
在……的最后 /etc/httpd/conf/httpd.conf
,包括以下每个虚拟主机配置文件:
Include conf/vhosts/YOUR-DOMAIN-NAME.com
重新启动Apache:
# systemctl restart httpd
请求Apache接收到 YOUR-DOMAIN-NAME.com
将被送出 /srv/YOUR-DOMAIN-NAME.com
。注意对Apache的请求与特定的不匹配 ServerName
要么 ServerAlias
,仅IP地址或其他解析为您IP的域名仍将在包含的第一台虚拟主机中提供。也就是说,您仍然应该考虑一般 DocumentRoot
,默认为 /srv/http
,以某种方式可访问。
注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com