如何在 Ubuntu 20.04 上安装 Apache Web 服务器
本指南将引导您完成在 Ubuntu 20.04 上安装 Apache 网络服务器。它包括管理 Apache2 服务、在防火墙中打开 Web 服务器端口、测试 Apache2 安装以及配置虚拟主机环境。
相关阅读:如何在 Ubuntu 20.04 上安装 Nginx Web 服务器
要求:
- 如何安装Ubuntu 20.04服务器
在 Ubuntu 20.04 中安装 Apache2
1. 首先,登录 Ubuntu 20.04 系统并使用以下 apt 命令更新系统软件包。
sudo apt update
2. 更新过程完成后,按如下方式安装 Apache2 Web 服务器软件。
sudo apt install apache2
3.安装Apache2软件包时,安装程序会触发systemd自动启动并启用apache2服务。您可以使用以下 systemctl 命令验证 apache2 服务是否处于活动/运行状态,并且是否能够在系统启动时自动启动。
sudo systemctl is-active apache2
sudo systemctl is-enabled apache2
sudo systemctl status apache2
在 Ubuntu 20.04 中管理 Apache
4. 现在您的 apache Web 服务器正在运行,是时候学习一些基本管理命令来使用以下 systemctl 命令来管理 apache 进程了。
sudo systemctl stop apache2 #stop apache2
sudo systemctl start apache2 #start apache2
sudo systemctl restart apache2 #restart apache2
sudo systemctl reload apache2 #reload apache2
sudo systemctl disable apache2 #disable apache2
sudo systemctl enable apache2 #enable apache2
在 Ubuntu 20.04 中配置 Apache
5.所有的Apache2配置文件都存放在/etc/apache2
目录下,可以通过以下ls查看其下的所有文件和子目录命令。
ls /etc/apache2/*
6.以下是需要注意的关键配置文件和子目录:
- /etc/apache2/apache2.conf – 主要的 Apache 全局配置文件,包括所有其他配置文件。
- /etc/apache2/conf-available – 存储可用的配置。
- /etc/apache2/conf-enabled – 包含启用的配置。
- /etc/apache2/mods-available – 包含可用模块。
- /etc/apache2/mods-enabled – 包含启用的模块。
- /etc/apache2/sites-available – 包含可用站点(虚拟主机)的配置文件。
- /etc/apache2/sites-enabled – 包含启用站点(虚拟主机)的配置文件。
请注意,如果服务器的FQDN未全局设置,则每次检查apache2服务状态或运行配置测试时,您都会收到以下警告。
apachectl[2996]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.0.2.15.
在主 apache 配置文件中全局设置 'ServerName'
指令以抑制此消息。
7. 要设置 Web 服务器的 FQDN,请使用 /etc/apache2/apache2.conf 中的 ServerName
指令文件,打开它以使用您喜欢的文本编辑器进行编辑。
sudo vim /etc/apache2/apache2.conf
在文件中添加以下行(将 webserver1.howtoing.com 替换为您的 FQDN)。
ServerName webserver1.linux-console.net
8.在apache配置中添加服务器名称后,检查配置语法是否正确,并重新启动服务。
sudo apache2ctl configtest
sudo systemctl restart apache2
9. 现在,当您检查 apache2 服务状态时,不应出现警告。
sudo systemctl status apache2
在 UFW 防火墙中打开 Apache 端口
10.如果您的系统上启用并运行了UFW防火墙,则需要打开HTTP(端口80)和防火墙配置中的 HTTPS(端口 443)服务,以允许 Web 流量通过防火墙到达 Apache2 Web 服务器。
sudo ufw allow http
sudo ufw allow https
sudo ufw reload
OR
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
在 Ubuntu 20.04 上测试 Apache
11. 要测试 Apache2 网络服务器安装是否正常工作,请打开网络浏览器,并使用服务器的 IP 地址进行导航:
http://SERVER_IP
要查找服务器的公共 IP 地址,请使用以下任一curl 命令。
curl ifconfig.co
OR
curl ifconfig.me
OR
curl icanhazip.com
如果您看到 Apache Ubuntu 默认欢迎网页,则表示您的 Web 服务器安装工作正常。
在 Ubuntu 20.04 中设置虚拟主机
尽管Apache2 Web 服务器默认配置为托管一个网站,但您可以使用“虚拟主机”的概念,使用它来托管多个网站/应用程序。
因此,虚拟主机这一术语指的是运行多个网站/应用程序(例如example.com和example1.com )的做法) 在单个服务器上。
此外,虚拟主机可以是“基于名称”(这意味着您在单个 IP 地址上运行多个域/主机名),或“基于 IP” ”(意味着每个网站都有不同的 IP 地址)。
请注意,提供 Apache Ubuntu 默认欢迎网页(用于测试 Apache2 安装)的默认虚拟主机位于 /var/www/html
目录中。
ls /var/www/html/
12. 在本指南中,我们将为名为 linuxdesktop.info
的网站创建一个虚拟主机。因此,我们首先为网站创建 Web 文档根目录,用于存储网站的 Web 文件。
sudo mkdir -p /var/www/html/linuxdesktop.info
13. 接下来,对创建的目录设置适当的所有权和权限。
sudo chown www-data:www-data -R /var/www/html/linuxdesktop.info
sudo chmod 775 -R /var/www/html/linuxdesktop.info
14. 现在创建一个示例索引页以进行测试。
sudo vim /var/www/html/linuxdesktop.info/index.html
将以下 html 代码复制并粘贴到其中。
<html>
<head>
<title>Welcome to linuxdesktop.info!</title>
</head>
<body>
<h1>Congrats! The new linuxdesktop.info virtual host is working fine.</h1>
</body>
</html>
保存文件并退出。
15.接下来,您需要在/etc/apache2下为新站点创建一个虚拟主机配置文件(应以.conf
扩展名结尾) /sites-available 目录。
sudo vim /etc/apache2/sites-available/linuxdesktop.info.conf
然后将以下配置复制并粘贴到文件中(请记住将 www.linuxdesktop.info
替换为您的 FQDN)。
<VirtualHost *:80>
ServerName www.linuxdesktop.info
ServerAlias linuxdesktop.info
DocumentRoot /var/www/html/linuxdesktop.info
ErrorLog /var/log/apache2/linuxdesktop.info_error.log
CustomLog /var/log/apache2/linuxdesktop.info_access.log combined
</VirtualHost>
保存文件并退出。
16. 接下来,启用新站点并重新加载 Apache2 配置以应用新更改,如下所示。
sudo a2ensite linuxdesktop.info.conf
sudo systemctl reload apache2
17.最后,测试新的虚拟主机配置是否工作正常。在 Web 浏览器中,使用您的 FQDN 进行导航。
http://domain-name
如果您可以看到新网站的索引页,则表示虚拟主机工作正常。
就这样!在本指南中,我们展示了如何在 Ubuntu 20.04 上安装 Apache 网络服务器。我们还介绍了如何管理 Apache2 服务、在 UFW 防火墙中打开 HTTP 和 HTTPS 服务/端口、测试 Apache2 安装以及配置和测试虚拟主机环境。您有任何疑问,请使用下面的评论表与我们联系。