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

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

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

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

221閲覧

macOS + nginxのルートフォルダを/var/wwwから/User/username/に変更したがサイトが表示されない

tunaingot

総合スコア24

nginx

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2025/01/25 14:11

編集2025/01/25 14:19

実現したいこと

Macでローカルなウェブサイトを作りたいです。
例えば、「http://welcome.com:8080」と入力すると、オリジナルのサイトが表示されるというものです。

ウェブサイトのドキュメントは/opt/homebrew/var/www/の配下に置くことになっているようです。
これをユーザーのホームディレクトリの中、例えば「Users/username/Develper/website/welcome.com/」というフォルダにしたいです。

前提

nginxのウェルカムページは表示されて、動作していることは確認できました。
/etc/hostsファイルにはwelcome.comは追加済みです。

発生している問題・エラーメッセージ

.confファイルは下記のように記載しています。

server { listen 8080; server_name welcome.com; location / { # root /opt/homebrew/var/www/welcome.com; root /Users/username/Developer/website/welcome.com/; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }

上記のrootが「/opt/homebrew/var/www/bommaker.com」の時はサイトが表示されます。
rootが「/Users/username/Developer/website/welcome.com」の時は「403 Forbidden」が表示されます。

「/opt/homebrew/var/www/bommaker.com」と「/Users/username/Developer/website/welcome.com」には同じindex.htmlが入っていて、ひとまずメッセージをテキストで出すだけのものです。

.confを書き換えた後は「sudo brew services restart nginx」でnginxを再起動しています。
できればウェブサイトのドキュメントはホームで管理したいのです。

macOS Sequoia 15.2
nginx version: nginx/1.27.3

どうぞご教示お願いいたします。

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

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

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

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

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

symfo

2025/01/25 15:04

> .confファイルは下記のように > .confを書き換えた後 nginxの設定ファイル名は「nginx.conf」です。
tunaingot

2025/01/25 15:13

symfoさん、コメントありがとうございます。 nginx.confの中を見ると、最後の行に「include servers/*;」と書いてあります。 nginx.confと同じディレクトリ上にservicesというディレクトリがあり、この中に.confを追加することでも対応できるような作りになっているようです。 nginx.confの中に設定を記述しても、状況は変わりませんでした。
mike2mike4

2025/01/25 15:35

/Users/username から下位のディレクトリすべてに対して “実行 (x)” 権限を付与しているか nginx はディレクトリを“通り抜ける”ために、各ディレクトリに対して最低限 +x (実行権) が必要になります。 たとえば「/Users」「/Users/username」「/Users/username/Developer」「/Users/username/Developer/website」「/Users/username/Developer/website/welcome.com」と階層が深いので、いずれかが 700 (自分しかアクセスできない) などになっているとエラーが出ます。
winterboum

2025/01/28 00:04 編集

なんだ解決してたのか。解決済にしておいて 以下無視して mike2mike4 さんのコメントについて答えるときに考慮してほしいこと サーバの起動はどのユーザで行ったか そのユーザに対して 「/Users/username から下位のディレクトリすべてに対して “実行 (x)” 権限を付与しているか」 なお、directoryは xだけじゃなくて r も必要です。
tunaingot

2025/01/28 03:10

winterboumさん、コメントありがとうございます。 すみません! コメントを公開しないまま止めていました。 winterboumさんのご指摘、下記コメントしようとしていた通り、実行権の問題でした。 mike2mik4さん、コメントありがとうございます。 nginxでは「x」、つまり実行権が必要なのですね! ということは現状「/Users」以下ウェブサイトのドキュメントを格納しているフォルダに到達するまでの間のフォルダに「x」がある必要があるわけですね。 ご教示の通り試したところ、無事ウェブサイトが表示されました! ありがとうございました。
guest

回答1

0

ベストアンサー

対象ディレクトリがどのユーザのプロセスでも読めるよう、シェルで chmod -R og+rx /Users/username/Developer/website/welcome.com を実行すると解決するかもしれません。

403エラーが表示されているなら、エラーログに原因が記録されているはずです。

投稿2025/01/25 14:35

int32_t

総合スコア21871

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

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

tunaingot

2025/01/25 14:49 編集

int32_tさん、コメントありがとうございます。 ご提示いただいたものを実行しましたが、結果は変わりませんでした。 エラーログ...ということで、ログがどこにあるかを調べてみました。 /opt/homebrew/var/log/nginx/error.log これの中を見てみました。 2025/01/25 23:39:14 [error] 31717#0: *1 "/Users/username/Developer/website/welcome.com/index.html" is forbidden (13: Permission denied), client: 127.0.0.1, server: welcome.com, request: "GET / HTTP/1.1", host: "welcome.com" パーミッションということはわかりました。 アクセス権は -rw-r-xr-x@ 1 username staff 698 1 25 23:14 index.html となっていました。 ここからわかることはございますか?
tunaingot

2025/01/25 23:35

回答ありがとうございます。 試したところ問題が解決しました! chmod -R og+rx /Users/username これを試しました。 他の方からもコメントをいただいたのですが、int32_tさんがご提示してくれたシェルコマンドにある通りに「x」、実行権が必要だったのです。 それもウェブサイトのドキュメントへアクセスするための経路すべてのフォルダ(ディレクトリ)に必要でした。 それに加えて、macOSのTerminalがアクセス権を変更するときにプライバシーの警告が出ました。 それにも対応しないといけないこともわかりました。 こちらの細かい環境がご提示できていない中、int32_tさんのご提案は正しいことがわかりました。 どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.33%

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

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

質問する

関連した質問