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
Оставить комментарий