• ベストアンサー

apacheの設定

フォルダ構成とapacheの設定について教えてください。  /hone/   + httpd/    + html/      + index.html   + nearn/    + index.htm http://aaaaaa.com/でindex.htmlが見れますが、 http://aaaaaa.com/~nearn/でindex.htmを見るためにはどうしたらいいですか? http://aaaaaa.com/~nearn/だと Forbidden You don't have permission to access /~nearn/ on this server. です。 存在していないものを http://aaaaaa.com/~nearnxxxx/ このように試すと Not Found The requested URL /~nearn/ was not found on this server. でした。 apacheは DocumentRoot /home/httpd/html です。  /hone/   + httpd/    + html/      + nearn/        + index.htm にすれば見れると思いますが、 /hone/nearn/ /hone/他のユーザ/ のようなディレクトリの配置は変更したくないです。

質問者が選んだベストアンサー

  • ベストアンサー
  • hikaly
  • ベストアンサー率39% (47/119)
回答No.3

httpd.confの中に「UserDir」という項目があります。無ければ追加してください。 次のように書きます。 UserDir public_html すると、/home以下の、各ユーザのhomeディレクトリ(ややこしいですが、/home/ユーザ名 のこと)に作られた、public_htmlという子ディレクトリが、http://~/~ユーザ名/ というURLで公開されます。 図にするとこう↓なります。 /home/  +httpd/   +html/  ← http://~/ でアクセス  +nearn/   +public_html/ ← http://~/~nearn/ でアクセス  +oshiete/   +public_html/ ← http://~/~oshiete/ でアクセス しかし、Forbiddenエラーが出ていることからして、UserDirが原因ではなく、ディレクトリのパーミッションの設定に誤りがあるのかもしれません。公開しようとしているディレクトリ(上の場合、public_html)のパーミッションは705や775にになっていますか?

nearn
質問者

お礼

さらにその近くの英文のコメントに従ってnearnを711にしました。 すると解決しました。 ついでに、デフォルトのhttpd.confで UserDir public_html が書いてあったので、 <IfModule mod_userdir.c> UserDir public_html </IfModule> と同じ効果は既にあったのかもしれないと思い、その3行をコメントアウトしました。 それでもきちんと表示できました。 ありがとうございました。

nearn
質問者

補足

UserDir public_htmlの記述はデフォルトでありました。 フォルダの階層もそのようになっています。 コメントの英語の説明に従ってpublic_htmlを755にしましたが、結果は同じでした。

その他の回答 (3)

  • joe-
  • ベストアンサー率34% (11/32)
回答No.4

もしかしたら、index.htmはINDEXにできない設定なのかもしれません。 <IfModule mod_dir.c> DirectoryIndex index.html </IfModule> に index.htmを追加してみて下さい。 <IfModule mod_dir.c> DirectoryIndex index.html index.htm </IfModule>

nearn
質問者

お礼

ありがとうございます。 それも考えられる原因でしたね。

  • joe-
  • ベストアンサー率34% (11/32)
回答No.2

http.confに <IfModule mod_userdir.c> UserDir public_html </IfModule> という記述はありませんか? もしあるとすると、/home/nearn/public_html/index.htmlとするとできるはずです。

nearn
質問者

補足

http.confにその記述は無かったのですが、その場合の http://aaaaaa.com/~nearn/ でapacheが提供しようとするindex.htm?のパスはデフォルトでどうなっているんでしょうか?

  • baoyakey
  • ベストアンサー率0% (0/3)
回答No.1

# # UserDir: The name of the directory which is appended onto a user's home # directory if a ~user request is received. # #<IfModule mod_userdir.c> # UserDir public_html #</IfModule> # # Control access to UserDir directories. The following is an example # for a site where these directories are restricted to read-only. # #<Directory /home/*/public_html> # AllowOverride FileInfo AuthConfig Limit # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec # <Limit GET POST OPTIONS PROPFIND> # Order allow,deny # Allow from all # </Limit> # <LimitExcept GET POST OPTIONS PROPFIND> # Order deny,allow # Deny from all # </LimitExcept> #</Directory> とかかれている部分がhttpd.confファイル内に有ると思います。 <IfModule mod_userdir.c> UserDir public_html </IfModule> のようにコメントアウトを外して、apacheを再起動すればお望みのようになると思います。

nearn
質問者

補足

httpd.confに <IfModule mod_userdir.c> という文字列が存在していませんでした。 webminでapacheのモジュールの一覧を見ると、mod_userdir.cが有り、チェックされていたので、使える状態であると思ったので <IfModule mod_userdir.c> UserDir public_html </IfModule> を追記して再起動しましたが、結果は変わりませんでした。 /hone/nearn/public_html/index.htm を作りました。 nearn以下は全てnearnの所有物で、その他の人の読み取りを有効にしました。

関連するQ&A