Установка ISPmanager 5 на VDS с CentOS

Admin CentOS, Linux, Server Errors, VPS

Описание процедуры установки панели управления веб сервером ISPmanager 5 Lite на свой виртуальный сервер VPS (VDS) с операционной системой CentOS.

Ниже описана процедура настройки ISPmanager 5 с нуля. Эта процедура не является руководством к действию, а лишь передаёт мой опыт и сохраняет его для дальнейшего обращения к нему. Возможно это далеко не самая верная настройка вирутального сервера, но после этой настройки у меня всё работало.

Установка ISPmanager 5 Lite

Запустить Терминал и подключиться к серверу, например:

ssh -p 29820 root@162.200.210.132

если не указан порт, то по умолчанию используется 22.

При первом подключении, если вы работаете в операционной системе Mac OS появится уведомление:

"The authenticity of host"

Надо подтвердить написав:

yes

Скачиваем установочный файл ISPManager:

wget "http://download.ispsystem.com/install.sh"

Запускаем скрипт установки:

bash install.sh

Появляется надпись:

You have incorrect hostname: server

Вводим свой ip адрес для которого куплена лицензия ISP Manager, например:

162.200.210.132

После этого появится надпись с выбором типа установки.

Выбрать стабильную сборку с рекомендуемыми программами.

Настройка ISPmanager 5 Lite

Ядро панели управления ISPmanager 5 находится здесь:

https://162.200.210.132:1500/core

Имя IP адреса должно быть вашего сервера.

Заходим по-другой ссылке, а именно в панель управления ISPmanager Lite:

https://162.200.210.132:1500/ispmgr?

Заходим во вкладку: «Возможности». Делаем двойной клик по «Веб-сервер» и ставим галочку на Nginx.

Дополнительная настройка Nginx

Обязательно внести дополнительные данные в файл:

/etc/nginx/nginx.conf

А именно строчку:

client_max_body_size 30m;

У меня из-за этого не работал импорт базы данных MySQL в phpMyAdmin и через ISPmanager:

Вносим эти данные в эту часть:

sendfile        on;
client_max_body_size 30m;
#tcp_nopush     on;

! после этого нужно перезагрузить службу Nginx.

Также нужно поправить объём загружаемых файлов во вкладке:

PHP » upload_max_filesize

Вместо 2 мб поставить 30 мб.

Донастройка nginx

Увеличиваем производительность сервера путём ограничения нагрузки с одного IP адреса или сервера.

В файле:

/etc/httpd/conf/nginx.conf

Вместо:

http {

Поставить:

http {
# Добавил
# Ограничение обработки запросов, поступающих с одного IP-адреса
# При переполнении зоны в ответ на последующие запросы
# сервер будет возвращать ошибку 503 (Service Temporarily Unavailable)
limit_req_zone $binary_remote_addr zone=one:20m rate=50r/s;
limit_conn_zone $binary_remote_addr zone=perip:30m;
limit_conn_zone $server_name zone=perserver:30m;

В конфигурации отдельных сайтов (раздел www-домены) вместо:

location / {

Поставить для сайтов с большим количеством одновременных запросов к базе данных с одного IP:

location / {
# zone - зона разделяемой памяти.
# burst - всплеск запросов.
# Если скорость запросов превышает значения указанные в zone,
# их обработка задерживается до ограничения указанной скорости.
        limit_req zone=one burst=10;
# ограничение запросов с одного ip
        limit_conn perip 50;
# ограничение запросов поступающих с одного сервера
        limit_conn perserver 100;

Поставить для сайтов с меньшим количеством одновременных запросов к базе данных с одного IP, но больше с одного сервера:

location / {
# zone - зона разделяемой памяти.
# burst - всплеск запросов.
# Если скорость запросов превышает значения указанные в zone,
# их обработка задерживается до ограничения указанной скорости.
# После увеличения этой директивы с 5 до 10 на iPhone стали загружаться все картинки
        limit_req zone=one burst=10;
# ограничение запросов с одного ip
        limit_conn perip 40;
# ограничение запросов поступающих с одного сервера
        limit_conn perserver 200;

Эти параметры влияют, например, на загрузку изображений на странице. Скажем у вас каждое изображение перед загрузкой делает запрос к базе данных, выводя соответствующий формат изображения. Если значение невысокое, то при загрузке страницы, можно не досчитаться загрузки части изображений.

Донастройка Apache

По умолчанию было:

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers       1
MinSpareServers    1
MaxSpareServers    5
ServerLimit       10
MaxClients        10
MaxRequestsPerChild  4000
</IfModule>

По умолчанию поставить:

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start - Это самый важный параметр,
# задающий максимальное число дочерних процессов, которые будут созданы для обработки запросов.
# Значение выставляется большим, чтобы обрабатывать одновременно много запросов, а меньшим для снижения потребления памяти!
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers       5
MinSpareServers    5
MaxSpareServers   10
ServerLimit      256
MaxClients       25
MaxRequestsPerChild  1000
</IfModule>

Тут рекомендаций не будет. Эти данные сильно зависят от различий сервера и мастерства администратора. Можно всё оставить и по умолчанию. Для себя же я меняю.

Установка расширения PHP

После установки и первоначальной настройки ISPmanager 5 Lite в расширения php:

Настройки » Расширения PHP

Надо добавить следующее:

xcache

А затем включить его.

xcache — это дополнительная программа исполнительного сценария PHP, которая путём кэширования, всё значительно ускоряет. Такие программы также называют акселерацией php скриптов. Кроме xcache существуют также eAccelerator, Phpexpress и другие.

Уменьшить размер файла ротации

Открываем файл:

/etc/logrotate.d/nginx

Вносим изменения:

rotate 10
size 1M

Сами логи для сайтов находятся в настройках отдельных сайтов во вкладке www.

Добавляем сайты в ISPmanager

Для каждого отдельного сайта удобно создать отдельного пользователя, который будет участвовать и в MySQL и в доступе по FTP.

Создаем пользователей в ISPmanager

Одновременно с созданием пользователей отмечаем создание FTP и доменов.

После создания пользователя зайти в WWW-домены и поменять ip адреса.

Создаём базы данных в ISPmanager

Инструменты -> Базы данных

Как зайти в PHPmyAdmin чтобы видеть все базы данных

Надо сменить пароль для root, который указан здесь:

Настройки » Серверы баз данных

Резервное копирование

Не забыть настроить резервное копирование в соответствующей вкладке.

Исправление ошибок и проблем

В процессе настройки иногда возникают какие-то ошибки. У вас могут возникнуть свои ошибки при настройке ISPManager. Я опишу с которыми сам сталкивался.

Для понимания ошибки MySQL, нужно создать в корне своего сайта, файл с любым именем, со следующим содержимым:

<?php
$resource = mysql_connect('localhost', ‘база данных’, ‘пароль’);
if (!$resource) {
die('Ошибка при подключении: ' . mysql_error());
}
echo 'Подключено успешно!';
mysql_close($resource);
?>

Неожиданно перестал работать mysql

Получилось исправить только, когда вписал в MySQL файл:

/etc/my.cnf

следующие данные:

[mysqld]
innodb_force_recovery = 6

и перезагрузил MySQL через службу.

Удаление логов

Обязательно нужно следить за логами. Иногда ISPManager не правильно работает с логами и не может удалить какой-то лог, в результате он разрастается до нескольих гб и место на сервере неожидано заканчивается.

Через менеджер файлов заходим в папки логов, они находятся здесь:

/var/www/httpd-logs/название_сайта.access.log

Удаляем этот файл, после этого пространство на диске должно освободиться.

Перезапуск сервисов ISPManager через SSH

Иногда требуется быстро перезагрузить какую-нибудь службу или сервер, не входя в ISPManager, например, потому что тот не отвечает. Это делается через консольную команду:

service dovecot restart
service exim restart
service httpd restart
service ihttpd restart
service mysqld restart
service named restart
service nginx restart
service proftpd restart
service sshd restart

Вместо restart, если служба остановлена, можно использовать start.

Расшифровка процессов:

SMTP (exim)
POP3 (dovecot)
DNS (named)
HTTP (httpd)
MySQL (mysqld)

Перезапустить панель ISPManager:

killall ispmgr

Пути к важным папкам и файлам

Логи ошибок:

/var/log/

Apache:

/etc/httpd/conf/

Nginx:

/etc/nginx/

MySQL:

/etc/my.cnf

MySQL в Cent OS физически находится здесь:

/var/lib/mysql/

У сайта нет цели самоокупаться, поэтому на сайте нет рекламы. Но если вам пригодилась информация, можете лайкнуть страницу, оставить комментарий или отправить мне подарок на чашечку кофе.

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

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Установка ISPmanager 5 на VDS с CentOS"