Автоматизация добавления хоста

Ну так как нам лень писать много раз одно и тоже для добавления нового пользователя и сайта, автоматизируем это.

Создадим файл, например, addvhost.sh в своей домашней директории, ну если рутом Вы работаете (не хорошо конечно это) то в /root

А запускать будем так: sh ./addvhost.sh имя_домена (ну типа sh ./addvhost.sh site1)

Ну собственно такое дело:
addvhost.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/sh
# Author: Supme (http://www.supme.net.ru)

if [ $1 ]
then echo make new virtual domain $nd
else echo use: $0 new-domain.ru; exit
fi

clear
echo "Add user $1"
useradd $1 -b /web/ -m -U -s /bin/false
passwd $1
echo "Create directory"
chmod 754 /web/$1
mkdir -p -m 754 /web/$1/public_html/www
mkdir -p -m 777 /web/$1/tmp
chmod +t /web/$1/tmp
echo "Create index.php file in www"
echo "< ?php phpinfo(); ?>" > /web/$1/public_html/www/index.php
chown -R $1:$1 /web/$1/

echo "Add file /etc/apache2/site-available/$1"
cd /etc/apache2/sites-available
cat > $1 << _EOF
<VirtualHost *:80>
   DocumentRoot /web/$1/public_html/www/
   ServerName $1
   ServerAlias www.$1
   ErrorLog /web/$1/error_log
   CustomLog /web/$1/access_log combined
   AssignUserId $1 $1
   php_admin_value open_basedir /web/$1/:.
   php_admin_value upload_tmp_dir /web/$1/tmp
   php_admin_value session.save_path /web/$1/tmp
</VirtualHost>
_EOF

echo "Add symlink /etc/apache2/site-enable/$1"
a2ensite $1
echo "Complete add virtual host $1 in apache"
sleep 1

echo "Reload apache" /etc/init.d/apache2 reload echo "All OK!" echo "Ready to use http://$1"