Счетчик

Поисковый анализ сайта
яндекс.ћетрика
Cервер и сайт запущен 2011.02.01 на Debian

Доброго времени суток друзья!

Перенос большого кол-ва сайтов на новый сервер занимает много времени? Ничего подобного. Скрипт представленный ниже сделает все за вас!

Возможности:
1. Создание 2х конфигурационных файлов для apache2 и nginx;
2. Создание необходимых каталогов для сайта;
3. Выставление необходимых прав доступа к папкам домена;
4. Создание символических ссылок для включения домена на обоих серверах;
5. Reload обоих серверов.

Синтаксис

a2addhv [domain] [domain-ip] [user]



Установка:
1. Создайте необходимые пути:

mkdir /usr/share/apache2/templates
mkdir -p /usr/share/nginx/templates



2. Скопируйте шаблоны:

cp apache2-template.conf /usr/share/apache2/templates
cp nginx-template.conf /usr/share/nginx/templates



3. Скопируйте исполняемый файл в /usr/local/bin:

cp a2addvh /usr/local/bin



4. Теперь выполните настройку внутри скрипта: 

# E-mail администратора:
admin_email="Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."
# Кодировка:
codepage="windows-1251"
# Путь до шаблонов apache
apache2_templ_path="/usr/share/apache2/templates"
# Путь до шаблонов nginx
nginx_templ_path="/usr/share/nginx/templates"
# Путь до конфигов apache
apache2_conf_path="/etc/apache2"
# Путь до конфигов nginx
nginx_conf_path="/etc/nginx"



Скрипт:

#!/bin/bash

# Settings:
admin_email="Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."
codepage="windows-1251"

apache2_templ_path="/usr/share/apache2/templates"
nginx_templ_path="/usr/share/nginx/templates"
apache2_conf_path="/etc/apache2"
nginx_conf_path="/etc/nginx"

domain=$1
domain_ip=$2
user=$3

case "$@" in
    "")
        echo "Syntax: a2addvh [domain] [domain ip] [user]"
        echo ""
    ;;
    *)
        clear
        echo "Adding new VHost: $domain"
        echo
        echo "Creating a directory tree:"
        mkdir -p /home/$user/www/$domain
        echo "/home/$user/www/$domain"
        echo
        echo "Creating index.php file (for testing)."
        echo "< ?php phpinfo(); ?>" > /home/$user/www/$domain/index.php
        echo
        echo "Changing the owner for /home/$user/www/"
        chown -R $user:$group /home/$user/www/
        echo
        echo "Creating vhost file on apache2 ($apache2_conf_path/sites-available/$domain)"
        sed -e "s|@@DOMAIN@@|${domain}|g;s|@@USER@@|${user}|g;s|@@ADMIN_EMAIL@@|${admin_email}|g;s|@@CODEPAGE@@|${codepage}|g" $apache2_templ_path/apache2-template.conf > $apache2_conf_path/sites-available/$domain
        echo "Creating vhost file on nginx ($nginx_conf_path/sites-available/$domain)"
        sed -e "s|@@DOMAIN@@|${domain}|g;s|@@DOMAIN_IP@@|${domain_ip}|g;s|@@USER@@|${user}|g;" $nginx_templ_path/nginx-template.conf > $nginx_conf_path/sites-available/$domain
        echo
        echo "Enable vhost:"
        echo "Enable on Apache2..."
        ln -s $apache2_conf_path/sites-available/$domain $apache2_conf_path/sites-enabled/$domain
        echo "Enable on nginx..."
        ln -s $nginx_conf_path/sites-available/$domain $nginx_conf_path/sites-enabled/$domain
        echo
        echo "Reloading servers:"
        /etc/init.d/apache2 reload
        /etc/init.d/nginx reload
        echo
        echo "All done!"
;;
esac



Шаблоны:
Для apache2:

<VirtualHost *:8080>
       ServerName @@DOMAIN@@
       ServerAdmin @@ADMIN_EMAIL@@
       ServerAlias www.@@DOMAIN@@
       DocumentRoot /home/@@USER@@/www/@@DOMAIN@@
       SuexecUserGroup @@USER@@ @@USER@@
       <Directory /home/@@USER@@/www/@@DOMAIN@@>
               Options FollowSymLinks MultiViews
               AllowOverride All
               Order allow,deny
               allow from all
       </Directory>
       CustomLog /var/log/apache2/@@DOMAIN@@.access.log combined
       ErrorLog /var/log/apache2/@@DOMAIN@@.error.log
       AddDefaultCharset @@CODEPAGE@@
</VirtualHost>



Для nginx:

server {
       listen   @@DOMAIN_IP@@:80;
       server_name @@DOMAIN@@ www.@@DOMAIN@@;
       location / {
               proxy_pass http://127.0.0.1:8080;
               proxy_redirect off;
               proxy_set_header Host $host;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }
       location ~* ^.+\.(jpg|jpeg|gif|png|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|tgz|gz|rar|doc|xls|txt|bmp|tcl)$ {
               root /home/@@USER@@/www/@@DOMAIN@@;
               access_log /var/log/nginx/@@DOMAIN@@.access;
       }
}



Подтверждаю: данные шаблоны не идеальны и они даны лишь для примера, советую настроить их под себя!

Добавить комментарий


Защитный код
Обновить