虚拟主机类似于Nginx中的服务器块。 它用于管理来自一个服务器的多个域的配置。 我们将提供一个如何通过Apache服务器设置虚拟主机的示例。 我们将使用Apache for Ubuntu 18中默认启用的服务器块来建立一个名为linuxidc.com的网站。
第1步:设置域名
默认情况下启用的服务器块能够提供来自 /var/www/html的文档。 但是,我们将在/var/www/创建一个目录,保留默认目录。
通过以下命令创建此目录,将linuxidc.com替换为您各自的域名。
sudo mkdir -p /var/www/linuxidc.com/html
然后通过以下命令分配目录的所有权:
sudo chown -R $USER:$USER /var/www/linuxidc.com/html
sudo chmod -R 755 /var/www/linuxidc.com
现在让我们创建一个索引页面,如果Apache运行我们的域名,我们以后可以访问它们进行测试。 通过Nano编辑器或任何您喜欢的文本编辑器创建HTML文件。
nano /var/www/linuxidc.com/html/index.html
为索引页输入以下HTML:
<html>
<head>
<title>欢迎来到Linux公社页面 </title>
</head>
<body>
<h1>你真是棒! 您的linuxidc.com服务器块已启动!</h1>
</body>
</html>
我们使用nano编辑器来创建HTML文件。
您可以使用Ctrl + X将文件保存为nano,然后输入Y并按Enter键。
Apache需要一个虚拟主机文件来提供服务器的内容。 已经创建了用于此目的的默认配置文件,但我们将为自定义配置创建一个新配置文件。
sudo nano /etc/apache2/sites-available/linuxidc.com.conf
输入域名的以下自定义配置详细信息:
<VirtualHost *:80>
ServerAdmin admin@linuxidc.com
ServerName linuxidc.com
ServerAlias
DocumentRoot /var/www/linuxidc.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我们正在使用nano编辑器来创建此.conf文件。
您可以使用Ctrl + X将文件保存为nano,然后输入Y并按Enter键。
步骤2:启用域配置文件
让我们启用使用a2ensite工具创建的配置文件:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo a2ensite linuxidc.com.conf
Enabling site linuxidc.com.
To activate the new configuration, you need to run:
systemctl reload apache2
输出将建议激活新配置,但我们可以在运行以下禁用原始配置文件的命令后集体执行此操作:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo a2dissite 000-default.conf
Site 000-default disabled.
To activate the new configuration, you need to run:
systemctl reload apache2
现在重启Apache服务:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo systemctl restart apache2
第3步:测试错误
最后,让我们通过以下命令测试是否存在任何配置错误:
linuxidc@linuxidc:~/桌面/linuxidc.com$ sudo apache2ctl configtest
如果您没有收到任何错误,您将获得以下输出:
Syntax OK
但是,Ubuntu 18.04中常见以下错误