Vine Linux 3.2

公式ホームページ

ユーザーごとのホームページを公開する

よくホームページのドメインの後に ~ (チルダ)が入ったアドレスを見かけると思います。これはユーザーのホームディレクトリからホームページを表示している方法です。ここではその公開方法を解説します。 ユーザーによるホームページを公開するには、Apache の設定ファイルを確認する必要があります。また、初期設定ではすでに使用できるように設定されています。 それではコマンドライン端末を起動して、
$ su -
Password: → root のパスワードを入力
と入力してユーザーを root へ変更し、
# vi /etc/httpd/conf/httpd.conf
と入力して、設定ファイルを開いて下さい。 ユーザのホームページ領域は UserDir ディレクティブで設定します。httpd.conf 内の
UserDir public_html
という記述を確認して下さい。この記述に沿って、ユーザーのホームディレクトリに public_html というディレクトリを作成すれば、そこがホームページの公開用ディレクトリになります。 例えば、公開したいユーザー test を設定してみましょう。サーバーに test でログインして、
$ mkdir public_html
と入力します。これでホームページ公開用のディレクトリが準備できました。 しかし、このままですと外部からアクセスができません。test ユーザーのホームディレクトリである test ディレクトリのパーミッション ( アクセス権限 ) を変更しなければなりません。まず、
# ls -dl ~test
と入力してパーミッションの状態を確認して下さい。
drwx------  17 test test     4096 Mar 10 04635 ./
といった表示が出たと思います。 この先頭の drwx------ がパーミッションの設定で、続く test が所有者、その次の test がグループを指します。 パーミッションは先頭の d がディレクトリの意味で、続く rwx 、--- 、 --- は先頭から、所有者、グループ、その他に対応したアクセス権限を指しています。 所有者には r ( 読み取り ) w ( 書き込み ) x ( 実行 )の権限が設定されていますが、最後のその他の権限は全て - ( 無し ) になっています。 そのため、所有者であるユーザー以外は何も権限が設定されていないということが分かりました。 そこでその他のユーザーがアクセスできるように権限を変更します。 
$ chmod 701 ~test  → または chmod 711 ~test
と入力します。これでその他のユーザーもアクセスできるようになりました。次に public_html ディレクトリの権限もアクセスできるように変更します。
$ chmod 705 public_html   → または chmod 755 public_html
通常ホームページのディレクトリは、

[ /home/test ] ディレクトリ → 701 or 711

[ /home/test/public_html ] ディレクトリ → 705 or 755

[ /home/test/public_html ] 内のファイル → 604 or 644 というアクセス権限の設定になります。目的にあわせてより安全な権限設定を行って下さい。 そしてこの public_html の下に index.html といったホームページのファイルをコピーし、WEBブラウザへ

http://vine-linux.ddo.jp/~test/index.html
と入力すれば、ホームページを表示することが出来ます。実際の表示は こちらをクリック して下さい。 ユーザーの設定は以上です。
~ ( チルダ ) を使わないアクセス方法 上記の設定で ~ 以下に表示されるユーザーのホームページへアクセスできるようになりましたが、この ~ を使わないで接続することが出来ます。今回も環境設定ファイルである、httpd.conf を root の権限で開いて下さい。 そして以下の記述を追加します。入力は一番最後でもかまいません。
AliasMatch ^/home/([^/]+)/(.*) /home/$1/public_html/$2
この設定では、例えば test ユーザーのホームページは、 http://vine-linux.ddo.jp/~test/index.html といった具合に表示されますが、前述の設定により、 http://vine-linux.ddo.jp/home/test/index.html という入力でも表示することができるようになります。これで ~ を使わなくてもユーザーのホームページを表示することができるようになりました。 ユーザーのCGIの動作設定
ユーザーのホームディレクトリを公開ディレクトリとして CGI を動作させるには、httpd.conf に次の記述を追加します。
<Directory /home/*/public_html/cgi-bin>
Options ExecCGI
</Directory>
入力の位置はどこでも大丈夫ですが、分かりやすいように、
<Directory /home/*/public_html>



</Directory>
の記述の後に追加しました。 これは、ユーザーのホームディレクトリにある public_html ディレクトリの下に cgi-bin というディレクトリを作成し、そこにCGIファイルを設置して動作させるための設定です。 入力が終わったら保存して、Apache を再起動して下さい。
# service httpd restart
また、ユーザーのディレクトリからCGIを動作させる為には、先ほど作成したユーザーの作成と同様に、パーミッションの設定変更が必要です。 ここからは先ほど設定したユーザー test を使って、説明を行います。 まず、test ユーザーのホームディレクトリに public_html というディレクトリを作成します。( すでに作成している場合は必要ありません ) 次に test ユーザーでサーバーにログインして、コマンドライン端末を起動して下さい。 そして以下のように入力を行います。
$ cd public_html  → public_htmlディレクトリへ移動
$ mkdir cgi-bin   → cgi-binディレクトリを作成
$ chmod 705 cgi-bin   → または chmod 755 cgi-bin
$ cd cgi-bin  → cgi-binディレクトリへ移動
$vi test1.cgi  → ファイルの作成
エディタが起動したら、
#!/usr/bin/perl

print "Content-type: text/html\n";
print "\n";
print "<html>\n";
print "<head>\n";
print "<title>テスト</title>\n";
print "</head>\n";
print "<body bgcolor=\"#ffcccc\">\n";
print "これはCGIのテストです。\n";
print "</body>\n";
print "</html>\n";
と入力して下さい。 入力が終わったら、保存終了します。( :wq ) そして test1.cgi ファイルのパーミッションも変更します。cgiファイルには実行権限が必要ですので、
# chmod 705 test1.cgi   → もしくは chmod 755 test1.cgi
と入力して、権限を付加します。そしてWEBブラウザで、
http://vine-linux.ddo.jp/~test/cgi-bin/test1.cgi
と入力すれば、作成した test1.cgi が表示されます。 実際の表示は こちらをクリック して確認して下さい。 CGIを使用する場合の権限設定は、

[ /home/test ] ディレクトリ → 701 or 711

[ /home/test/public_html ] ディレクトリ → 705 or 755

[ /home/test/public_html ] 内のファイル → 604 or 644

[ /home/test/public_html/cgi-bin ] ディレクトリ → 705 or 755

[ /home/test/public_html/cgi-bin ] 内のファイル → 705 or 755 となります。 CGIファイルではなくて、通常のHTMLファイルに実行権限は必要ありませんので、HTMLファイルの場合の権限は、 705 → 604 または 755 → 644 という設定になります。安全の為にも、CGIを使わないファイルには実行権限を与えないように注意して下さい。 各ユーザーのCGIを動作させる為の設定は以上です。