linux  →  Скрипт автоматического создания виртуальных хостов

published 28 January 2012

Скрипт предназначен только для localhost! Надоело все ручками прописывать. Вот скрипт, актуален для OpenSuse 12.1:

#!/bin/sh
echo "
  ServerAdmin 1@royaldt.dev
	ServerName $1
	DocumentRoot /srv/www/htdocs/$1
	ErrorLog  /srv/www/htdocs/$1/error_log
        CustomLog  /srv/www/htdocs/$1/access_log combined    
        
    	    Options None
            AllowOverride All
            Order deny,allow
            Allow from all
	
" > /etc/apache2/vhosts.d/$1.conf

echo "Created $1.conf in /etc/apache2/vhosts.d/"

echo 127.0.0.1	$1 >> /etc/hosts

echo "Added Alias 127.0.0.1 $1 into /etc/hosts"

mkdir /srv/www/htdocs/$1

echo "Created directory /srv/www/htdocs/$1"

chmod 777 /srv/www/htdocs/$1

echo "Warning! Chmod 777! For site dir."

echo "$1" > /srv/www/htdocs/$1/index.html

echo "Created default html file"

#my access for mysql root:root
/usr/bin/mysql -uroot -proot mysql -e "CREATE DATABASE IF NOT EXISTS $1;"

echo "Created database $1"

/etc/init.d/apache2 reload

echo "Your site has ready http://$1/"

Запуск от рута, первый параметр это имя хоста:

#sh ./addNewSite tsjee

Под ubuntu 11.10

#!/bin/sh
echo "
        ServerAdmin 1@royaldt.dev
        ServerName $1
        DocumentRoot /var/www/$1
        ErrorLog  /var/www/$1/error_log
        CustomLog  /var/www/$1/access_log combined    
        
            Options None
            AllowOverride All
            Order deny,allow
            Allow from all
        
" > /etc/apache2/sites-available/$1.conf

echo "Created $1.conf in /etc/apache2/sites-available/"

echo 127.0.0.1  $1 >> /etc/hosts

echo "Added Alias 127.0.0.1 $1 into /etc/hosts"

mkdir /var/www/$1

echo "Created directory /var/www/$1"

/usr/bin/mysql -uroot -proot mysql -e "CREATE DATABASE IF NOT EXISTS $1;"

echo "Created database $1"

/usr/sbin/a2ensite $1.conf

/etc/init.d/apache2 reload

echo "Your site has ready http://$1/"

UPD: Debian 7

#!/bin/sh
echo "
    ServerAdmin 1@royaldt.dev
    ServerName $1
    DocumentRoot /var/www/$1
    ErrorLog logs/$1.error
    CustomLog logs/$1 common
    
    Options None
    AllowOverride All
    Order deny,allow
    Allow from all
    
" > /etc/apache2/vhosts/$1.conf
echo  "Created $1.conf in /etc/apache2/vhosts/"
echo 127.0.0.1  $1 >> /etc/hosts

echo "Added Alias 127.0.0.1 $1 into /etc/hosts"

mkdir /var/www/$1

echo "Created directory /var/www/$1"

/usr/bin/mysql -uroot -proot mysql -e "CREATE DATABASE IF NOT EXISTS $1;"

echo "Created database $1"
/etc/init.d/apache2 restart
echo "Your site has ready http://$1/"

echo "Hello World!" > /var/www/$1/index.html