すぐに使える 実践事例集 平成13年10月-093/114page
(2)シェルスクリプトの作成
Webサーバをインストールしても,初期設定のままではCGIを動作させることはできません。
以下の設定ファイルにCGI動作に関する記述を書き加える必要があります。そこで,CGIに関する記述を書き加えた設定済ファイルを既存のファイルに上書きするコマンドをシェルスクリプトにまとめました。さらに手順を簡素化するため,設定済みのhttpd.conf,access.conf,srm,confを1つのファイルに圧縮しました。これにより,シェルスクリプトファイル(拡張子.sh)と圧縮された設定ファイルの2つをサーバにアップロードし,シェルスクリプトを実行させるだけで,サーバの設定を完了できるようになりました。
Vine Linux2.0(デフォルト)の場合
/etc/httpd/conf/ディレクトリ内の
httpd.conf………サーバの基本動作
access.conf……アクセス制御
srm.conf 提供する情報の詳細を制御
CGI動作設定シェルスクリプトapache_conf.sh #!/bin/csh →Cシェルを用いることを宣言 mkdir apache_conf bak →既存の設定ファイルをバックアップするディレクトリを作成 set httpd_conf='find/-name"httpd.conf"-print' →httpd.confの場所を検索 cp $httpd_conf./apache conf_bak/httpd. conf.bak →検索されたhttpd.confを作成したバックアップ用ディレクトリにコピー set access_conf='find/-name "access.conf"-print' cp $access_conf ./apache_conf bak/access.conf.bak →access.confを検索,コピー set srm conf='find/ -name "srm.conf" -print' cp $srm conf ./apache_conf_bak/srm.conf.bak →srm.confを検索,コピー gzip -dc./apache-conf.tar.gz|tar xvf - →圧縮しておいた設定済みファイルを解凍 mv -f./apache_ conf/httpd.conf $httpd_conf mv -f./apache_ conf/access.conf $access_conf mv -f./apache conf/srm.conf $srm conf →解凍された設定ファイルをそれぞれ既存のファイルに上書き set httpd_pid='find / -name "httpd.pid" -print' kill -HUP 'cat $httpd_pid' →設定を反映させるため,Apacheを再起動
掲示板CGI設置シェルスクリプトbbs_set.sh #!/bin/csh →Cシェルを用いることを宣言 set doc_root='grep "DocumentRoot/" /etc/httpd/conf/srm.conf awk'{print $2}'' →srm.confファイルからWebページを設置するディレクトリ(ドキュメントルート)を検索 cp./wforum.tar.gz $doc root/wforum.tar.gz →掲示板のファイルを検索されたドキュメントルートにコピー cd $doc root →ドキュメントルートに移動 gzip -dc./wforum.tar.gz|tar xvf - →圧縮されていた掲示板のファイルを解凍 cd ./wforum →解凍された掲示板のディレクトリに移動 echo -n "BBS Name?" →掲示板の名前を聞くダイアログ表示 set title=$< →掲示板の名前を入力 sed "s/Web Forum Base/$title/"wforum.cgi.base >wforum.cgi →cgiファイル内の掲示板名を変更 chmod 755./*.cgi chmod 666./1.html chmod 666./*.log chmod 666./*.dat →各ファイルのパーミッションを変更