dokuwiki, nginx e farms

2

Estou tentando configurar vários dokuwiki, mas estou com muita dificuldade ...

Eu posso configurar um com relativa facilidade, mas gostaria de usar o conceito de farm ( link ). A desvantagem é que ele foi escrito para o apache e não para o nginx e também não encontrei nenhum guia nginx.

Eu não consigo usar o vhost onde isso deve ser implantado (testei vhost localmente e posso configurá-lo) e, portanto, é necessário o equivalente nginx do htaccess.

O problema parece estar em volta da reescrita "animal"

RewriteRule ^/?([^/]+)/(.*) /farmer/$2?animal=$1 [QSA]

RewriteRule ^/?([^/]+)$ /farmer/?animal=$1 [QSA]

torna-se (dentro de um local relevante).

rewrite ^/?([^/]+)/(.*) /farmer/$2?animal=$1;

rewrite ^/?([^/]+)$ /farmer/?animal=$1;

Nada do que tentei funciona, então decidi voltar atrás e seguir as dicas de redirecionamento ( link ) e Não consigo produzir um funcionamento Etapa 2: configurar a vinculação de URL ao teste do redirecionamento

Este é meu localhost.conf.

server { listen 80; server_name localhost; access_log

/var/log/nginx/localhost_access_log main; error_log

/var/log/nginx/localhost_error_log info; rewrite_log on; root

/var/www/localhost/htdocs; #location ~

/(data/|conf/|bin/|inc/|install.php) { deny all; }

location / { autoindex on; }

location /barn { #alias /var/www/localhost/htdocs/farmer/;

  rewrite ^/?([^/]+)/(.*) /farmer/$2?animal=$1;

      rewrite ^/?([^/]+)$ /farmer/?animal=$1;     }

}

O

link redireciona para "agricultor" e os registros de depuração mostram:

*1 rewritten data: "/farmer/", args: "animal=barn", client: 127.0.0.1, server: localhost, request: "GET /barn/ HTTP/1.1", host: "localhost"

o animal = parte do celeiro é a preocupação ... o mesmo link falha com o erro 404 e os registros de regravação mostram:

rewritten data: "/farmer/foo", args: "animal=barn", client: 127.0.0.1, server: localhost, request: "GET /barn/foo HTTP/1.1", host: "localhost"

o que eu esperava era animal = foo. Qualquer conselho sobre como corrigir a reescrita

    
por Naib 07.07.2018 / 00:09

1 resposta

0

Bem, eu meio que respondi ...

/ var / www / localhost / htdocs / agricultor é a base dokuwiki / var / www / localhost / htdocs / barn é um diretório que mantém minha fazenda / var / www / localhost / htdocs / celeiro / vaca é o primeiro animal / var / www / localhost / htdocs / barn / duck é o segundo animal

O farmer / inc / preload.php é configurado de acordo com as dicas:

if(!defined('DOKU_FARMDIR')) define('DOKU_FARMDIR', '/var/www/localhost/htdocs/barn');

cow / conf / local.protected.php é igualmente configurado

$conf['basedir'] = '/barn/cow/';

duck / conf / local.protected.php é igualmente configurado

$conf['basedir'] = '/barn/duck/';

agora o nginx localhost.conf está configurado como:

server {
    listen 80;
    server_name localhost;
    access_log /var/log/nginx/localhost_access_log main;
    error_log /var/log/nginx/localhost_error_log info;
    rewrite_log on;
    root /var/www/localhost/htdocs;

    location ~ /(data/|conf/|bin/|inc/|install.php) { deny all; } # post-install lockdown

    location / {
        try_files $uri $uri/ doku.php @farmer;
        autoindex on;
        }
    location /cow {
        return 301 http://$host/barn/cow/doku.php;
        }

    location /duck {
        return 301 http://$host/barn/duck/doku.php;
        }


    location ~ /barn {
        index doku.php;
        autoindex on;
        rewrite ^/barn/?([^/]+)/(.*) /farmer/$2?animal=$1;
        rewrite ^/barn/?([^/]+)$ /farmer/?animal=$1;
        }

    location @farmer {
            rewrite ^/farmer/_media/(.*) /lib/exe/fetch.php?media=$1;
            rewrite ^/farmer/_detail/(.*) /lib/exe/detail.php?media=$1;
            rewrite ^/farmer/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2;
            rewrite ^/farmer/(.*) /doku.php?id=$1&$args;
        }

    location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi.conf;
        fastcgi_pass 127.0.0.1:9000;  
    }

}

Eu posso navegar para o link para a base, link (redirecionando para link , internamente reescrito como link ) para 1º animal e o mesmo para o 2º.

Eu não gosto de aspectos da carga nginx, mas funciona (tm)

    
por 08.07.2018 / 01:22