Macintosh LC630 第2の人生 「CATV用家庭内サーバー」大作戦


7.wwwサーバー(apache)のインストール [目次へ]

 apacheは、wwwサーバーです。これを立ち上げることによって、自らがwwwサーバーになります。しかし、CATVから特別なドメイン名がもらえないと、外からは、http://www.******.jp などのようにはwwwブラウザからはアクセスできません。しかし、dhcpcで配布されたアドレスで直接(http://210.rrr.uuu.abc/~test/などで)アクセスすることは可能です。しかし、dhcpcで配布されたアドレスですので、固定されたアドレスではありません。したがって、アドレスは、起動するたびに変わる可能性があります。

最新のapacheをダウンロード [目次へ]

http://www.apache.org/ や http://japache.infoscience.co.jp/
これらのサイトから最新のapacheをダウンロードします。

apache_1.3.6.tar.gz 23-Mar-1999 14:50 1.3M 1.3.6 gzipped source

ほかの端末でFTPしてきて、それを、LC630にFTPすると便利です。

解凍しコンパイルする [目次へ]

ここでは、/usr/add_apacheというディレクトリーをつくり、その中にapache_1.3.6.tar.gz をいれて、その中で解凍しmakeします。

#mkdir /usr/add_apache
FTP等で、/usr/add_apacheのなかにapache_1.3.6.tar.gzをコピーしておいてください。
#cd /usr/add_apache [return]
#tar zxvf apache_1.3.6.tar.gz [return]
で解凍が始まります。解凍が終わったら、作成されたapache_1.3.6のディレクトリに移動します。
#cd apache_1.3.6 [return]
#cd src [return]
このように/usr/add_apache/apache_1.3.6/srcディレクトリに移動します。
#sh Configure [return]
これでOSに合わせたMakefileを作成することができます。
終了したら、コンパイル(make)します。
#make [return]
マシンにもよりますが20分ほどかかります。
終了したら
#cd .. [return]
#cd .. [return]
で、/usr/add_apacheのディレクトリに移動して
#mv apache_1.3.6 /usr/local/apache [return]
#cd /usr/local/apache/conf [return]
#cp httpd.conf-dist httpd.conf [return]
#cd .. [return]
#mkdir /etc/httpd [return]
#cp -r conf /etc/httpd/ [return]
#mkdir /etc/httpd/logs
#mkdir /home/httpd
#cp -r htdocs /home/httpd/
#cp -r cgi-bin /home/httpd/
#cp -r icons /home/httpd/
#cp src/httpd /usr/sbin/

設定する [目次へ]

#vi /etc/httpd/conf/httpd.conf

ServerRoot "@@ServerRoot@@"
 ↓
ServerRoot /etc/httpd

ServerAdmin you@your.address
 ↓
ServerAdmin atsuro@catv123.ne.jp

#ServerName new.host.name
 ↓
ServerName 210.rrr.uuu.abc

DocumentRoot "@@ServerRoot@@/htdocs"
 ↓
DocumentRoot /home/httpd/htdocs/

<Directory />
# Options FollowSymLinks  ←この行を下に変える
Options All       ←上の行をこれに変える
#AllowOverride None  ←この行を下に変える
AllowOverride All   ←上の行をこれに変える
</Directory>

<Directory "@@ServerRoot@@/htdocs">
 ↓
<Directory /home/httpd/htdocs/>


Alias /icons/ "@@ServerRoot@@/icons/"
 ↓
Alias /icons/ /home/httpd/icons/

<Directory "@@ServerRoot@@/icons">
 ↓
<Directory /home/httpd/icons/>

ScriptAlias /cgi-bin/ "@@ServerRoot@@/cgi-bin/"
 ↓
ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/

<Directory "@@ServerRoot@@/cgi-bin">
 ↓
<Directory /home/httpd/cgi-bin>

#AddHandler cgi-script .cgi
 ↓
AddHandler cgi-script .cgi

#AddType text/html .shtml (ssiを使うときはこのように書き換える)
#AddHandler server-parsed .shtml
 ↓
AddType text/html .html
AddHandler server-parsed .html

以上のように書き換えてください。適宜自分の設定に合うように書き換えてください。

SSIでアクセスカウンターを設置する場合は、httpd.confを次のようにしておくと、*.htmlでもSSIが動きます。
#AddHandler server-parsed .shtml
 ↓
AddHandler server-parsed .html

1.2.6では下記のファイルも設定しないといけませんでしたが、apache1.3.6では、httpd.confにすべて設定が統合されたようです。
access.conf
srm.conf

起動時に起動するように設定する [目次へ]

起動時に自動的に、apacheが起動するように、rc.localの最後の行に下記を追加します。

#vi /etc/rc.local
echo 'apache booting...'
/usr/sbin/httpd -f /etc/httpd/conf/httpd.conf

#reboot して
#ps ax で

lc630# ps ax
PID TT STAT TIME COMMAND
0 ?? DLs 0:00.01 (swapper)
1 ?? Is 0:00.11 init
2 ?? DL 0:00.01 (pagedaemon)
3 ?? DL 0:00.43 (reaper)
195 ?? Ss 0:00.04 dhclient ae0
222 ?? Ss 0:00.43 syslogd
226 ?? Is 0:00.18 portmap -l
254 ?? Is 0:00.08 update 30
256 ?? Is 0:00.13 cron
259 ?? Is 0:00.09 sendmail: accepting connections on port 25
263 ?? Is 0:00.26 inetd -l
277 ?? Ss 0:00.43 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf
279 ?? I 0:00.05 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf
280 ?? I 0:00.08 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf
281 ?? I 0:00.08 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf
282 ?? I 0:00.07 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf
283 ?? I 0:00.06 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf
285 ?? S 0:00.67 telnetd
286 p0 Ss 0:00.77 -csh
291 p0 S 0:00.54 -csh
296 p0 R+ 0:00.07 ps -ax
284 e0 Is+ 0:00.33 /usr/libexec/getty Pc ttye0

このようにうまく動いていれば、成功です。

ほかの端末から、http://210.rrr.uuu.abc/でアクセスしてみてください。↓このようなapacheの画面が出れば成功です。

ユーザーのホームページの設定 [目次へ]

ユーザーホームページ用のディレクトリーを作ります。

#mkdir /home/atsuro/public_html
#chown atsuro /home/atsuro/public_html
http://210.rrr.uuu.abc/~atsuro/ でアクセスできるホームページが作成できる

ユーザ毎パスワードでアクセス制限 [目次へ]

これらはApacheまたはNCSAサーバで可能な設定です。

http://www.apacheweek.com/features/userauth ←詳しくはこちらをご覧ください。
http://www.rescue.ne.jp/ ←ここにもアクセス制限やCGIのことがいろいろ書いてあります。

http://www.rescue.ne.jp/cgi-rescue/cgi?htpasswd ←ここに実際の方法が書いてあります。

/home/secret にアクセス制限をかけるようにします。
http://210.rrr.uuu.abc/~secret/
にアクセスすると、IDとパスワードの入力画面が出るようにします。

(htpasswd.tar.gzを使おうと思いましたが、解凍して出来たhtpasswdは、そのままでは使えませんのでMacBSD用にコンパイルします。しかし、「make: don't know how to make htdigest.c. Stop」で止まってしまいましたので、次の方法にしました。)

ファイルの構成は次のようになります
/home/secret/bin (パーミッション111) のなかに
  /home/secret/bin/.private (パーミッション666) ←ユーザーIDとパスワードのファイルeditpwd.cgiで作ります
/home/secret/public_html (パーミッション755) のなかに
  /home/secret/public_html/.htaccess (パーミッション644) ←プロテクト設定ファイル(自分で設定し作ります)
/home/atsuro/public_html/editpwd (パーミッション755) のなかに
  /home/atsuro/public_html/editpwd/crypt.cgi (パーミッション755) ←editpwd.cgi用のパスワードを作るCGI
  /home/atsuro/public_html/editpwd/editpwd.cgi (パーミッション755) ←.privateを編集するCGI

■「.private」ファイルの作成

http://www.rescue.ne.jp/cgi-rescue/cgi?editpwd
ここから、editpwd.cgiとcrypt.cgiをダウンロードします。
/home/atsuro/public_html/editpwd にいれてパーミッションは755にします。

http://210.rrr.uuu.abc/~atsuro/editpwd/crypt.cgi でeditpwd.cgi用のパスワードを暗号化します。

crypt.cgiの結果の暗号化されたパスワード部分を、editpwd.cgiの中にコピーして書き換えます。

#touch /home/secret/bin/.private で中身のないファイルを作ります。
#chmod 666 /home/secret/bin/.private とします。

http://210.rrr.uuu.abc/~atsuro/editpwd/editpwd.cgi でwebのアクセス制限するためのファイルの
.private(usernameとpasswordが入るファイル)を作成します。


FILENAMEは、図の「.private」でなく、フルパスで「/home/secret/bin/.private」としてください。
フルパスにしない場合は、editpwd.cgiのあるディレクトリに.privateが出来ます。あとでmvしてもOKです。
前述のとおりあらかじめファイルを作っておかないとエラーになりますので注意してください。
先ほど、editpwd.cgiの書き換えたパスワードをADMIN_KEYに入れます。

webのアクセス制限するためのファイルの.privateにいれるユーザー名とパスワードを入力します。

これで、/home/secret/bin/.private ができあがります。

#cat /home/secret/bin/.private で中身を確認してください。

■「.htaccess」の作成

#vi /home/secret/public_html/.htaccess
AuthUserFile /home/secret/bin/.private
AuthGroupFile /dev/null
AuthName "ByPassword"
AuthType Basic
<Limit POST GET PUT>
require valid-user
</Limit>
<Files .htaccess>
order deny,allow
deny from all
</Files>

パスワードファイル(AuthUserFileで指定したもの)に登録したすべての人(username)を 認証対象としたい場合、上記基本設定だけで済みます。これならユーザーを追加したときでも、.htaccessはいじらないで済みます。

注意) /home/usrname/public_htmlにファイルをFTPしても、ブラウザで表示されない場合は、パーミッションをチェックしてみてください。

例.
/home/usrname/public_html ディレクトリ (パーミッション755)
  /home/usrname/public_html/index.html (パーミッション644)
  /home/usrname/public_html/index.html (パーミッション644)
/home/usrname/public_html/gif ディレクトリ (パーミッション755)
  /home/usrname/public_html/gif/index.html (パーミッション644)
  /home/usrname/public_html/gif/1.gif (パーミッション644)
  /home/usrname/public_html/gif/1.gif (パーミッション644)


戻る