如何在Arch Linux上安装Apache 2.4

安装 Apache 2.4 Web 服务器如果您使用的是防火墙,则需要启用到端口的传入 TCP 通信80
安装 Apache:
# pacman -S apache启动 Apache,并使其在每次启动后启动:
# systemctl enable --now httpd测试 Apache 是??否正在运行 。访问http://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及内<Directory "/srv/http">,从Options删除Indexes 。重新启动后,Apache 将给出“禁止访问!” 错误消息,除非/srv/http/index.html存在类似文件 。
重新启动 Apache:
# systemctl restart httpd用户目录默认情况下,用户~/public_html/目录将显示在http://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/<FILES>如果要禁止用户public_html目录位于 Web 服务器上,无论目录和文件权限如何,请在以下位置注释此行(添加#到开头)/etc/httpd/conf/httpd.conf
Include conf/extra/httpd-userdir.conf【如何在Arch Linux上安装Apache 2.4】重新启动 Apache:
# systemctl restart httpd虚拟主机您可以在同一个 Apache 服务器上托管多个域名,并为它们提供不同的内容 。
创建一个文件夹来保存您的虚拟主机配置:
# mkdir /etc/httpd/conf/vhosts为每个虚拟主机创建一个配置文件,例如/etc/httpd/conf/vhosts/YOUR-DOMAIN-NAME.com
<VirtualHost *:80>ServerAdmin webmaster@YOUR-DOMAIN-NAME.comDocumentRoot "/srv/YOUR-DOMAIN-NAME.com"ServerName YOUR-DOMAIN-NAME.comServerAlias YOUR-DOMAIN-NAME.comErrorLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-error_log"CustomLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-access_log" common<Directory "/srv/YOUR-DOMAIN-NAME.com">Require all granted</Directory></VirtualHost>制作虚拟主机服务目录:
# mkdir /srv/YOUR-DOMAIN-NAME.com在的结尾/etc/httpd/conf/httpd.conf,包括以下每个虚拟主机配置文件:
Include conf/vhosts/YOUR-DOMAIN-NAME.com重新启动 Apache:
# systemctl restart httpdApache 收到的请求YOUR-DOMAIN-NAME.com将从发出/srv/YOUR-DOMAIN-NAME.com 。请注意,对 Apache 的请求与特定的ServerName或不匹配ServerAlias,仅与 IP 地址或解析为您的 IP 的另一个域名不匹配,仍然会从包含的第一个虚拟主机中提供 。也就是说,您仍然应该考虑将 general 的任何内容(DocumentRoot默认为/srv/http

推荐阅读