diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ceeb05b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/tmp diff --git a/ispmanager-plugin-nginx_mod_rewrite_plugin.spec b/ispmanager-plugin-nginx_mod_rewrite_plugin.spec new file mode 100644 index 0000000..a61db18 --- /dev/null +++ b/ispmanager-plugin-nginx_mod_rewrite_plugin.spec @@ -0,0 +1,35 @@ +Name: ispmanager-plugin-nginx_mod_rewrite_plugin +Version: 0.0.1 +Release: 1%{?dist} +Summary: Модуль nginx mod_rewrite +License: Apache License 2.0 +URL: https://github.com/bayrepo/ngx_http_apache_rewrite_module +Source0: %{name}-%{version}.tar.gz +BuildRequires: wget + +%description +Модуль добавления поддержки mod_rewrite правил и .htaccess в nginx + +%prep +%setup -q + +%build +# nothing to build + +%install +mkdir -p %{buildroot}/usr/local/mgr5/etc/plugins/ispmgr +mkdir -p %{buildroot}/usr/local/mgr5/addon +cp -a ispmgr/* %{buildroot}/usr/local/mgr5/etc/plugins/ispmgr/ +cp -a nginx_mod_rewrite_plugin.py %{buildroot}/usr/local/mgr5/addon/ +mkdir -p %{buildroot}/usr/local/ispmanager-mod_rewrite +wget -O %{buildroot}/usr/local/ispmanager-mod_rewrite/mod_rewrite.zip https://github.com/bayrepo/ngx_http_apache_rewrite_module/archive/refs/heads/main.zip + +%files +/usr/local/mgr5/etc/xml/ispmgr_mod_nginx_mod_rewrite_plugin.xml +/usr/local/mgr5/etc/plugins/ispmgr/nginx_mod_rewrite_plugin.xml +%attr(700, root, root) /usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py +%attr(600, root, root) /usr/local/ispmanager-mod_rewrite/mod_rewrite.zip + +%changelog +* Mon Jun 29 2026 Alexey BayRepo - 0.0.1-1 +- Initial release diff --git a/usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py b/usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py new file mode 100755 index 0000000..fbf2f0e --- /dev/null +++ b/usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 + +import os +import xml.etree.ElementTree as etree +from sys import stdin + + +def CheckModuleExists(): + module_path = '/usr/share/nginx/modules/ngx_http_apache_rewrite_module.conf' + if os.path.isfile(module_path): + return 'mod_rewrite already installed' + return None + +def InstallModule(): + #Todo func + return None + +# Обработка нажатия на кнопку "Сохранить" +def Handle(root): + result = True + result_error = CheckModuleExists() + if result_error is None: + result_error = InstallModule() + result = result_error is None + + if not result: + # Формирование сообщения об ошибке согласно структуре в metadata + error = etree.SubElement(root, "error") + error.set('code', '1') + error.set('type', 'nginx_mod_rewrite_plugin') + error.set('object', 'wrong_value') + param = etree.SubElement(error, 'param') + param.text = 'wrong_value' + param.set('name', 'object') + param.set('type', 'msg') + param = etree.SubElement(error, 'param') + param.set('name', 'value') + param.text = result_error + + +if __name__ == "__main__": + func = os.getenv("PARAM_func") + correct_function = False + + if func == "nginx_mod_rewrite_plugin.settings": + correct_function = True + elif func == "plugin.settings": + if os.getenv("PARAM_plugin_settings") == "nginx_mod_rewrite_plugin": + correct_function = True + root = etree.parse(stdin).getroot() + + if correct_function: + if os.getenv("PARAM_clicked_button") == "ok": + Handle(root) + + etree.dump(root) + quit(0) diff --git a/usr/local/mgr5/etc/plugins/ispmgr/nginx_mod_rewrite_plugin.xml b/usr/local/mgr5/etc/plugins/ispmgr/nginx_mod_rewrite_plugin.xml new file mode 100644 index 0000000..d260345 --- /dev/null +++ b/usr/local/mgr5/etc/plugins/ispmgr/nginx_mod_rewrite_plugin.xml @@ -0,0 +1,13 @@ + + + + 1 + + nginx_mod_rewrite_plugin.settings + Модуль nginx mod_rewrite + Модуль добавления поддержки mod_rewrite правил и .htaccess в nginx<br/><a href="https://github.com/bayrepo/ngx_http_apache_rewrite_module" target="_blank">Документация по настройкам модуля</a> + + 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 new file mode 100644 index 0000000..08a9551 --- /dev/null +++ b/usr/local/mgr5/etc/xml/ispmgr_mod_nginx_mod_rewrite_plugin.xml @@ -0,0 +1,34 @@ + + + + 1 + nginx_mod_rewrite_plugin.settings + + + + + + +
+ + + +
+ +