Nginx

在 Nginx 1.14 子目錄中設置 Mediawiki

  • March 5, 2019

我正在嘗試在 nginx 的子目錄下設置一個 mediawiki。

我不想使用類似http://wiki.example.com. 我不想代理回我的伺服器。

我想使用http://www.example.com/wiki或類似的東西。

我嘗試重寫 php,但沒有很好地鍛煉。這是我嘗試過的:

location /wiki {
    rewrite ^ /wiki/index.php$request_uri;
}

我目前正在使用 Mediawiki 1.31.0。

這是迄今為止我能得到的最完整的答案。它似乎無法辨識 Vector 之類的樣式,但其他一切似乎都可以正常工作。這是整個伺服器塊:

server {
   listen 80;
   listen [::]:80;
   root /var/www/basedomain.org;
   index index.php index.html index.htm index.nginx-debian.html;
   server_name basedomain.org *.basedomain.org;

   location / {
       try_files $uri $uri/ =404;
   }

   location /wiki {
       alias /var/www/mediawiki/code;
       index index.php index.html;
           if (-f $request_filename) {
               break;
           }
           rewrite ^/(.*)$ /wiki/index.php?title=$1&$args;
   }

   location ~ /wiki/(.+)\.php(/|$) {
       set $script $uri;
           if ($uri ~ "/wiki/(.+\.php)(/|$)") {
               set $script $1;
       }
       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
       include fastcgi_params;
       fastcgi_split_path_info ^(.+\.php)(/.*)$;
       fastcgi_param  SCRIPT_FILENAME  /var/www/mediawiki/code/$script;
   }

   location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
   }

   location ~ /\.ht {
       deny all;
   }

引用自:https://serverfault.com/questions/931448