脚本实现httpd创建虚拟主机

概述


本文使用脚本实现基于主机名的虚拟主机按需创建:

  • 脚本可接受参数,提供独立站点目录;

  • 生成独立站点首页;

  • 脚本可接受参数,参数虚拟主机名称;

  • 每虚拟使用单独的配置文件;

  • 脚本可接受参数,参数虚拟主机名称;

环境


系统基于CentOS7.2,并通过yum安装httpd 2.4.6

建议关闭防火墙和selinux。

演示


 1475915355333086.gif

客户机将域名解析写入/etc/hosts文件中

GIF3.gif

脚本


#!/usr/bin/env bash
#
# Author: jacky18676887374@aliyun.com   QQ-18676887374
# date: 20161007-14:05:25
# Vervion: 0.0.1
# Description:
# Synopsis:
# 
# 快速创建虚拟网站,站点测试页。
# create a test web
webtest(){
cat <<EOF > $2/index.html
<html>
<head>It's only a test web</head>
<body><h1>$1</h1></body>
</html>
EOF
}
# 生成vhost配置文件
vhost() {
    cat <<EOF > /etc/httpd/conf.d/$1.conf
<VirtualHost *:80>
    ServerName $1
    DocumentRoot "$2"
    <Directory "$2">
        Options None
        AllowOverride None
        Require all granted
    </Directory>
    ErrorLog "/var/log/httpd/error_log_$1"
    LogLevel warn
    CustomLog "/var/log/httpd/access_log_$1" combinedio
</VirtualHost>
EOF
}
# get website variable
getvar(){
    read -p 'Input a Directory for this VirtualHost: ' vdiretory
    read -p 'Input a hostname for this VirtualHost: ' vhostname
}
# 禁用selinux
if [ `getenforce` != Disabled ];then
    sed -i '/^SELINUX=/s/^.*$/SELINUX=disabled/' /etc/selinux/config
    echo "change selinux=disabled,you must reboot."
fi
PS3='Input your choice:1)create; 2)quit  '
select i in create quit ;do
    case $i in
        create)
            getvar
            mkdir -p $vdiretory
            vhost $vhostname $vdiretory
            webtest  $vhostname $vdiretory
            if `httpd -t` ;then
                systemctl reload httpd
                echo -e "Create complete.\nyour  website url:$vhostname"
            else
                mv $vdiretory/index.html{,.errorr}
                mv /etc/httpd/conf.d/vhostname.conf{,.error}
                echo 'Error'
            fi
            ;;
        quit)
            exit
            ;;
    esac
done

原创文章,作者:昭其,如若转载,请注明出处:http://www.178linux.com/50153

(0)
昭其昭其
上一篇 2016-10-08 15:22
下一篇 2016-10-08 17:03

相关推荐

  • 流编辑器Sed(Stream Edit)详解

    流编辑器Sed(Stream Edit)详解       Grep 、sed 和awk并称为文本三剑客。使用Grep就可以很好的实现文本查找的功能,而且简单有效。然而其却无法直接对其进行编辑,sed的出现便解决了这一问题。 Sed被称为流编辑器,它是一种新型的非交互式的文本编辑器,它逐行处理文件或输入,并将结…

    Linux干货 2016-08-22
  • 内核编译

    内核编译 程序包的编译安装 ./configure,make,make install./configure检查编译环境依赖关系,并设定参数make 执行编译操作make install 安装二进制库文件帮助文档配置文件 前提:开发环境(开发工具,开发库),头文件:/usr/include 开源:源代码 发行版,就是把源代码拿过来,组织成程序。  …

    Linux干货 2016-09-19
  • 1019作业

    1019作业 柴震 软连接 硬连接 软连接和硬链接的区别 属性与定义: 硬链接:新建的文件是已经存在的文件的一个别名,所以创建时链接数递增;而且当原文件删除时,新建的链接文件仍然可以使用,因其直接对应于数据块。 软链接:也称为符号链接。新建的链接文件以“路径”的形式来表示另一个文件,其大小为指向的路径字符串的长度,不增加或减少目标文件in…

    Linux干货 2016-10-19
  • 基础命令。

    简单基础小命令 查看目录 ls 查看当前路径下的目录 ls -a 查看当前路径下的所有目录,包含隐藏目录(带.的就是隐藏) ls -A 跟-a一样,只是不显示上一路径和本身路径(就是.和..) ls -l 显示额外的信息 ls -R 进入每个文件夹查看(递归) ls -ld 查看元数据 ls -1(数字) 排列 ls -r 倒序 ls -t 按修改时间排序 …

    Linux干货 2017-05-29
  • MySQL Fabric 安装部署

    MySQL Fabric  是一个用于管理 MySQL 服务器群的可扩展框架。该框架实现了两个特性 — 高可用性 (HA) 以及使用数据分片的横向扩展。这两个特性既可以单独使用,也可以结合使用。 环境: 安装MySQL Fabric 配置MySQL Fabric MySQL Fabric 安装管理数据库fabric 启动MySQL Fab…

    数据库运维 2016-06-03
  • 软连接与硬连接

    硬链接定义 新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用. 硬链接(hard link) ln   UNIX文件系统提供了一种将不同文件链接至同一个文件的机制,称这种机制为链接。它可以使得单个程序对同一文件使用不同的名字。这样的好处是文件系统只存在一个文件的副本。系统简单地通过在目录中建立一个新的登记项来实现这种连接。该登记项…

    Linux干货 2017-07-22