🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
nginx

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

Q&A

解決済

1回答

966閲覧

同ホスト名で特定ディレクトリを指定した時だけ、別のdocument rootが参照されるようにしたい。

k.t.est

総合スコア49

nginx

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

0グッド

0クリップ

投稿2021/02/06 01:53

編集2021/02/06 02:38

nginxの設定で、ホスト名は同じで、特定のディレクトリ(/fuga/)が指定された際に、別のrootが参照されるようにするのはどのように設定をすれば良いのでしょうか?
下記の設定では、aaa.hoge.com/fuga/fuga_index.phpにアクセスすると404エラーが返されてしまいます。
ご教示のほど、どうぞよろしくお願い申し上げます。

nginx.confの設定

server { listen 80; server_name aaa.hoge.com; location / { root /var/www/html/hoge; index index.php; } location /fuga/ { alias /var/www/html/fuga/; index fuga_index.php; }        # 下記も試しましたが、アクセスを試みたところ404エラーでした。 # location /fuga/ { # root /var/www/html; # index fuga_index.php; # } location ~ .php$ { root /var/www/html/hoge; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index login.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_read_timeout 1200; } }

##[追記]ディレクトリ構造および表示ファイル
ディレクトリ構造は下記の通りとなっており、アクセスするアドレスとその際に表示したいファイルは下記となっております。

dir

1/var/www/html 2 |- /hoge 3 |- /index.php 4 5 |- /fuga 6 |- /fuga_index.php

アクセス先 : https://aaa.hoge.com/fuga/fuga_index.php
表示したいファイル : /var/www/html/fuga/fuga_index.php

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

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

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

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

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

guest

回答1

0

ベストアンサー

conf

1 location /fuga/ { 2 root /var/www/html/; 3 index fuga_index.php; 4 }


/fuga/fuga_index.phpにアクセスすると/var/www/html/fuga/fuga_index.phpを見に行くが、

location ~ .php$ {
root /var/www/html/hoge; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index login.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_read_timeout 1200; }

のphpにマッチする事で/var/www/html/hoge/fuga/fuga_index.phpを見に行っている。

なのでやりたい事を確認しつつログを確認しましょう。

質問する時は情報を全部載せましょう。質問者が無関係と思っている箇所でもそれが原因の可能性も大いにあります。

投稿2021/02/06 02:12

編集2021/02/06 03:09
hentaiman

総合スコア6426

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

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

k.t.est

2021/02/06 02:17

hentaiman様、ご回答ありがとうございます。 この設定も試してみたのですが、同じく404エラーでした。。。 (/var/www/html/fugaディレクトリは存在しております。)
hentaiman

2021/02/06 02:19

ではやりたい事が違うのかもしれません ディレクトリ構成と実際にアクセスに使うURLと、その際に表示したいファイルを質問に追記してください
k.t.est

2021/02/06 02:29

hentaiman様、質問が拙く申し訳ありません。追記いたしましたので、どうぞよろしくお願いいたします。
hentaiman

2021/02/06 03:05

そうなると最初の質問内容にあった目的自体はコメントアウトされている「試した事」で合ってるんだけど、その後編集で追記されているphp$の部分の影響が影響して目的の動作になっていないようです location /fuga/ のロケーションに入った後にphpのlocationにマッチしているので/var/www/html/hoge/fugaを見に行ってます access_logを確認しながら本当にアクセスしたいディレクトリとURLの組み合わせを再確認しましょう
yukky1201

2021/02/06 06:41

location には優先順位がありますのでその辺も調べてみて下さい /fuga/fuga_index.phpに完全一致させてしまうとか
k.t.est

2021/02/06 06:54

yukky1201様、ご回答ありがとうございます。 location /fuga/ { } の中で、.phpを読み込むようにしてみたり、location ~ .php$ { }の後に fugaディレクトリ内のphpを読み込むようにしたり、色々と試しているのですが、なかなか思うような動作が起きずです。
hentaiman

2021/02/06 07:09

追記に対してわざわざ返答しているのだからその回答とコメントをスルーしないで頂きたい
k.t.est

2021/02/06 07:28

hentaiman様、申し訳ございません。 ご回答いただいた内容を元に色々と取り組んでいるのですが、まだご回答の内容に対してコメントできるほど内容を噛み砕けておらずtry and errorを繰り返しております。もう少し突っ込んだ質問をさせていただきたいと思っていたのですが、そこにすらたどり着けていない次第でございます。 いずれにせよ、お礼を申し上げるのが遅くなりまして、申し訳ございませんでした。ご回答ありがとうございます。
hentaiman

2021/02/06 07:33

じゃあすっげー分かりやすく言うと https://aaa.hoge.com/fuga/fuga_index.php じゃなくて https://aaa.hoge.com/fuga/fuga_index.html にアクセスしようとすれば.php$のlocationにマッチしないので正しくアクセス出来ます それからconfの内容が半端に書き方が合っているせいで目的が明確に分からないけれど、もしかしたら質問者のやりたい事は location ~ .php$ {ディレクティブの中の →root /var/www/html/hoge; を削除する事かもしれません
k.t.est

2021/02/06 07:48

hentaiman様、追加のご教示ありがとうございます。 location ~ .php$ {ディレクティブの中の →root /var/www/html/hoge; を削除してみたのですが、404エラーとなってしまいます。 この記事の内容が近い内容かとも思ったのですが、同じような設定を行っても動作せずでした。。。 https://qiita.com/LowSE01/items/0e1188cf52bb391077f8
hentaiman

2021/02/06 07:49 編集

間違えた、外側にrootが設定されてないから消すんじゃなくて下記に変更 /var/www/html;
k.t.est

2021/02/06 07:53

hentaiman様、ありがとうございました! 無事想定していた挙動となりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問