====== ISPmanager. Правила хорошего тона ======
----
===== Установка панели =====
При установке лучше выбирать **минимальную установку** - это позволит в дальнейшем установить только то, что необходимо, тем самым избежать лишней нагрузки и необоснованной траты вычислительных ресурсов.
----
===== Перезапуск панели =====
* Через менеджер самой панели
/usr/local/mgr5/sbin/mgrctl -m ispmgr exit
* Или грубо прибить процессы
killall core
----
===== Монтирование дополнительного диска =====
Запомните - НИКОГДА нельзя монтировать доп разделы в домашнюю директорию пользователя. \\
Причина в том, что логи в каталогах
/var/www/httpd-logs/
/var/www/www-root/data/logs/
являются жёсткими ссылками на одни и те же файлы. Нельзя создавать жёсткую ссылку на файл в другой файловой системе. При таком раскладе ISPmanager сойдёт сума.
----
===== MPM Apache 2 =====
При установке веб-сервера Apache 2 можно выбрать, какой MPM (Multi-Processing Module) при этом будет инсталлирован. Важно сделать правильный выбор, так как он может повлиять на дальнейшую работу проекта и панели в целом.
==== MPM ITK ====
Ставится по умолчанию. Оптимально использовать именно его. Это снизит производительность при обработке запросов, но при этом оградит от ряда проблем в работе с ISPmanager в будущем.
==== MPM Prefork ====
С MPM Prefork необходимо быть очень осторожным и использовать только в случаях, когда готовы вручную выставить права на файлы и каталоги сайтов для корректной работы в ситуации, если веб-сервер работает от имени пользователя, отличного от вашего.
\\
Существует ряд обходных способов, которые можно причислить к категории костылей и которые лучше избегать, если имеется такая возможность.
\\
В случае когда все сайты будут находится в домашней директории одного пользователя (для простоты будем считать, что имя этого пользователя - **www-root**):
* в конфигурационном файле Nginx для параметра **user** заменить **apache** на **www-root**
# user apache;
user www-root;
* в конфигурационном файле Apache 2 для параметров пользователя и группы заменить **apache** на **www-root**
# User apache
# Group apache
User www-root
Group www-root
* рекурсивно поменять владельца для файлов и каталогов, принадлежащих **apache**, на **www-root**
find / -user apache > /root/apache-user.txt; find / -user apache -exec chown www-root {} \;
* рекурсивно поменять группу для файлов и каталогов, принадлежащих **apache**, на **www-root**
find / -group apache > /root/apache-group.txt; find / -group apache -exec chown :www-root {} \;
**При этом можете столкнуться со следующими проблемами:**
* изменение пользователя и группы потребуется выполнять после каждого добавления нового WWW-домена
* если используете альтернативные версии PHP, то в конфигурации хостов Apache 2, для которых они подключены, может потребоваться убрать параметр **SuexecUserGroup**:
# SuexecUserGroup www-root www-root
* при обновлении ISPmansger и сохранении или изменении одного из таких виртуальных хостов конфигурационный файл вернётся к первоначальному состоянию
* так же после перезагрузке операционной системы или веб сервера Apache 2 в частности, врапперы, реализующие работу альтернативных версий PHP, могут создавать файлы состояний в каталоге **%%/run%%** принадлежащих пользователю **apache**. В этом случае потребуется сменить их на **www-root** . Проблема справедлива для ОС, использующих systemd, в других каталог %%/run%% может отсутствовать.
find /run -user apache -exec chown www-root {} \;
find /run -group apache -exec chown :www-root {} \;
* при открытии доп. приложений (phpMyAdmin, RoundCube и т.д.) белый экран - видимо инсталлировали их после изменений владельца и группы для каталогов и файлов. Повторите эту операцию:
find / -user apache -exec chown www-root {} \;
find / -group apache -exec chown :www-root {} \;
----
===== Установка доп. приложений =====
При установке доп. приложений (phpMyAdmin, RoundCube и т.д.) создаются конфигурационные файлы для приложений веб сервера. На примере **Nginx** и **phpMyAdmin**:
location /phpmyadmin {
alias /usr/share/phpMyAdmin;
index index.php;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
alias /usr/share/phpMyAdmin/$1;
error_page 404 @apache;
}
location ~ ^/phpmyadmin/(.+\.php)$ {
alias /usr/share/phpMyAdmin/$1;
fastcgi_pass unix:/var/run/php-fpm.apache.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
error_page 502 = @apache;
error_page 404 = @apache;
}
location @apache {
error_log /dev/null crit;
proxy_pass http://127.0.0.1:8080;
proxy_redirect http://127.0.0.1:8080 /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location ^~ /phpmyadmin/setup {
deny all;
}
Для файлов **.php** вначале происходит попытка проксирования на PHP-FPM, а затем, в случае неудачи, на Apache 2. Если PHP-FPM не установлен, будут постоянные ошибки в логе виртуального хоста, используемого по умолчанию. Оптимально установить PHP-FPM. Однако это принесёт дополнительные расходы вычислительных ресурсов сервера.