ApacheでUserdirを使用できるようにする。
http://chibi.name/~ユーザ名/ みたいな、「~ユーザ名」を使用できるようにする設定をUbuntuで行う。
なお、Apacheの基本的な設定は完了していることを前提として設定していく。
もしAapacheの設定がまだな場合は、前回の日記のApacheの設定なんかを参考に。
先ずは以下のモジュールを読み込む。
$ sudo a2enmod userdir
/etc/apache2/mods-enabled/userdir.conf の Directoryタブの中を以下のように変更する。
$ sudo vi /etc/apache2/mods-enabled/userdir.conf ... <Directory /home/*/public_html> # SSI(一部制限)やCGIの使用を許可している Options IncludesNoExec ExecCGI FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
設定を反映させる為にApacheを再起動させる。
$ sudo /etc/init.d/apache2 restart
$HOMEにpublic_html/ を作成し、試しにHTMLファイルをindex.htmlという名前で作成し、ちゃんとページが表示されるか確認してみる。
$ pwd /home/chibi $ mkdir public_html
以下のようなURIにアクセスし、きちんとページが表示できるか確認してみる。
http://サーバのIPアドレス/~ユーザ名/
新規ユーザ作成時にそのユーザのホームディレクトリにpublic_htmlを作成したい
/etc/skel 以下にpublic_htmlというディレクトリを作っておけば、新規ユーザ作成時にそのユーザのホームディレクトリ以下にpublic_html/ が作成されるようになる。
$ sudo mkdir /etc/skel/public_html 試しにtestという名前のユーザを作成してみる $ sudo -i # adduser test testユーザの確認が完了し不要になったら後片付けをしておく # userdel -r test
なお、新規ユーザ作成時に作成したいファイルやディレクトリがある場合は、上記のような要領で、/etc/skel 以下に作成してやればいい。
ユーザディレクトリへのアクセスを制限したい
ユーザディレクトリへのアクセスを制限したい場合は、/etc/apache2/mods-enabled/userdir.conf の設定を以下のように書き換えればOK。以下はLAN内(192.168.1.0/24)からのみのアクセスに制限してある。
$ sudo vi /etc/apache2/mods-enabled/userdir.conf. Order allow,deny Allow from all ↓ #Order allow,deny #Allow from all Order deny,allow Deny from all Allow from 192.168.1 Allow from 127.0.0.1
上記の編集が完了したらApacheを再起動して設定を反映させてやればOK。
$ sudo /etc/init.d/apache2 restart