LinkStation v2.30改造の記録

[ホーム][戻る][次へ] 10 by A.Sato


■ホームページを開設する

これまでの手順で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で動くものにするしかないのかな?


[ホーム][戻る][次へ] 10 by A.Sato