如何在Ubuntu 18.04上设置Apache虚拟主机
Apache HTTP Web服务器是一种功能强大,免费和开放源代码的Web服务器,它已经并且一直领先于Nginx和Microsoft IIS等领先的Web服务器平台。
据Opensource.com称,Apache占有45.9%的市场份额,并为PayPal,Apple,Craigslist,Adobe和BBC等受欢迎的提供了强大的支持。
什么是虚拟主机?
Apache Web服务器使我们能够创建可以独立配置和自定义的单个单元,以在同一服务器上为多个站点提供服务。
这称为虚拟主机。
当多个域名(每个域名分别处理)托管在单个服务器上时,就会发生这种情况。
服务器因此能够共享其资源,例如磁盘空间和内存利用率。
每个域都配置为将流量定向到包含该域名特定信息的唯一目录。
虚拟主机的一种广泛使用的应用程序是共享Web主机,其中将多个客户托管在一台服务器上。
这比专用托管要便宜得多,专用托管要昂贵得多。
在本教程中,我们将深入研究在Ubuntu 18.04 LTS上设置和配置Apache虚拟主机。
安装Apache Web服务器
在安装Apache之前,最好先更新软件包存储库。
您可以通过运行以下命令来执行此操作:
# sudo apt update
此后,安装Apache Web服务器。
# sudo apt install apache2
这两个命令标志着一个非常重要的过程的第一步。
为了便于说明,我们将使用" ubuntu.cc"和" debian.edu"作为我们的虚拟主机。
遵循本教程还将引导您测试两个域,并查看配置是否有效。
为虚拟主机创建目录结构
我们需要一个目录来保存用户可以访问的数据。
Apache通常有一个根文档目录,该目录服务于从中寻找信息的用户。
根目录中的内容分配给/var/www
目录下的各个用户。
在每个目录中,我们需要一个文件夹公用文件夹(public_html)来保存所有上载的文件。
运行以下命令以创建两个目录:
# sudo mkdir -p /var/www/ubuntu.cc/public_html # sudo mkdir -p /var/www/debian.edu/public_html
授予权限
现在我们已经有了目录结构,我们需要将所有权分配给普通用户,以便他们可以修改目录中包含的文件。
为此,我们需要运行如图所示的命令。
# sudo chown -R $USER:$USER /var/www/ubuntu.cc/public_html # sudo chown -R $USER:$USER /var/www/debian.edu/public_html
在按下" Enter"键后," $USER"变量将获取当前登录用户的值。
这使普通用户拥有public_html
中包含的子目录,这些子目录将托管我们的内容。
为了正确地为虚拟主机的网页提供服务,我们需要将读取权限分配给常规www目录,该目录将递归地将读取权限分配给其中的文件和文件夹。
为此,请运行
# sudo chmod -R 755 /var/www
此时,我们的Web服务器应该具有提供内容的必要权限,并且用户还应该能够在相应目录中创建自己的内容。
创建新的虚拟主机文件
我们需要将文件复制到第一个域:
# sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ubuntu.cc.conf
让我们使用nano打开新文件,如下所示:
# sudo nano /etc/apache2/sites-available/ubuntu.cc.conf
您可以选择保留它的状态,也可以使其在VPS安装中的第一个计时器上更具表现力(请注意,原始文件带有#,该注释表示解释每一行所代表的意思)。
从上面的文件中,虚拟主机将使用默认协议HTTP处理在端口80上发出的任何请求。
我们需要将有效的电子邮件分配给ServerAdmin属性。
在这种情况下,我们将使用[email protected]
然后,我们将添加两行:
ServerName,与特定虚拟主机的基本域匹配。
定义任何其他名称的ServerAlias应该与基本域名紧密匹配。
在这种情况下,我们将使用www。
对于" DocumentRoot"属性,更改路径以反映虚拟主机文件路径。
通过将虚拟主机文件编辑为以下形式,可以概括所有三个更改:
保存更改并退出。
让我们复制第一个虚拟主机并为debian.edu
(另一个域)自定义
我们通过以下方式复制它:
# sudo cp /etc/apache2/sites-available/ubuntu.cc.conf /etc/apache2/sites-available/debian.edu.conf
打开并编辑文件,如下所示:
# sudo nano /etc/apache2/sites-available/debian.edu.conf
打开配置文件,并在需要的地方进行相应的更改
保存并退出配置文件。
启用新创建的主机文件
Apache有一些内置工具,使我们能够"激活"文件。
您可以使用a2ensite
工具来完成此操作,如下所示:
# sudo a2ensite ubuntu.cc.conf # sudo a2ensite debian.edu.conf
接下来,重新启动Apache Web服务器以使更改生效。
# sudo systemctl restart apache2
要测试VPS的功能,您需要修改本地计算机上的主机文件。
这有助于将域请求重定向到您的VPS服务器。
这与注册新域时DNS系统运行的方式相同。
以下步骤应在本地工作站而不是VPS服务器上执行。
您需要以root用户身份登录才能正常工作。
如图所示,编辑/etc/hosts
文件。
# sudo vim /etc/hosts
在此文件上,您需要添加VPS服务器的公共地址(IP),然后添加用于访问VPS的域名。
就我而言,我的VPS地址为192.168.43.195;因此,我将编辑主机文件,如下所示:
保存并退出文本编辑器。
上述更改意味着任何访问" ubuntu.cc"和" debian.edu"的访问者的请求都将通过192.168.43.195定向。
这就是在虚拟主机上重定向域的方式。
测试虚拟服务器
现在我们已经完成了虚拟主机的配置,是时候验证所有虚拟主机是否全部使用了。
首先,您可以使用ping命令检查终端上两个虚拟主机的可访问性
精彩!我们可以到达虚拟主机。
现在,您可以继续打开浏览器并访问URL。
https://ubuntu.cc
大!我们的第一台虚拟主机正在工作。
让我们尝试ping第二台虚拟主机
同样,打开浏览器并访问虚拟主机的URL
https://debian.cc