ユーザを /~username で分ける
ここでは、プロバイダやフリーのwebスペースがくれるwebスペースの様に「 http://www.example.com/~ユーザ名 」でアクセスできる方法をご紹介します。
自宅サーバの利点の一つである「 短いURL 」とは逸脱してしまいますが、
カンタンにできるので、家族や友人用に作ってみても面白いですよ。
ページ内コンテンツ一覧
では早速設定に入ります。
設定は Apache の設定ファイルの httpd.conf を直接編集します。
httpd.conf 中の 490 行目付近に以下を追加します。
<IfModule mod_userdir.c>
UserDir "/home/*/public_html/"
<Directory /home/*/public_html/cgi-bin>
AllowOverride All
</Directory>
</IfModule>
この文の意味は、「 UserDir "/home/*/public_html/" 」で、
ユーザのホームディレクトリが「 /home/*/public_html/ 」なります。
「 * (アスタリスク)」は「何でもいい」という意味です。
この「 * (アスタリスク)」の部分がユーザ名になり、「 /~username 」の「 username 」部分になります。
そして、「 public_html 」ディレクトリ以下に、HTML ファイル、画像ファイルなどを設置します。
「 <Directory /home/*/public_html/cgi-bin> 」から「 </Directory> 」の記述で、
「 AllowOverride All 」を許可しています。
これは、「 /home/*/public_html/cgi-bin 」ディレクトリ以下に「 .htaccess 」ファイルが置ける事を意味しています。
ユーザに CGI の実行を許可しないのであれば、この「 <Directory> 」タグは必要ありません。
また、ユーザの CGI の実行に関して、httpd.conf 中に記述する方法もありますが、ただでさえ長い httpd.conf がさらに長くなるので、先述の制御ファイル「 .httaccess 」を用います。
これにより「 .htaccess 」ファイルに変更がかかっても Apache の再起動は不要というメリットもあります。
/~username で web スペースを与えられたユーザが、家族などの管理者と直接会って、ファイルのアップロードを管理者自身が行う場合は、この設定で問題ありません。
しかし、外部から FTP ソフトを使ってファイルのアップロードをする場合、ユーザに「 .htaccess 」ファイルを触られるのは、
ちょっとよろしくありません。そこで、FTP サーバである ProFTPD の設定を変更しなければなりません。
「 /~username で区切られたユーザに外部からのアップロードを可能にし、.htaccess ファイルの変更・追加は不可にする 」
という設定は、当サイト内の FTP サーバ(ProFTPD) > .htaccessをアクセス不可にする で行っています。ご一読下さい。