Случилось так, что заебался я при добавлении сайтов каждый раз лезть в конфиги веб-серверов и добавлять virtualserver, а так же создавать директории.
Что делать? не ставить же вебмин?? да и в один клик там все рано ничё не выйдет..
и решил я написать вот такой скрипт

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
47
48
49
50
51
52
53
54
#!/bin/bash

derictory=/srv/http
config_apache=/etc/httpd/conf/extra/httpd-nginx.conf
nginx=/etc/nginx/conf/sites-enabled
site=$1
port=$2
probe_apache=`cat $config_apache|grep Listen=$port|wc -l`
probe_file=`ls -l $nginx|grep $site|wc -l`

mkdir $derictory/$site
chown http.http $derictory/$site

if [ $probe_apache = "1" ]; then
    echo "Порт существует выберете другой"
fi

if [ $probe_apache = "0" ]; then
    echo "Listen=$port" >> $config_apache
    echo "<VirtualHost 127.0.0.1:$port>" >> $config_apache
    echo DocumentRoot \"$derictory/$site\" >> $config_apache
    echo "</VirtualHost>"  >> $config_apache
fi

if [ $probe_file = "1" ]; then
    echo Сайт уже есть
fi

if [ $probe_file = "0" ]; then
echo -e "server {
    listen       80;
    server_name  $site;
    root $derictory/$site;

    location ~* \.(jpg|gif|png|css|js|rar|zip|iso|ico)$ {
    root $derictory/$site;
} \n

    location / {
        proxy_pass http://127.0.0.1:$port/;
        proxy_set_header Host \$host;
        proxy_set_header X-Real-IP \$remote_addr;
        proxy_set_header X-Forwarded-For \$remote_addr;
        root   $derictory/$site;
        index  index.php;
    }

    error_page   500 502 503 504  /50x.html;
        location = /50x.html {
        root   html;
    }
}\n" > $nginx/$site

fi

Пользоваться так

1
[root@zakachkin kuku]# /path/to/script/sitecreate sitename.ru 2157

sitename.ru = имя сайта
2157 = порт apacha на котором он взаимодействует с nginx