如何在Ubuntu 18.04和16.04 LTS中创建Apache虚拟主机

时间:2019-05-19 01:25:50  来源:igfitidea点击:

虚拟主机是指在一台服务器上运行多个域(或多个网站)。
虚拟主机的最佳使用可以在共享主机服务器上看到,数以千计的网站托管在一台服务器上,共享单一系统资源。
本文将在Ubuntu、Debian和LinuxMint系统上创建Apache2服务器中的虚拟主机。

1。安装Apache

如果系统中已经安装了Apache服务器,我们可以跳过此选项。
如果没有,请使用下面的命令在Ubuntu系统上安装Apache服务器。

sudo apt-get update
sudo apt-get install apache2

2:创建Apache VirtualHost

在Ubuntu上的Apache中,所有的虚拟主机配置文件都存储在 /etc/apache2/sites-available目录下。
对于新的Apache安装,我们将在那里找到一个默认的虚拟主机文件。
通过复制默认文件创建一个新的虚拟主机配置文件。

cd /etc/apache2/sites-available/
sudo cp 000-default.conf site1.example.com.conf

现在编辑新的虚拟主机配置文件并根据需求进行更新。
我的site1.example.com配置文件如下所示。

vim site1.example.com.conf

<VirtualHost *:80>
        ServerAdmin Hyman@theitroad
        ServerName site1.example.com
        DocumentRoot /var/www/site1.example.com/httpdocs

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

现在在系统中创建一个目录结构,按照上面虚拟主机中的定义,并分配适当的所有权和文件权限。

mkdir -p /var/www/site1.example.com/httpdocs
chmod 755 /var/www/site1.example.com/httpdocs
chown www-data.www-data /var/www/site1.example.com/httpdocs

现在将项目文件上传到 /var/www/site1.example.com/httpdocs/目录。
对于本例,我们创建了一个 index.html文件用于测试,如下所示。

echo "hello site1.example.com" > /var/www/site1.example.com/httpdocs/index.html

3:启用第一个虚拟主机

现在,我们已经成功地在Apache中创建了第一个虚拟主机。
现在使用以下命令启用这个虚拟主机,以便Apache可以在下一次重新加载时加载这个配置文件。

a2ensite site1.example.com

基本上,这将在目录 /etc/apache2/sites-enabled/中创建虚拟主机配置文件的软链接。
要激活新的配置,我们需要运行:

service apache2 reload

现在我们可以在浏览器中访问 http://site1.example.com
如果我们没有为域配置dns,通过在 /etc/hosts文件中添加一个条目来进行本地映射。

...
 192.168.1.100  site1.example.com
 ...

4:创建另一个虚拟主机

如果我们想在服务器上添加另一个虚拟主机,只需重复步骤2和3,并更改站点名称,如site2.example.com。