cd /tmp
wget http://prdownloads.sourceforge.net/ispconfig/ISPConfig-3.0.5.4p5.tar.gz
tar xvfz ISPConfig-3.0.5.4p5.tar.gz
cd ispconfig3_install/install
php -q install.php
#!/bin/sh
# ИСП ПАНЕЛЬ УЖЕ ПОСТАВЛЕНА НА АПАЧЬ !
#меняем порты для апача в существующих конфигах, в результае не должно остаться ни 1
sed -i 's/:80>/:82>/g' /etc/apache2/sites-available/*.vhost
sed -i 's/80/82/g' /etc/apache2/ports.conf
sed -i 's/:80/:82/g' /etc/apache2/sites-available/default
sed -i 's/:80/:82/g' /etc/apache2/sites-available/ispconfig.conf
# если ставим на машину уже с сайтами то требуется перегенерировать конфини для них, конечно можно седом но всеравно нужнобудет запустить перегенерацию это правельней. Фактически во всех сайтах нужно будет так же поменять порт тем же седом но через find или ispconfig > tools> resinc> И поставить галочки на resinc websites.
# нам потребуется добавить в апачь дополнительный модуль иначе лооги будут писаться все от localhost   c  подключением данного модуля будут транслирваться правельные айпи, в  файле апачамы подключим модуль и добавим айпи с которых валидно считывать инфу
/etc/init.d/apache2 restart
apt-get install nginx
apt-get install libapache2-mod-rpaf
#Добавляем в конфиг первый айпи из сущестующих  на данном сервере ( не локальные)
IP=$(ifconfig | grep inet | grep -v inet6 | grep -v 127.0.0.1 | cut -d: -f2 | awk '{printf $1"\n"}') | echo "RPAFproxy_ips 127.0.0.1 $IP" >> /etc/apache2/apache2.conf
# так теперь апач должен висеть полностью на 82 а nginx  на 81

# удаляем существующий конфиг он нам не подойдет совсем. В последующем мы займемся и им нам нужно будет в админе добавить доп поле долно объяснять зачем но нужно Фактически нам нужно будет добавить еще один алиас к генерируемым путям каждого ссайта но сейчас и тк будет все работать тем более этот конфиг в иидале вообще нам не понадобится.

rm /etc/nginx/sites-available/default
# ОБРАТИ ВНИМАНИЕ В КАТ EOF СИНТАКСИС ОТЛИЧАЕТСЯ ОТ РЕАЛЬНОГО !!!! ТУТ ЕЩЕ ЭКРАНЫ ПЕРЕД $ НЕЛЬЗЯ ПРОТСТО СКОПИРОВАТЬ ДАННЫЙ КУСОК, МАЛО ТОГО УЧИТЫАЯ НЕУДОБСТВА ПОСТОЯННО ДОПИСЫВАНИЯ ЭТОГО СЛЕША Я ОТКАЖУСЬ В ДАЛЬНЕЙШЕМ ОТ ТАКООГО СПОСОБА И БУЕДЕМ ПРССТО КОПИРОВАТЬ ФАЙЛЫ.
cat >> /etc/nginx/sites-available/default <<EOF
        server {         
            listen   80 default;   
            server_name  _; 
            server_name_in_redirect  off; 
            resolver  127.0.0.1;     
            error_page 404 = @fallback; 
            #--------------Все 404  отдаем на обработку апача------------------------------- 
            location @fallback { 
                proxy_pass http://\$host:82; 
                proxy_set_header Host \$host; 
                proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; 
                proxy_set_header X-Real-IP \$remote_addr; 
            } 
            #--------------Статический контент отдаем на прямую----------------------------- 
            location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)\$ { 
                root /var/www/\$host/web; 
                access_log off; 
                expires 30d; 
            } 
            #--------------HTML Вывел отдельно посколку файлы могут быть динамические------- 
            location ~* ^.+\.(htm|html)\$ { 
                root /var/www/\$host/web; 
                access_log off; 
                expires 30d; 
            } 
            # -------------Основнйо локейшен ----------------------------------------------- 
            location / { 
                root /var/www/\$host/web; 
                index index.php index.html index.htm; 
                access_log      off; 
                proxy_pass http://\$host:82; 
                proxy_set_header X-Real-IP \$remote_addr; 
                proxy_set_header Host \$host; 
                proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; 
            } 
            #-------------- Настройки для phpmyadmin---------------------------------------- 
            location /phpmyadmin { 
                root /usr/share/; 
                index index.php index.html index.htm; 
                location ~ ^/phpmyadmin/(.+\.php)\$ { 
                try_files \$uri =404; 
                root /usr/share/; 
                proxy_pass http://\$host:82; 
                proxy_set_header X-Real-IP \$remote_addr; 
                proxy_set_header Host \$host; 
                proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; 
            } 
            location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))\$ { 
                root /usr/share/; 
            } 
            } 
            location /phpMyAdmin { 
                rewrite ^/* /phpmyadmin last; 
            } 
            #------------- WEBMAIL---------------------------------------------------------- 
            location /webmail { 
                root /var/www/apps; 
                index index.php index.html index.htm; 
                proxy_pass http://\$host:82; 
                proxy_set_header X-Real-IP \$remote_addr; 
                proxy_set_header Host \$host; 
                proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; 
                location ~* ^/webmail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))\$ { 
                root /var/www/apps; 
            } 
            } 
            #---------------AWSTATS--------------------------------------------------------- 
            location ^~ /awstats-icon { 
                alias /usr/share/awstats/icon/; 
                access_log off; 
            } 
            location ^~ /awstatscss { 
                alias /usr/share/doc/awstats/examples/css/; 
                access_log off; 
            } 
                location ^~ /awstatsclasses { 
                alias /usr/share/doc/awstats/examples/classes/;                                  
                access_log off; 
            } 
}   # Закрывает весь server !!! 
EOF



rm /etc/nginx/nginx.conf

cat >> /etc/nginx/nginx.conf <<EOF
        user www-data; 
        #выставите worker_processes  равное:  cat /proc/cpuinfo | grep "processor" | sort -u | wc -l 
        worker_processes  8; 
        error_log  /var/log/nginx/error.log; 
        pid        /var/run/nginx.pid; 
        events { 
        worker_connections  2048; 
        #multi_accept on; 
        } 
        http { 
            include       /etc/nginx/mime.types; 
            access_log off;  
            sendfile        on; 
            #tcp_nopush     on; 
            #keepalive_timeout  0; 
            keepalive_timeout  75; 
            tcp_nodelay        on; 
            gzip  on; 
            gzip_disable "MSIE [1-6]\.(?!.*SV1)"; 
                   client_max_body_size            124m; 
                   client_body_buffer_size         40m; 
                   proxy_connect_timeout           300; 
                   proxy_send_timeout              300; 
                   proxy_read_timeout              300; 
            #      proxy_buffer_size               640k; 
            #      proxy_buffers                   8 2560k; 
            #      proxy_busy_buffers_size         2560k; 
            #      proxy_temp_file_write_size      10m; 
        #кеширование, требует конфигурации в  servers и location не рекомендовано для магазинов.
        #proxy_cache_path /mnt/tmp/cash levels=1:2 keys_zone=cache:1m max_size=200M; 
        #proxy_temp_path /mnt/tmp 1 2; 
        #proxy_ignore_headers Expires Cache-Control; 
        #proxy_cache_use_stale error timeout invalid_header http_502; 
        #proxy_cache_bypass $cookie_session; 
        #proxy_no_cache $cookie_session; 

        include /etc/nginx/conf.d/*.conf; 
        include /etc/nginx/sites-enabled/*; 
        } 
    
EOF
# выставляем првильное число прцоессов
sudo sed -i "0,/^worker_processes/ s/^worker_processes .*$/worker_processes `grep -c processor /proc/cpuinfo`;/"  /etc/nginx/nginx.conf
/etc/init.d/nginx restart



cd /tmp
wget https://github.com/Rackster/ispconfig3-nginx-reverse-proxy/archive/master.zip
unzip master.zip   
rm master.zip
cd ispconfig3-nginx-reverse-proxy-master
cp usr/local/ispconfig/server/plugins-available/nginx_reverse_proxy_plugin.inc.php /usr/local/ispconfig/server/plugins-available/
# Отключено поскольку мы изменим сейчас сам файл генератор а не конфиг, поскольку нам потребуютя ports оставить переменно, для работы ssl
    #cp usr/local/ispconfig/server/conf-custom/vhost.conf.master /usr/local/ispconfig/server/conf-custom/
    #chmod 750 /usr/local/ispconfig/server/conf-custom/vhost.conf.master
    #chown ispconfig:ispconfig /usr/local/ispconfig/server/conf-custom/vhost.conf.master
rm -rf /tmp/ispconfig3-nginx-reverse-proxy-master
chmod 750 /usr/local/ispconfig/server/plugins-available/nginx_reverse_proxy_plugin.inc.php
chown ispconfig:ispconfig /usr/local/ispconfig/server/plugins-available/nginx_reverse_proxy_plugin.inc.php
cd /usr/local/ispconfig/server/plugins-enabled/
ln -s /usr/local/ispconfig/server/plugins-available/nginx_reverse_proxy_plugin.inc.php
rm /usr/local/ispconfig/server/conf/nginx_reverse_proxy_plugin.vhost.conf.master
cat >> /usr/local/ispconfig/server/conf/nginx_reverse_proxy_plugin.vhost.conf.master <<EOF
<tmpl_loop name='vhosts'>
server {
#------- Server configuration---------------------------------------------------
    <tmpl_if name='ssl_enabled'>
        listen <tmpl_if name='ip_address' op='!=' value='*'><tmpl_var name='ip_address'>:</tmpl_if>443 ssl spdy;
        <tmpl_if name='ipv6_enabled'>
        listen [<tmpl_var name='ipv6_address'>]:443 ipv6only=on ssl spdy;
    </tmpl_if>
    </tmpl_else> 
        listen <tmpl_if name='ip_address' op='!=' value='*'><tmpl_var name='ip_address'>:</tmpl_if>80;
        <tmpl_if name='ipv6_enabled'>
        listen [<tmpl_var name='ipv6_address'>]:80 ipv6only=on;
    </tmpl_if>
    </tmpl_if>
server_name <tmpl_var name='domain'> <tmpl_if name='alias'><tmpl_var name='alias'></tmpl_if> <tmpl_if name='ip_address' op='!=' value='*'><tmpl_var name='ip_address'></tmpl_if>;
        root <tmpl_var name='web_document_root_www'>;

#-------- Error page ----------------------------------------------------------
        error_page 404 = @fallback; 
        location @fallback {
        proxy_pass http://<tmpl_if name='seo_redirect_enabled'><tmpl_var name='seo_redirect_target_domain'><tmpl_else><tmpl_if name='ip_address' op='!=' value="*"><tmpl_var name='ip_address'><tmpl_else><tmpl_var name='domain'></tmpl_if></tmpl_if>:<tmpl_var name='apache2_port'>;            
        proxy_set_header Host \$host;
        proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP \$remote_addr;
}

# ------ Log configuration ----------------------------------------------------
        access_log off;
        error_log  off;
        #error_log /var/log/ispconfig/httpd/<tmpl_var name='domain'>/nginx_error.log error;
        #access_log /var/log/ispconfig/httpd/<tmpl_var name='domain'>/nginx_access.log combined;
    <tmpl_if name='ssl_enabled'>

#------- SSL configuration ----------------------------------------------------
        more_set_headers 'Strict-Transport-Security: max-age=15768000';
        ssl_certificate <tmpl_var name='web_document_root_ssl'>/<tmpl_var name='ssl_domain'>.nginx.crt;
        ssl_certificate_key <tmpl_var name='web_document_root_ssl'>/<tmpl_var name='ssl_domain'>.nginx.key;
    </tmpl_if>
    <tmpl_if name='ssl_enabled'>

#------- Pagespeed configuration-----------------------------------------------
    <tmpl_if name='seo_redirect_enabled'>
        pagespeed LoadFromFile "https://<tmpl_var name='seo_redirect_target_domain'>" "<tmpl_var name='web_document_root_www'>/";
        </tmpl_else>
        pagespeed LoadFromFile "https://<tmpl_var name='domain'>" "<tmpl_var name='web_document_root_www'>/";
    </tmpl_if>
    </tmpl_if>

#------- Redirects configuration-----------------------------------------------
    <tmpl_if name='http_to_https'>
        # Redirect http -> https
        return 301 https://\$server_name\$request_uri;
    </tmpl_if>
    <tmpl_if name='seo_redirect_enabled'>
        # SEO Redirect
        if (\$http_host = "<tmpl_var name='seo_redirect_origin_domain'>" {
        return 301 \$scheme://<tmpl_var name='seo_redirect_target_domain'>\$request_uri;
        }
    </tmpl_if>
#------ static content --------------------------------------------------------
    location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)\$ {
        root  <tmpl_var name='web_document_root_www'>;
        access_log off;
         expires 30d; 
}
#-------Html ------------------------------------------------------------------
    location ~* ^.+\.(htm|html)\$ { 
        root <tmpl_var name='web_document_root_www'>; 
        access_log off; 
        expires 30d;
}
#------ Locations configuration -----------------------------------------------
        # global locations
        # alias to local error docs<tmpl_var name='domain'> <tmpl_if name='alias'><tmpl_var name='alias'></tmpl_if> <tmpl_if name='ip_address' op='!=' value='*'><tmpl_var name='ip_address'></tmpl_if>
    <tmpl_if name='errordocs'>
        location ^~ /error { root /var/www; }
    </tmpl_if>

    # default location
    location / {
        index index.php index.html index.htm;   
        proxy_set_header X-Real-IP \$remote_addr;
        proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;    
        proxy_pass http://<tmpl_if name='seo_redirect_enabled'><tmpl_var name='seo_redirect_target_domain'><tmpl_else><tmpl_if name='ip_address' op='!=' value="*"><tmpl_var name='ip_address'><tmpl_else><tmpl_var name='domain'></tmpl_if></tmpl_if>:<tmpl_var name='apache2_port'>;            
        proxy_set_header Host \$host;
}
#------- Directives configuration ---------------------------------------------
 include /etc/nginx/locations.d/*.conf;
<tmpl_var name='nginx_directives'>
}
</tmpl_loop>


EOF

#раскоментируем скрытое меню в админке nginx  по хорошему при инсталяции  надо разобраться как он по нормальному раскоменчивется.
chmod 750 /usr/local/ispconfig/server/conf/nginx_reverse_proxy_plugin.vhost.conf.master
chown ispconfig:ispconfig /usr/local/ispconfig/server/conf/nginx_reverse_proxy_plugin.vhost.conf.master

# включаем  в админке  кастомизацию nginx конфигов ( в противном случае видно будет толкьо апач и php.ini)
cp /usr/local/ispconfig/interface/web/sites/templates/web_domain_advanced.htm usr/local/ispconfig/interface/web/sites/templates/web_domain_advanced.htm.old
sed -ie "s/jQuery[(].\.nginx.[)]\.hide[(][)]/jQuery\(\'\.nginx\'\)\.show\(\)/g" /usr/local/ispconfig/interface/web/sites/templates/web_domain_advanced.htm
# раскоментируем снипеты для nginx
cp /usr/local/ispconfig/interface/web/sites/web_domain_edit.php /usr/local/ispconfig/interface/web/sites/web_domain_edit.php.old
sed -i 's/if\x28\x24server_type == \x27nginx\x27\x29\x7B$/if($server_type == \x27apache\x27){/g' /usr/local/ispconfig/interface/web/sites/web_domain_edit.php



# патчим ssl
cp /usr/local/ispconfig/server/plugins-available/apache2_plugin.inc.php /usr/local/ispconfig/server/plugins-available/apache2_plugin.inc.php_old
sed -i 's/[8][0][)]\;/82);/g' /usr/local/ispconfig/server/plugins-available/apache2_plugin.inc.php
# удаляем конфиг который мы положиле до этого поскольку мы теперьбуедм юзать стандартный  и нам не требуется стерать перменную и забивать ее рукамmv /usr/local/ispconfig/server/conf-custom/apache_ispconfig.conf.masert /usr/local/ispconfig/server/conf-custom/apache_spconfig.conf.maser.old
cp /usr/local/ispconfig/server/plugins-available/apps_vhost_plugin.inc.php /usr/local/ispconfig/server/plugins-available/apps_vhost_plugin.inc.php_old
sed -i 's/[=][=][ ][8][0][ ]/== 82 /g' /usr/local/ispconfig/server/plugins-available/apps_vhost_plugin.inc.php
mv /usr/local/ispconfig/server/conf-custom/apache_ispconfig.conf.masert /usr/local/ispconfig/server/conf-custom/apache_sipconfig.conf.maser.old

# Синхронизируем системное время
apt-get install ntp ntpdate 
#Меняем часовой пояс 
sudo dpkg-reconfigure tzdata 