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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

MacOS(OSX)

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

Q&A

解決済

1回答

4301閲覧

localhostにアクセスするとエラーになってしまう

sug1t0m0

総合スコア40

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

MacOS(OSX)

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

0グッド

1クリップ

投稿2017/10/04 16:06

編集2017/10/05 10:20

このサイトを参考に、
Macのapacheでバーチャルホストの設定を行なっていたところ、ブラウザで
http://localhost/~{username}
を叩くと
/Users/{username}/Sites
のファイルにアクセスできるようにはなったのですが、ブラウザで
http://localhost
を叩くと
Not Found
The requested URL / was not found on this server.
と表示されてしまいます。

/etc/apache2/httpd.confの設定では
DocumentRootは
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
となっております。
index.htmlはDocumentsフォルダ直下にあります。

また、そもそもどうして上記サイトの設定でhttp://localhost/~{username}を叩くと/Users/{username}/Sitesにアクセスできるようになるのでしょうか?
設定ファイルには""という記号はありませんし、"{username}"が示す文字列の意味が分かりません。

理由が分からず困っております。どなたかご教示いただけないでしょうか?

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

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

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

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

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

King_of_Flies

2017/10/05 00:35

タイトルがhocalhostになっていますよ
sug1t0m0

2017/10/05 09:12

ご指摘ありがとうございます。すぐに修正いたします。
guest

回答1

0

ベストアンサー

下記URLにアクセスすると、index.htmlが参照できるでしょうか。

http://localhost/index.html

参照できる場合はDirectoryIndexの設定が必要かと思います。
参照できない場合は、DocumentRootやDirectory等の設定の追加確認が必要です。

以下は追加の質問についての回答です。

どうして上記サイトの設定でhttp://localhost/~{username}を叩くと/Users/{username}/Sitesにアクセスできるようになるのでしょうか?

mod_userdirモジュールが提供する機能によるものです。

mod_userdir - Apache HTTP サーバ バージョン 2.4

参考にされたサイトでの下記設定が上記モジュールの利用設定の記述になります。

LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf

mod_userdir は、/~{username}へのアクセスを /Users/{username}/Sitesに読み替える処理を提供します。
{username}の値はOSのユーザーアカウント名となり、そのユーザーのホームディレクトリにあるSites配下を公開します。
なぜSitesが公開されるのかは、下記設定ファイルに記載している設定によります。

  • /etc/apache2/extra/httpd-userdir.conf

UserDir Sites

ここの記載を変更すると、公開対象のディレクトリ名も変更されます。
例えばpublic_htmlというディレクトリ名で指定されることもあります。

もし、~{username}を実際にこの文字列のまま入力されているようであれば、それは本来の使用用途とは異なるもののように思います。

また、なぜこの機能があるのかということになると、VPSサービスもNameVirtualHost設定もなく、1つのサーバーを複数の一般ユーザーで共有して使用していた過去の利用形態の名残によるものといってよいのではないかと思います。
古くからあるようなプロバイダのホームページサービス等で、現在もこの形のURLでのサービス提供が行われている場合があります。

投稿2017/10/05 11:11

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

sug1t0m0

2017/10/05 11:29

分かりやすい解説ありがとうございます! ところで http://localhost/index.html にアクセスしたところ404 Not Foundが出てしまいました。
退会済みユーザー

退会済みユーザー

2017/10/05 12:58

本筋が解決してませんね。。。 他には、参考サイトの「221、222行目 Directoryの内容を編集」のところにもある "Require all granted"の記載が有効となっていない場合、404や403になるかと思います。 記述を確認して追いかけるよりは、LogLevelをdebugにしてエラーログを確認することでどのディレクトリにアクセスしようとしているのかを確認したほうが早いかもしれません。
sug1t0m0

2017/10/05 21:42

/etc/apache2/extra/httpd-vhosts.confの 元々あった記入サンプルをコメントアウトしたところ、 http://localhostを叩くことで/Users/{username}/Sitesにアクセスすることができました。 /etc/apache2/extra/httpd-vhosts.confのディレクトリパスの設定を書き換えてみたところ、 http://localhost/~{username}は/Users/{username}/Sitesにアクセスしたのに対して、 http://localhostは書き換えたディレクトリにアクセスすることができました。 ここで気になったのですが、 http://localhost/~{username}のアクセス先を変更することは可能なのでしょうか?
退会済みユーザー

退会済みユーザー

2017/10/05 22:23

あらためて参考サイトをみるとhttpd-vhosts.confでドキュメントルートを変えているのですね。。。 それをするならmod_userdirはなんのために入れるのか、とも思いますが{username}.confを参照させたかっただけでしょうか。 mod_userdirの機能を利用する限りは、パスのどこかにユーザー名を含む形になりますが、変更は可能です。 例えば"UserDir Sites"を"UserDir /usr/web"に変更すると、アクセス先は/usr/web/{username}になります。 変換ルールの詳細は、回答本文に記載のマニュアルに記載されています。 そういった縛りなく、まったく別の場所にしたい、となるとmod_aliasやmod_rewriteによる対応となってきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問