ispconfig3 nginx apache

Ispconfig3 развивается, а так же развиваются технологии и требования по этому старая документация уже не подходит
а главное отладка даёт свои тонкости, в общем мануалы нужно обновить, поскольку материала уже много решил хоть что-то опубликовать
Мы будем ставить ispconfig3 и настраивать его на все и вся,включая производительность сервера, подключим все версии PHP и все представления, скомпилим старые версии PHP по рабочему ману, и если хватит сил я опишу что и зачем.

Сразу прошу простить меня за оформление материала, для публикации такого количества контента потребуется множество времени, так что я решил что лучше опубликовать хоть как-то чем вообще не давать контент.
Так же часть файлов сделана не в виде <<EOF    а в виде обычных файлов, поскольку их банально проще вам будет разобрать.

и многое другое

Железо: https://ru.hetzner.com/hosting/produkte_rootserver/ex62
ОС: ubuntu 18.04 LTS

Как подготавливал сервер для ispconfig3

Мануал: https://www.howtoforge.com/tutorial/perfect-server-debian-9-stretch-apache-bind-dovecot-ispconfig-3-...
Вся установка подготовлена для работы через скрипт по интеру, отличается от стандартного только тем что все через sed и echo что позволяет быстро повторить работу, по сути это все команды которые я вводил. Есть и небольшое отличиее порядка 5%

Вы должны понимать что скрипт полностью автоматический но работает в моих условиях а Linux он на то и *inux, в общем проверяйте каждую строчку что она сработала.

Перед началом рабты скачайте klondike-studio.ru/upload/isp3_add.zip распакуйте его в папку /home можно в другое место но вам нужно будет в скрипте постоянно менять пути до файлов патчей.
В нем расположены патчи для больших файлов в формате diff, vhost.conf и его форки , сам плагин, он тоже кастомный  так что с гита не пойдет. и zend_guard_loader и оптимайзер посколкьу скачать их с сайта зенда реально трабл, требуется регистрация и тд.

apt-get install -y ssh openssh-server и
apt-get install -y nano vim #echo "ставлю  обычный вим"
dpkg-reconfigure -p critical dash #автоматически говорим да для dpkg-reconfigure  sh
cp /etc/hosts -> /etc/hosts.bak   #Бэкапим /etc/hosts -> /etc/hosts.bak

IP=$(wget -qO - 2ip.ru|egrep -m 1 -o "([0-9]+\.){3}[0-9]+") && echo "$IP"  #Определяем IP,таким способом реально проще поскольку не нужно угадывать ни интерфейс ни количество IP
sed  -i -e 's/'"$IP"'.*/'"$IP"' site.ru www.site.ru/g' /etc/hosts #В файле /etc/hosts  изменен домен

Проверяем
Должен быть домеен с www и без него плюс его ip.

grep -E "$IP" /etc/hosts

Меняем имя сервера

echo "site.ru" > /etc/hostname

Так же важно не забывайте имя сервера не должно быть именем сайта, да  его можно использовать, но лучше сделать отдельный домен, поскольку этот домен будет использоватся для ловушке по deafault, так же мы будем подставлять его сертификаты по умолчанию для сайтов   с отключенным HTTPS

Обновляем все и ребут

apt-get update
apt-get -y upgrade
reboot

Меняем dash на sh

dpkg-reconfigure dash
if [ /bin/sh -ef /bin/dash ]; then
echo -n "Changing the default shell from dash to bash... "
echo "dash dash/sh boolean false" | debconf-set-selections
dpkg-reconfigure -f noninteractive dash > /dev/null 2>&1
echo -e "[${green}DONE${NC}]\n"
fi

Тормозим и удаляем

service apparmor stop
update-rc.d -f apparmor remove 
apt-get -y remove apparmor apparmor-utils

Синхронизируем часы, поскольку потом даты нам будут важны

apt-get install -y ntp #синхронизируем часы
dpkg-reconfigure tzdata #выставляем  свой город
service sendmail stop; update-rc.d -f sendmail remove

Почтовый сервер ставим и меняем конфиги по ману,

service sendmail stop; update-rc.d -f sendmail remove
apt-get -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo

меняем конфиги по ману

cp /etc/postfix/master.cf /etc/postfix/master.cf_old 
sed -i "s/#submission inet n       -       y       -       -       smtpd/submission inet n       -       -       -       -       smtpd/" /etc/postfix/master.cf
sed -i "s/#  -o syslog_name=postfix\/submission/  -o syslog_name=postfix\/submission/" /etc/postfix/master.cf
sed -i "s/#  -o smtpd_tls_security_level=encrypt/  -o smtpd_tls_security_level=encrypt/" /etc/postfix/master.cf
sed -i "s/#  -o smtpd_sasl_auth_enable=yes/  -o smtpd_sasl_auth_enable=yes\\$(echo -e '\n\r') -o smtpd_client_restrictions=permit_sasl_authenticated,reject/" /etc/postfix/master.cf
sed -i "s/#smtps     inet  n       -       y       -       -       smtpd/smtps     inet  n       -       -       -       -       smtpd/" /etc/postfix/master.cf
sed -i "s/#  -o syslog_name=postfix\/smtps/  -o syslog_name=postfix\/smtps/" /etc/postfix/master.cf
sed -i "s/#  -o smtpd_tls_wrappermode=yes/  -o smtpd_tls_wrappermode=yes/" /etc/postfix/master.cf
sed -i "s/#  -o smtpd_sasl_auth_enable=yes/  -o smtpd_sasl_auth_enable=yes\\$(echo -e '\n\r') -o smtpd_client_restrictions=permit_sasl_authenticated,reject/" /etc/postfix/master.cf
service postfix restart

Настройки mysql

sed -i 's/bind-address.*127.0.0.1/#bind-address            = 127.0.0.1\nsql-mode="NO_ENGINE_SUBSTITUTION"/' /etc/mysql/mariadb.conf.d/50-server.cnf
mysql_secure_installation
echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u root -p

cp /etc/mysql/debian.cnf /etc/mysql/debian.cnf_old
sed -i 's/password =/password = 'ВАШ ПАРОЛЬ'/' /etc/mysql/debian.cnf
service mysql restart

Доставляем по ману, не вижу смысла расписывать.

apt-get -y install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl postgrey
service spamassassin stop
update-rc.d -f spamassassin remove

Тут опять уже отличается, мы тут доставляем уже все версии пхп до 7.3 для всех видов представления, все они будут идти из репозиториев и обновляться, соответствующий тикет я уже написал в поддержку и маны на следующем релизе поправятс учетом этого.

apt-get -y install apache2 apache2-utils libapache2-mod-php php7.2 php7.2-common php7.2-gd php7.2-mysql php7.2-imap phpmyadmin php7.2-cli php7.2-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl memcached php-memcache php-imagick php-gettext php7.2-zip php7.2-mbstring php-soap php7.2-soap
a2enmod suexec rewrite ssl actions include cgi
a2enmod dav_fs dav auth_digest headers
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo /etc/init.d/apache2 reload
echo -e "<span mod_headers.c="">\n    RequestHeader unset Proxy early\n</span>" > /etc/apache2/conf-available/httpoxy.conf
a2enconf httpoxy

И еще чуть-чуть

apt-get -y install php7.2-opcache php-apcu
apt-get -y install php7.2-fpm
a2enmod actions proxy_fcgi alias 
service apache2 restart
apt-get -y install hhvm
apt-get -y install certbot

Mailman

apt-get -y install mailman
newlist mailman

Меняем конфиги

cp  /etc/aliases  /etc/aliases_old
echo "## mailman mailing list" >> /etc/aliases
echo 'mailman:              "|/var/lib/mailman/mail/mailman post mailman"' >> /etc/aliases
echo 'mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"' >> /etc/aliases
echo 'mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"' >> /etc/aliases
echo 'mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"' >> /etc/aliases
echo 'mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"' >> /etc/aliases
echo 'mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"' >> /etc/aliases
echo 'mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"' >> /etc/aliases
echo 'mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"' >> /etc/aliases
echo 'mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"' >> /etc/aliases
echo 'mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"' >> /etc/aliases
newaliases
service postfix restart
ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf
a2enconf mailman
service apache2 restart
service mailman start

FTP и квоты

apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool
cp /etc/default/pure-ftpd-common /etc/default/pure-ftpd-common_old

sed -i 's/VIRTUALCHROOT=false/VIRTUALCHROOT=true/' /etc/default/pure-ftpd-common
echo 1 > /etc/pure-ftpd/conf/TLS

mkdir -p /etc/ssl/private/
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
chmod 600 /etc/ssl/private/pure-ftpd.pem
service pure-ftpd-mysql restart

cp /etc/fstab /etc/fstab_ok
sed -i 's/ \/ ext4 defaults 0 0/ \/ ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1/g' /etc/fstab
mount -o remount /
quotacheck -avugm
quotaon -avug

12 Install BIND DNS Server

apt-get -y install bind9 dnsutils haveged
systemctl enable haveged
systemctl start haveged

#13 Install Vlogger, Webalizer, and AWStats # Не ставим посколкьу есть метрики смысла нет. #14. Install Jailkit

apt-get -y install build-essential autoconf automake1.11 libtool flex bison debhelper binutils
cd /tmp 
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit-2.19
echo 5 > debian/compat
./debian/rules binary
cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*

#15. Install fail2ban and UFW

apt-get install -y fail2ban

echo "[pure-ftpd]" >> /etc/fail2ban/jail.local
echo "enabled = true" >> /etc/fail2ban/jail.local
echo "port = ftp" >> /etc/fail2ban/jail.local
echo "filter = pure-ftpd" >> /etc/fail2ban/jail.local
echo "logpath = /var/log/syslog" >> /etc/fail2ban/jail.local
echo "maxretry = 3" >> /etc/fail2ban/jail.local
echo -e "\n" >> /etc/fail2ban/jail.local
echo "[dovecot]" >> /etc/fail2ban/jail.local
echo "enabled = true" >> /etc/fail2ban/jail.local
echo "filter = dovecot" >> /etc/fail2ban/jail.local
echo "action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp" >> /etc/fail2ban/jail.local 
echo "logpath = /var/log/mail.log" >> /etc/fail2ban/jail.local
echo -e "maxretry = 5" >> /etc/fail2ban/jail.local
echo -e "\n" >> /etc/fail2ban/jail.local
echo "[postfix]" >> /etc/fail2ban/jail.local
echo "enabled = true" >> /etc/fail2ban/jail.local
echo "port = smtp" >> /etc/fail2ban/jail.local
echo "filter = postfix" >> /etc/fail2ban/jail.local
echo "logpath = /var/log/mail.log" >> /etc/fail2ban/jail.local
echo "maxretry = 3" >> /etc/fail2ban/jail.local
service fail2ban restart

Почти все готово

apt-get install ufw
#3 страница
apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins javascript-common libjs-jquery-mousewheel php-net-sieve tinymce

cp  /etc/apache2/conf-enabled/roundcube.conf  /etc/apache2/conf-enabled/roundcube.conf_old
echo "Alias /roundcube /var/lib/roundcube" >> /etc/apache2/conf-enabled/roundcube.conf
echo "Alias /webmail /var/lib/roundcube" >> /etc/apache2/conf-enabled/roundcube.conf
sed --in-place --follow-symlinks 's//\n AddType application\/x-httpd-php .php/g' /etc/apache2/conf-enabled/roundcube.conf

cp /etc/roundcube/config.inc.php /etc/roundcube/config.inc.php_old
sed --in-place --follow-symlinks 's/\x24config\[\x27default_host\x27\] = \x27\x27\x3B/\x24config\[\x27default_host\x27\] = \x27localhost\x27\x3B/g' /etc/roundcube/config.inc.php

Ставим Ispconfig3

cd /tmp
wget -O ispconfig.tar.gz https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1
tar xfz ispconfig.tar.gz
cd ispconfig3*/install/
php -q install.php

PHP 5.6 | 7.0 | 7.1 | 7.2 | 7.3| 7.4| 8.0

PHP 5.6 -7.3 (остальные позже) все версии php работают из репозиториев и обновляются ! Ставим multiphp не по мануалам а из доступных репозиториев, так же стоит отметить что тут уже добавлены библиотеки и убавленя с учетом установки и более старых версий, а главное библиотеки которые нужны ispconfig, в общем тут все модернизировано

sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
apt-get -y upgrade
apt-get -y install apache2 php7.0-opcache apache2-utils libapache2-mod-php7.0 php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-imap php7.0-cli php7.0-cgi php7.2-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear php7.0-mcrypt mcrypt imagemagick libruby libapache2-mod-python php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl memcached php-memcache php-imagick php-gettext php7.0-zip php7.0-mbstring libapache2-mod-passenger php7.0-soap  php7.0-fpm
apt-get -y install apache2 php7.1-opcache apache2-utils libapache2-mod-php7.1 php7.1 php7.1-common php7.1-gd php7.1-mysql php7.1-imap php7.1-cli php7.1-cgi php7.2-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear php7.1-mcrypt mcrypt imagemagick libruby libapache2-mod-python php7.1-curl php7.1-intl php7.1-pspell php7.1-recode php7.1-sqlite3 php7.1-tidy php7.1-xmlrpc php7.1-xsl php-imagick php-gettext php7.1-zip php7.1-mbstring memcached libapache2-mod-passenger php7.1-soap  php7.1-fpm
apt-get -y install apache2 php7.2-opcache apache2-utils libapache2-mod-php7.2 php7.2 php7.2-common php7.2-gd php7.2-mysql php7.2-imap php7.2-cli php7.2-cgi php7.2-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear libapache2-mod-oppython php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl memcached php-memcache php-imagick php-gettext php7.2-zip php7.2-mbstring libapache2-mod-passenger php7.2-soap  php7.2-fpm
apt-get -y install apache2 php7.3-opcache apache2-utils libapache2-mod-php7.3 php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl php-imagick php-gettext php7.3-zip php7.3-mbstring libapache2-mod-passenger php7.3-soap  php7.3-fpm
apt-get -y install apache2 php5.6-opcache apache2-utils libapache2-mod-php5.6 php5.6 php5.6-common php5.6-gd php5.6-mysql php5.6-imap php5.6-cli php5.6-cgi php5.6-cgi php5.6-opcache libapache2-mod-fcgid apache2-suexec-pristine php-pear php5.6-mcrypt mcrypt  imagemagick libruby libapache2-mod-python php5.6-curl php5.6-intl php5.6-pspell php5.6-recode php5.6-sqlite3 php5.6-tidy php5.6-xmlrpc php5.6-xsl  php5.6-zip php5.6-mbstring  libapache2-mod-passenger php5.6-soap php5.6-fpm
apt-get -y install apache2 php7.4-opcache apache2-utils libapache2-mod-php7.4 php7.4 php7.4-common php7.4-gd php7.4-mysql php7.4-imap php7.4-cli php7.4-cgi php7.4-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear imagemagick libruby libapache2-mod-python php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7.4-xmlrpc php7.4-xsl php-imagick php-gettext php7.4-zip php7.4-mbstring libapache2-mod-passenger php7.4-soap  php7.4-fpm
apt-get -y install apache2 php8.0-opcache apache2-utils libapache2-mod-php8.0 php8.0 php8.0-common php8.0-gd php8.0-mysql php8.0-imap php8.0-cli php8.0-cgi php8.0-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear imagemagick libruby libapache2-mod-python php8.0-curl php8.0-intl php8.0-pspell php8.0-sqlite3 php8.0-tidy php8.0-xsl php-imagick php-gettext php8.0-zip php8.0-mbstring libapache2-mod-passenger php8.0-soap  php8.0-fpm php8.0-readline
apt-get -y install php-memcache php-memcached #Смена дефолт верси #update-alternatives --config php #update-alternatives --config php-cgi service php5.6-fpm restart service php7.0-fpm restart service php7.1-fpm restart service php7.2-fpm restart service php7.3-fpm restart service php7.4-fpm restart service php8.0-fpm restart

Деламем дамп БД, вдруг что не так.

mysqldump -uroot -p'ВАШ ПАРОЛЬ' dbispconfig > /root/dbispconfig.sql

Добавляем настройки milti php в базу данных, просто вставьте инсертом, не стал делать через скрипт, поскольку прийдется экранировать все спец символы, а так можно и почитать и поправить.

mysql -uroot -p'ВАШ ПАРОЛЬ' dbispconfig

Вставляем все сразу и жмем интер

INSERT INTO `server_php` (`server_php_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `client_id`, `name`, `php_fastcgi_binary`, `php_fastcgi_ini_dir`, `php_fpm_init_script`, `php_fpm_ini_dir`, `php_fpm_pool_dir`, `active`) VALUES
(8, 1, 1, 'riud', 'riud', '', 1, 0, 'PHP 7.4', '/usr/bin/php-cgi8.0', '/etc/php/8.0/cgi', 'php8.0-fpm', '/etc/php/8.0/fpm', '/etc/php/8.0/fpm/pool.d', 'y'),
(7, 1, 1, 'riud', 'riud', '', 1, 0, 'PHP 5.6', '/usr/bin/php-cgi5.6', '/etc/php/5.6/cgi', 'php5.6-fpm', '/etc/php/5.6/fpm', '/etc/php/5.6/fpm/pool.d', 'y'),
(6, 1, 1, 'riud', 'riud', '', 1, 0, 'PHP 7.0', '/usr/bin/php-cgi7.0', '/etc/php/7.0/cgi', 'php7.0-fpm', '/etc/php/7.0/fpm', '/etc/php/7.0/fpm/pool.d', 'y'),
(5, 1, 1, 'riud', 'riud', '', 1, 0, 'PHP 7.1', '/usr/bin/php-cgi7.1', '/etc/php/7.1/cgi', 'php7.1-fpm', '/etc/php/7.1/fpm', '/etc/php/7.1/fpm/pool.d', 'y'),
(4, 1, 1, 'riud', 'riud', '', 1, 0, 'PHP 7.2', '/usr/bin/php-cgi7.2', '/etc/php/7.2/cgi', 'php7.2-fpm', '/etc/php/7.2/fpm', '/etc/php/7.2/fpm/pool.d', 'y'),
(3, 1, 1, 'riud', 'riud', '', 1, 0, 'PHP 7.4', '/usr/bin/php-cgi7.4', '/etc/php/7.4/cgi', 'php7.4-fpm', '/etc/php/7.4/fpm', '/etc/php/7.4/fpm/pool.d', 'y'),
(2, 1, 1, 'riud', 'riud', '', 1, 0, 'PHP 5.4', '/opt/php5.4.45/bin/php-cgi', '/opt/php5.4.45/lib', '/opt/php5.4.45/sbin/php-fpm', '/opt/php5.4.45/lib/', '/opt/php5.4.45/etc/pool.d', 'y'),
(1, 1, 1, 'riud', 'riud', '', 1, 0, 'PHP 5.3', '/opt/php5.3.29_cgi/bin/php-cgi', '/opt/php5.3.29/lib/php.ini', '/opt/php5.3.29/sbin/php-fpm', '/opt/php5.3.29/lib/', '/opt/php5.3.29/etc/pool.d', 'y');

Выходим

exit

Снипеты apache nginx php

mysql -uroot -p'ВАШ ПАРОЛЬ' dbispconfig

Добавляем полезные снипеты

INSERT INTO `directive_snippets` (`directive_snippets_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `name`, `type`, `snippet`, `customer_viewable`, `required_php_snippets`, `active`, `master_directive_snippets_id`) VALUES
(11, 1, 1, 'riud', 'riud', '', 'pass off to IP', 'nginx', '######################################################################\r\n##  Замените айпи, один айпи наш, второй клиента\r\n######################################################################\r\nsatisfy any;\r\nallow 78.107.253.242;\r\nallow 195.201.36.189;', 'n', '', 'y', 0),
(8, 1, 1, 'riud', 'riud', '', 'sendmail OFF', 'php', ';######################################################################\r\n## Запретить отключить функцию mail на сайте, вообще не работает почта.\r\n######################################################################\r\ndisable_functions=mail', 'y', '', 'y', 0),
(9, 1, 1, 'riud', 'riud', '', 'mbstring = 0', 'php', ';######################################################################\r\n##  Любые сайты не на bitrix\r\n######################################################################\r\nmbstring.func_overload = 0', 'y', '', 'y', 0),
(7, 1, 1, 'riud', 'riud', '', 'Mail file log on', 'php', ';######################################################################\r\n;## Ведет логирование какой файл в какой строке отправил почту\r\n;######################################################################\r\nmail.add_x_header = On\r\nmail.log = syslog', 'y', '', 'y', 0),
(6, 1, 1, 'riud', 'riud', '', 'Disabled Iframe', 'nginx', ';######################################################################\r\n## Запретить Iframe с других сайтов ( Требование монитора качества)\r\n######################################################################\r\nadd_header X-Content-Type-Options nosniff;\r\nadd_header X-Frame-Options SAMEORIGIN;', 'y', '', 'y', 0);

Выходим

exit

Шаблоны ДНС зон для основных сервисов

Внимание После добавления шаблонов ОБЯЗАТЕЛЬНО !! поменяйте все IP и почты на свои, шаблоны реальные так что я вам даю реально работающий пример.

mysql -uroot -p'ВАШ ПАРОЛЬ' dbispconfig 

Добавим шаблоны днс

INSERT INTO `dns_template` (`template_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `name`, `fields`, `template`, `visible`) VALUES
(4, 1, 1, 'riud', 'riud', '', 'Почта на Google', 'DOMAIN', '[ZONE]\r\norigin={DOMAIN}.\r\nns=ns1.ks05.ru.\r\nmbox=viktor.7877796.ru.\r\nrefresh=7200\r\nretry=540\r\nexpire=1209600\r\nminimum=86400\r\nttl=3600\r\n\r\n[DNS_RECORDS]\r\nA|{DOMAIN}.|95.216.36.253|0|3600\r\nA|www|95.216.36.253|0|3600\r\nNS|{DOMAIN}.|ns1.ks05.ru.|0|3600\r\nNS|{DOMAIN}.|ns2.ks05.ru.|0|3600\r\nMX|{DOMAIN}.|ALT2.ASPMX.L.GOOGLE.COM.|5|3600\r\nMX|{DOMAIN}.|aspmx.l.google.com.|1|3600\r\nMX|{DOMAIN}.|ALT1.ASPMX.L.GOOGLE.COM.|5|3600\r\nMX|{DOMAIN}.|aspmx2.googlemail.com.|10|3600\r\nMX|{DOMAIN}.|aspmx3.googlemail.com.|10|3600\r\nPTR|95.216.36.253.in-addr.arpa |{DOMAIN}|0|3600\r\nTXT|{DOMAIN}.|v=spf1 ip4:95.216.36.253 ip4:95.216.104.125 include:_spf.google.com ~all|0|3600', 'Y'),
(3, 1, 1, 'riud', 'riud', '', 'Почта на mail.ru', 'DOMAIN', '[ZONE]\r\norigin={DOMAIN}.\r\nns=ns1.ks05.ru.\r\nmbox=viktor.7877796.ru.\r\nrefresh=7200\r\nretry=540\r\nexpire=1209600\r\nminimum=86400\r\nttl=3600\r\n\r\n[DNS_RECORDS]\r\nA|{DOMAIN}.|95.216.36.253|0|3600\r\nA|www|95.216.36.253|0|3600\r\nNS|{DOMAIN}.|ns1.ks05.ru.|0|3600\r\nNS|{DOMAIN}.|ns2.ks05.ru.|0|3600\r\nMX|{DOMAIN}.|emx.mail.ru.|10|3600\r\nPTR|95.216.36.253.in-addr.arpa |{DOMAIN}|0|3600\r\nTXT|{DOMAIN}.|v=spf1 ip4:95.216.36.253 ip4:95.216.104.125 include:_spf.mail.ru ~all|0|3600', 'Y'),
(2, 1, 1, 'riud', 'riud', '', 'Почта на Яндекс ', 'DOMAIN', '[ZONE]\r\norigin={DOMAIN}.\r\nns=ns1.ks05.ru.\r\nmbox=viktor.7877796.ru.\r\nrefresh=7200\r\nretry=540\r\nexpire=1209600\r\nminimum=86400\r\nttl=3600\r\n\r\n[DNS_RECORDS]\r\nA|{DOMAIN}.|95.216.36.253|0|3600\r\nA|www|95.216.36.253|0|3600\r\nA|mx|95.216.36.253|0|3600\r\nCNAME|mail.{DOMAIN}.|domain.mail.yandex.net.|0|3600\r\nNS|{DOMAIN}.|ns1.ks05.ru.|0|3600\r\nNS|{DOMAIN}.|ns2.ks05.ru.|0|3600\r\nMX|{DOMAIN}.|mx.yandex.net.|10|3600\r\nMX|{DOMAIN}.|mx.{DOMAIN}.|20|3600\r\nPTR|95.216.36.253.in-addr.arpa |{DOMAIN}|0|3600\r\nTXT|{DOMAIN}.|v=spf1 ip4:95.216.36.253 ip4:95.216.104.125 include:_spf.yandex.net ~all|0|3600', 'Y');

Выходим

exit

PHP 5.4 (все виды представления)

Компилируем, все переписано ни в одном мане этого нет, полностью переработаны все зависимости и configure полностью срабатывает на текущем релизе убунты

apt-get install -y libxslt-dev libcurl4-gnutls-dev libfcgi-dev libfcgi0ldbl libmcrypt-dev libssl-dev libxml2-dev zlib1g-dev libcurl4-gnutls-dev libjpeg-turbo8-dev libbz2-dev libjpeg-dev libfreetype6-dev libmcrypt-dev libcurl4-gnutls-dev
apt-get install -y libpq-dev
cd /usr/include
cd /usr/local/include
sudo ln -s /usr/include/x86_64-linux-gnu/curl curl
mkdir /opt/php5.4.45
mkdir /usr/local/src/php5
cd /usr/local/src/php5
wget http://de2.php.net/get/php-5.4.45.tar.gz/from/this/mirror
mv mirror php-5.4.45.tar.gz
tar -xzvf php-5.4.45.tar.gz
cd php-5.4.45


./configure \
--prefix=/opt/php5.4.45 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable-calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with-pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--with-libdir=/lib/x86_64-linux-gnu \
--enable-ftp \
--with-kerberos \
--with-gettext \
--enable-fpm
make
make install

cp /usr/local/src/php5/php-5.4.45/php.ini-production /opt/php5.4.45/lib/php.ini
cp /opt/php5.4.45/etc/php-fpm.conf.default /opt/php5.4.45/etc/php-fpm.conf


sed -i 's/listen = 127.0.0.1:9000/listen = 127.0.0.1:8998/g' /opt/php5.4.45/etc/php-fpm.conf
sed -i 's/\x3Bpid = run\/php-fpm.pid/pid = run\/php-fpm.pid/g' /opt/php5.4.45/etc/php-fpm.conf
echo "include=/opt/php5.4.45/etc/pool.d/*.conf" >> /opt/php5.4.45/etc/php-fpm.conf

mkdir /opt/php5.4.45/etc/pool.d
vim /etc/init.d/php5.4.45-fpm  # вставляем конфиг, и правим версию пхп https://www.howtoforge.com/how-to-use-multiple-php-versions-php-fpm-and-fastcgi-with-ispconfig-3-ubuntu-12.10-p3
chmod 755 /etc/init.d/php5.4.45-fpm
#заменяем актуальной версией php,  плс название в общем стиле а не как по ману
sed -i 's/php\-5\.4\.12/php5.4.45/g' /etc/init.d/php5.4.45-fpm

update-rc.d php5.4.45-fpm defaults 
/etc/init.d/php5.4.45-fpm start
update-rc.d php7.3-fpm defaults
apt-get install libmemcached-dev

# исправит проблему подключения по loalhost поскольку в  стандартных php.ini она вообще не обьявлена
echo "mysqli.default_socket = /var/run/mysqld/mysqld.sock" >> /opt/php5.4.45/lib/php.ini
echo "mysqli.default_socket = /var/run/mysqld/mysqld.sock" >> /opt/php5.4.45/lib/php.ini
/etc/init.d/php5.4.45-fpm restart
/etc/init.d/apache2 restart

zend opcache PHP 5.4.45

cd /usr/local/src && mkdir opcache && cd opcache && wget https://github.com/zendtech/ZendOptimizerPlus/archive/master.zip && unzip master.zip && cd ZendOptimizerPlus-master
/opt/php5.4.45/bin/phpize
./configure \
--with-php-config=/opt/php5.4.45/bin/php-config
make
make install 
rm -rf /usr/local/src/opcache/
echo "zend_extension=/opt/php5.4.45/lib/php/extensions/no-debug-non-zts-20100525/opcache.so" >> /opt/php5.4.45/lib/php.ini
echo "opcache.enable=1" >> /opt/php5.4.45/lib/php.ini
echo "opcache.memory_consumption=2048" >> /opt/php5.4.45/lib/php.ini
echo "opcache.interned_strings_buffer=512" >> /opt/php5.4.45/lib/php.ini
echo "opcache.max_accelerated_files=100000" >> /opt/php5.4.45/lib/php.ini
echo "opcache.max_wasted_percentage=1" >> /opt/php5.4.45/lib/php.ini
echo "opcache.validate_timestamps=1" >> /opt/php5.4.45/lib/php.ini
echo "opcache.revalidate_freq=0" >> /opt/php5.4.45/lib/php.ini
echo "opcache.fast_shutdown=1" >> /opt/php5.4.45/lib/php.ini
echo "opcache.save_comments=1" >> /opt/php5.4.45/lib/php.ini
echo "opcache.load_comments=1" >> /opt/php5.4.45/lib/php.ini
echo "opcache.revalidate_freq = 0" >> /opt/php5.4.45/lib/php.ini
/etc/init.d/php5.4.45-fpm restart
/etc/init.d/apache2 restart
#zend guard loader PHP 5.4.45
mkdir -p /opt/php5.4.45/lib/php/extensions/no-debug-non-zts-20100525/
wget http://downloads.zend.com/guard/6.0.0/ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz
tar xzvf ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz  -C /opt/php5.4.45/lib/php/extensions/no-debug-non-zts-20100525/
#cp -r /home/extensions/no-debug-non-zts-20100525/ZendGuardLoader.so /opt/php5.4.45/lib/php/extensions/no-debug-non-zts-20100525/
echo "zend_extension=/opt/php5.4.45/lib/php/extensions/no-debug-non-zts-20100525/ZendGuardLoader.so" >> /opt/php5.4.45/lib/php.ini

/etc/init.d/php5.4.45-fpm restart
/etc/init.d/apache2 restart
ln -s /opt/php5.4.45/lib /etc/php/5.4

PHP 5.3 (все виды представления)

Данную версию приходится компилировать два раза !!!! поскольку в стандартном 5.3 есть ошибка, которая не дает одновременно установить CGI и FPM, по этому мы его будем компилировать в две разные папки, по сути у нас будет две версии 5.3, но мы положим один конфигурационный файл для управления.

#apt-get install libc-client-dev 
#apt-get install libmysql-cil-dev
apt-get install libmysqlclient-dev
mkdir /opt/php5.3.29
mkdir /usr/local/src/php5
cd /usr/local/src/php5
wget http://de2.php.net/get/php-5.3.29.tar.bz2/from/this/mirror
mv mirror php-5.3.29.tar.bz2
tar -xvjf php-5.3.29.tar.bz2
cd php-5.3.29

./configure \
--with-curl \
--prefix=/opt/php5.3.29 \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--enable-soap \
--enable-calendar \
--with-mcrypt \
--with-zlib \
--with-gd \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql \
--with-pdo-mysql=mysqlnd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-ftp \
--with-kerberos \
--with-gettext \
--with-libdir=lib64 \
--enable-exif \
--with-xmlrpc \
--enable-bcmath \
--enable-fpm


make
make install

# повторить поскольку CGI не уживается с FPM на этой версии php, так что мы собираем ее как независимую

./configure \
--with-curl \
--prefix=/opt/php5.3.29_cgi \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--enable-soap \
--enable-calendar \
--with-mcrypt \
--with-zlib \
--with-gd \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql \
--with-pdo-mysql=mysqlnd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--with-kerberos \
--with-gettext \
--with-libdir=lib64 \
--enable-exif \
--with-xmlrpc \
--enable-bcmath \
--enable-discard-path \
--enable-force-cgi-redirect \
--enable-cgi \
--enable-cli \
--enable-fastcgi 

# php.ini не копирую поскольку от этойт версии нам нужно только CGI

cp /usr/local/src/php5/php-5.3.29/php.ini-production /opt/php5.3.29/lib/php.ini

# исправит проблему подключения по loalhost поскольку в  стандартных php.ini она вообще не обьявлена
echo "mysqli.default_socket = /var/run/mysqld/mysqld.sock" >> /opt/php-5.3.29/lib/php.ini
echo "mysqli.default_socket = /var/run/mysqld/mysqld.sock" >> /opt/php-5.3.29/lib/php.ini

cp /opt/php5.3.29/etc/php-fpm.conf.default /opt/php5.3.29/etc/php-fpm.conf

sed -i 's/listen = 127.0.0.1:9000/listen = 127.0.0.1:8532/g' /opt/php5.3.29/etc/php-fpm.conf
sed -i 's/\x3Bpid = run\/php-fpm.pid/pid = run\/php-fpm.pid/g' /opt/php5.3.29/etc/php-fpm.conf
echo "include=/opt/php5.3.29/etc/pool.d/*.conf" >> /opt/php5.3.29/etc/php-fpm.conf

mkdir /opt/php5.3.29/etc/pool.d
vim /etc/init.d/php5.3.29-fpm  # вставляем конфиг, и правим версию пхп https://www.howtoforge.com/how-to-use-multiple-php-versions-php-fpm-and-fastcgi-with-ispconfig-3-ubuntu-12.04-lts
sed -i 's/php\-5\.3\.22/php5.3.29/g' /etc/init.d/php5.3.29-fpm
chmod 755 /etc/init.d/php5.3.29-fpm
update-rc.d php5.3.29-fpm defaults 
/etc/init.d/php5.3.29-fpm restart
/etc/init.d/php5.3.29-fpm start

zend opcache PHP 5.3.29

cd /usr/local/src && mkdir opcache && cd opcache && wget https://github.com/zendtech/ZendOptimizerPlus/archive/master.zip && unzip master.zip && cd ZendOptimizerPlus-master
/opt/php5.3.29/bin/phpize
./configure \
--with-php-config=/opt/php5.3.29/bin/php-config
make
make install 
echo "zend_extension=/opt/php5.3.29/lib/php/extensions/no-debug-non-zts-20090626/opcache.so" >> /opt/php5.3.29/lib/php.ini
echo "opcache.enable=1" >> /opt/php5.3.29/lib/php.ini
echo "opcache.memory_consumption=2048" >> /opt/php5.3.29/lib/php.ini
echo "opcache.interned_strings_buffer=512" >> /opt/php5.3.29/lib/php.ini
echo "opcache.max_accelerated_files=100000" >> /opt/php5.3.29/lib/php.ini
echo "opcache.max_wasted_percentage=1" >> /opt/php5.3.29/lib/php.ini
echo "opcache.validate_timestamps=1" >> /opt/php5.3.29/lib/php.ini
echo "opcache.revalidate_freq=0" >> /opt/php5.3.29/lib/php.ini
echo "opcache.fast_shutdown=1" >> /opt/php5.3.29/lib/php.ini
echo "opcache.save_comments=1" >> /opt/php5.3.29/lib/php.ini
echo "opcache.load_comments=1" >> /opt/php5.3.29/lib/php.ini
echo "opcache.revalidate_freq = 0" >> /opt/php5.3.29/lib/php.ini

zend guard loader PHP 5.3.29

cd /tmp
mkdir -p /opt/php5.3.29/lib/php/extensions/no-debug-non-zts-20090626/
wget http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
tar xzvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /opt/php5.3.29/lib/php/extensions/no-debug-non-zts-20090626/
echo "zend_extension=/opt/php5.3.29/lib/php/extensions/no-debug-non-zts-20090626/ZendGuardLoader.so" >> /opt/php5.3.29/lib/php.ini
/etc/init.d/php5.3.29-fpm restart
/etc/init.d/apache2 restart
ln -s /opt/php5.3.29/lib /etc/php/5.3

Еще плюшки, тут ручками вводим в админке

Отключаем Open_Basedir, бесполезно и снижает производительность в 2 раза!

Система > Конфигурация сервера > ваш сервер > веб > Уровень безопасности > medium
Система >  Конфигурация сервера > ваш сервер > веб > Уровень безопасности > medium

Дефолтный php ставим 7.2, на 7.3 не phpmyadmin выкидывал ошибки

Система >  Конфигурация сервера > ваш сервер > веб > Параметры PHP > Description Default PHP-Version >PHP 7.2
/etc/php/7.2/apache2/php.ini
/etc/php/7.2/cgi/php.ini
php7.2-fpm
/etc/php/7.2/fpm/php.ini
/etc/php/7.2/fpm/pool.d
9010
/var/lib/php7.2-fpm
Система > Конфигурация сервера > ваш сервер > веб > Параметры PHP > Обработчик PHP по умолчанию > php-fpm
Система > Брэндмауер   > Открытые порты TCP > 20,21,22,53,80,143,443,1234,3306,8080,8081,10000,40110:40210
Система > Конфиг интерфйса > удаляем все префиксы, у mysql  и так мало символов

40110:40210 порты - нужны для корректной работы FTP сервера при закрытых портах

Улучшаем производительность

Реально до дух раз ! http://www.michurin.net/tools/cpu-frequency.html

for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; cat $CPUFREQ; done
for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done

После перезагрузки слетает так что если понравится то или в крон или в биосе включите (по умолчанию всегда энерджисейв)

Оптимизируем mysql

mysqli.default_socket = /var/run/mysqld/mysqld.sock
mysql.default_socket = /var/run/mysqld/mysqld.sock
short_open_tag = On
max_input_vars = 10000
max_file_uploads = 500
max_execution_time = 300
post_max_size = 1024M
upload_max_filesize = 400M
pcre.backtrack_limit = 1000000
pcre.recursion_limit = 14000
realpath_cache_size = 4096k
mbstring.func_overload = 2
mbstring.internal_encoding = UTF-8
date.timezone = Europe/Moscow
memory_limit = 4096M
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=2048
opcache.interned_strings_buffer=512
opcache.max_accelerated_files=100000
opcache.max_wasted_percentage=1
opcache.validate_timestamps=1
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.save_comments=1
opcache.load_comments=1
opcache.revalidate_freq = 0
query_cache_type = 1
query_cache_size = 128M
query_cache_limit = 16M
innodb_buffer_pool_size = 16384M
max_connections = 400
table_open_cache = 18432
thread_cache_size = 512
max_heap_table_size = 128M
tmp_table_size = 128M
key_buffer_size = 256M
join_buffer_size = 32M
sort_buffer_size = 32M
bulk_insert_buffer_size = 2M
myisam_sort_buffer_size = 32M

sql-mode=""
innodb_flush_log_at_trx_commit=2
transaction-isolation=READ-COMMITTED
innodb_flush_method=O_DIRECT

nginx +apache (прикреплены файлы положить в /home потом можно удалять)

Разархивируйте файлы в /home положить в каталога, переделывать их в скрпыты быkо бы долго так что я просто положил файлы, все они уже подготовлены для нашей конфигурации и сработают именно на ней, они скопируются в нужные места после этого их можно удалить. Все действия по дороге бэкапируются.

Архив файлов
Вся статья одним файлом

c active

###############################################Кастомизация установка nginx
#делаем бэкап c  сохранением прав
#tar -zcvpf /var/backup/ispconfig.tgz /usr/local/ispconfig  #восстановить tar -zxvpf /var/backup/ispconfig.tgz /usr/local/ispconfig
#tar -zcvpf /var/backup/etc.tgz /etc 
#Меняем порты 80 на 82 для http
#Меняем 443 на 4443, этот порт нам тоже понадобится, поскольку я не сторонник проксировать https трафик на http посколку у вас будут большие проблемы с редиректами и заголовками, да и безопасность  страдает поскольку  и канал и обе стороны тоже должны быть закрыты сертификатами, так что нам понадобится еще один порт для https
sed --in-place --follow-symlinks 's/80/82/g' /etc/apache2/ports.conf
sed --in-place --follow-symlinks 's/:80/:82/g' /etc/apache2/sites-enabled/000-default.conf
sed --in-place --follow-symlinks 's/:80/:82/g' /etc/apache2/sites-enabled/000-ispconfig.conf
sed --in-place --follow-symlinks 's/443/4443/g' /etc/apache2/ports.conf 
sed --in-place --follow-symlinks 's/443/4443/g' /etc/apache2/sites-available/default-ssl.conf
sed --in-place --follow-symlinks 's/443/4443/g' /etc/apache2/sites-available/ispconfig.conf
# меняем во всех конфигах без --follow-symlinks sed положит в это место файл, вметсо перехода по симлинке
# замена только для * если у вас есть сайты с айпи то лучше удалите эти конфиги, там много тонкостей.
find /etc/apache2/sites-enabled/ -name "*.vhost" -exec sed --in-place --follow-symlinks 's///g' "{}" \;
find /etc/apache2/sites-enabled/ -name "*.vhost" -exec sed --in-place --follow-symlinks 's///g' "{}" \;
# убедимся  что больше нет ни одного файла с  этим портом,  где -l  отобразает имя файла где найдена строка а не сама строка, в ответе у нас должно быть пусто.
find /etc/apache2/  -type f  -exec egrep -l ":80($|>)" {} \; 
find /etc/apache2/  -type f  -exec egrep -l ":443($|>)" {} \; 
/etc/init.d/apache2 restart
netstat -ntpl | grep apache2 
# проверяем
# root@ks03 /etc/apache2/conf-enabled # netstat -ntpl | grep apache2
# tcp6       0      0 :::8080                 :::*                    LISTEN      21785/apache2
# tcp6       0      0 :::8081                 :::*                    LISTEN      21785/apache2
# tcp6       0      0 :::82                   :::*                    LISTEN      21785/apache2
# tcp6       0      0 :::4443                 :::*                    LISTEN      21785/apache2

apt-get install libapache2-mod-rpaf # нужен будет для правельных логов ибо в них будет localhost  вместо айпи
sudo a2enmod rpaf  # тут синтаксист и тд и тп зависит от ОС, да еще и маны с ошибками
# добавляем айпи  строку 
IP=$(wget -qO - 2ip.ru|egrep -m 1 -o "([0-9]+\.){3}[0-9]+") && sed -i 's/RPAFproxy_ips 127.0.0.1 ::1/RPAFproxy_ips 127.0.0.1 '$IP'/g' /etc/apache2/mods-enabled/rpaf.conf

/etc/init.d/apache2 stop
/etc/init.d/apache2 start

apt-get -y install nginx
rm /etc/nginx/sites-enabled/default # К херам, все-равно у нас будет дефолтная ловушка уводящая на apache, посколкьу за 404  и тд должны отвечать движки сайтов.
cp /home/nginx_reverse_proxy_plugin.inc.php /usr/local/ispconfig/server/plugins-available/ 
ln -s /usr/local/ispconfig/server/plugins-available/nginx_reverse_proxy_plugin.inc.php /usr/local/ispconfig/server/plugins-enabled/nginx_reverse_proxy_plugin.inc.php 
cp /home/nginx_reverse_proxy_plugin.vhost.conf.master /usr/local/ispconfig/server/conf-custom/

#активируем 
# конфиг вообще не берем он кривой
#осталось убрать 80 порт в генераторе  для апачь и поменять  его на 82, в большенстве мануалов мы правим конфиги  и там удаляем переменную, но не все так просто,  она действитенльно должна быть переменной по этому нам нужно править не шаблоны а сами плагины, таких два, мы просто заменим в них переменные.

cp /usr/local/ispconfig/server/conf/apache_ispconfig.conf.master /usr/local/ispconfig/server/conf-custom # тут есть упоминания о портах ;(
sed -i 's/*:80/*:82/g' /usr/local/ispconfig/server/conf-custom/apache_ispconfig.conf.master
sed -i 's/*:443/*:4443/g' /usr/local/ispconfig/server/conf-custom/apache_ispconfig.conf.master
sed -i 's/{tmpl_var name\=\x22port\x22}/{tmpl_if name\=\x27port\x27 op\=\x27\=\=\x27 value\=\x2780\x27>82\n<\/tmpl_if}{tmpl_if name\=\x27port\x27 op\=\x27\=\=\x27 value\=\x27443\x27>4443\n<\/tmpl_if}/g' /usr/local/ispconfig/server/conf-custom/apache_ispconfig.conf.master
cp /usr/local/ispconfig/server/conf/vhost.conf.master /usr/local/ispconfig/server/conf-custom/vhost.conf.master
sed -i 's/{tmpl_var name\=\x27port\x27}/{tmpl_if name\=\x27port\x27 op\=\x27\=\=\x27 value\=\x2780\x27>82<\/tmpl_if}{tmpl_if name\=\x27port\x27 op\=\x27\=\=\x27 value\=\x27443\x27>4443<\/tmpl_if}/g' /usr/local/ispconfig/server/conf-custom/vhost.conf.master
# создаем пароль  для дев сайтов, просто  dev dev кому надо другой могут сделать сами
echo "dev:v2D00OgY/hBAY" >> /var/www/dev_htpasswd && chmod 444 /var/www/dev_htpasswd

mkdir /etc/nginx/ssl/
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
/etc/init.d/nginx restart
# Коментируем лишнее в конфиге, поскольку оно не будет работать, там  не много и просто коментируем часть строк.
patch /usr/local/ispconfig/server/conf-custom/vhost.conf.master < /home/vhost.conf.master.diff
/etc/init.d/nginx start
netstat -ntpl | grep nginx
reboot
#ресинхронизуруем все  сайты 

patch /usr/local/ispconfig/interface/web/sites/web_vhost_domain_edit.php < /home/web_vhost_dmoain_edit.diff
#/usr/local/ispconfig/interface/web/sites/web_vhost_domain_edit.php 
#if($server_type == 'nginx')
patch /usr/local/ispconfig/interface/web/sites/templates/web_vhost_domain_advanced.htm < /home/web_vhost_domain_advanced.diff
#/usr/local/ispconfig/interface/web/sites/templates/web_vhost_domain_advanced.htm
#form-group nginx 


find /usr/local/ispconfig/interface/web/sites/lib/lang -type f -name 'ru_*.lng' -exec sed -i 's/Собственные страницы ошибок/Защитить dev сайты паролем/g' "{}" \;
# заменяем текст   в админке (на русском языке, кнопка уже работает, сами  логи отключены поскольку передаются апачу на обработку, а он сайту)
find /usr/local/ispconfig/interface/web/sites/lib/lang -type f -name 'ru_*.lng' -exec sed -i 's/SSI/Вести логи nginx/g' "{}" \;
# заменяем текст   в админке (на русском языке, кнопка уже работает, SSI продолжает работать но реально его никто не использует)

MC снипеты на F2

apt-get install jpegoptim optipng

Быстро зайти в админку сайта по ссылке klondike.php

shell_patterns=0
+ ! t t 
k

Положить Bitrix autorization file rm klondike.php cat >> klondike.php << restore.php (для работы положить в папку /var/www/исходный файл)

+ ! t t
z       Положить Bitrix restore
cp /var/www/restore.php restore.php

jpegoptim обожмет весь сайт (учитывая особенности битрикс, безопасно, качество с запасом, можно даже меньше)

+! t t
j       Обжать JPG reziae_cache,ibloc,local
find ./{upload/resize_cache,upload/iblock/,local}/ -type f -regex ".*\(jpg\|jpeg\|JPG\|JPEG\)" -exec jpegoptim --preserve --totals --preserve-perms --max=85 -t {} \;

Обожмем

+ ! t t
p       Обжать PNG      reziae_cache,ibloc,local
find ./{upload/resize_cache,upload/iblock/,local}/ -type f -regex ".*\(png\|PNG\)" -print -exec optipng -o5 -quiet -keep -preserve {} \;

смотрит какие должны быть права у сайта и выставляет владиные группы и юзера

+ ! t t
c       Правельные права на файлы
pathto=`pwd -P`
if [[ ($pathto != *web) ]] && [[ ($pathto != */web/*) ]]
then
echo 'нельзя сотворить здесь'
else
usertar=$(pwd -P| sed 's/^.*\/clients\/\(client[0-9]\+\)\/\(web[0-9]\+\)\/.*$/\2/g')
grouptar=$(pwd -P | sed 's/^.*\/clients\/\(client[0-9]\+\)\/\(web[0-9]\+\)\/.*$/\1/g')
chown -R $usertar:$grouptar $pathto -P
fi

Консольные плюшки

Заходим в папку сайта пишем chownnow, владелец файлов теперь валиден (если работал от рута то понимаете в чем трабл)

vim /bin/chownnow

Вставляем

 
#!/bin/bash
pathto=`pwd -P`
if [[ ($pathto != *web) ]] && [[ ($pathto != */web/*) ]]
then
echo 'нельзя сотворить здесь'
else
usertar=$(pwd -P| sed 's/^.*\/clients\/\(client[0-9]\+\)\/\(web[0-9]\+\)\/.*$/\2/g')
grouptar=$(pwd -P | sed 's/^.*\/clients\/\(client[0-9]\+\)\/\(web[0-9]\+\)\/.*$/\1/g')
chown -R $usertar:$grouptar $pathto -P &&  echo "$(tput setaf 2)[OK]"
echo "$usertar"

Права на файл

vim /bin/chmodnow

Вставляем

 
Заходим в папку сайта пишем chmonnow, соответственно права теерь нужного юзера , сработает только в папке сайта
#!/bin/bash
pathto=`pwd -P`
if [[ ($pathto != *web) ]] && [[ ($pathto != */web/*) ]]
then
echo 'нельзя сотворить здесь'
else
echo "Мняем права на папки"
find . -type d -exec chmod 0755 {} \;
echo "меняем права на файлы"
find . -type f -exec chmod 0644 {} \;
fi
chmod 700 /bin/chownnow

Оставить комментарий