6.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をダウンロードします。

FreeBSD3.2のパッケージについてくるapache_1.3.6.tar.gzならコンパイルせずに簡単インストールができます。
現時点での最新は1.3.9のようですが、FreeBSD3.2のパッケージについているのは、apache_1.3.6.tar.gz ですので、これをインストールします。

インストール [目次へ]

  CD-Rで作成したCD-ROMを入れてください。

  #/stand/sysinstall
  「c.Configure」「P.Packages」「1.CD-ROM」[All]「[X]apache_1.3.6.tar.gz」
  「OK」「Install」「OK」
  インストールが終了したら「Exit」「OK」「Exit Install」

  通常は、この方法で出来るのですが、自分で作成したCD-ROMからのpackageのインストールに問題がありますので、次の方法で行ってください。

  #mount /cdrom
  #cd /cdrom/3.2-release/packages/www
  #pkg_add apache_1.3.6.tar.gz
  #cd /
  #/umount /cdrom

設定する [目次へ]

  #cd /usr/local/etc/apache
  #cp httpd.conf.default httpd.conf
  #cp mime.types.default mime.types

#ee /usr/local/etc/apache/httpd.conf で次の行を適宜書き換えます

#ServerAdmin you@your.address  ←この行を下に変える
ServerAdmin sato@catv123.ne.jp  ←自分のメールアドレスにする

#ServerName new.host.name    ←この行を下に変える
ServerName 210.aaa.bbb.ccc

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

#AddHandler cgi-script .cgi    ←この行を下に変える
AddHandler cgi-script .cgi

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

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

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

  /usr/local/etc/rc.d/apache.sh ができてシステム起動時にapacheも起動します。

  #cd /usr/local/www
  #mv data.default data

  /usr/local/www/data/がないとapacheが起動しないので、サンプルファイルを指定しておきます。

ほかの端末から、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)


 [目次へ]