LinkStation v2.30改造の記録
■ホームページを開設する
これまでの手順でWebサーバの準備が出来ているので、次にホームページとして公開する中身のhtmlファイルなどを転送します。
通常のhtmlファイルは、www の中に入れます。
CGI(perl)がある場合は、www/cgi-bin の中に入れます。
CGI(perl)で必要なperlの位置ですが、/usr/bin/perlですので、CGIの始めの行を
#! /usr/bin/perl
に変更します。
転送には、「Windowsのファイル共有でコピー」と「FTPで転送」の2通りの方法があります。
Windowsのファイル共有でコピーの場合:
マイネットワークからLinkStationのwwwのフォルダを開きドラッグ&ドロップでファイルをコピーします。LinkStationのwwwフォルダをユーザ制限している場合は、ファイル共有機能が使えない時があるようです(Windowsのログインのユーザ名とユーザ制限しているユーザ名が違う時や日本語の時などだめなようです。詳しくはLinkStationのマニュアルで確認してください)。CGIなどはコピー後にTelnetでパーミッションの変更が必要になります。
FTPで転送の場合:
Windows(XP,Vista)マシンのFTPソフト(FFFTPなど)で、LinkStationにFTP接続して転送します。
普通のhtmlファイルはパーミッションの変更は必要ありませんが、CGI(perl)ファイルはパーミッションの変更が必要になります。ただし、属性変更(パーミッションの変更)はFTPからは出来ないようです。したがって、Telnet接続して
bash-2.05a# cd /mnt/hda/www/cgi-bin
bash-2.05a# chmod 755 abc.cgi
などのようにパーミッションの変更します。
■アクセス制限のフォルダを作る
通常のホームページは誰でもアクセスできますが、アクセス制限をすることによって、ユーザー名とパスワードを要求する画面が出るように出来ます。
ネットサーフレスキュー[Web裏技] http://www.rescue.ne.jp/
にアクセス制限やCGIやSSIのことが詳しく書いてあります。
フォルダは次のようにします
/www/(/mnt/hda/www)
|--index.htm <766> ...通常のホームページのファイル(トップページ)
|--*****.htm <766> ...その他のホームページのファイル
|--/private/ <777>・・・アクセス制限したいフォルダ
| |--.htpasswd <755> ...アクセス制限の制御用のファイル(editpwd.cgiで作ります)
| |--index.htm <766> ...アクセス制限するホームページのファイル
| |--データ名.cgi ...任意に増設してください(掲示板1つだけいいのならlog1.cgiだけで良い)
|--/cgi-bin2/ <777>・・・.htpasswdファイルを作るためのツールを入れるフォルダ
| |--.htpasswd <755> ...アクセス制限の制御用のファイル(HD-HLANのパスワードにします)
| |--editpwd.cgi <755> ...http://www.rescue.ne.jp/cgi/htpasswd/ からダウンロードしてください
| |--crypt.cgi <755> ...http://www.rescue.ne.jp/cgi/htpasswd/ からダウンロードしてください
それぞれのフォルダ(private,cgi-bin2)を作り、editpwd.cgiとcrypt.cgiを上のように入れます。
CGIの1行目を #!/usr/bin/perl に変更します。
Telnetで、editpwd.cgi、crypt.cgiは、chmod 755にします。
editpwd.cgiの中のパスワードを編集します。詳しい説明は中に書いてあります。
Telnetでcgi-bin2/.htpasswdをHD-HLANの設定画面で決めたパスワードと同じにします。
bash-2.05a# cp /www/cgi-bin/.htpasswd /mnt/hda/www/cgi-bin2/.htpasswd(このまま使います)
bash-2.05a# cp /www/cgi-bin/.htpasswd /mnt/hda/www/private/.htpasswd(あとで中身を編集します)
http://192.168.123.123/cgi-bin2/editpwd.cgi を開き
FILENAME:../private/.htpasswd
ADMIN_KEY:<editpwd.cgiの編集したパスワード>
として、root:****の行を削除して、Add Username、Passwordの枠に追加したいユーザー名とパスワードを入れます。
参考:↓この方法で出来るはずだけどなぜかNGです???
-------------------------------------------------------------------------------
bash-2.05a# cd /mnt/hda/www/private
bash-2.05a# htpasswd -c .htpasswd <user name>
Adding password for <user name>.
bash-2.05a# ls これでは隠しファイルの.htpasswdの存在は見れないが、
bash-2.05a# ls .h* -l とすると見れる
.htpasswdのパーミッションの変更をします
bash-2.05a# chmod 755 .htpasswd 644を755にしないと使えない
-------------------------------------------------------------------------------
■SSIをthttpdで動かす
thttpdのページ:http://www.acme.com/software/thttpd/
thttpdのssiのマニュアルのページ:http://www.acme.com/software/thttpd/ssi_man.html
thttpdでCGIは簡単に使用できますが、SSIを使うときは設定が必要です。
他のApacheなどのWebサーバとは若干違います。
ssiというプログラムをゲットしてきて、/mnt/hda/www/cgi-bin/ に入れます
ここから、http://packages.debian.org/unstable/web/thttpd-util
Package: thttpd-util (2.23beta1-6) のmipsel用をダウンロードします。
7-Zipでssiを取り出して、/mnt/hda/www/cgi-bin/ に入れます。
パーミッションも実行できるように変更してください。
リンク切れの場合はこちらを
thttpd-util_2.23beta1-6_mipsel.deb(27KB)
index.shtmlにしなくてもindex.htmで良い
.htaccessを作っても効果なし
その代わりに、SSIを使うときは次の例のようにします。
ssiを入れたURLは
http://www.acme.com/cgi-bin/ssi になります
ssiを組み込んだhtmlファイルは
http://www.acme.com/users/wecoyote/doc.html ここにあるとします
上のURLのdoc.htmlにssiが組み込まれているときには、
http://www.acme.com/cgi-bin/ssi/users/wecoyote/doc.html
のように、ssiが置いてある部分[/cgi-bin/ssi/]を間に入れるとこによってSSIと認識して処理されます。
下記のようなSSIを組み込んだtestssi.htmを作ります。
testssi.htm
--------------------------------------------------------------------------------
<HTML>
<HEAD>
<META name="GENERATOR" content="IBM WebSphere Homepage Builder V6.0.1 for Windows">
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY>
今の日付は
<!--#config timefmt="%X %a, %b %d, %Y" -->
<!--#echo var="DATE_LOCAL" --> =DATE_LOCALです。<br>
<!--#echo var="DOCUMENT_NAME" --> =DOCUMENT_NAMEです。<br>
<!--#echo var="DATE_GMT" --> =DATE_GMTです。<br>
</BODY>
</HTML>
--------------------------------------------------------------------------------
-------------------------------------------------------------
今の日付は
17:49:12 Sat, Jan 06, 2007 =DATE_LOCALです。
/mnt/hda/www/test/top.htm =DOCUMENT_NAMEです。
08:49:12 Sat, Jan 06, 2007 =DATE_GMTです。
-------------------------------------------------------------
こんな感じで表示されればSSIが動いています。
CGIは動くのですが、SSIで動くアクセスカウンターなどを
<!--#include virtual="/cgi-bin/analyze201/log.cgi"-->
このようにhtmに組み込んでも、log.cgiの中身が表示されてしまい、CGIは実行されません。
また、このようなexecはthttpdのssiでは、動かないようです。
<!--#exec cmd="/bin/ls" -->
<!--#exec cgi="/mnt/hda/www/cgi-bin/analyze201/log.cgi"-->
うえ〜ん、CGIがSSIではうまく動きません。アクセスカウンターはCGIで動くものにするしかないのかな?