原文: https://javatutorial.net/configure-apache-multiple-sites-ubuntu

在本教程中,我将向您展示如何配置单个 Apache 2 Web 服务器以在 Ubuntu 16.04 LTS 上运行多个网站(虚拟主机)。

有时您可能想将不同的域指向单个虚拟主机。 这是价格有效的,并且可以通过简单的配置来完成。 您需要的是对 Ubuntu 服务器的 root 访问权限。

如何在 Ubuntu 上为多个站点配置 Apache - 图1

前提条件

本教程假定您已经在 Linux 主机上启动并运行了 Apache 2。 本教程还显示了如何为您的站点设置不同的 MySQL 用户,因此,如果要执行此步骤,则还应在服务器上安装 MySQL。

域名

首先,需要将您的域指向例如 https://javatutorial.net 的 Web 服务器 IP 地址。

  • 使用以下命令curl ipinfo.io/ip查找服务器的公共 IP 地址
  • 登录到您的域提供商(例如 GoDaddy 或您用来注册域的任何服务)
  • 转到 DNS 并更改 A 记录以指向您的服务器 IP

如何在 Ubuntu 上为多个站点配置 Apache - 图2

更改 DNS A 记录

我将此步骤列为 #1,因为 DNS 刷新可能需要数小时或数天。 请耐心等待,不要期望您的域会立即被重定向。

创建目录结构和用户权限

默认情况下,您的 Web 服务器为您的网站提供一个根目录,即/var/www/html/。 我们将对此进行更改,并为每个要添加的网站创建单独的文件夹。 例如/var/www/javatutorial

制作单独的文件夹

  1. sudo mkdir /var/www/javatutorial

将目录的所有权授予 Apache Web 用户(即www-data

  1. sudo chown YOUR_USER_NAME_HERE:www-data -R /var/www/javatutorial

将您的用户名添加到网络组

  1. sudo usermod -aG www-data YOUR_USER_NAME_HERE

将虚拟主机添加到 Apache

转到 Apache 的配置文件夹/etc/apache2/sites-available 并创建一个名为 javatutorial.conf的新文件。

编辑javatutorial.conf的内容

  1. <VirtualHost *:80>
  2. ServerAdmin admin@javatutorial.net
  3. ServerName javatutorial.net
  4. ServerAlias www.javatutorial.net
  5. DocumentRoot /var/www/javatutorial
  6. ErrorLog ${APACHE_LOG_DIR}/error.log
  7. CustomLog ${APACHE_LOG_DIR}/access.log combined
  8. </VirtualHost>

启用新配置

  1. sudo a2ensite javatutorial.conf

重新加载 Apache 以激活新配置

  1. service apache2 reload

为新站点创建 MySQL 数据库和用户

我们将创建一个新的 MySQL 数据库和用户,并遵循以下凭据:

  • 数据库名称:javatut
  • 数据库用户:tutuser
  • 用户密码:tutpass123

以 root 身份登录到 MySQL

  1. mysql -u root -p

现在,我们创建新的数据库和用户。 为用户设置密码,并授予该新用户使用数据库的权限

  1. mysql> CREATE DATABASE javatut;
  2. mysql> CREATE USER tutuser@localhost;
  3. mysql> SET PASSWORD FOR dbuser@localhost= PASSWORD("tutpass123");
  4. mysql> GRANT ALL PRIVILEGES ON javatut.* TO tutuser@localhost IDENTIFIED BY 'tutpass123';
  5. mysql> FLUSH PRIVILEGES;