質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

Q&A

解決済

1回答

3973閲覧

KUSANAGI for ConoHa で Nginx + WordPress + FuelPHP を正常に動作させる

m055001

総合スコア72

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

0グッド

2クリップ

投稿2017/03/07 11:12

編集2017/03/08 12:49

よろしくお願いいたします。

###前提・実現したいこと
KUSANAGI for ConoHa にて、Nginx で WordPress と FuelPHP を以下のURLで動かしたいです。

URL
WordPresshttp://example.jp
FuelPHPhttp://example.jp/admin/{コントローラ名}

* 通常/adminとするとwp-adminに飛ぶと思うのですが、そうせずFuelPHP側が表示されるように

bash

1# ディレクトリ 2/ 3└ home/ 4 └ kusanagi/ 5 └ www/ 6 └ wp-config.php 7 └ DocumentRoot/ 8 └ wp-admin/ 9 └ wp-content/ 10 ... 11 └ admin/ 12 └ fuel/ 13 └ public/ 14 └ index.php

###発生している問題・エラーメッセージ
Nginxのconfファイルがうまく書けず

###該当のソースコード

bash

1# /etc/nginx/conf.d/www_http.conf 2 3server { 4 listen 80; 5 server_name example.jp; 6 access_log /home/kusanagi/www/log/nginx/access.log main; 7 error_log /home/kusanagi/www/log/nginx/error.log warn; 8 9 # rewrite ^(.*)$ https://example.jp$request_uri permanent; # SSL ONLY 10 charset UTF-8; 11 client_max_body_size 16M; 12 root /home/kusanagi/www/DocumentRoot; 13 index index.php index.html index.htm; 14 15 location /admin { 16 alias /home/kusanagi/www/admin/public; 17 try_files $uri $uri/ /index.php$is_args$args; 18 } 19 20 location ~ ^/admin/.+\.php$ { 21 fastcgi_pass 127.0.0.1:9000; 22 fastcgi_index index.php; 23 include fastcgi_params; 24 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 25 fastcgi_param FUEL_ENV "production"; 26 } 27 28 rewrite /wp-admin$ $scheme://$host$uri/ permanent; 29 30 location / { 31 try_files $uri $uri/ /index.php?$args; 32 } 33...

bash

1# /home/kusanagi/www/DocumentRoot/.htaccess 2 3<Files ~ "^\.ht"> 4 Deny from all 5</Files> 6<Files wp-login.php> 7 Order deny,allow 8 Deny from all 9 Allow from all 10 #Allow from 127.0.0.1 11 AuthType Basic 12 AuthName "ENTER YOUR NAME & PASSWORD TO LOGIN" 13 AuthUserFile /home/kusanagi/.htpasswd 14 Require valid-user 15 Satisfy any 16</Files> 17 18<IfModule mod_rewrite.c> 19 RewriteEngine On 20 RewriteBase / 21 RewriteRule ^index\.php$ - [L] 22 RewriteCond %{REQUEST_URI} !\.(gif|css|js|swf|jpeg|jpg|jpe|png|ico|swd|pdf|svg|eot|ttf|woff) $ 23 RewriteCond %{REQUEST_FILENAME} !-f 24 RewriteCond %{REQUEST_FILENAME} !-d 25 RewriteRule . /index.php [L] 26</IfModule>

bash

1# /home/kusanagi/www/admin/public/.htaccess 2 3 # Multiple Environment config, set this to development, staging or production 4 SetEnv FUEL_ENV development 5 # SetEnv FUEL_ENV production 6 7 <IfModule mod_rewrite.c> 8 9 # RewriteEngine を起動 10 RewriteEngine on 11 12 # NOTICE: If you get a 404 play with combinations of the following commented out lines 13 #AllowOverride All 14 #RewriteBase /wherever/fuel/is 15 RewriteBase /admin 16 17 # Make sure directory listing is disabled 18 # Options +FollowSymLinks -Indexes 19 20 # Restrict your site to only one domain 21 # !important USE ONLY ONE OPTION 22 23 # Option 1: To rewrite "www.domain.com -> domain.com" uncomment the following lines. 24 #RewriteCond %{HTTPS} !=on 25 #RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 26 #RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 27 28 # Option 2: To rewrite "domain.com -> www.domain.com" uncomment the following lines. 29 #RewriteCond %{HTTPS} !=on 30 #RewriteCond %{HTTP_HOST} !^www\..+$ [NC] 31 #RewriteCond %{HTTP_HOST} (.+)$ [NC] 32 #RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L] 33 34 # Remove index.php from URL 35 RewriteCond %{HTTP:X-Requested-With} !^XMLHttpRequest$ 36 RewriteCond %{THE_REQUEST} ^[^/]*/index\.php [NC] 37 RewriteRule ^index\.php(.*)$ $1 [R=301,NS,L] 38 39 DirectorySlash Off 40 41 RedirectMatch permanent /admin$ /admin/login 42 RedirectMatch permanent /admin/$ /admin/login 43 44 # make HTTP Basic Authentication work on php-fcgi installs 45 <IfModule mod_fcgid.c> 46 RewriteCond %{HTTP:Authorization} . 47 RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 48 </IfModule> 49 50 # Send request via index.php if not a real file or directory 51 RewriteCond %{REQUEST_FILENAME} !-f 52 RewriteCond %{REQUEST_FILENAME} !-d 53 54 # deal with php-fcgi first 55 <IfModule mod_fcgid.c> 56 RewriteRule ^(.*)$ index.php?/$1 [QSA,L] 57 </IfModule> 58 59 # no php-fcgi, check for sapi and fpm 60 <IfModule !mod_fcgid.c> 61 62 # for PHP5 sapi installations 63 <IfModule mod_php5.c> 64 RewriteRule ^(.*)$ index.php/$1 [L] 65 </IfModule> 66 67 <IfModule !mod_php5.c> 68 69 # for PHP7 sapi installations 70 <IfModule mod_php7.c> 71 RewriteRule ^(.*)$ index.php/$1 [L] 72 </IfModule> 73 74 # for fpm installations 75 <IfModule !mod_php7.c> 76 RewriteRule ^(.*)$ index.php?/$1 [QSA,L] 77 </IfModule> 78 79 </IfModule> 80 81 </IfModule> 82 83 </IfModule>

###補足情報(言語/FW/ツール等のバージョンなど)

バージョン
Nginxnginx/1.11.10
PHP5.6.30 (php7にしたいが、kusanagi php7してもなぜか切り替わらない)
WordPress4.7.3
FuelPHP1.8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/03/08 11:58 編集

.htaccessはどうなってますか? ルートディレクトリの .htaccess でのurlリライト絡みのトラブルと推察
m055001

2017/03/08 12:50

.htaccessの情報を追加しました!どちらかわからなかったのでwordpressとfuel両方追加しました。Nginxを使用しているのですが、.htaccessはどのように関係してくるのでしょうか?
guest

回答1

0

ベストアンサー

/home/kusanagi/www/DocumentRoot/.htaccess
について、/admin/ に関するルールがないために、
全部wordpressのindex.phpに処理が飛ばされています。

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^admin/(.*) admin/$1 [L] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_URI} !\.(gif|css|js|swf|jpeg|jpg|jpe|png|ico|swd|pdf|svg|eot|ttf|woff) $ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>

「RewriteBase /」の直後に「RewriteRule ^admin/(.*) admin/$1 [L]」を入れて、
admin/~~へのリクエストをそっちに強制的に飛ばす、
というのを入れたらいかがでしょうか。

投稿2017/03/09 01:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m055001

2017/03/09 03:04

ご回答ありがとうございます!ご提案いただいた件、試してみたのですがうまくいきませんでした。 具体的には、.htaccessを書き換え後も特に変化なく、wp-login.phpにリダイレクトされてしまいますm(__)m いただいたご回答で疑問が生じたのですが、よろしければお教えいただけますでしょうか? ・Nginxを使用している場合、.htaccessは無視される(.htaccessはhttpd向けのため)と思っていたのですが、そうではないのでしょうか?
退会済みユーザー

退会済みユーザー

2017/03/09 03:09

!そうでした! nginxの設定の方をいじらないといけないですね。 主旨はわかりますよね、/admin/~へのリクエストをwp-login.phpなどに向けないようにルールを補わないといけない。 [Nginxのリダイレクト設定のメモ - Qiita](http://qiita.com/kt_higa/items/f26ba1453164c82d6ad5)
m055001

2017/03/09 07:08

はい、ご回答いただいた方向性は理解しました!参考URLもありがとうございます、試してみて改めてご連絡させていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問