joppot

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

サーバ

wordpressをnginxでsubdirectoryに配置する

投稿日:


nginx_sub_top_thumb

概要

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

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

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

http://alice_blog.com/blog

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


前提

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



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

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

関連記事

Ubuntuにmemcachedをインストールする方法と動作確認

概要 みなさんこんにちは、今回はubuntuにmemcachedを入れて、起動や、動作確認を行ってみたいと思います。 memcachedとは比較的短期間「key=>value」という形で値を保存するサ …

gitのリモートプライベートリポジトリを公開鍵認証を使って環境構築する

概要 みなさんこんにちはcandleです。 今回はgitのリモートプライベートリポジトリを作ってみたいと思います。 リモートリポジトリと言えば、Githubとかbitbucketが有名だと思います。会 …

sshコマンドをaliasかssh configを使って短縮する

概要 みなさんこんにちはcandleです。今回はsshの接続先のホスト名を短くする方法です。 ssh接続は非常に強力なネットワークツールですが、接続先の指定がやや面倒ですね。それを単純にする方法をまと …

ec2のメモリ状態をwatchとfreeで監視する

English 日本語 概要 みなさんこんにちはcandleです。今回はec2のメモリをリアルタイムで監視する方法を紹介します。 ec2サーバはt2.microだとメモリが1GBしかなく、その上でco …

fluentdのs3 pluginを使用して日付区切りでログデータをS3に送信する

概要 みなさんこんにちはcandleです。今回はfluentdのs3プラグインを使用して、railsなどのログを日単位でS3に投げる方法を紹介します。もちろん、応用して年単位とか月単位、時間単位で区切 …

  • English
  • 日本語

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