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

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

関連記事

AWS環境でELB(ロードバランサー)とEC2サーバでapacheを使っている場合にhttpからhttpsにリダイレクトする方法

概要 みなさんこんにちはcandleです。今回はマニアックな記事ですが、恐らくスタートアップ企業などではわりと使う内容だと思うのでまとめておきます。 この方法が全てのサービス上でベストなやり方なのかど …

CentOS6.5にcakephp2.5.6をインストールする

概要 みなさんこんにちはcandleです。今回はCentOSのapacheサーバー上にcakephpを導入してみましょう。 前提 CentOSにapacheがインストールされている mysqlがインス …

awsのec2上でredmineをnginxで使用する方法

概要 みなさんこんにちはcandleです。今回はredmineをec2上で使用する方法を紹介します。 redmineはrailsで作られたwebアプリケーションです。railsで作られているということ …

pythonのfabricでファイルを分割しfabfileに読み込む方法

概要 皆さんこんにちはcandleです。今回はfabricで分割したpythonファイルを読み込んでみましょう。 fabricはfabfile.pyというファイルに実行したいコマンドを書くのですが、 …

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

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

  • English
  • 日本語

プロフィール


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

twitter

スポンサードリンク

アーカイブ