Описание процедуры установки панели управления веб сервером ISPmanager 5 Lite на свой виртуальный сервер VPS (VDS) с операционной системой CentOS.
Ниже описана процедура настройки ISPmanager 5 с нуля. Эта процедура не является руководством к действию, а лишь передаёт мой опыт и сохраняет его для дальнейшего обращения к нему. Возможно это далеко не самая верная настройка вирутального сервера, но после этой настройки у меня всё работало.
Установка ISPmanager 5 Lite
Запустить Терминал и подключиться к серверу, например:
если не указан порт, то по умолчанию используется 22.
При первом подключении, если вы работаете в операционной системе Mac OS появится уведомление:
Надо подтвердить написав:
Скачиваем установочный файл ISPManager:
Запускаем скрипт установки:
Появляется надпись:
Вводим свой ip адрес для которого куплена лицензия ISP Manager, например:
После этого появится надпись с выбором типа установки.
Выбрать стабильную сборку с рекомендуемыми программами.
Настройка ISPmanager 5 Lite
Ядро панели управления ISPmanager 5 находится здесь:
Имя IP адреса должно быть вашего сервера.
Заходим по-другой ссылке, а именно в панель управления ISPmanager Lite:
Заходим во вкладку: «Возможности». Делаем двойной клик по «Веб-сервер» и ставим галочку на Nginx.
Дополнительная настройка Nginx
Обязательно внести дополнительные данные в файл:
А именно строчку:
У меня из-за этого не работал импорт базы данных MySQL в phpMyAdmin и через ISPmanager:
Вносим эти данные в эту часть:
client_max_body_size 30m;
#tcp_nopush on;
! после этого нужно перезагрузить службу Nginx.
Также нужно поправить объём загружаемых файлов во вкладке:
Вместо 2 мб поставить 30 мб.
Донастройка nginx
Увеличиваем производительность сервера путём ограничения нагрузки с одного IP адреса или сервера.
В файле:
Вместо:
Поставить:
# Добавил
# Ограничение обработки запросов, поступающих с одного 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-домены) вместо:
Поставить для сайтов с большим количеством одновременных запросов к базе данных с одного IP:
# zone - зона разделяемой памяти.
# burst - всплеск запросов.
# Если скорость запросов превышает значения указанные в zone,
# их обработка задерживается до ограничения указанной скорости.
limit_req zone=one burst=10;
# ограничение запросов с одного ip
limit_conn perip 50;
# ограничение запросов поступающих с одного сервера
limit_conn perserver 100;
Поставить для сайтов с меньшим количеством одновременных запросов к базе данных с одного IP, но больше с одного сервера:
# zone - зона разделяемой памяти.
# burst - всплеск запросов.
# Если скорость запросов превышает значения указанные в zone,
# их обработка задерживается до ограничения указанной скорости.
# После увеличения этой директивы с 5 до 10 на iPhone стали загружаться все картинки
limit_req zone=one burst=10;
# ограничение запросов с одного ip
limit_conn perip 40;
# ограничение запросов поступающих с одного сервера
limit_conn perserver 200;
Эти параметры влияют, например, на загрузку изображений на странице. Скажем у вас каждое изображение перед загрузкой делает запрос к базе данных, выводя соответствующий формат изображения. Если значение невысокое, то при загрузке страницы, можно не досчитаться загрузки части изображений.
Донастройка Apache
По умолчанию было:
# 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>
По умолчанию поставить:
# 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:
Надо добавить следующее:
А затем включить его.
xcache — это дополнительная программа исполнительного сценария PHP, которая путём кэширования, всё значительно ускоряет. Такие программы также называют акселерацией php скриптов. Кроме xcache существуют также eAccelerator, Phpexpress и другие.
Уменьшить размер файла ротации
Открываем файл:
Вносим изменения:
size 1M
Сами логи для сайтов находятся в настройках отдельных сайтов во вкладке www.
Добавляем сайты в ISPmanager
Для каждого отдельного сайта удобно создать отдельного пользователя, который будет участвовать и в MySQL и в доступе по FTP.
Создаем пользователей в ISPmanager
Одновременно с созданием пользователей отмечаем создание FTP и доменов.
После создания пользователя зайти в WWW-домены и поменять ip адреса.
Создаём базы данных в ISPmanager
Как зайти в PHPmyAdmin чтобы видеть все базы данных
Надо сменить пароль для root, который указан здесь:
Резервное копирование
Не забыть настроить резервное копирование в соответствующей вкладке.
Исправление ошибок и проблем
В процессе настройки иногда возникают какие-то ошибки. У вас могут возникнуть свои ошибки при настройке ISPManager. Я опишу с которыми сам сталкивался.
Для понимания ошибки MySQL, нужно создать в корне своего сайта, файл с любым именем, со следующим содержимым:
$resource = mysql_connect('localhost', ‘база данных’, ‘пароль’);
if (!$resource) {
die('Ошибка при подключении: ' . mysql_error());
}
echo 'Подключено успешно!';
mysql_close($resource);
?>
Неожиданно перестал работать mysql
Получилось исправить только, когда вписал в MySQL файл:
следующие данные:
innodb_force_recovery = 6
и перезагрузил MySQL через службу.
Удаление логов
Обязательно нужно следить за логами. Иногда ISPManager не правильно работает с логами и не может удалить какой-то лог, в результате он разрастается до нескольих гб и место на сервере неожидано заканчивается.
Через менеджер файлов заходим в папки логов, они находятся здесь:
Удаляем этот файл, после этого пространство на диске должно освободиться.
Перезапуск сервисов ISPManager через SSH
Иногда требуется быстро перезагрузить какую-нибудь службу или сервер, не входя в ISPManager, например, потому что тот не отвечает. Это делается через консольную команду:
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.
Расшифровка процессов:
POP3 (dovecot)
DNS (named)
HTTP (httpd)
MySQL (mysqld)
Перезапустить панель ISPManager:
Пути к важным папкам и файлам
Логи ошибок:
Apache:
Nginx:
MySQL:
MySQL в Cent OS физически находится здесь: