joppot

コピペで絶対動く。説明を妥協しない

サーバ

wordpressをnginxでsubdirectoryに配置する

投稿日:

Pocket

nginx_sub_top_thumb

概要

みなさんこんにちはcandleです。
今回はnginxを使って、サブディレクトリにwordpressを配置してルーティングを行う方法を紹介します。
実はこれ、結構苦労しました。わりと文献はあるのですが、私の場合はうまくいきませんでした。
多分、ここで紹介する方法はうまくいきます。

この記事では以下のような方法を紹介します。

例えば、/usr/share/nginx/alice_blogにwordpressを置いた時に、

http://alice_blog.com/blog

でwordpressにアクセスできるようにします。


前提

適当なwordpressとnginxサーバがある。

SPONSORED LINK



nginxの設定する

私はvagrantのcentos6.5、nginx1.8、php5.3で作業します。
色々試した結果、nginxとphpのバージョンはなんでもかまいません。

現在、nginxの設定ファイルを/etc/nginx/conf.d/default.conf に置いて、中身が、以下のようになっています。

server {
  listen       80;
  server_name  alice_blog.com;
  root         /usr/share/nginx/alice_blog;
  charset      utf-8;

  error_page  404   /404.html;
  location = /40x.html {}

  error_page   500 502 503 504  /50x.html;
  location = /50x.html {}

  location ~ \.php$ {
    #fastcgi_pass   phpfpm;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
  }
}

vagrantなので、IPアドレスは「192.168.33.10」にアクセスすると、現在は以下のようなルーティングになります。

http://192.168.33.10/wp-admin/install.php

vagrantok

ではこれを、http://192.168.33.10/blog/wp-admin/install.php でアクセスできるように変更します。
/etc/nginx/conf.d/default.confを開いて、以下のように変更します。

server {
  listen       80;
  server_name  alice_blog.com;
  #root         /usr/share/nginx/alice_blog;
  charset      utf-8;

  error_page  404   /404.html;
  location = /40x.html {}

  error_page   500 502 503 504  /50x.html;
  location = /50x.html {}

  location ^~ /blog {
    alias /usr/share/nginx/alice_blog;
    index index.php index.html index.htm;
    try_files $uri $uri/ @wp;

    location ~ \.php$ {
      include fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index  index.php;
      fastcgi_param SCRIPT_FILENAME $request_filename;
    }
  }
}

保存したら、nginxを再起動します。

sudo service nginx restart

今度は/blogをつけてアクセスします。

http://192.168.33.10/blog

blog_url
こうすると、うまくいきますね。

気をつけて欲しいのはrootを定義しないことです。
rootではなくて、aliasを使うことがキモです。
それと@wpというのが出てきていますが、これはなんでもよいっぽいです。

まとめ

私の場合はこれでうまくいっていますが、もし、質問があれば、下のコメント欄からお願いします。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-サーバ
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

centosのfluentdをdaemon toolsを使って自動起動する

概要 みなさんこんにちはcandleです。今回は、fluentdの自動起動を試したいと思います。 centosかつfluentdかつdaemon toolsって誰に需要があるのか分からない記事ですがよ …

wordpress skeletonをnginx の本番環境でfabricを使って運用してみる

はじめに みなさんこんにちはcandleです。今回はskeletonを使用してwordpressを開発している時に、それを本番環境でどう使うかを試してみたいと思います。 本番環境はローカルのvagra …

Mysqlの管理ユーザーを追加する

概要 みなさんこんにちはcandleです。今回はmysqlの管理者を加える方法です。 この記事は別段書かなくても、いくらでもweb上にあるのですが、私がよく使うのでまとめました。 前提 mysqlの実 …

MAMPでphpのshell_execを使用してunixコマンドを実行できない場合の対処(imagemagick,convert)

概要 みなさんこんにちはcandleです。今回はちょっと問題が起きてshell_execがうまくいかないときのトラブルシューティングをまとめます。 私はMAMPをバージョンアップする前は、phpのsh …

wordpress skeletonを使った開発環境の構築

はじめに みなさんこんにちはcandleです。wordpressは大変便利なのですが、いまいちgitで管理するのが難しいものです。 というのも、wordpress全体をgit管理対象にしてしまうと、w …

  • English
  • 日本語

プロフィール


ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー

スポンサードリンク

アーカイブ