ユーザーディレクトリーをチルダなしでアクセスできるように


http://ドメイン/~ユーザー名のチルダ

これまで構築する際には各ユーザーのpublic_htmlを/var/www/html/内にシンボリックを張って対処してたんですが、いちいち作るのが面倒なので手っ取り早くできないものかと調べて設定したものの、かえって罠にハマったのでとりあえず書いておきます。

行ったこと

apacheのhttpd.confのユーザーディレクトリーの設定箇所。

#UserDir disable ←コメントアウトする
AliasMatch ^/([^/]+)/(.*) /home/$1/public_html/$2 ←追記

…という方法をやったのですが、確かにユーザーのpublic_htmlはチルダなしでアクセスできるようになったのですが、肝心の/var/www/html/がパーミッションエラーが出てアクセスできない状態に。
当初、一気に各設定をしている中で行ったため、後になってこの状態に気づき、その結果ここが原因だったことになかなか気づかずに時間を無駄にしました(汗

エラー原因

で、なぜ/var/www/html/にアクセスできなくなったのかと言うと、よくよく設定を見るとUserDir public_htmという行が残ったままだったから。(凡ミス…)

# UserDir public_htm←この行もコメントアウト
これをちゃんとすることで無事/var/www/html/にアクセスできるようになった。
…かと思いきや、それよりも下位のディレクトリーがパーミッションエラーに。

結論 シンボリックでいいです(汗

疲れたので結局この方法はあきらめて、以前からのとおりシンボリックな方法で対処した次第。
検索してみると同じように罠にハマってシンボリックで対処した人がヒットしたので、、、これでいいのかな。
ま、今回作ってるサーバーは多くのユーザー発行する訳じゃないので。