
サーバーに WikkaWiki をセットアップしたところです。リンクを から に移動するようにしましwiki.mysite.info/wikka.php?wakka=Start
たwiki.mysite.info/DotMG
。
私は彼らのガイドに従ってみましたhttp://docs.wikkawiki.org/ModRewriteしかし、不完全で時代遅れのようです。さらに、バージョン1.3.2
base_url
ファイルから手動で設定することもできませんwikka.config.php
。
私は WikkaWiki のバージョンを使用しています1.3.2
。私の nginx 仮想ホスト ファイルには以下が含まれています:
server {
listen 80;
server_name wiki.mysite.info;
root /usr/share/nginx/wikka/;
access_log /usr/share/nginx/.access/wikka;
error_log /usr/share/nginx/.error/wikka error;
location / {
index index.php;
try_files $uri $uri/ @wikka;
}
location @wikka {
rewrite ^(.*/[^\./]*[^/])$ $1/ last;
rewrite ^(.*)$ /wikka.php?wakka=$1 last;
}
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
}
これまでのところは機能しており、wiki.mysite.info/APage
そのページに移動して表示することはできますが、すべてのページで機能するわけではなく、ブラウザが単にページをダウンロードするだけの場合もあります (何らかの理由で、常にStart
ページがダウンロードされます)。
また、そこに行くとファイルwiki.mysite.info/
がダウンロードされますwikka.php
...
さらに、Wiki 上のリンクには が付いているwikka.php?wakka=
ため、Wiki 内を移動するたびに に戻りますwiki.mysite.info/wikka.php?wakka=APage
。
何かがおかしいと思うのですrewrite
が、はっきりしたことは言えません。
内容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_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS $server_https;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
答え1
この行を変更します:
fastcgi_param SCRIPT_FILENAME $request_filename;
に:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
そしてさらに試みる。
答え2
私は Google 経由でここに来ましたが、自分で解決策を見つけなければならなかったにもかかわらず、このスレッドは 1 年以上前のものですが、検索エンジン経由でここに来た他の人々のために、私の解決策をここに投稿する必要があると思います。
nginxでは、try_filesによって@wikkaの場所への書き換えがブロックへの呼び出しを短絡していると思います。location ~ \.php
ブロック内のすべてをコピーし直すlocation ~ \.php
と、location @wikka
問題は解決しました。詳細はhttp://blog.dot.mg/?t=20
答え3
1.3.5
古い Wikka インストールをApache から Nginx/php-fpm に移行し終えました。
参考までに、適切な書き換えルールを含む vhost 定義を以下に示します。
server {
listen 80;
server_name wiki.domain.com;
root /var/www/wiki.domain.com;
access_log /var/log/nginx/wiki.domain.com.access.log;
error_log /var/log/nginx/wiki.domain.com.error.log;
location / {
index wikka.php;
try_files $uri $uri/ @wikka;
}
location @wikka {
rewrite (.*) /wikka.php?wakka=$1;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}