Нотатки щодо створення хостингу на базі панелі ISP Control

Зміст

Використання багатопотокової архівації на SMP

Для покращення використання багатоядерних процесорів є сенс поставити pbzip2. Для його використання в/etc/ispcp/ispcp.confзмінити параметрZIPна bzip2, аCMD_BZIPна

Як (правильніший) варіант - переробити скрипт, додавши новий тип стиснення - pbzip2, що обробляється за тими самими правилами, що й звичайний bzip2, тоді в редагуванні вище можна використовувати змінну$zip.

Правитиispcp-backup-ispcp, думаю, немає сенсу, бо база даних і так обробляється pbzip2'ом, а стиснення конфігів не настільки ресурсомістке, щоб заради цього переробляти скрипт

Ще один варіант - використовувати багатопотокову версію gzip -pigz. Цей варіант може бути кращим, оскільки буде менше навантажувати процесор (веб-контент все одно більшою частиною картинки, їх стискати немає сенсу). Очевидно, що можна використовувати і змішаний варіант - для баз використовувати pbzip2, а скрипт бекапу доменів переробити під використання pigz.

Налаштування PHP

  • /etc/ispcp/fcgi/parts/php5/php.ini- тут знаходяться дефолтні налаштування PHP (а поруч інші дефолтні файли), які копіюються користувачеві при створенні домену.

/etc/ispcp/fcgi/parts/master/php5/php.ini- аналогічно, але для самої панелі.

  • Налаштування аплоаду файлів:php.iniдля потрібного домену (зокрема для phpmyadmin, net2ftp):

Крім того,/etc/apache2/mods-enabled/fcgid_ispcp.conf(та/etc/ispcp/apache/working/fcgid_ispcp.conf) змінити (додати) параметр>MaxRequestLen:

Без нього може з'являтися 500-а помилка при аплоаді великих файлів (зокрема дампів баз у phpmyadmin), помилку можна відловити вerror_logсервера.

  • Є сенс підняти max_execution_time хоча б до 45 секунд – протестовано JabberWorld'ом на незавантаженому процесорі Athlon II x4 на 2.8 ГГц сторінкою зі списком серверів – вона генерувалася близько 33-35 секунд. Випадок крайній, але для статистики зійде
  • Налаштування phpmyadmin: у деяких випадках (а саме при великих запитах у phpmyadmin, наприклад, пошуку значення по всіх таблицях (з довгими іменами) великої бази та наступним висновком значення) suhosin-патч може лаятися на перевищення максимальної довжини змінної в GET-запиті:

Дефолтно довжина змінної дорівнює 512 символам, дефолт задається в/etc/php5/conf.d/suhosin.iniі, в принципі, у звичайних випадках (але не в цьому) цього достатньо. Якщо налаштовано fail2ban на вилов подібних повідомлень, після виконання такого запиту клієнт буде забанен. Щоб цього не трапилося, необхідно поправити (додати) зміннуsuhosin.get.max_value_lengthуphp.iniі присвоїти їй значення вище (наприклад, 4-8 Кб. Для звичайного WordPress'a легко виходили значення 2,5 Кбайт і це далеко не межа). Думаю, для більшої сек'юрності змінити цю змінну варто лише у php.ini-файлі phpmyadmin'a (який у свою чергу винести на окремий домен). У результаті зміни зводяться до додавання до кінця цього файлу наступної секції (у прикладі встановлено значення 32 Кбайта):

  • Ще, гадаю, на навантажених серверах є сенс знизити значення змінноїPHP_FCGI_CHILDRENу файлах/var/www/fcgi/домен(можна як для одного "некритичного" домену, так і для всіх відразу - не забуваємо поправити шаблон) з дефолтного значення 2 до 1. Ідея в тому, що малозавантажений сайт "відхопить" собі основний процес php з двома нащадками, хоча йому, можливо,достатньо і одного, а високонавантажений може відчувати нестачу в обробниках php. У разі глобальної зміни (або зміни числа нащадків для більшості доменів) необхідно також виправити параметрMaxProcessCountу файлі/etc/apache2/mods-enabled/fcgid_ispcp.conf- відповідно, збільшивши його в 2 рази.

Приховування версій серверів

Увімкнення AWStats

У AWStats (нагадаю, це софт для побудови статистики відвідувань по логах веб-сервера) в панелі є 2 режими роботи: static і dynamic, перемикання здійснюється зміною параметраAWSTATS_MODEна/etc/ispcp/ispcp. conf. В чому різниця:

Чим робиться статистика: погляд зсередини на налаштування dynamic-mode

При необхідності включити відключений дефолтно awstats необхідно зробити наступне:

після цього у хостинг-панелі у "Веб-інструментах" з'явиться додатковий пункт. Панель почне створювати awstats-конфіги і прописувати відповідні записи в конфіг Апача для новостворених доменів. Для тих, хто вже існує, доведеться це зробити вручну.

  • Не забути перезапустити Апач, щоб зміни набули чинності

Увімкнення статистики

Як було написано раніше, для static-mode в кронтаб для кожного домену додається запис. Темплейти записів можна знайти у файлах

відповідно, для домену та аліасу. Якщо вони чимось не влаштовують – краще їх виправити одразу, до оновлення. У моєму випадку вони виглядають так: