- ベストアンサー
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/他のユーザ/ のようなディレクトリの配置は変更したくないです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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にになっていますか?
その他の回答 (3)
- joe-
- ベストアンサー率34% (11/32)
もしかしたら、index.htmはINDEXにできない設定なのかもしれません。 <IfModule mod_dir.c> DirectoryIndex index.html </IfModule> に index.htmを追加してみて下さい。 <IfModule mod_dir.c> DirectoryIndex index.html index.htm </IfModule>
お礼
ありがとうございます。 それも考えられる原因でしたね。
- joe-
- ベストアンサー率34% (11/32)
http.confに <IfModule mod_userdir.c> UserDir public_html </IfModule> という記述はありませんか? もしあるとすると、/home/nearn/public_html/index.htmlとするとできるはずです。
補足
http.confにその記述は無かったのですが、その場合の http://aaaaaa.com/~nearn/ でapacheが提供しようとするindex.htm?のパスはデフォルトでどうなっているんでしょうか?
- baoyakey
- ベストアンサー率0% (0/3)
# # 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を再起動すればお望みのようになると思います。
補足
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の所有物で、その他の人の読み取りを有効にしました。
お礼
さらにその近くの英文のコメントに従ってnearnを711にしました。 すると解決しました。 ついでに、デフォルトのhttpd.confで UserDir public_html が書いてあったので、 <IfModule mod_userdir.c> UserDir public_html </IfModule> と同じ効果は既にあったのかもしれないと思い、その3行をコメントアウトしました。 それでもきちんと表示できました。 ありがとうございました。
補足
UserDir public_htmlの記述はデフォルトでありました。 フォルダの階層もそのようになっています。 コメントの英語の説明に従ってpublic_htmlを755にしましたが、結果は同じでした。