使用启用/禁用Vhosts创建Apache虚拟主机RHEL / CentOS 7.0中的选项

虚拟主机允许Apache根据IP地址,主机名或端口提供不同的内容。本指南将使用类似Debian的方法来启用和

虚拟主机允许Apache的Weberver基于IP地址,主机名或使用端口号提供不同的内容。 网站,提供 网站 -本指南将通过在/ etc / httpd的/路径,这将让所有的启用和禁用网站的文件配置上创建两个目录,使用Debian的类似的方法对红帽企业版Linux / CentOS 7.0启用和管理虚拟主机-启用和两种类型的脚本作为命令,一个能够和其他禁用指定的虚拟主机- a2ensitea2dissite。 这种方法有一些优势,因为你做了必须搞乱httpd配置文件,每个虚拟主机都有自己的配置文件,可以在单个位置找到 - 启用的主机只是符号链接 - 这使得启用,禁用,创建或删除它们很容易管理。

在CentOS中的Apache虚拟主机

使用启用/禁用选项的Apache虚拟主机

要求

  1. RHEL / CentOS 7.0上的LAMP基本安装

在RHEL / CentOS 7中创建和管理Apache虚拟主机

1.首先,通过输入上的/ etc / httpd的/路径入手,创建启用站点的网站,提供目录和编辑Apache的httpd.conf文件,应用新启用的网站位置。

# cd /etc/httpd/
# mkdir sites-available sites-enabled
# nano conf/httpd.conf
创建Apache Vhost目录

创建Apache Vhost目录

2.httpd.conf文件在文件的底部,这将使Apache的读取和解析位于/所有文件添加以下指令行等/的httpd / /在扩展的.conf结束启用的站点- 。

IncludeOptional sites-enabled/*.conf
启用Apache目录

启用Apache目录

3.在下一步创建使用描述性名称的网站可用的位置创建一个新的虚拟主机-在这种情况下,我用rheltest.lan.conf -并使用以下文件作为模板。

# nano /etc/httpd/sites-available/rheltest.lan.conf

使用此配置作为指南。

<VirtualHost *:80>
ServerName rheltest.lan
DocumentRoot "/var/www/rheltest.lan"
<Directory "/var/www/rheltest.lan">
Options Indexes FollowSymLinks MultiViews
# AllowOverride controls what directives may be placed in .htaccess files.      
AllowOverride All
# Controls who can get stuff from this server file
Order allow,deny
Allow from all
</Directory>
<IfModule mpm_peruser_module>
ServerEnvironment apache apache
</IfModule>
ErrorLog  /var/log/httpd/rheltest.lan-error.log
CustomLog /var/log/httpd/rheltest.lan-access.log combined
</VirtualHost>
创建Apache Vhosts

创建Apache Vhosts

4.如果从默认的/ var / www / html等其他路径的虚拟主机上更改DocumentRoot的位置,请确保您还创建此路径。

# mkdir -p /var/www/rheltest.lan

:也保证服务器名称主机是有效的DNS记录或添加到您的本地机器的hosts文件,从那里你计划访问该网站。

5.现在是时候一个可执行文件系统路径上创建a2ensitea2dissite的bash脚本-在这种情况下是/ usr / local / bin目录/ -
您可以使用$ PATH系统变量输出的任何可执行文件的路径。

创建a2ensite脚本

使用您选择的编辑器创建以下文件。

# nano /usr/local/bin/a2ensite

将以下脚本添加到它。

#!/bin/bash
if test -d /etc/httpd/sites-available && test -d /etc/httpd/sites-enabled  ; then
echo "-----------------------------------------------"
else
mkdir /etc/httpd/sites-available
mkdir /etc/httpd/sites-enabled
fi
avail=/etc/httpd/sites-available/$1.conf
enabled=/etc/httpd/sites-enabled/
site=`ls /etc/httpd/sites-available/`
if [ "$#" != "1" ]; then
echo "Use script: a2ensite virtual_site"
echo -e "\nAvailable virtual hosts:\n$site"
exit 0
else
if test -e $avail; then
sudo ln -s $avail $enabled
else
echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Success!! Now restart Apache server: sudo systemctl restart httpd"
else
echo  -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
exit 0
fi
fi
创建a2ensite脚本

创建a2ensite脚本

创建a2dissite脚本

使用您选择的编辑器创建以下文件。

# nano /usr/local/bin/a2dissite

将以下整个脚本添加到文件。

#!/bin/bash
avail=/etc/httpd/sites-enabled/$1.conf
enabled=/etc/httpd/sites-enabled
site=`ls /etc/httpd/sites-enabled/`
if [ "$#" != "1" ]; then
echo "Use script: a2dissite virtual_site"
echo -e "\nAvailable virtual hosts: \n$site"
exit 0
else
if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting!"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nPlease restart Apache: sudo systemctl restart httpd"
exit 0
fi
fi
创建a2dissite脚本

创建a2dissite脚本

这两个脚本文件已经建立6后,确保它们是可执行文件,开始使用它们来启用或通过附加虚拟主机名作为参数的命令禁用虚拟主机。

# chmod +x /usr/local/bin/a2*
# a2ensite vhost_name
# a2disite vhost_name

7.要测试它,使前面创建的虚拟主机,重新启动Apache服务直接浏览到新的虚拟主机-在这种情况下,HTTP://rheltest.lan。

# a2ensite rheltest.lan
# systemctl restart httpd
启用Apache Virtualhost

启用Apache Virtualhost

验证Apache Virtualhost

验证Apache Virtualhost

而已! 现在,作为系统命令来管理RHEL / CentOS 7.0Apache虚拟主机文件,您可以使用a2enistea2disite的bash脚本。