CGIを動かそうの巻
本章では、XAMPPの環境下でCGIプログラムの動作確認とセットアップを行ってみます。
2-1. CGIプログラムの動作確認
XAMPPの場合、CGIプログラムは、そのまま動作するようになっています。
初期動作については、特にサーバ側の設定作業はありません。
動作確認要のテストプログラムも以下に準備されています。
動作確認要のテストプログラムも以下に準備されています。
C:\xampp\cgi-bin\perltest.cgi
早速、上記のテストプログラムを動かしてみましょう。
Apacheを起動させ、ブラウザを立ち上げて、以下のURLへアクセスしてみます。
Apacheを起動させ、ブラウザを立ち上げて、以下のURLへアクセスしてみます。
http://localhost/cgi-bin/perltest.cgi
以下のような画面が表示されたら、CGIの実行は成功です。
2-2. CGIプログラムの設置
次に、任意のCGIプログラムを作成し、設置作業を行ってみます。
そのために、以下のようなテスト用プログラムを用意してみました。
そのために、以下のようなテスト用プログラムを用意してみました。
#! C:/xampp/perl/bin/perl print "Content-type: text/html\n\n"; print "<html><body>\n"; print "Hello World!\n"; print "</body></html>\n";
ダウンロード : hello_cgi.txt
上記のCGIプログラムをダウンロードします。
ダウンロードできたら、そのファイル名を「hello.cgi」に変更し、下記のフォルダへ保存します。
ダウンロードできたら、そのファイル名を「hello.cgi」に変更し、下記のフォルダへ保存します。
格納箇所 C:\xampp\htdocs\hello.cgi
C:\xampp | +-- htdocs / hello.cgi
次に、ブラウザから、以下のURLへアクセスします。
http://localhost/hello.cgi
以下のように、ブラウザの画面上に「Hello World!」の文字が表示されたら、任意のCGIプログラムの実行環境は成功です。
2-3. 使い勝手の改善を図る-1(Perlプログラムの先頭行)
前項までで、CGIプログラムの動作検証を行いました。
次のステップとして、今後の使い勝手を考慮して、環境の改良を図ることにします。
次のステップとして、今後の使い勝手を考慮して、環境の改良を図ることにします。
まずは、CGIプログラムの先頭行の「Perlのパス」(正式には、これをshebang行と呼びます)です。
XAMPPでCGIのテストを行い、本番はレンタルサーバ等を利用するような環境を考慮したとき、両者では当然ながらPerlのパスが異なるため、その都度Perlのパスを書き換えることになります。 これはかなり面倒な作業です。
そこで、本番用の「Perlのパス」のままで、何とかXAMPP環境で動作させることはできないものでしょうか?
XAMPPでCGIのテストを行い、本番はレンタルサーバ等を利用するような環境を考慮したとき、両者では当然ながらPerlのパスが異なるため、その都度Perlのパスを書き換えることになります。 これはかなり面倒な作業です。
サーバ環境 | Perlのパス |
---|---|
XAMPP | #! C:/xampp/perl/bin/perl |
通常のUNIX系サーバ (レンタルサーバ等) |
#! /usr/bin/perl #! /usr/local/bin/perl |
これには、いくつか方法があります。
Windows Vista以降では、「シンボリックリンク」機能が使用できるので、これを利用するとUnixライクでクールであります。
シンボリックリンクとは、Windowsのデスクトップ等でよく使用する「ショートカット」のようなものです。
これをファイルやフォルダ単位に、設定しておくものが「シンボリックリンク」です。
これをファイルやフォルダ単位に、設定しておくものが「シンボリックリンク」です。
シンボリックリンクは、コマンドプロンプトで行います。コマンドの構文(フォルダ操作の場合)は次のとおりです。
コマンドプロンプトは、「スタートボタン」→「アクセサリ」→「コマンドプロンプト」で起動します。
なお、管理者権限で操作する必要がありまので、注意してください。
作成 | mklink /d "作成するシンボリックリンクのパス" "元フォルダのパス" |
削除 | rmdir "削除するシンボリックリンクのパス" |
なお、管理者権限で操作する必要がありまので、注意してください。
起動したら、次のとおり(白色文字のとおり)タイプします(黄色文字は解説コメントです)。
cd / ← Cドライブのルートへ移動
mklink /d c:\usr c:\xampp\perl ← /usr/bin/perlに置き換え
mklink /d c:\usr\local c:\xampp\perl ← /usr/local/bin/perlに置き換え
シンボリックリンクの作成が正常に完了したら、エクスプローラで確認すると、下記のような「ショートカットを表す矢印」が表示されます。
mklink /d c:\usr c:\xampp\perl ← /usr/bin/perlに置き換え
mklink /d c:\usr\local c:\xampp\perl ← /usr/local/bin/perlに置き換え
以上の操作が完了すれば、CGIプログラムの「Perlのパス」が「#! /usr/bin/perl」であれ、「#! /usr/local/bin/perl」であれ、XAMPP環境下においてすべて動作することになります。
また、お使いのPCが Winodws XP であれば、このシンボリックリンクが使用できません。
そのため、以下のようなツールを使うと実現できるようです。
なお、Vista/7/8などにも対応しているので、コマンド操作が慣れない方には、このようなツールを使うほうがいいかもしれません。 日本語版で、似たようなツールがありますので、一緒にご紹介しておきます。
なお、Vista/7/8などにも対応しているので、コマンド操作が慣れない方には、このようなツールを使うほうがいいかもしれません。 日本語版で、似たようなツールがありますので、一緒にご紹介しておきます。
2-4. 使い勝手の改善を図る-2(Perlのパスを通す)
Perlを(CGIを介したウェブ連携等ではなく)単独で起動させるケースがあります。
その最もポピュラーな使い方としては、コマンドプロンプトからPerlプログラムの文法チェックを行うケースです。
たとえば、bbs.cgiというPerlプログラムの文法チェックを行うには、次のようにコマンドプロンプトからコマンドを入力します。
たとえば、bbs.cgiというPerlプログラムの文法チェックを行うには、次のようにコマンドプロンプトからコマンドを入力します。
perl -c bbs.cgi
ところが、XAMPPをデフォルトでインストールした場合、PerlにはWindows内にパスが通っていないため、上記のコマンドが効きません。
そこで、手動でWindowsにPerlのパスを通す必要があります。
まず、最初にWindowsにPerlのパスが通っているかどうかは、コマンドプロンプトから次のようなコマンドを入力します。
perl -v
上記のコマンドを入力したとき、Perlのバージョン名が表示されたら、Perlのパスは通っていることになります。
ところが、「'perl'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」というようなエラーメッセージが出るようだと、パスが通っていないことになります。
そこで、(Perlのパスが通っていない場合は)Windows環境におけるパス(path)を通しておきます。
Windows7の場合だと、「コントロール パネル」→「システムとセキュリティ」→「システム」→「システムの詳細設定」→「詳細設定」のタブを開きます。 「環境変数」ボタンを押すと、下記のように「環境変数」のダイヤログが開きますので、「システム環境変数」の中から「Path」をクリックして、「編集ボタン」を押します。
パスの末尾に、以下の文字列を追加します。
Windows7の場合だと、「コントロール パネル」→「システムとセキュリティ」→「システム」→「システムの詳細設定」→「詳細設定」のタブを開きます。 「環境変数」ボタンを押すと、下記のように「環境変数」のダイヤログが開きますので、「システム環境変数」の中から「Path」をクリックして、「編集ボタン」を押します。
パスの末尾に、以下の文字列を追加します。
C:\xampp\perl\bin\;
2-5. 自宅サーバの開局に向けて
自宅サーバを開局することもできます。
開局とは、外部からブラウザによるアクセスを許可し、パソコンからいわゆる情報発信をします。
その場合、次のようなものが必要となります。
開局とは、外部からブラウザによるアクセスを許可し、パソコンからいわゆる情報発信をします。
その場合、次のようなものが必要となります。
(1) WWWサーバなので、基本的に24時間運用となります。
その場合、セキュリティが心配ですね。 サーバに使用するパソコンには、重要な情報を保管しないようにします。
その場合、セキュリティが心配ですね。 サーバに使用するパソコンには、重要な情報を保管しないようにします。
(2) 公開用のドメイン(ホスト名)が必要です。
このホスト名を無料で取得できるサービスがあります。いくつかありますが、no-ip が有名です。
no-ipのサイトへ行き、登録する必要があります。
このホスト名を無料で取得できるサービスがあります。いくつかありますが、no-ip が有名です。
no-ipのサイトへ行き、登録する必要があります。
(3) ルーターの設定が必要です。
最近はセキュリティが強化されており、お使いのルーターの設定が必須で、よくマニュアルを確認します。
通常は、外部からルーターを超えてアクセスできない設定になっているはずです。
自宅サーバの開局に際しては、以下のサイトが情報が豊富ですので、是非当該サイトにて情報の取得をおすすめします。
最近はセキュリティが強化されており、お使いのルーターの設定が必須で、よくマニュアルを確認します。
通常は、外部からルーターを超えてアクセスできない設定になっているはずです。
自宅サーバの開局に際しては、以下のサイトが情報が豊富ですので、是非当該サイトにて情報の取得をおすすめします。