如何在Arch Linux上安装Apache 2.4

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com

先决条件

运行最新Arch Linux的Vultr服务器。有关更多信息,请参见本指南。
须藤访问。

需要以root身份运行的命令以前缀 #,以及可以由 $。建议以root用户身份运行命令的方式是,以普通用户的身份为每个命令添加前缀 sudo

安装并熟悉文本编辑器,例如 vivimnanoemacs 等等。

安装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