如何在 Ubuntu 22.04 上安装 Apache Web 服务器
介绍
Apache HTTP 服务器是世界上使用最广泛的 Web 服务器。它提供了许多强大的功能,包括动态可加载模块、强大的媒体支持以及与其他流行软件的广泛集成。
先决条件
第 1 步 — 安装 Apache
sudo apt update
sudo apt install apache2
第 2 步 — 调整防火墙
sudo ufw app list
Output Available applications: Apache Apache Full Apache Secure OpenSSH
Apache
:此配置文件仅打开80
端口(正常、未加密的网络流量)Apache Full
:此配置文件打开80
端口(正常、未加密的 Web 流量)和443
端口(TLS/SSL 加密流量)Apache Secure
:此配置文件仅打开443
端口(TLS/SSL 加密流量)
sudo ufw allow 'Apache'
sudo ufw status
Output Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
第 3 步 — 检查我们的 Web 服务器
sudo systemctl status apache2
Output ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese> Active: active (running) since Tue 2022-04-26 15:33:21 UTC; 43s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 5089 (apache2) Tasks: 55 (limit: 1119) Memory: 4.8M CPU: 33ms CGroup: /system.slice/apache2.service ├─5089 /usr/sbin/apache2 -k start ├─5091 /usr/sbin/apache2 -k start └─5092 /usr/sbin/apache2 -k start
hostname -I
curl -4 icanhazip.com
http://your_server_ip
第 4 步 — 管理 Apache 进程
sudo systemctl stop apache2
sudo systemctl start apache2
sudo systemctl restart apache2
sudo systemctl reload apache2
sudo systemctl disable apache2
sudo systemctl enable apache2
第 5 步 — 设置虚拟主机(推荐)
使用 Apache Web 服务器时,我们可以使用虚拟主机(类似于 Nginx 中的服务器块)来封装配置详细信息并从一台服务器托管多个域。我们将设置一个名为your_domain的域,并将其替换为自己的域名。
Ubuntu 22.04 上的 Apache 默认启用一个服务器块,该服务器块配置为提供/var/www/html目录中的文档。虽然这对于单个站点来说效果很好,但如果我们托管多个站点,它可能会变得笨拙。所以我们要为your_domain站点创建一个/var/www/html目录结构,如果客户端请求与任何其他站点都不匹配,则将其保留为要提供服务的默认目录。
sudo mkdir /var/www/your_domain
sudo chown -R $USER:$USER /var/www/your_domain
sudo chmod -R 755 /var/www/your_domain
sudo nano /var/www/your_domain/index.html
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain virtual host is working!</h1> </body> </html>
为了让 Apache 提供此内容,需要使用正确的指令创建虚拟主机文件。不要直接修改位于/etc/apache2/sites-available/000-default.conf 的默认配置文件,而是在/etc/apache2/sites-available/your_domain.conf 处创建一个新配置文件:
sudo nano /etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
sudo a2ensite your_domain.conf
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
Output . . . Syntax OK
sudo systemctl restart apache2
第 6 步 – 熟悉重要的 Apache 文件和目录
内容
/var/www/html
:实际的 Web 内容默认情况下仅包含我们之前看到的默认 Apache 页面,是从/var/www/html
目录中提供的。这可以通过更改 Apache 配置文件来更改。
服务器配置
/etc/apache2:Apache 配置目录。所有 Apache 配置文件都驻留在此处。
/etc/apache2/apache2.conf:主要的 Apache 配置文件。可以修改它以更改 Apache 全局配置。该文件负责加载配置目录中的许多其他文件。
/etc/apache2/ports.conf:该文件指定 Apache 将侦听的端口。默认情况下,Apache 侦听端口80,在启用提供 SSL 功能的模块时另外侦听443端口。
/etc/apache2/sites-available/:可以存储每个站点虚拟主机的目录。Apache 将不会使用在此目录中找到的配置文件,除非它们链接到该sites-enabled目录。通常,所有服务器块配置都在此目录中完成,然后通过使用a2ensite命令链接到其他目录来启用。
/etc/apache2/sites-enabled/:存储已启用的每站点虚拟主机的目录。Apache 在启动或重新加载时读取此目录中的配置文件和链接以编译完整的配置。
/etc/apache2/conf-available/, :这些目录与和目录/etc/apache2/conf-enabled/具有相同的关系,但用于存储不属于虚拟主机的配置片段。目录中的文件可以使用该命令启用,也可以使用该命令禁用。
/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 服务器,对于可以提供的内容类型以及可以用来创建更丰富体验的技术,我们有多种选择。如果我们想构建更完整的应用程序堆栈
本文链接:https://blog.runxinyun.com/post/223.html 转载需授权!
留言0