nginxでサブディレクトリに配置したWordpressが動かないや -> パーマリンクの設定だった
HTTPサーバーはnginxで、Railsアプリをルートに、特定のサブディレクトリのときだけWordpressを動かしたいって感じの設定をしているのだけど、動きません。
nginxは、Rails(unicorn)用とWordpress(fast-fpm)用のvirtualhostを2つ作って、最初は後者にリクエストが飛んできて、それが特定ディレクトリ以外へのリクエストならUnicorn用のvirtualhostへのポート違いなproxyにするという設定。(そもそもこれがベストプラクティスなのかはわからん)
virtualhostを2つにする利点は、nginxの設定がそれぞれで柔軟にできるというところ。serverディレクトリでできる設定を別々にできるので。
ここで、問題が。。
Wordpressがトップページは動くのだけど、その他のページで全部404になってしまう(!!)
どうやったら直るのだろう。。
どうやら、このエラーはパーマリンクに関することのよう。
https://ja.forums.wordpress.org/topic/470
以下の記事とか。
http://qiita.com/egnr-in-6matroom/items/a08f4851bf16d0131e60
ngix + php−fpmでは、nginx側でURLを処理して適切にphp-fpmへ渡してあげないといけません。(JavaEEのようにコンテキストを持たないので。。。)
こことかめっちゃ参考になります。。
- Nginx で WordPress を使う時の注意点
http://server-setting.info/centos/nginx-wordpress-check-point.html
confファイルにtry_files
をサブディレクトリのuriに合わせて設定したら直りました。よかった。。。
try_files $uri $uri/ /blog/index.php?q=$uri&$args;