Nginx, configurazione per Dokuwiki

Ho seguito, piu` o meno, le istruzioni online della pagina http://wiki.nginx.org/Dokuwiki.

Ho scelto d'installarlo in una sottodirectory, per avere la possibilita` di aggiungere un'altro "sito web" nella root (statico) o in altra sottodirectory, e per questo ho dovuto modificare i files di configurazione.

 

I files creati/generati ed i loro contenuti:

 

/etc/nginx/sites-available/dw

server {
  server_name dw;
  listen 80;
  autoindex off;
  index index.html index.htm index.php doku.php;
  root /var/www;

#  #Enforce https for logins, admin
#  if ($args ~* do=(log|admin|profile)) {
#    rewrite ^ https://$host$request_uri? redirect;
#  }

  include dokuwiki.conf;

}

server {
  server_name dw;
  listen 443 ssl;
  autoindex off;
  index index.html index.htm index.php doku.php;
  root /var/www;

  keepalive_requests 10;
  keepalive_timeout 60 60;
  ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
  ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

#  if ($args ~* (do=show|^$)){
#    rewrite ^ http://$host$request_uri? redirect;
#  }

  include dokuwiki.conf;

}

Ho dovuto disattivare il reindirizzamento automatico alle pagine "https" e/o "http", perche` dokuwiki utilizza un "codice" differente per le due sessioni, praticamente non capisce che l'utente "loggato" e` il medesimo.

 

/etc/nginx/sites-enabled/@dw

Questo e` solo un link simbolico al file precedente.

 

/etc/nginx/dokuwiki.conf

### File: /etc/nginx/conf.d/dokuwiki.conf

include dokuwiki_drop.conf;

client_max_body_size 15M;
client_body_buffer_size 128k;

location /dw {
  try_files $uri $uri/ @dokuwiki;
}

location ~ ^/lib.*\.(gif|png|ico|jpg)$ {
  expires 30d;
}

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

location ~ /dw/.+\.php$ {
  try_files $uri =404;
  fastcgi_pass   unix:/var/run/php5-fpm.sock;
  fastcgi_index  index.php;
  fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include /etc/nginx/fastcgi_params;
  fastcgi_param  QUERY_STRING     $query_string;
  fastcgi_param  REQUEST_METHOD   $request_method;
  fastcgi_param  CONTENT_TYPE     $content_type;
  fastcgi_param  CONTENT_LENGTH   $content_length;
  fastcgi_intercept_errors        on;
  fastcgi_ignore_client_abort     off;
  fastcgi_connect_timeout 60;
  fastcgi_send_timeout 180;
  fastcgi_read_timeout 180;
  fastcgi_buffer_size 128k;
  fastcgi_buffers 4 256k;
  fastcgi_busy_buffers_size 256k;
  fastcgi_temp_file_write_size 256k;
}

# Block access to data folders
location ~ /dw/(data|conf|bin|inc)/ {
  deny all;
}

# Block access to .htaccess files
location ~ /\.ht {
  deny all;
}

Qui si puo` notare la "location", altri non e` che la directory dove ho messo/installato dokuwiki: "/var/www/dw".

 

/etc/nginx/dokuwiki_drop.conf

### file: /etc/nginx/dokuwiki_drop.conf

location = /robots.txt  { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }
location ~ /\.          { access_log off; log_not_found off; deny all; }
location ~ ~$           { access_log off; log_not_found off; deny all; }

Questo non l'ho toccato.