Fixes
This commit is contained in:
35
README.ru.md
35
README.ru.md
@@ -85,3 +85,38 @@ sudo dnf install _packages/ispmanager-plugin-nginx_mod_rewrite_plugin-0.0.1-1.el
|
|||||||
Для отмены сборки, нажмите кнопку "Отменить сборку". Для сборки и установки хука пересборки при обновлении nginx необходимо нажать "Собать модуль и установить хук на пересборку".
|
Для отмены сборки, нажмите кнопку "Отменить сборку". Для сборки и установки хука пересборки при обновлении nginx необходимо нажать "Собать модуль и установить хук на пересборку".
|
||||||
|
|
||||||
Процесс сборки можно будет изучить в логе: `/usr/local/mgr5/var/nginx-mod-rewrite-plugin.log.
|
Процесс сборки можно будет изучить в логе: `/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
|
||||||
|
```
|
||||||
|
соответсвенно.
|
||||||
|
|
||||||
|
Далее нужно перейти в глобальные настройки модуля:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Для этого как показано на изображении нужно перети во "Все разделы" и далее найти раздел "mod_rewrite для nginx" и его пункт меню "Настройка модуля nginx".
|
||||||
|
|
||||||
|
Откроется следующее окно настроек:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Где:
|
||||||
|
|
||||||
|
- Добавить модуль 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 для сайта можно через меню "Сайты":
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
В меню выбрать интересующий сайт и включить галочку "Включить для сайта поддержку mod_rewrite для nginx". И сохранить.
|
||||||
|
|||||||
BIN
img/isp_mod_rewrite3.png
Normal file
BIN
img/isp_mod_rewrite3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
BIN
img/isp_mod_rewrite4.png
Normal file
BIN
img/isp_mod_rewrite4.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
BIN
img/isp_mod_rewrite5.png
Normal file
BIN
img/isp_mod_rewrite5.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
@@ -2,10 +2,25 @@
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import xml.etree.ElementTree as etree
|
import xml.etree.ElementTree as etree
|
||||||
|
from xml.dom import minidom
|
||||||
from sys import stdin
|
from sys import stdin
|
||||||
import subprocess
|
import subprocess
|
||||||
import datetime
|
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():
|
def CheckModuleExists():
|
||||||
module_path = '/usr/share/nginx/modules/ngx_http_apache_rewrite_module.conf'
|
module_path = '/usr/share/nginx/modules/ngx_http_apache_rewrite_module.conf'
|
||||||
@@ -97,13 +112,10 @@ def Handle(root):
|
|||||||
for child in list(parent):
|
for child in list(parent):
|
||||||
if child.tag == 'textdata' and child.get('name') == 'nginx_mod_rewrite_plugin_msg':
|
if child.tag == 'textdata' and child.get('name') == 'nginx_mod_rewrite_plugin_msg':
|
||||||
parent.remove(child)
|
parent.remove(child)
|
||||||
# Find the messages element with name "nginx_mod_rewrite_plugin.settings"
|
for buttons in root.findall(".//buttons"):
|
||||||
messages_elem = root.find(".//messages[@name='nginx_mod_rewrite_plugin.settings']")
|
for btn in list(buttons):
|
||||||
if messages_elem is not None:
|
if btn.tag == 'button' and btn.get('name') == 'ok':
|
||||||
# Find the msg element with name "msg_create" and change its text
|
buttons.remove(btn)
|
||||||
msg_create_elem = messages_elem.find(".//msg[@name='msg_create']")
|
|
||||||
if msg_create_elem is not None:
|
|
||||||
msg_create_elem.text = 'Ничего не делать'
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
@@ -134,14 +146,10 @@ if __name__ == "__main__":
|
|||||||
if child.tag == 'textdata' and child.get('name') == 'nginx_mod_rewrite_plugin_msg':
|
if child.tag == 'textdata' and child.get('name') == 'nginx_mod_rewrite_plugin_msg':
|
||||||
parent.remove(child)
|
parent.remove(child)
|
||||||
|
|
||||||
# Find the messages element with name "nginx_mod_rewrite_plugin.settings"
|
for buttons in root.findall(".//buttons"):
|
||||||
messages_elem = root.find(".//messages[@name='nginx_mod_rewrite_plugin.settings']")
|
for btn in list(buttons):
|
||||||
if messages_elem is not None:
|
if btn.tag == 'button' and btn.get('name') == 'ok':
|
||||||
# Find the msg element with name "msg_create" and change its text
|
buttons.remove(btn)
|
||||||
msg_create_elem = messages_elem.find(".//msg[@name='msg_create']")
|
|
||||||
if msg_create_elem is not None:
|
|
||||||
msg_create_elem.text = 'Ничего не делать'
|
|
||||||
|
|
||||||
|
|
||||||
etree.dump(root)
|
etree.dump(root)
|
||||||
quit(0)
|
quit(0)
|
||||||
|
|||||||
@@ -5,6 +5,13 @@
|
|||||||
<settings>nginx_mod_rewrite_plugin.settings</settings>
|
<settings>nginx_mod_rewrite_plugin.settings</settings>
|
||||||
<free />
|
<free />
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<mainmenu level="admin+">
|
||||||
|
<modernmenu>
|
||||||
|
<node name="nginx_mod_rewrite_plugin_menu" customicon="/manimg/icons/mod_rewrite_menu.svg">
|
||||||
|
<node name="nginx_mod_rewrite_plugin_menu_settings" customicon="/manimg/icons/mod_rewrite_tool.svg"/>
|
||||||
|
</node>
|
||||||
|
</modernmenu>
|
||||||
|
</mainmenu>
|
||||||
<handler name="nginx_mod_rewrite_plugin.py" type="xml">
|
<handler name="nginx_mod_rewrite_plugin.py" type="xml">
|
||||||
<func name="nginx_mod_rewrite_plugin.settings" />
|
<func name="nginx_mod_rewrite_plugin.settings" />
|
||||||
</handler>
|
</handler>
|
||||||
@@ -14,11 +21,11 @@
|
|||||||
<textdata name="nginx_mod_rewrite_plugin_msg" type="banner" status="warning"/>
|
<textdata name="nginx_mod_rewrite_plugin_msg" type="banner" status="warning"/>
|
||||||
<textdata name="nginx_mod_rewrite_plugin_msg_info" type="banner" status="info"/>
|
<textdata name="nginx_mod_rewrite_plugin_msg_info" type="banner" status="info"/>
|
||||||
</field>
|
</field>
|
||||||
|
<buttons>
|
||||||
|
<button name="ok" type="ok" />
|
||||||
|
<button name="cancel" type="cancel" />
|
||||||
|
</buttons>
|
||||||
</form>
|
</form>
|
||||||
<buttons>
|
|
||||||
<button name="ok" type="ok" />
|
|
||||||
<button name="cancel" type="cancel" />
|
|
||||||
</buttons>
|
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="site.edit" type="form">
|
<metadata name="site.edit" type="form">
|
||||||
<form>
|
<form>
|
||||||
@@ -43,13 +50,6 @@
|
|||||||
<event name="site.edit" after="yes"/>
|
<event name="site.edit" after="yes"/>
|
||||||
<func name="nginx_mod_rewrite_plugin_menu_settings"/>
|
<func name="nginx_mod_rewrite_plugin_menu_settings"/>
|
||||||
</handler>
|
</handler>
|
||||||
<mainmenu level="admin+">
|
|
||||||
<modernmenu>
|
|
||||||
<node name="nginx_mod_rewrite_plugin_menu" customicon="/manimg/icons/mod_rewrite_menu.svg">
|
|
||||||
<node name="nginx_mod_rewrite_plugin_menu_settings" customicon="/manimg/icons/mod_rewrite_tool.svg"/>
|
|
||||||
</node>
|
|
||||||
</modernmenu>
|
|
||||||
</mainmenu>
|
|
||||||
<metadata name="nginx_mod_rewrite_plugin_menu_settings" type="form">
|
<metadata name="nginx_mod_rewrite_plugin_menu_settings" type="form">
|
||||||
<form needconfirm="yes">
|
<form needconfirm="yes">
|
||||||
<field name="nginx_mod_rewrite_plugin_menu_module_enable">
|
<field name="nginx_mod_rewrite_plugin_menu_module_enable">
|
||||||
|
|||||||
Reference in New Issue
Block a user