diff --git a/README.ru.md b/README.ru.md index ad9fc14..69c603b 100644 --- a/README.ru.md +++ b/README.ru.md @@ -85,3 +85,38 @@ sudo dnf install _packages/ispmanager-plugin-nginx_mod_rewrite_plugin-0.0.1-1.el Для отмены сборки, нажмите кнопку "Отменить сборку". Для сборки и установки хука пересборки при обновлении nginx необходимо нажать "Собать модуль и установить хук на пересборку". Процесс сборки можно будет изучить в логе: `/usr/local/mgr5/var/nginx-mod-rewrite-plugin.log. + +Если сборка прошла успешно, то в на сервере появится файл: + +``` +# cat /usr/share/nginx/modules/ngx_http_apache_rewrite_module.conf +load_module "/usr/lib64/nginx/modules/ngx_http_apache_rewrite_module.so"; +``` +и файл: + +``` +/usr/lib64/nginx/modules/ngx_http_apache_rewrite_module.so +``` +соответсвенно. + +Далее нужно перейти в глобальные настройки модуля: + +![Глобальные настройки модуля](img/isp_mod_rewrite3.png) + +Для этого как показано на изображении нужно перети во "Все разделы" и далее найти раздел "mod_rewrite для nginx" и его пункт меню "Настройка модуля nginx". + +Откроется следующее окно настроек: + +![Настройки](img/isp_mod_rewrite4.png) + +Где: + +- Добавить модуль nginx - галочка позволяет отключить модуль nginx глобально, т.е в файле `/usr/share/nginx/modules/ngx_http_apache_rewrite_module.conf` закомментируется строка подгрузки модуля. Здесь нужно быть осторожным, если есть хоть один сайт с опцией, которую приносит модуль, то nginx будет ругаться на неизвестную опцию и не сможет запуститься. Поэтому прежде чем отключать, необходимо отключить на всех сайтах опции mod_rewrite для nginx. +- Использовать шаблон для настройки сайта - текущий плагин, позволяет двумя способами встроиться в конфигурацию сайта. Вариант 1 - глобальное включение mod_rewrite для сайта(есои галочка не включена), Вариант 2 - включение mod_rewrite для location через шаблон ispmanager (если галочка включена). О каждом варианте настроек будет расказоно ниже. +- Включить вывод дополнительной информации в лог - если галочка включена, то в лог файл `/usr/local/mgr5/var/nginx-mod-rewrite-plugin-addon.log` записывается детальная работа самого плагина ispmanager. Может понадобиться если плагин некорректно работает. В общих лучаях данная галочка должна быть отключена. + +Включить же mod_rewrite для сайта можно через меню "Сайты": + +![Включение для сайта](img/isp_mod_rewrite5.png) + +В меню выбрать интересующий сайт и включить галочку "Включить для сайта поддержку mod_rewrite для nginx". И сохранить. diff --git a/img/isp_mod_rewrite3.png b/img/isp_mod_rewrite3.png new file mode 100644 index 0000000..82cfea3 Binary files /dev/null and b/img/isp_mod_rewrite3.png differ diff --git a/img/isp_mod_rewrite4.png b/img/isp_mod_rewrite4.png new file mode 100644 index 0000000..302204f Binary files /dev/null and b/img/isp_mod_rewrite4.png differ diff --git a/img/isp_mod_rewrite5.png b/img/isp_mod_rewrite5.png new file mode 100644 index 0000000..5f5b74f Binary files /dev/null and b/img/isp_mod_rewrite5.png differ diff --git a/usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py b/usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py index d920782..4d020ab 100755 --- a/usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py +++ b/usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py @@ -2,10 +2,25 @@ import os import xml.etree.ElementTree as etree +from xml.dom import minidom from sys import stdin import subprocess import datetime +def dump_all_to_log(root): + log_path = '/usr/local/mgr5/var/nginx-mod-rewrite-plugin.log' + try: + with open(log_path, 'a') as log_file: + timestamp = datetime.datetime.now().isoformat() + xml_str = etree.tostring(root, encoding='unicode') + # Pretty‑print the XML + pretty_xml = minidom.parseString(xml_str).toprettyxml(indent=" ") + log_file.write(f"{timestamp} - Dumping XML to log:\n{pretty_xml}\n") + log_file.write(f"{timestamp} - Environment variables:\n") + for key, value in sorted(os.environ.items()): + log_file.write(f"{key}={value}\n") + except Exception: + pass def CheckModuleExists(): module_path = '/usr/share/nginx/modules/ngx_http_apache_rewrite_module.conf' @@ -97,13 +112,10 @@ def Handle(root): for child in list(parent): if child.tag == 'textdata' and child.get('name') == 'nginx_mod_rewrite_plugin_msg': parent.remove(child) - # Find the messages element with name "nginx_mod_rewrite_plugin.settings" - messages_elem = root.find(".//messages[@name='nginx_mod_rewrite_plugin.settings']") - if messages_elem is not None: - # Find the msg element with name "msg_create" and change its text - msg_create_elem = messages_elem.find(".//msg[@name='msg_create']") - if msg_create_elem is not None: - msg_create_elem.text = 'Ничего не делать' + for buttons in root.findall(".//buttons"): + for btn in list(buttons): + if btn.tag == 'button' and btn.get('name') == 'ok': + buttons.remove(btn) if __name__ == "__main__": @@ -134,14 +146,10 @@ if __name__ == "__main__": if child.tag == 'textdata' and child.get('name') == 'nginx_mod_rewrite_plugin_msg': parent.remove(child) - # Find the messages element with name "nginx_mod_rewrite_plugin.settings" - messages_elem = root.find(".//messages[@name='nginx_mod_rewrite_plugin.settings']") - if messages_elem is not None: - # Find the msg element with name "msg_create" and change its text - msg_create_elem = messages_elem.find(".//msg[@name='msg_create']") - if msg_create_elem is not None: - msg_create_elem.text = 'Ничего не делать' - + for buttons in root.findall(".//buttons"): + for btn in list(buttons): + if btn.tag == 'button' and btn.get('name') == 'ok': + buttons.remove(btn) etree.dump(root) quit(0) diff --git a/usr/local/mgr5/etc/xml/ispmgr_mod_nginx_mod_rewrite_plugin.xml b/usr/local/mgr5/etc/xml/ispmgr_mod_nginx_mod_rewrite_plugin.xml index ea9180b..8b4186d 100644 --- a/usr/local/mgr5/etc/xml/ispmgr_mod_nginx_mod_rewrite_plugin.xml +++ b/usr/local/mgr5/etc/xml/ispmgr_mod_nginx_mod_rewrite_plugin.xml @@ -5,6 +5,13 @@ nginx_mod_rewrite_plugin.settings + + + + + + + @@ -14,11 +21,11 @@ + +