CGIスクリプトなどをレンタルサーバーにアップロードする前に自分のパソコンで動作確認をするためのローカ環境を準備した。
その内容を何回かに分けて記載する。
導入環境
OS: Windows Vista Home Premium
プロセッサ: AMD Turion(tm)64*2Mobile technology TL-50 1.60GHz
RAM: 1918MB
PC:NEC Lavie G(ノートパソコン)
今回インストールするもの
1.Apache(WEBサーバー) :以前からインストールしていた
2.PHP
3.Mysql
4.phpMyAdmin
5.ActivePerl :以前からインストールしていた
ここに記載する内容は、私が使いたい機能に限定したローカルでの使用を目的としたものです。サーバーを外部に公開する事は想定しておりません。あくまでもくまおの備考録です。
1.WEBサーバー(Apache)
Apacheが開発・提供しているバージョンは, 1.3.x系と2.x系があるが、くまおのPCにすでに導入済みの物はapache_2.0.59-win32-x86-no_sslである。
2007/10/28現在の最新バージョンはではないが、別にたいしたことはしないので、今回はこのままにする。
で、ここではhttp.confの変更箇所を中心に書くことにする。
1.Apacheのダウンロード
Apacheのページからダウンロードする。ここでは、apache_2.0.59-win32-x86-no_ssl.msi
2.インストール
インストールはウイザードに従って進めていくだけなので詳細は省略。
ただ、インストールディレクトリーは後のことを考えてデフォルトから変更した。
C:\Program files\Apache Group\
変更↓
C:\
これで、Apache関係のファイルはC:\Apache2\の下に置かれることになる。
インストール完了後ブラウザにhttp://127.0.0.1/と入力して、
「あなたの予想に反して、このページが見えているでしょうか?」
と言う不思議な日本語のテストページが見られたらインストールは正常にできている。
3.作業ディレクトリの作成
インストールしたままではドキュメントルートつまり、ファイルやサブディレクトリを配置する場所はC:\Apache2\htdocs\だが、これでは今後CGIスクリプトなどやWebページの動作確認に使いにくいので、別のわかりやすい場所に作業ディレクトリを作る。
また、作業ディレクトリはレンタルサーバーに設置した時の状態に似せるために、まずホームディレクトリを作り、その下に作業ディレクトリであるpublic_htmlを作る。
ホームディレクトリの名前は任意だが、わかりやすく簡単な物がよい。
ここではkumaoとしたので、パスは次のとおりである。
C:\kumao\
そしてホームディレクトリkumaoの下に作業ディレクトリpublic_htmlを作ると、パスは次のようになる。
C:\kumao\public_html\
レンタルサーバーの場合アップロードするホームディレクトリの下にpublic_htmlが有っても、アクセスするURLにはpublic_htmlは書かない。ブラウザにhttp://127.0.0.1/と入力したら、public_htmlにあるトップページのindex.htmやindex.htmlが表示される。
しかし、この方法ではホームディレクトリがひとつしかないので、色々試すには不便だ。
そこで、プロバイダのホームページスペースを借りて時のように、http://127.0.0.1/~kumao/とかhttp://127.0.0.1/~taro/のように複数のURLで別々にアクセスできるようなホームディレクトリも作る。
C:\home\*\public_html\
*の名前は任意でいくつでも作れる。
たとえば、C:\home\kumao\public_html\とすると、http://127.0.0.1/~kumao/でアクセス可能となり、C:\home\blog\public_html\とするとhttp://127.0.0.1/~taro/でアクセスできる。
CGIなどをいろいろ試す時や複数のサイトを作っているときに便利である。
4.httpd.confの修正
Apache2.0.59をCドライブの直下のApache2インストールしたので、すべてのディレクトリやファイルはそこにあるはずである。
これから修正するhttpd.confはその[conf]の下にある。
これで、Apacheを設定するので、まずはエディタで開く。
これから示す行数は編集前のもので、当然、編集するにしたがったずれて行きます。悪しからず。
インストール時、Server Nameを127.0.0.1とし、ポート番号も80にしたので、
212行目
ServerName 127.0.0.1:80
となっているはずである。
もし、初期設定のままだったり、違っていたら修正する。
228行目
DocumentRoot "C:/Apache2/htdocs"
変更↓
#DocumentRoot "C:/Apache2/htdocs"
DocumentRoot "C:/kumao/public_html"
先ほど作った作業ディレクトリC:/kumao/public_htmlを指定する。
kumaoの部分はホームディレクトリの名前。
DocumentRootは複数指定できないので、DocumentRoot "C:/Apache2/htdocs"はコメントアウト(#)し無効にする。
253行目
<Directory "C:/Apache2/htdocs">
変更↓
#<Directory "C:/Apache2/htdocs">
<Directory "C:/kumao/public_html">
282行目の</Directory>までがドキュメントルートに関する設定です。
作業ディレクトリのC:\kumao/public_html/をドキュメントルートに指定したため、public_htmlにあるファイルは、http://127.0.0.1/にファイル名を付けてhttp://127.0.0.1/test.htmlにアクセスすると表示される。また、index.htmlなど優先表示のファイルがあるば、http://127.0.0.1/またはhttp://127.0.0.1だけで表示される。
267行目
Options Indexes FollowSymLinks
変更↓
Options -Indexes FollowSymLinks MultiViews ExecCGI lucludes
ドキュメントルート内のオプションです。
FollowSymLinksの後ろに半角スペースで区切ってMultiViewsとExecCGIとlucludesを追加する。
Indexesの頭に"-"を付ける。
MultiViewsは、さまざまな言語やメディアタイプに対応する要求にスムーズに応じられるようにする。
ExecCGIはCGIを、lncludesはSSIが使えるようにする。
Indexesはファイル名を指定せずに、ディレクトリ名のみでアクセスがあった場合、そのディレクトリ内にindex.htmlのような優先表示ファイ
ルが無い場合そのディレクトリ内すべてのファイル名が表示され、外部に公開する場合はセキュリティ上問題があるので、"-"をつけて表示しないようにす
る。
しかし、あくまでもローカルサーバーとしてのみ使用する場合はそのままにし、表示する方が便利である。
290行目
UserDir "My Documents/My Website"
変更↓
UserDir "C:/home/*/public_html"
3.作業ディレクトリの作成の項で作ったホームディレクトリを指定する。ただし、任意の名前部分は*にしておく。
300〜311行目
#<Directory "C:/Documents and Settings/*/My Documents/My Website">
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS PROPFIND>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS PROPFIND>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
変更↓
<Directory "C:/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit
Options MultiViews -Indexes SymLinksIfOwnerMatch ExecCGI Includes
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
ディレクトリの指定を変更する。
ExecCHGIを追加してCGIが使えるようにする。
IncludesNoExecをIncludesに変更してexecコマンドのも使えるようにする。
Indexesはファイル名を指定せずに、ディレクトリ名のみでアクセスがあった場合、そのディレクトリ内にindex.htmlのような優先表示ファイ
ルが無い場合そのディレクトリ内すべてのファイル名が表示され、外部に公開する場合はセキュリティ上問題があるので、"-"をつけて表示しないようにす
る。
しかし、あくまでもローカルサーバーとしてのみ使用する場合はそのままにし、表示する方が便利である。
これで、ホームディレクトリ以下をC:\home\kumao\public_html\としたとき、http://127.0.0.1/~kumao/でアクセス可能になる。
kumaoの部分はhana,taro,jiroなどいくつでも作れる。
このほかにもAlias命令を使って次のようにする方法もある。
Alias /~kumao "C:/kumao/public_html/"
これで、http://127.0.0.1/~kumao/のURLでC:\kumao\public_html\の内容を表示できます。
べつに~は無くてもAlias /kumao "C:/kumao/public_html/"とするとhttp://127.0.0.1/kumao/でアクセスできる。
321行目
DirectoryIndex index.html index.html.var
追加↓
DirectoryIndex index.html index.html.var
DirectoryIndex index.htm index.htm.var
ブラウザでディレクトリが呼び出されたときに、表示されるファイル名の指定。
601行
ReadmeName README.html
HeaderName HEADER.html
変更↓
#ReadmeName README.html
#HeaderName HEADER.html
ディレクトリの直下に
README.html(readme.html)やHEADER.html(header.html)が存在した場合、index.html同様にブラ
ウザでディレクトリのURLにアクセスすると、そのファイルの内容が表示される。しかし、このままだと、Web上で公開するCGIファイルの使い方を説明
したreadme.html等をディレクトリに入れておくと表示されてしまう。
これは困るので、万が一のために無効にしておく。
もし有効にした場合、ファイルの内容が表示されると同時に、他のファイルリストも表示されてしまう。
ちなみに、README.html(readme.html)はリストの後に、HEADER.html(header.html)はリストの前に表示される。
608行目
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
変更↓
#IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
ディレクトリ直下にHEADER(header)やREADME(readme)で始まるファイルがあるなどIndexIgnore以下に記されたファイルがあれば、ブラウザからディレクトリ名のURLでアクセスしたときに表示リストから除外され、表示されない。
有るはずのファイルが表にされないのは不便なので無効にしておく。
682行目
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
変更↓
LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
言語の優先順位で、英語(en)が最優先になっており、日本語(ja)の順位が低いために紛らわしい場合、英語と認識されて文字化けの原因ととなるので、日本語を最優先に変更する。
698行目
AddCharset ISO-8859-1 .iso8859-1 .latin1
変更↓
#AddCharset ISO-8859-1 .iso8859-1 .latin1
デフォルトの文字セットを欧米諸国の文字ISO-8859-1
Latin1という設定にしようとしているが、このままでは、日本語ページのほとんどが文字化けし、ブラウザによってはその設定を変更しても文字化けが解
消しない場合があるので、コメントアウト(#)しておく。
765行目
#AddHandler cgi-script .cgi
変更↓
AddHandler cgi-script .cgi
コメントアウトを削除し、拡張し.cgiがついたファイルをCGIスクリプトとして実行できるようにする。
770行目
#AddHandler send-as-is asis
変更↓
AddHandler send-as-is asis
コメントアウトを削除し、CGIスクリプトなどからHTTPヘッダを送れるようにする。
775行目
#AddHandler imap-file map
変更↓
AddHandler imap-file map
コメントアウトを削除し、イメージマップが使えるようにする。
790〜791行目
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
変更、追加↓
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
AddType text/html .html
AddOutputFilter INCLUDES .html
既存の2行はコメントアウトを削除し有効にする。
その下に2行追加して拡張子が.shtmlでなく.htmlでもSSlがきのうするようにする。
以上変更後はhttpd.confを上書きし、再起動して有効にする。
----------------------------------------------------------
これで、Apacheで通常使う範囲の設定はできたと思う。
しかも、くまおはこれ以上の事はわからない。



コメントする