“虚拟主机”一词是指在单个服务器上托管多个域。公司使用虚拟主机概念来使用一台机器托管多个网站。它可以通过“基于 IP”的方法或“基于域名”的方法来实现。在“基于 IP”的托管中,每个网站都有不同的 IP 地址。在“基于名称”托管的情况下,我们在每个 IP 地址上运行多个名称。
在 Ubuntu 22.04 LTS Jammy Jellyfish 上创建 Apache 虚拟主机
apt
步骤 1. 首先,通过在终端中运行以下命令,确保所有系统包都是最新的。
sudo apt update
sudo apt upgrade
步骤 2. 在 Ubuntu 22.04 上安装 Apache HTTP 服务器。
默认情况下,Apache 在 Ubuntu 22.04 基础存储库中可用。现在运行以下命令将最新版本的 Apache 安装到您的 Ubuntu 系统:
sudo apt install apache2
成功安装后,启用 Apache(系统启动时自动启动),启动,并使用以下命令验证状态:
sudo systemctl enable apache2
sudo systemctl start apache2
sudo systemctl status apache2
您可以使用以下命令确认 Apache2 版本:
apache2 -v
步骤 3. 配置防火墙。
现在,我们使用 Apache 设置了一个简单防火墙 (UFW),以允许对 HTTP 和 HTTPS 的默认 Web 端口进行公共访问:
sudo ufw allow OpenSSH sudo ufw allow 'Apache Full' sudo ufw enable
步骤 4. 创建虚拟主机。
首先,我们在里面创建网站目录:/var/www/
mkdir -p /var/www/idroot.us
将域文档根目录和目录内所有文件的权限和所有权设置给apache用户:
sudo chown -R www-data: /var/www/idroot.us
接下来,我们使用nano 文本编辑器创建一个新的虚拟主机文件来保存所有配置数据:
sudo nano /etc/apache2/sites-available/idroot.us.conf
添加以下文件:
<VirtualHost *:80> ServerName idroot.us ServerAlias www.idroot.us ServerAdmin webmaster@localhost DocumentRoot /var/www/idroot.us ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
保存并关闭文件,然后重新启动 Apache 网络服务器以进行更改:
sudo a2ensite idroot.us.conf sudo a2dissite 000-default sudo systemctl restart apache2
让我们确认您的新网站的配置是否正常工作(您应该会看到消息syntax OK
):
sudo apache2ctl configtest
步骤 5. 创建一个测试 HTML 页面。
现在在您的网站根文件夹中创建一个新的HTML文档:
sudo nano /var/www/idroot.us/index.html
添加以下文件:
<html> <head> <title>Welcome to idroot</title> </head> <body> <h1>Hello World!</h1> <p>Welcome to my new website <strong>idroot.us</strong>.</p> </body> </html>
保存并关闭文件,现在您已经配置了虚拟主机,您可以通过转到您在 Web 浏览器中配置的域来轻松测试您的设置:
http://idroot.us
感谢您使用本教程在 Ubuntu 22.04 LTS Jammy Jellyfish 系统上创建 Apache 虚拟主机。如需更多帮助或有用信息,我们建议您查看Apache 官方网站。