Jump to content

Фото Галерея на ENTWARE


Recommended Posts

Всем привет.

Помогите найти решение для решения следующей задачи:

Необходимо какой-то простой и легкий способ показывать фотографии.

Что-то типа Piwigo ( но желательно полегче и без наворотов PHP).

Есть интересный способ организовать это чисто через nginx с библиотекой 

ngx_http_xslt_filter_module.so ссылка

 , но насколько я понял под нашу платформу она не собрана.

 

Edited by Kirill Petrov
Link to comment
Share on other sites

Спасибо за подсказку. НЕ силен в nginx долго не мог понять почему не работает вызов библиотеки.

Напишу маленький мануал может быть кому-нибудь пригодится.

 

  1. Ставим nginx-extras + библиотеки libxml2 и libxslt.
    opkg update
    opkg install nginx-extras libxml2 libxslt
  2. Подключаем библиотеку в /opt/etc/nginx/nginx.conf 
    load_module  /opt/lib/nginx/ngx_http_xslt_filter_module.so;
  3. Делаем свой 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 - отвечают за аутентификацию. Т.е. вход в галерею по Логин\пароль (легко гуглится подробности)

  4. Создать файл /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>
  5.  Опустил подробности HTTPS настройки- по этому поводу тут уже много мануалов написано

     

Edited by Kirill Petrov
форматирование
  • Thanks 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...