При использовании CMS MODx на серверах, где установлена панель управления ISPmanager, возникают конфликты с доступом к панели администрирования сайтов на MODx, потому что они используют одну и туже ссылку /manager/. Мы рассмотрим несколько методов разрешения конфликта, путем изменения ссылки ISPmanager-а.
Вариант первый
Изменение адреса панели с использованием внутренних настроек панели. В вашей панели ISPmanager в разделе "Настройки" выберите пункт "Адрес панели". В появившемся окне необходимо изменить значение поля "Панель управления" на необходимую вам ссылку.
В новых версиях панели окно может выглядеть по другому
Панель самостоятельно отредактирует необходимые файлы и перезапустит веб-сервер. Сразу после того как изменения вступят в силу появится сообщение "Not Found", потому что панель уже находится по новому адресу.
В новых версиях панели может быть необходимо изменить, либо убрать директивы переадресации в настройках nginx. Панель автоматически их не изменяет. О том как это сделать будет написано в конце статьи.
Вариант второй
Прописать в настройках apache, секции VirtualHost вашего проекта на MODx, псевдоним
Alias /manager/ /home/user/data/www/САЙТ/manager/
где /home/user/data/www/САЙТ/manager/ это полный адрес к каталогу manager, вашего сайта на MODx. Если с определением каталога вашего сайта Вы затрудняетесь, его место расположения Вы так же можете определить в секции VirtualHost. На полный путь к каталогу сайта будет указывать директива DocumentRoot.
После изменения настроек необходимо перезагрузить Apache
В новых версиях панели может быть необходимо изменить, либо убрать директивы переадресации в настройках nginx. Панель автоматически их не изменяет. О том как это сделать будет написано в конце статьи.
Вариант третий
Изменить файл /usr/local/ispmgr/etc/ispmgr.inc, который подключается к основному конфигурационному файлу Apache. Тоже самое что и первый вариант, но изменения проводятся вручную. В нем содержится псевдоним Alias, который заставляет веб-сервер по ссылке /manager/ обращаться к панели ISPmanager. Скопируйте этот файл:
cp /usr/local/ispmgr/etc/ispmgr.inc /usr/local/ispmgr/etc/myispmgr.inc
В новом файле /usr/local/ispmgr/etc/myispmgr.inc необходимо изменить строку:
Alias /manager /usr/local/ispmgr/bin/
указав новую ссылку на панель. Например:
Alias /ispmanager /usr/local/ispmgr/bin/
Необходимо будет изменить адрес файла в конфигурациях Apache, так как он еще ничего не знает о новом конфигурационном файле /usr/local/ispmgr/etc/myispmgr.inc Откройте конфигурационный файл Apache в текстовом редакторе (например nano, joe, vi, vim)
nano /etc/apache2/apache2.conf
и измените адрес в строке
Include /usr/local/ispmgr/etc/ispmgr.inc
на
Include /usr/local/ispmgr/etc/myispmgr.inc
Я использую sed для автоматической замены адреса:
sed -i "s/usr\/local\/ispmgr\/etc\/ispmgr.inc/usr\/local\/ispmgr\/etc\/myispmgr.inc/g" /etc/apache2/apache2.conf
После изменения настроек необходимо перезагрузить Apache
Так же может потребоваться перезапуск самой панели командой:
rm -rf /usr/local/ispmgr/var/.xmlcache ; killall -9 ispmgr
nginx
В новых версиях панели добавляется конфигурационный файл
/usr/local/ispmgr/etc/nginx.inc
а так же переадресация для каждого виртуального хоста локации server в конфигурационном файле /etc/nginx/nginx.conf
rewrite ^(/manager/.*)$ https://$host$1 permanent;
Обратите внимание что переадресация создана для ссылки с завершающей косой чертой.
Для файла /usr/local/ispmgr/etc/nginx.inc необходимо изменить локацию
location ^~ /manager
указав необходимую Вам ссылку
Для того что бы убрать переадресацию в nginx с ссылки /manager/, можно закомментировать строку rewrite ^(/manager/.*)$ https://$host$1 permanent; в настройках вашего виртуального хоста в конфигурационном файле /etc/nginx/nginx.conf, либо изменить ссылку в дерективе переадресации на новую ссылку панели. Автоматически это можно сделать следующим образом:
sed -i "s/\^(\/manager\/\.\*)/\^(\/ispmanager\/\.\*)/g" /etc/nginx/nginx.conf
После этого перезапускаем nginx
/etc/init.d/nginx restart
Возможно понадобиться перезапустить ваш браузер.
Примечание
Адрес конфигурационного файла веб-сервера Apache зависит от вашего дистрибутива GNU/Linux.
Для Debian, Ubuntu
/etc/apache2/apache2.conf
Для CentOS
/etc/httpd/conf/httpd.conf
Перезапустить apache можно командой:
apachectl restart
Либо, в зависимости от дистрибутива, командой:
Для Debian, Ubuntu
/etc/init.d/apache2 restart
Для CentOS
/etc/init.d/httpd restart