Criação de vhosts no Apache2

De Wiki Hackstore

Script cria-vhosts

#!/bin/bash

APACHECONFD="/etc/httpd/conf.d"
HOMEDIR="/iscsi/http"

echo -e "Digite o nome do domínio:\033[1;31m (sem WWW)\033[m\017"
read lerdominio

if [ -z "${lerdominio}" ] ; then
                 echo -e "\033[1;31mPor favor, digite um nome de dominio.\033[m\017";
                          exit;

else
        {
        echo -e "Deseja criar o dominio \033[1;31m${lerdominio}\033[m\017 (s/N)? "
        read escolher
        if [ $escolher = "s" ]; then
                echo -e "criando dominio... \033[1;31m${lerdominio}\033[m\017"

                #cria arquivo vhost
                sed -e s/{STRING}/$lerdominio/g ${APACHECONFD}/templates/vhost-template.conf > ${APACHECONFD}/${lerdominio}.conf

                #cria homedir
                mkdir -p ${HOMEDIR}/${lerdominio}/cgi-bin/ && chown apache. -R ${HOMEDIR}/${lerdominio}

                #atualiza conf apache
                /etc/init.d/httpd reload

                #Exibe status da criacao do vhost
                echo -e "\nDominio \033[1;32m${lerdominio}\033[m\017 criado com sucesso!\n"
                echo -e "Diretorio: \033[01;32m${HOMEDIR}/${lerdominio}\033[m\017"
                echo -e "Config vhost: \033[01;32m${APACHECONFD}/${lerdominio}.conf\033[m\017\n\n"

        fi
        } 2>&-

fi

Arquivo de exemplo do vhost (template)

Crie um arquivo de exemplo:

mkdir -p /etc/httpd/conf.d/templates/ && vi /etc/httpd/conf.d/templates/vhost-template.conf
<VirtualHost *:80>
    ServerName {STRING}
    ServerAlias www.{STRING}
    DocumentRoot /iscsi/http/{STRING}
    ServerAdmin webmaster@{STRING}
    UseCanonicalName Off
    CustomLog /var/log/httpd/{STRING} combined
    CustomLog /var/log/httpd/{STRING}-bytes_log "%{%s}t %I .\n%{%s}t %O ."
    ScriptAlias /cgi-bin/ /iscsi/http/{STRING}/cgi-bin/
</VirtualHost>