ActivePerlとApacheでパソコンをサーバに -- Win..
时间:2006-07-05 来源:tekikesyo
|
旧バージョンの ActivePerl がインストールしてあれば、アンインストールして、準備しておきましょう。
1: ActivePerl 5.8.0 Build 806 のダウンロード
Internet Explorer 5.5 以上がインストールされていない場合
ActivePerl を使用するには、Internet Explorer 5.5 以上がパソコンにインストールしてある必要があるそうです。万一、これより前の IE をお使いに方は、次に行って、バージョンアップしておきましょう。 Microsoft Windows UpdateWindows 95 の場合
[DCOM for Windows 95]- Download DCOM95 for Windows 95, version 1.3 に行きます。
- 次のようなリンクを探し、クリックしてダウンロードして、マイドキュメントやデスクトップなどわかりやすい場所に保存します。このリンクそのものをクリックしても、同じものがダウンロードできます。
Download the self-extracting executable DCOM for Windows 95 file from the Microsoft Download site.
- dcom95.exe をダブルクリックします。
- [はい] クリックしします。
- [Yes] クリックしします。
- インストールが終了したら、パソコンを再起動します。
Windows 95/98/Me の場合
[Windows Installer 2.0 for Windows 95, 98, and Me]-
Windows Installer 2.0 Redistributable for Windows 95, 98, and Me に行きます。
- 次のように書かれているリンクをクリックします。このリンクそのものをクリックしてもダウンロードできます。
File Name: File Size
InstMsiA.exe 1670 KB
- パソコンの適当なフォルダに保存します。(マイドキュメントやデスクトップでも。)
- ダウンロードした InstMsiA.exe をダブルクリックてインストールします。
Windows NT 4.0/Windows 2000 の場合
[Windows Installer for Windows NT 4.0 and 2000] * Windows 95/98/Me 用の Windows Installer とは別です。 * Windows XP にはすでにWindows Installer 2.0 が含まれていて、これを再インストールすることは出来ないそうです。- Windows Installer 2.0 Redistributable for Windows NT 4.0 and 2000 に行きます。
- 次のように書かれているリンクをクリックします。このリンクそのものをクリックしてもダウンロードできます。
File Name: File Size
InstMsiW.exe 1781 KB
- パソコンの適当なフォルダに保存します。(マイドキュメントやデスクトップでも。)
- ダウンロードした InstMsiW.exe をダブルクリックてインストールします。
- パソコンを再起動します。
* このほか、Windows NT 4.0 には、Service Pack 6 が必要なようです。まだの方は、Windows Update から
Microsoft サイトに行って確認してください。
Windows 95/NT 4.0/98/Me/2000/XP 共通
[本体]
いよいよ本体です。-
http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl
に行きます。 -
ダウンロードページには、上の段に「ActivePerl 5.6.1 Build 635」、下の段に
「ActivePerl 5.8.0 build 806」と、2つのバージョンがおいてあります。下の方
ActivePerl 5.8.0 Build 806 のすぐ右
Windows MSI 11.5MB
をダウンロードします。 上記の文字のうち、MSI の部分を直接クリックしても、同じものがダウンロードできます。 - ダウンロードする ActivePerl-5.8.0.806-MSWin32-x86.msi をマイドキュメントやデスクトップなどわかりやすい場所を指定して、保存します。
2: ActivePerl 5.8.0 Build 806 のインストール
- ダウンロードした本体
ActivePerl-5.8.0.806-MSWin32-x86.msi をダブルクリックします。
- ActivePerl 5.8.0 Build 806 Setup
Welcome to the ActivePerl 5.8.0 Build 806 Setup Wizard と表示されたら Next をクリックします。
- End-User License Agreement 画面で
I accept the terms in the License Agreement
をチェックして、Next をクリックします。
- Custom Setup 画面で、
枠の中にハードディスクのアイコンがいくつか表示されていて、それぞれに名前がついています。
すでに、すべてハードディスクにインストールする設定になっていますので、そのままにしておきます。
- 同じ Custom Setup 画面で、左下方に
Location: C:\Perl\
と記述されています。その右の Browse をクリックして、
Folder name に入力してあるC:\Perl\ を
C:\usr\local\
に変更して、OK します。Location:C:\Perl\ が C:\usr\local\ に変わります。
パスはこれだけ。最後に bin\ とか Perl\ などをつけないこと。
C:\usr\local\ という形にフォルダが自動作成され、 bin フォルダに入っている perl 実行ファイルがそこに置かれる結果、perl へのパスは C:\usr\local\bin\perl、つまり /usr/local/bin/perl になります。多くのプロバイダでのPerlへのパスと同じく、 GIスクリプトの先頭行の記述するローカルサーバのPerlへのパス次のようになります。
#!/usr/local/bin/perl
プロバイダのPerlのパスが #!/usr/bin/perl の場合は、C:\usr\ とだけ入力して、
C:\usr\ に変更してください。
- Next をクリします。
- 次の左上にNew Features in PPM と書かれた画面の左下で
□Enable PPM3 to send profile into ASPN
の □ にチェックマークが付けます。
- Next をクリします。
- 次の Choose Setup Options 画面で、
Add Perl to the PATH environment variable
と
Create Perl file extension association
にチェックマークがついています。
その下にさらに次のような2項目がありますが、多くの人のパソコンでは、グレー表示
されていて、チェックボックスが選択できなくなっているでしょう。
■ Create IIS script mapping for Perl
■ Create IIS script mapping for Perl ISAPI
この場合、パソコンがIIS (Microsoft Internet Information Server) になってなく、ISAPI
(Internet Server Application Programming Interface) も持っていないからで、これらの2項目
は選べません。
- Next をクリします。
- 次の Ready to Install 画面で Install をクリします。
- ファイルのコピーが始まって
Installing ActivePerl 5.8.0 Build 806
と表示されている間、待ってください。
- 画面が変わり、表示が
Completing the ActivePerl 5.8.0 Build 806 Setup Wizard
変わったら、Finish をクリックします。
- インストールが完了したら、2つのウィンドウ -- ActivePerl User Guide と Installer Information -- が現れます。Installer Information の Yes ボタンをクリックすると、パソコンが再起動されます。ActivePerl User Guide は全ての作業の終了後にも読むことが出来ます。
自動修正されるAUTOEXEC.BAT ActivePerl 5.8.0 Build 806 では、この段階で、Windows パソコンのCドライブある autoexec.bat も自動的に変更されていて、 autoexec.bat には C:\Perl\ から C:\usr\local\ へのインストール場所の変更が反映されています。従って、ユーザが手動でを変更する必要は ありません。次ページのテストのように、MS-DOSプロンプトからActivePerl を単独で起動することができます。
3: ActivePerl 5.8.0 Build 806 を使ってみよう
ActivePerl 5.8.0 Build 806 が正しくインストールされたかどうか、チェックしてみましょう。インストールしてできた C:\usr\local\eg ディレクトリに example.pl という名前の Perlのサンプルスクリプトが入っています。使ってみましょう。
- 「スタート」→「プログラム」→「アクセサリ」→「MS-DOS プロンプト」を選びます。
(Windows XP では、「スタート」→「コマンド プロンプト」を選びます。)
- C:\WINDOWS>cd c:\usr\local\eg (赤字がタイプ入力、黒字は自動表示。)
(上記自動表示が C:\Documents and Settings\User> などと違っていてもかまいません。)
と入力して Enter キーを押します。これで、
c:\usr\local\eg
ディレクトリがカレントディレクトリになります。
- 次に C:\usr\local\eg>perl example.pl と入力して Enter キーを押します
- Hello from ActivePerl!
C:\usr\local\eg>
と表示されたら、めでたし、めでたし!インストール成功!!
- C:\usr\local\eg>perl -h
と入力して、Enterキーを押します。
- コマンドラインで使えるすべてのオプションが表示されましたか?
(テストですから、内容は後ほどゆっくり研究しましょう。)
ActivePerl をインストールしたからには、Perlの文法チェックが自分のパソコンでできるはずです。
試してみましょう。たとえば、C ドライブの home フォルダに bbs フォルダがあり、そこに
bbs.cgi ファイルが入れてあるとします。
- C:\usr\local\eg>cd c:\home\bbs
と入力して、Enter キーを押し、bbs フォルダに移動します。
C:\home\bbs>perl -wc bbs.cgi
と入力して、Enter キーを押します。
- 「タイプの間違いではないか」などと、テストの結果が何行か表示されると思いまが、最後さえ次の
ようになっていると、CGIスクリプトが少なくとも文法的には正しいとわかります。
bbs.cgi syntax OK
C:\home\bbs>
しかし、Perlで書かれたCGIスクリプトを掲示板やチャットとして機能させるには、コンピュータ(パソコン)のサーバ化がどうしても必要です。私たちの最終目標、パソコンをサーバにするために、 Apache 2.0.47 for Win32 のダウンロードに進みましょう。
4: Apache 2.0.47 for Win32 のダウンロード
準備 [Windows XP のみ] Windows XP に Apache をインストールする場合、Windows XP Service Pack 1 をインストールしなければならないそうです。そのほかにも注意事項があるようなので、次の説明を参照してください。 Windows XP Apache Users Read This First [Windows 95 のみ] Microsoftから Windows Socket 2 Update をダウンロード、インストールする必要があります。(Windows NT 4.0、98、Me、2000 のパソコンにはすでに入っています。)
- 次に行きます。
Windows Socket 2 Update - 説明を読んで、次のようなアイコンをクリックして、W95ws2setup.exe をデスクトップなどに保存します。
このアイコンを直接クリックしても、ダウンロードできます。Windows Socket 2 Update 986 KB | 8 Min @ 28.8 - ダウンロードした W95ws2setup.exe をダブルクリックしてインストールします。
- インストール終了後、パソコンを再起動します。
ActivePerl 5.8.0 Build 806 の場合と同じです。まだの方は 「1: ActivePerl 5.8.0 Build 806 のダウンロード」 で、該当箇所をお読みください。
- Windows 95 の場合
- Windows 95/98/Me の場合
- Windows NT 4.0/Windows 2000 の場合
-
http://httpd.apache.org/dist/httpd/binaries/win32/
に行きます。
- 次の項目を探し、クリックしてダウンロードします。 (バージョンや日付、ファイル名が .msi で終わっていることに注意)
apache_2.0.47-win32-x86-no_ssl.msi 09-Jul-2003 02:14 5.8M MSI Installer Package
↑ これを直接クリックしてもまったく同じもがダウンロードできます。
- パソコンの適当なフォルダに保存します。(マイドキュメントやデスクトップでも。)
- 古いバージョンの Apache がインストールしてあったら*、Apache 2.0.47 for Win32 のインストールを始める前に、正規の方法で古い Apache をアンインストールしておきましょう。(*Windows XP パソコンで、購入時にすでに C:\Apache フォルダが存在する場合は、そのままでかまわないでしょう。) アンインストールしただけでは、設定ファイルの httpd.conf など、一部のファイルが残ります。これらを残さないために、正規のアンインストールの後で、先にインストールしてできた Apache 用のフォルダ (2.0 では Apache2 フォルダ) ごと、 手動で削除しておきましょう。理由は、Apache 2.0.47 for Win32 の httpd.conf ファイルは 2.0.46 以前のものと違いがあるからです。古い httpd.conf があると、上書きされずに、そのまま残ってしまいます。以前の設定を継承したい場合は、アンインストールの前に、古い httpd.conf をコピーして、別のフォルダに貼り付け、保存しておきましょう。
- ダウンロードした
apache_2.0.47-win32-x86-no_ssl.msi をダブルクリックします。
- Welcome to the Installation Wizard for
Apache HTTP Server 2.0.47
と書かれた画面が現れるので、Next をクリックします。 - License Agreement 画面では、
○ I accept the terms in the license agreement をチェックして、Next をクリックします。 - Read This First 画面では、
Apache HTTP Server というタイトルの Apache の説明を読んだら (あるいは、読んだことにしたら)、Next をクリックします。 -
Server Information 画面には、 Network Domain 欄と Server Name 欄と Administer's Email Address 欄 があり、すべて入力する必要があります。
私たちには、真中の Server Name 欄がもっとも重要です。ここには次の赤字の部分を入力します。 (意味は次ページで説明します。)
Server Name (e.g.www.somenet.com)
127.0.0.1 Apache をテスト用の擬似サーバとして使うのなら、一番上の Network Domain 欄も同じ数字でかまいません。
Network Domain (e.g.somenet.com)
127.0.0.1
一番下の Administer's Email Address 管理者のEメールアドレスを入力します。擬似サーバではメールアドレスの出番はないでしょうが、ここが空欄だとエラーになります。ふだん使っているアドレスを入力しましょう。
- 入力欄の下に
Install Apache HTTP Server 2.0 programs and shortcuts for: とあり、ラジオボタンが2つあります。 ○ for All Users, on Port 80, as a Service -- Recommended. ○ only for the Current User, on Port 8080, when started Manually. 上の方、 ○ forAll Users, on Port 80, as a Service -- Recommended. をチェックして、 Next をクリックします。
- Setup Type 画面では、Typical をチェックして、Next をクリックします。
- Destination Folder 画面が現れます。フォルダアイコンの右に次のように書かれています。
Install Apache HTTP Server 2.0 to the folder:
C:\Program Files\Apache Group\ このままだと、必要なフォルダやファイルは C ドライブの Program Files フォルダ の Apache Group フォルダに、さらに Apache2 フォルダ* を作ってインストールされることになります。 *Apache 1.3.XX は Apache フォルダにインストールされていましたが、Apache 2.0 では、 Apache2 フォルダにインストールされるように初期設定されています。 しかし、Apache2 フォルダが直接Cドライブに作られたほうが、後の設定がやりやすいので、
そのように変更しましょう。 - 上記の記述の右にある Change... と書いてあるボタンをクリックします。
- Folder Name 欄に次の記述があります。
Folder Name:
C:\Program Files\Apache Group\
ここから Program Files 以降を削除して次のようにします。 Folder Name:
C:\ - OK をクリックして Destination Folder 画面に戻ったら、 C:\Program Files\Apache Group\ が
C:\ に変更されているのを確認します。Next をクリックします。
- Ready to Install the Program 画面で、これまでの設定でよければ Install をクリックします。
何か変更があれば Back ボタンで戻ります。
- 次の Installing Apache HTTP Server 2.0.47 画面で、インストールが行われます。
作業が終わるまで待ちます。
- 画面が変わって、
Installation Wizard Completed
Installation Wizard has successfully installed Apache HTTP
Server 2.0.47. Click Finish to exit the wizard.
と表示されたら、 Finish をクリックします。
- おめでとう!これでインストール完了です。促されなくてもパソコンを再起動しておきましょう。
6: Apache 2.0.47 for Win32 の設定 (1)
作業ディレクトリの作成
(この作業は必須です。万一飛ばすと、Apacheを起動できないので注意!) ActivePerl と Apache をインストールして、パソコンに擬似サーバを作りました。今後、これを使ってCGIスクリプトなどホームページ用ファイルの動作確認をすることになります。専用の作業ディレクトリ (フォルダ) が必要ですね。プロバイダのサーバに会員が設置したホームページの構造に近づけるため、まずホームディレクトリを作り、その下 (中)○ に作業ディレクトリである public_html を作りましょう。 ○われわれWindowsユーザの感覚では、フォルダの「中」にファイルや別のフォルダを作りますが、サーバの大多数を占めるUNIXコンピュータでは、ファイルやサブディレクトリはディレクトリ (フォルダ) の「下」にあると考えられています。ちなみに、配布サイトからダウンロードしたCGIスクリプトの説明に、よく「xxxx ディレクトリの下に yyyy ディレクトリを作る」とか 「xxxx ディレクトリの下にアップロードする」などと書いてあります。ここでも、「下に」は、「画面で見て下の方に」という意味ではなく、「ひとつ下の階層に」という意味です。やはり、Windows の感覚で言う「中に」と同じです。 ホームディレクトリの名前は自由ですが、ここでは仮に、私がBIGLOBEサーバに持っているホームページIDと同じ apollo にしてみます。パスは次のとおりです。 C:\apollo\ 次はこのディレクトリを作る手順です。- 「マイコンピュータ」から「C」ドライブをダブルクリックして開く。
- メニューの「ファイル」→「新規作成」→「新しいフォルダ」を選ぶ。
- 「新しいフォルダ」の名前を apollo に変更する。
httpd.conf の修正
Apache 2.0.47 を C ドライブの Apache2 フォルダにインストールした (前ページの * を参照) ので、そこにフォルダやファイルが作られているはずです。調べてみましょう。 「マイコンピュータ」→「C」→「Apache2」とダブルクリックして開いて見ましょう。 Apache2 フォルダを開くと、次の12個のフォルダが見えます。 [bin] [cgi-bin] [conf] [error] [htdocs] [icons] [include] [lib] [logs] [manual] [modules] [proxy] Apache2 フォルダにはまた、5個の .txt ファイルが直接置かれています。 実行ファイルの Apache.exe は、bin フォルダに入っています。ダブルクリックして開き、赤い羽のアイコン があることを確認しておきましょう。 われわれが当面必要なのは、conf フォルダにある httpd.conf ファイルです。これで Apache を設定します。デスクトップの左下のスタート から プログラム→Apache HTTP Server 2.0.47→ Configure Apache Server→Edit the Apache httpd.conf Configuration File を選びます。あるいは、メモ帳、EmEditor、秀丸エディタなどのテキストエディタを起動して、C:\Apache2\conf\httpd.conf を開いても結構です。 確認や設定変更が必要な箇所は次のとおりです。
● 212行目 インストール時に Server Name を 127.0.0.1 と入力したので、次のようになっているはずです。 確認しましょう。Apache 2.0.47 では、ポート番号 80 も一緒に記述されています。 インストール時に ○ only for the Current User, on Port 8080, when started Manually. を選ぶと、ポート番号は8080 になります。 ServerName 127.0.0.1:80 もし、初期設定のままだったり、別のサーバ名が記述されていたら、上記の通りに変更しましょう。 ホスト名 127.0.0.1 は「ループバック」と呼ばれ、自分自身を示す特別なアドレスだそうです。 ● 228行目 DocumentRoot "C:/Apache2/htdocs" ↓変更 #DocumentRoot "C:/Apache2/htdocs" DocumentRoot "C:/apollo/public_html" 先ほど作った作業ディレクトリの C:\apollo\public_html を「ドキュメントルート」に指定します。 ここでは、区切りには円マーク (\) やバックスラッシュ (\) ではなく、スラッシュ (/) を使います。 「ドキュメントルート」は一つでなければならないので、 DocumentRoot "C:/Apache2/htdocs" の行頭に # を付けて無効にしました。 なお、ディレクトリ名の、 apollo が、C ドライブに実際に作ったディレクトリ名と一致するかどうかを確認して ください。実際のディレクトリ名の綴りが apolllo だったり、 apolo だったりしたら、Apache 自体が起動 できません。また、このディレクトリとその中の public_html は事前に作成しておかなければなりません。 もちろん、作成するディレクトリの名前が apollo である必要はありません。 www でも morning でも musume でもかまいません。要は、作成したディレクトリ名とドキュメントルートに指定するディレクトリ名 が完全に一致することです。 ● 253行目 <Directory "C:/Apache2/htdocs"> ↓変更 #<Directory "C:/Apache2/htdocs"> <Directory "C:/apollo/public_html"> 「ドキュメントルート」は、ブラウザからのあらゆる要求を受け取って処理するディレクトリ (フォルダ) です。上の設定で、public_html がドキュメントルートになりました。ここから 282行目の </Directory> までは、ドキュメントルートでどのような動作を実行可能にするかをを設定する場所です。 作業ディレクトリの C:\apollo\public_html をドキュメントルートに指定したために、public_html にある ファイルは、 http://127.0.0.1/ にファイル名 (たとえば test.html) を付けて、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 Includes ここは、ドキュメントルート内での追加機能 (Options) です。 FollowSymLinks の後に半角スペース で区切って、MultiViews と ExecCGI と Includes を追加します。 MultiViews は、ブラウザから来るさまざまな言語やメディアタイプに対する要求にスムーズに応じられる ようにします。ExecCGI はCGI が使えるように、Includes は SSI が使えるようにします。 ちなみに、元からあった Indexes は、ファイル名を特定せずに、ディレクトリ名だけの指定でアクセス されたとき、そのディレクトリに index.html など優先表示するファイルがなければ、ディレクトリ内 の全てのファイルの目次 (index) を表示します。FollowSymLinks はファイルを別の名前で呼び出す 方法の一つです。 ● 321行目 DirectoryIndex index.html index.html.var ↓変更 DirectoryIndex index.html index.html.var DirectoryIndex index.htm index.htm.var これは、ブラウザでディレクトリが呼び出されたときに、真っ先に表示されるファイルの名前の指定です。 そのようなファイル名として、元からあった index.html の次に index.htm を追加したので、ディレクトリ に index.html がないときは、index.htm が優先表示されます。 ● 511行目付近 ここには最初何も書かれていません。Apache manual の設定部分の直後にある空白です。 キーボードの Enter キーを押して1行空白行を作り、その下に次の記述を挿入します。 ↓挿入 Alias /html "C:/usr/local/html" <Directory "C:/usr/local/html"> Options Indexes FollowSymLinks MultiViews IncludesNoExec AddOutputFilter Includes html AllowOverride None Order allow,deny Allow from all </Directory> 上の方の元からあった記述は、Alias 命令を使って、Apache 2.0.47 for Win32 の本体と同時にインストールされた Apache のマニュアルを簡単に読めるようにしています。ブラウザで http://127.0.0.1/manual/ にアクセス すると、Apache のマニュアルが表示されます。 その下に新しく挿入した記述では、これに倣って、先に C:\usr\local\html にインストールしされた ActivePerl のマニュアルも 簡単に読めるようにしました。ActivePerl のマニュアルは、http://127.0.0.1/html/ または最後の / を省いて、 http://127.0.0.1/html とブラウザに入力すると、表示されます。 ● 615行目-616行目 (上記修正後の行番号。行番号がずれてもかまいません。) ReadmeName README.html HeaderName HEADER.html ↓変更 #ReadmeName README.html #HeaderName HEADER.html 元の設定は、ディレクトリの直下に (中に) README.html (Windows パソコンの場合 readme.html も) や HEADER.html (header.html) という名前のファイルがあれば、index.html の場合と同様、ブラウザでディ レクトリのURLにアクセスするだけで、そのファイルの内容を表示させる、という意味です。これでは困り ますね。Web上で公開するためのCGIファイルを作成したとき、使い方を説明した readme.html を添付する ことがあります。それをディレクトリに入れておくと、他のファイルを見るためにディレクトリにアクセス しても、readme.html が表示されてしまいます。これを防止するために、# をつけて無効にしておきます。 HEADER.html (header.html) というファイルを作る機会は少ないでしょうが、万一のために、やはりコメント アウトしておきましょう。 これらのファイルが index.html と違うところは、有効にした場合でも、ファイルの内容が表示されると同時 に、他のファイルのリストも表示されることです。(index.html があればリストが見られません。) ちなみに、 README.html はリストの後に表示されますが、HEADER.html はリストの前に表示されます。 ● 622行目 (上記修正後の行番号。行番号がずれてもかまいません。) IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t ↓変更 #IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t 元の設定は、ディレクトリの直下に (中に) HEADER (header) や README (readme) で始まる名前のファイルなど、 IndexIgnore 以下に記述した名前のファイルがあれば、ブラウザでディレクトリのURLにアクセスアクセスしたとき に表示されるリストから除外するという意味です。この設定を有効にしておくと、せっかく作ったreadme.html や readme.txt などの名前が表示されません。「このフォルダに入れたはずだけど、入れ忘れたのか、無意識に削除した のかな?」と慌てることになるかもしれません。この設定も無効にしておきましょう。 ● 704行目 (上記修正後の行番号。行番号がずれてもかまいません。) LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw ↓変更 LanguagePriority ja en da nl et fr de el it ko no pl pt pt-br ltz ca es sv tw 言語の優先順位で、英語が最優先で、日本語が9番目になっています。これでは、紛らわしい場合、英語と認識して、 日本語が文字化けする原因になります。日本語最優先に変更します。 ● 723行目 (上記修正後の行番号。行番号がずれてもかまいません。) AddDefaultCharset ISO-8859-1 ↓変更 #AddDefaultCharset ISO-8859-1 デフォルトの文字セットを、西欧諸国の文字に基づいた ISO-8859-1 Latin1 というのに設定しようとしています。 このままでは、日本語ページが、ほとんど例外なく文字化けし、ブラウザの種類やバージョンによっては、ブラウザ の設定を変更しても、文字化けが直りません。コメントアウト (#) して隠します。 ● 786行目 (上記修正後の行番号。行番号がずれてもかまいません。) #AddHandler cgi-script .cgi ↓変更 AddHandler cgi-script .cgi コメントアウト (#) を削除して、記述を有効にします。「拡張子 .cgi がついたファイルをCGIスクリプトとして 実行する」という意味です。 ● 791行目 (上記修正後の行番号。行番号がずれてもかまいません。) #AddHandler send-as-is asis ↓変更 AddHandler send-as-is asis コメントアウト (#) を削除して、CGIスクリプトなどからHTTPヘッダを送れるようにします。 ● 796行目 (上記修正後の行番号。行番号がずれてもかまいません。) #AddHandler imap-file map ↓変更 AddHandler imap-file map コメントアウト (#) を削除して、イメージマップが使えるようにします。 ● 811-812行目 (上記修正後の行番号。行番号がずれてもかまいません。) #AddType text/html .shtml #AddOutputFilter INCLUDES .shtml ↓変更 AddType text/html .shtml AddOutputFilter INCLUDES .shtml AddType text/html .html AddOutputFilter INCLUDES .html 最初の2行からコメントアウト (#) を削除するのを忘れずに! 拡張子が .shtml のSSIが使えるようにします。 同時に、3、4行目を追加して、拡張子が .shtml でなく、.html でもSSIが機能するようにします。 ----------------------------------------------------------------------------------------------------------- 変更後、httpd.conf を「上書き保存」または「名前をつけて保存」します。httpd.conf の名前を変更しないように。 最後に、パソコンを再起動して httpd.conf ファイルの設定変更を有効にします。 7: Apache 2.0.47 for Win32 の設定 (2)もう一つのアクセス方法前ページで、http://127.0.0.1/ だけのURLで C:\apollo\public_html\index.html につながるようにしました。このページでは、プロバイダのサーバにあるホームページのように、http://127.0.0.1/~apollo/ というURLでアクセスする方法を説明しましょう。こちらも試してみてください。二重になってもかまいません。 ユーザ名 (ホームページID) apollo の前になぜ ~ がついて、~apollo となっているのか、 ~ はどうして必要なのか、と疑問に思う人も多いでしょう。~ 記号は チルダ (tilde)、ティルデ (同じく tilde) または 波ダッシュ (swung dash) と呼ばれているようです。 今ではUNIXコンピュータがWebサーバの大多数を占めています。しかし、インターネット時代が到来する前から、UNIXコンピュータは多くのユーザによって共同で使用されていました。それぞれのユーザは、UNIXコンピュータの中に自分の名前が付いたホームディレクトリ (home directory) を持っていました。そこにアクセスするときは、ユーザ名の前に ~ を付けてを呼び出す仕組みです。 現在、プロバイダのサーバに会員が持っているホームページの名前の前に ~ が付いているのは、このUNIXの伝統を受け継いだものです。 Webサーバで公開するファイルは、直接ホームディレクトリに置かず、その下にある public_html などに入れてあるのが普通です。これはセキュリティ上の理由からだそうです。 Apacheサーバでは、httpd.conf ファイルにある UserDir 命令 (directive) を設定することにより、これが可能になります。ホームディレクトリ名の前に ~ を付けて呼びoだすと、ホームディレクトリの下にある public_html 内のファイルにアクセスできます。次の手順で設定してみましょう。
#!/usr/local/bin/perl の前にスペースを入れたり、1行空けたりするとエラーになります。詰めてください。こんどは test.cgi と名前をつけ、同様に C:\apollo\public_html\ に置き、ブラウザに次のように入力します。 http://127.0.0.1/test.cgi CGIスクリプトもうまく行きましたか?もしサーバエラーになったら、 [スタート] → [プログラム] → [Apache HTTP Server 2.0.47]→ [Review Server Log Files]→[Review Error Log] を見てください。エラーの原因がわかります。
Internet Explorer 6 SP1 (Windows XP) で見た test.shtml の画面
Netscape 7.1 (Windows XP) で見た test.shtml の画面
上のように表示されましたか?もし表示されなかったら、SSI関連の設定に漏れがあるのかもしれません。もう一度チェックしてみてください。 拡張子が .htmlでもSSIが有効なことを確かめておきましょう。test.shtmlの内容はそのままで、ファイル名だけを ssi.html などに変更して C:\apollo\public_html\ に置き、ブラウザで http://127.0.0.1/ssi.html にアクセスしてみましょう。
[counter.html] <HTML> <HEAD> <TITLE>counter</TITLE> </HEAD> <BODY> <H2> ようこそ、いらっしゃい! </H2> <DIV> あなたは <!--#exec cgi="./counter.cgi"--> 番目のお客様です。 </DIV> </BODY> </HTML> やることはこれだけです。Windowsパソコンでは、UNIXコンピュータで必要なパーミッションの設定は必要ありません。ブラウザに次のように入力します。 http://127.0.0.1/counter.html ブラウザの「更新」(再読み込み) をクリックして、カウンタの数字が増えるのを確認しましょう。 counter.html の SSI 部分を次のように記述しても同様な結果が得られます。 <!--#include virtual="./counter.cgi"--> いずれの場合も、counter.cgi の拡張子を .pl に変えて、counter.pl のファイル名で保存し、counter.html から counter.pl を呼び出すことができます。 上記すべての場合に、counter.cgi または counter.pl では、次のどちらかの Content-type ヘッダが必要です。 print "Content-type: text/plain\n\n"; print "Content-type: text/html\n\n"; できたら、それぞれのファイルを C:\home\apollo\public_html にも置いて見ましょう。特に、counter.html での確認をお勧めします。UserDir 命令の箇所で、 IncludesNoExec を Includes に変更しなかったなら、最後の http://127.0.0.1/~apollo/counter.html はエラーになります。 次は、 http://127.0.0.1/~apollo/counter.html を別々のブラウザで表示させた様子です。
IE 6 SP1 (Windows XP) で見た http://127.0.0.1/~apollo/counter.html
Netscape 7.1 (Windows XP) 見た http://127.0.0.1/~apollo/counter.html
http://127.0.0.1/manual
と入力して Enterキーを押します。
Apache HTTP サーバ バージョン 2.0 ドキュメント が現れましたか? 次に、次のように入力して Enterキーを押します。
http://127.0.0.1/html
ActivePerl User Guide が表示されましたか?
- C ドライブにディレクトリを作り、 home と名付けます。
- home ディレクトリにサブディレクトリを作り、ユーザ名 (たとえば apollo) を付けます。
- apollo ディレクトリにサブディレクトリを作り、public_html と名付けます。
- httpd.conf ファイルを開きます。
- ● httpd.confファイル 290行目 UserDir "My Documents/My Website" ↓変更 UserDir "C:/home/*/public_html"
- ● 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>
Window 95/98/Me での起動と終了
バージョンが 2.0.XX になってから、Window 95/98/Me では、Apache を優雅に終了させる方法が見つかりません。 (*Windows XP/2000/NT では、Windows の起動と同時に Apache が起動し、Windows の終了と同時に Apache が終了するので、問題ありません。) アイコンのクリックやダブルクリックだけで Apache を起動する方法はあるのですが、そのように起動した Apache を同様な方法で終了させるのは無理なようです。したがって、Apache 2.0.47 for Win32 でも、次の方法を取るとにしましょう。起動
- デスクトップの左下 [スタート] から [プログラム] → [Apache HTTP Server 2.0.47]→ [Control Apache Server]→[Start Apache in Console] を選ぶ。
- 開いた「APACHE」というタイトルのMS-DOSプロンプトの右上、最小化ボタン ( _ ) をクリックして、 下のタスクバーに置き、デスクトップの作業スペースを確保する。
終了
- Windows を終了、または再起動する前に、タスクバーにある最小化されたMS-DOSプロンプト「APACHE」をクリックして、通常のウィンドウに戻す。
- キーボードの [Cntrl] キーを押しながら [C] キーを押して、数秒待つ。
- MS-DOSプロンプトが閉じたら、Windows を終了、または再起動する。
Internet Explorer の設定
(ケーブルテレビの場合) J-COM など、ケーブルテレビ網のサービスでインターネットに接続していると、 Internet Explorer の設定がそのままでは、Apache ローカルサーバにアクセスでないことがあります。その場合、次のように設定変更すると、Apache ローカルサーバが使え、同時に他のサーバを使ってWeb上のサイトにもアクセスできるようです。 IE 6 で説明します。( 接続方法によって違う場合があります。これは一例です。)- Internet Explorer メニューの [ツール] から [インターネットオプション] を選ぶ。
- [接続] タブをクリックし [LAN の設定] ボタンをクリックする。
- [ローカルエリアネットワーク (LAN) の設定] 画面の上半分 [自動構成] で、 [設定を自動的に検出する]にチェックマークを入れる。
- [自動構成スクリプトを使用する] がチェックされていたら、 チェックマークをはずす。
- 下半分 [プロキシサーバ] で、 [LAN にプロキシサーバを使用する] がチェックされていたら、チェックマークをはずす。
- [OK]クリックして[ローカルエリアネットワーク (LAN) の設定] を閉じ、[OK]クリックして [インターネットオプション] を閉じる。
8: Apache 2.0.47 for Win32 を使ってみよう
HTMLファイルを置く
ローカルサーバを使う準備万端整いました。せっかくだから、ファイルを置いて、ちゃんと動くか確かめてみましょう。まずは、HTMLファイルから。 [index.html] <HTML> <HEAD> <TITLE>Apache</TITLE> </HEAD> <BODY> <H2>Welcome to my computer, Apache Server!</H2> </BODY> </HTML> [Windows 95/98/Me では†] † Windows NT/2000/XP では、パソコンを起動した時点で、すでにApacheも起動しています。- [スタート] → [プログラム] → [Apache HTTP Server 2.0.47] → [Control Apache Server] → [Start Apache in Console] を選んで Apache を起動します。
- 現れた「APACHE」というタイトルのMS-DOSプロンプトの最小化ボタン ( _ ) をクリックして、小さくし、タスクバーに置きます。
- 上記の index.htmlをメモ帳などにコピー・貼り付けして、index.html と名前をつけ、パソコンの作業フォルダ、たとえば C:\apollo\public_html\ に保存しましょう。
- 次に、ブラウザを起動して、「アドレス」(場所)欄に次のようにに入力して、 Enterキーを押します。 http://127.0.0.1
CGIファイルを置く
では、同じ内容をCGIファイルにしてみましょう。 [test.cgi] #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE>Apache</TITLE>\n"; print "</HEAD>\n"; print "<BODY>\n"; print "<H2>Welcome to my computer, Apache Server!</H2>\n"; print "</BODY>\n"; print "</HTML>\n"; CGIスクリプトの先頭行#!/usr/local/bin/perl の前にスペースを入れたり、1行空けたりするとエラーになります。詰めてください。こんどは test.cgi と名前をつけ、同様に C:\apollo\public_html\ に置き、ブラウザに次のように入力します。 http://127.0.0.1/test.cgi CGIスクリプトもうまく行きましたか?もしサーバエラーになったら、 [スタート] → [プログラム] → [Apache HTTP Server 2.0.47]→ [Review Server Log Files]→[Review Error Log] を見てください。エラーの原因がわかります。
SSIを使う
では、SSIが使えるか試してみましょう。index.htmlの内容にSSIの記述を1行付け足して、ファイル名を test.shtml にしましょう。 [test.shtml] <HTML> <HEAD> <TITLE>Apache</TITLE> </HEAD> <BODY> <H2>Welcome to my computer, Apache Server!</H2> 最終更新日時: <!--#echo var="LAST_MODIFIED"--> </BODY> </HTML> ブラウザで http://127.0.0.1/test.shtml にアクセスしてみましょう。Internet Explorer 6 SP1 (Windows XP) で見た test.shtml の画面
Netscape 7.1 (Windows XP) で見た test.shtml の画面
上のように表示されましたか?もし表示されなかったら、SSI関連の設定に漏れがあるのかもしれません。もう一度チェックしてみてください。 拡張子が .htmlでもSSIが有効なことを確かめておきましょう。test.shtmlの内容はそのままで、ファイル名だけを ssi.html などに変更して C:\apollo\public_html\ に置き、ブラウザで http://127.0.0.1/ssi.html にアクセスしてみましょう。
簡単なSSIアクセスカウンタの作成
上で試した test.cgi で、パソコンに作った Apache サーバで CGIが動くことがわかりました。test.shtml と ssi.html では、SSIが使えることを確認しました。しかし、あまりにも簡単すぎたので、私たちの ActivePerl と Apache で実用的なCGIやSSIが動くことに、まだ確信が持てないかもしれません。 では、SSIアクセスカウンタを作ってテストしてみましょう。まず、次のCGIファイルを作ります。 [counter.cgi] #!/usr/local/bin/perl $countfile= "count.dat"; open(IN, "< $countfile"); $count = <IN>; close(IN); $count++; open(OUT,"> $countfile"); print OUT $count; close(OUT); print "Content-type: text/plain\n\n"; print $count; counter.cgi という名前で C:\apollo\public_html\ に置きます。 カウンタの数字は、自動作成される count.dat ファイルに記録されます。念のために、使用中のテキストエディタで「新規 (作成)」を選んで空のファイルを作り、 count.dat という名前を付けて、counter.cgi と同じフォルダに保存しておいても結果は同じです。 続いて、次のようなHTMLファイルを作り、これも C:\apollo\public_html\ に置きます。[counter.html] <HTML> <HEAD> <TITLE>counter</TITLE> </HEAD> <BODY> <H2> ようこそ、いらっしゃい! </H2> <DIV> あなたは <!--#exec cgi="./counter.cgi"--> 番目のお客様です。 </DIV> </BODY> </HTML> やることはこれだけです。Windowsパソコンでは、UNIXコンピュータで必要なパーミッションの設定は必要ありません。ブラウザに次のように入力します。 http://127.0.0.1/counter.html ブラウザの「更新」(再読み込み) をクリックして、カウンタの数字が増えるのを確認しましょう。 counter.html の SSI 部分を次のように記述しても同様な結果が得られます。 <!--#include virtual="./counter.cgi"--> いずれの場合も、counter.cgi の拡張子を .pl に変えて、counter.pl のファイル名で保存し、counter.html から counter.pl を呼び出すことができます。 上記すべての場合に、counter.cgi または counter.pl では、次のどちらかの Content-type ヘッダが必要です。 print "Content-type: text/plain\n\n"; print "Content-type: text/html\n\n"; できたら、それぞれのファイルを C:\home\apollo\public_html にも置いて見ましょう。特に、counter.html での確認をお勧めします。UserDir 命令の箇所で、 IncludesNoExec を Includes に変更しなかったなら、最後の http://127.0.0.1/~apollo/counter.html はエラーになります。 次は、 http://127.0.0.1/~apollo/counter.html を別々のブラウザで表示させた様子です。
IE 6 SP1 (Windows XP) で見た http://127.0.0.1/~apollo/counter.html
Netscape 7.1 (Windows XP) 見た http://127.0.0.1/~apollo/counter.html
マニュアルを読む
Apache と ActivePerl のマニュアルが読めることを確認しましょう。まず、ブラウザの「アドレス」(場所) 欄にhttp://127.0.0.1/manual
と入力して Enterキーを押します。
Apache HTTP サーバ バージョン 2.0 ドキュメント が現れましたか? 次に、次のように入力して Enterキーを押します。
http://127.0.0.1/html
ActivePerl User Guide が表示されましたか?
お疲れ様でした。 9: 関連リンク○ ActivePerl ActivePerlのホームページ。ActivePerlの最新版は ActivePerl Download でダウンロードできます。 Windows 版は、Windows 95、Windows NT、Windows 98、Windows Me、Windows 2000、Windows XP で使用できます。 Windows 版の他に、Solaris版とLinux 版もリリースされています。 ActivePerl を開発した ActiveState はカナダのバンクーバーに本社があり、世界に Perl 言語関連製品を供給する会社です。会社の情報は ActiveState - Corporate - Summary で得られます。 ○ The Apache HTTP Server Project Apache の総合サイト。Apache HTTP Server Project は非営利団体 The Apache Software Foundation によって、組織的、法的、財政的にサポートされています。サイト内の http://httpd.apache.org/dist/httpd/binaries/win32/ で最新版の Apache for Win32 がダウンロードできます。 フリーウェアの Apache は今やインターネット上で第一位を占めるサーバソフトウェアです。最初は、世界中に散らばっていたボランティアのウェブマスターたちのグループ (Apache Group) が 1995 年に、当時最も普及していたサーバ、NCSA HTTPD を基に開発しました。自分たちのサーバを謙遜してa patchy server (つぎはぎだらけのサーバ)と呼んだのが名前の由来だそうです。しかし、多くの徹底的な改良がなされた今では、最新鋭のサーバとして知られています。
相关阅读 更多 +