Jump to content

Kirill Petrov

Forum Members
  • Posts

    2
  • Joined

  • Last visited

Posts posted by Kirill Petrov

  1. Спасибо за подсказку. НЕ силен в 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 настройки- по этому поводу тут уже много мануалов написано

       

    • Thanks 2
    • Upvote 1
  2. Всем привет.

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

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

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

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

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

     

×
×
  • Create New...