バージョン選択

フォーラム

メニュー

オンライン状況

65 人のユーザが現在オンラインです。 (51 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 65
もっと...

サイト内検索

質問 > その他 > nginxを使ったサブディレクトリ運用でのリダイレクト処理

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
umanari145
投稿日時: 2016/8/3 13:57
対応状況: −−−
新米
登録日: 2016/8/3
居住地:
投稿: 4
nginxを使ったサブディレクトリ運用でのリダイレクト処理
webサーバーにnginxを使い、あるドメイン(仮にexample.comとします。)のサブディレクトリでECCUBEを動かしたいと考えております。

ルートディレクトリが/var/www/html/だとすると
/var/www/html/eccubeと配置し、
トップページ http://example.com/eccube
商品一覧ページ http://example.com/eccube/product/list
などのURLでアクセスしたいと考えておりますが、この場合の対処法(eccubeの中の処理あるいはhtaccessやnginxのリダイレクトの書き換え方など)が
わかる方がいましたら教えていただければ幸いです。

現時点では他のスレッド(http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=16523&forum=14&post_id=73015#forumpost73015)にありました
http://amidaike.hatenablog.com/entry/2015/07/18/151143の方法
index.php、.htaccess、robot.txtをeccube直下に置き、index.php、path.ymlを書き換える方法も試してみましたが、
トップページ以外は404になってしまいます。
他のファイルはそのままです。

nginxの設定は下記のように書いております。

location ~ /eccube/(.*)$ {
root /var/wwww/html;
include fastcgi_params;
try_files $uri $uri/ /index.php?$uri&$args;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
error_log /var/log/nginx/eccube.error.log notice;
access_log /var/log/nginx/eccube.access.log;
}

環境は以下の通りです。
CentOS 7.1
ECCUBE 3.0.10
PHP 5.4
MariaDB 5.5
nginx/1.9.3
shhirose
投稿日時: 2016/8/8 12:52
対応状況: −−−
一人前
登録日: 2014/4/24
居住地:
投稿: 94
Re: nginxを使ったサブディレクトリ運用でのリダイレクト処理
EC-CUBE 側の設定はいじらずに、以下のように修正してみてはどうでしょうか。
root 部分を /var/wwww/html から /var/wwww/html/eccube/html へ変更

これで、/eccube/ でアクセスされた際のルートディレクトリが /var/wwww/html/eccube/html になるのでご希望の形になるのではないでしょうか。


location /eccube/ {
  root /var/wwww/html/eccube/html;
  include fastcgi_params;
 ・・・


----------------
株式会社ジインズ

パートナーページ http://www.ec-cube.net/integrate/partner/partner.php?partner_id=1325
会社URL http://www.jins.co.jp

umanari145
投稿日時: 2016/8/9 22:04
対応状況: −−−
新米
登録日: 2016/8/3
居住地:
投稿: 4
Re: nginxを使ったサブディレクトリ運用でのリダイレクト処理
shhirose様

ご回答ありがとうございます。
大変助かります。

ルートディレクトリの設定ですが、

root /var/wwww/html/eccube/html

このように設定しますと

http://example.com/eccube/
でアクセスしたときには
/var/www/html/eccube/html/eccube/
を見に行くようになります。

rootのディレクトリ + URLのドメイン以下のパスにアクセスするようで、
こちらnginxの仕様かとおもっていましたが、なにか設定がおかしいのでしょうか。







shhirose
投稿日時: 2016/8/10 10:58
対応状況: −−−
一人前
登録日: 2014/4/24
居住地:
投稿: 94
Re: nginxを使ったサブディレクトリ運用でのリダイレクト処理
引用:
http://example.com/eccube/ でアクセスしたときには /var/www/html/eccube/html/eccube/ を見に行くようになります。

root だとこの動作になりますね。すみません。

root ではなく、alias にしてください。

location /eccube/ {
    alias /var/wwww/html/eccube/html
    ・・・・
}


----------------
株式会社ジインズ

パートナーページ http://www.ec-cube.net/integrate/partner/partner.php?partner_id=1325
会社URL http://www.jins.co.jp

umanari145
投稿日時: 2016/8/10 15:08
対応状況: −−−
新米
登録日: 2016/8/3
居住地:
投稿: 4
Re: nginxを使ったサブディレクトリ運用でのリダイレクト処理
shhirose様

たびたびご回答ありがとうございます。


いただいたアドバイスをもとにnginxのlocationディレクティブ
を下記のように設定しました。

 location   /eccube/ {
        alias /var/www/html/eccube/html;
        index  index.php index.html;
        include fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;        
        fastcgi_param   SCRIPT_FILENAME $document_root/$fastcgi_script_name;                                                                                                                                                                                                     include         fastcgi_params;
        error_log  /var/log/nginx/eccube.error.log;
        access_log  /var/log/nginx/eccube.access.log;
 }


こちらをもとにhttp://example.com/eccube
にアクセスしますと、画面上にはFile not foundが表示され

エラーログを見ますと
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 220.98.49.56, server: localhost, request: "GET /eccube/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000"
このようにメッセージがはかれています。

エラーメッセージを検索してみますと、fastcgi_paramの設定が不適切な場合に
このようになるようなのですが、
fastcgi_paramの設定がおかしいのでしょうか。

不適切な設定などありましたら教えていただければ幸いです。
shhirose
投稿日時: 2016/8/10 16:23
対応状況: −−−
一人前
登録日: 2014/4/24
居住地:
投稿: 94
Re: nginxを使ったサブディレクトリ運用でのリダイレクト処理
http://serverfault.com/questions/565425/nginx-alias-php-fpm-file-not-found

上のサイトと同じように対応してみてはいかがでしょうか。
※緑のチェックマークがあるコメント


----------------
株式会社ジインズ

パートナーページ http://www.ec-cube.net/integrate/partner/partner.php?partner_id=1325
会社URL http://www.jins.co.jp

umanari145
投稿日時: 2016/8/11 16:43
対応状況: −−−
新米
登録日: 2016/8/3
居住地:
投稿: 4
Re: nginxを使ったサブディレクトリ運用でのリダイレクト処理
shhirose様

たびたびのご回答ありがとうございます。

リンクのものにならって書き換えてみましたが、

やはり
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream,・・・
のエラーが出て正常に表示されませんでした。

私自身、ECCUBEといいますかnginx自体の知識が根本的に不足しているようですので、
もう少しnginxについて調べてみようと思います。

こちら解決出来たら書き込ませていただきます。

何度も回答していただきありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,006名です
総投稿数は110,020件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.