====== 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. Однако это принесёт дополнительные расходы вычислительных ресурсов сервера.