• 締切済み

CentOS 5のApache2 UserDir

さくらインターネットでCentOS 5の入った専用サーバを借りて勉強中です。 Apache2をインストールし、ユーザーディレクトリの設定をして、各ユーザーのホームディレクトリにあるpublic_htmlの中のディレクトリを参照するよう設定しました。 当初、下記サイトを参考に http://httpd.apache.org/docs/2.0/ja/mod/mod_user … 以下のように設定ファイルで設定したのですがうまくいきませんでした。(コメント部分は省略しています)。 --- <IfModule mod_userdir.c> UserDir public_html </IfModule> --- 上記設定で、http://○○○.com/~ユーザー名/にアクセスすると、ファイルが見つからない旨のエラーが表示されていました。 ログを確認すると以下のようになっていました。 --- [Sun Jul 31 20:56:19 2011] [error] [client ○○.××.△△.□□] File does not exist: /home/ユーザー名/\xe3\x82\xb3\xe3\x83\xa1\xe3\x83\xb3\xe3\x83\x88\xe5\xa4\x96 \xe3\x81\x97\xe3\x81\xbe\xe3\x81\x97\xe3\x81\x9f --- そこで、apacheの設定ファイルを以下のように書き直したところ --- <IfModule mod_userdir.c> UserDir /home/*/public_html </IfModule> --- 無事にサイトにアクセス出来るようになりました。 一応問題は解決したとはいえ、できれば --- <IfModule mod_userdir.c> UserDir public_html </IfModule> --- の方がなぜうまくいかなかったのかの原因も知りたいです。 原因と考えられるのは、さくらのサーバーを借りたときに最初のサーバーのデフォルトの文字が LANG=C だったのを、日本語を使うために LANG="ja_JP.UTF-8" に変更したことです。 が、英語名のディレクトリ名で問題が起こるか?と言う疑問と、文字コードが原因としてどうやればうまく行くんだ?という疑問があります。 どなたか原因が分かる方はいらっしゃいますでしょうか? よろしくお願いいたします。

みんなの回答

  • koba0626
  • ベストアンサー率67% (19/28)
回答No.2

度々すみません。 読み返しててきになったのですが、 コピペしたらenable と enabled、disableとdisabledが混在してたので補足します。 apache.orgでは、 ○enabled,disabled (チェック)enable,disable です。 httpd.confの記述ミスですかね。。。 詳細は「参考URL」をつけておきます。

参考URL:
http://httpd.apache.org/docs/2.0/ja/mod/mod_userdir.html
bease
質問者

補足

返信が遅れて申し訳ございません。 解説いただいた方法を試したのですが、残念ながら質問文と同じ内容のエラーが起こってしまい、File not found になってしまいます。 allでなくユーザー名でも試してみたのですが、やはり同じエラーになってしまいます。 ググっても同じエラーが起こったよ、っていう人が見つからないんですよね……。

  • koba0626
  • ベストアンサー率67% (19/28)
回答No.1

外してたら申し訳ないです。 細かいリビジョンは忘れてしまいました(2.0.14くらい?)が、どこかのタイミングでUserDirの取り扱いが変わってるはずです。 以下、httpd.confの抜粋ですが、 # UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions). #UserDir enable all # # To enable requests to /~user/ to serve the user's public_html # directory, remove the "UserDir disable" line above, and uncomment # the following line instead: UserDir public_html 7行目にremove the "UserDir disable"と書かれていいますが、1行目に記載があるように、特にこの記述がなくてもデフォルトでUserDir Disabledです。 ということで、UserDir public_htmlを有効にするには、4行目のコメントを解除(もしくは記述)して、明示的に Userdir enabled にすればOKだと思います。 Userdir enabled 以降はスペース区切りで有効化するユーザの一覧を記述するのですが、 >UserDir /home/*/public_html 全てのユーザで有効化しようとされているみたいですので all でOKだと思います。

関連するQ&A