Kirill Petrov Posted May 22, 2018 Share Posted May 22, 2018 (edited) Всем привет. Помогите найти решение для решения следующей задачи: Необходимо какой-то простой и легкий способ показывать фотографии. Что-то типа Piwigo ( но желательно полегче и без наворотов PHP). Есть интересный способ организовать это чисто через nginx с библиотекой ngx_http_xslt_filter_module.so ссылка , но насколько я понял под нашу платформу она не собрана. Edited May 22, 2018 by Kirill Petrov Quote Link to comment Share on other sites More sharing options...
TheBB Posted May 22, 2018 Share Posted May 22, 2018 пакет "nginx-extras" Quote Link to comment Share on other sites More sharing options...
Kirill Petrov Posted May 23, 2018 Author Share Posted May 23, 2018 (edited) Спасибо за подсказку. НЕ силен в nginx долго не мог понять почему не работает вызов библиотеки. Напишу маленький мануал может быть кому-нибудь пригодится. Ставим nginx-extras + библиотеки libxml2 и libxslt. opkg update opkg install nginx-extras libxml2 libxslt Подключаем библиотеку в /opt/etc/nginx/nginx.conf load_module /opt/lib/nginx/ngx_http_xslt_filter_module.so; Делаем свой server ( тут кусочек из nginx.conf отвечающий за Галерею) server { listen 4444 ; auth_basic "Restricted Content"; auth_basic_user_file /opt/etc/nginx/.htpasswd; root /opt/share/www; location /gal { autoindex on;} location ~ /gal/([A-z]+)/$ { autoindex on; autoindex_format xml; xslt_string_param title $1; xslt_stylesheet /opt/etc/nginx/gal.xslt; try_files $uri/ =404; } } Маленькое пояснение. Сделал листинг директории /gal - открытый - можно видеть папки ( делать аля Альбомы). Директории ниже /gal - включается листинг через xslt_stylesheet - отображение фотографий. Т.е. положив фотографии в директорию /opt/share/www/gal/myphoto их можно будет просмотреть по адресу: http://mysite.com/gal/myphoto auth_basic и auth_basic_user_file - отвечают за аутентификацию. Т.е. вход в галерею по Логин\пароль (легко гуглится подробности) Создать файл /opt/etc/nginx/gal.xslt следующего содержания <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="utf-8" indent="yes" /> <xsl:template match="/"> <xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text> <html> <head> <title><xsl:value-of select="$title" /></title> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <style> img { display: block; max-width: 25cm; max-height: 20cm; margin: 2mm; vertical-align: bottom; } @media all and (max-width: 20.4cm) { img { max-width: calc(100% - 4mm); } } body { margin: 0; } </style> </head> <body> <xsl:for-each select="list/file"> <img src="{.}" alt="{.}"/> </xsl:for-each> </body> </html> Опустил подробности HTTPS настройки- по этому поводу тут уже много мануалов написано Edited May 23, 2018 by Kirill Petrov форматирование 2 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.