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@@" ServerAdmin you@your.address #ServerName new.host.name DocumentRoot "@@ServerRoot@@/htdocs" <Directory /> <Directory "@@ServerRoot@@/htdocs">
#AddType text/html .shtml (ssiを使うときはこのように書き換える) |
以上のように書き換えてください。適宜自分の設定に合うように書き換えてください。
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)