CGIを設置する

 1 【サーバーの仕様を確認しよう】 

 CGI は、サーバーを動かすプログラムです、いい加減なプログラムを置かれると、サーバートラブルの原因になります。 このため、プロバイダはその利用に細かい制限を掛けています。

 CGI を使う前に、まず利用するサーバーの利用条件を確認しましょう。  biglobe  wakwak  isweb  参考サイト
 なお、メールフォームを使う場合は、さらに sendmail も使える必要があります。
 
 2 【プログラムを借りよう】 

 CGI プログラムをご自分で組める方は別ですが、なかなかそこまで出来る人は少ないので、出来ているものを使わせてもらうことが 一般的でしょう。 参考サイト→  kent-web  CGIrescue  とほほ  飾り職人
 
 3 【プログラムをアレンジする】 

 借りた CGI プログラムがそのまま使えればよいのですが、多少自分用にアレンジしたり、動くように変更する必要があります。

配布元の注意書き等をよく読んで、それにあったアレンジをしましょう。 →  kent-web  CGIrescue  とほほ  飾り職人
 
 4 【PCでCGIプログラムをテストする】(AN HTTPD編)  [Win10 以降は以下の XAMPPを使用]

 PC上でCGI プログラムをテストするためには、Perlプログラムが動く必要があります。
  このような場合、自分の Windows マシン上で、CGI を動かすようにします。(つまりPCをサーバーにして、CGI動作させます)
  ここでは、ActiveState社の ActivePerl が動くようにし、次に An HTTPD を用い、Webサーバーとして動作させる方法を説明します。 ( Apache については、こちら  itb-TECH )

  参考サイト:  WindowsでCGIを動かす  自宅PCのWWWサーバ化  Webサーバー構築  Homeサーバ構築
 
  【ActivePerlのインストール方法】 (1)

  ダウンロードサイトから、 ActivePerl-5.8.8.817-MSWin32-x86-257965.msi や、ActivePerl-5.6.1.638-MSWin32-x86.msi をダウンロードします。
  ダウンロードしたファイルをダブルクリック等してインストールを開始し、 画面表示(英文)に従って、インストールをします。

  インストールが済んだら、Windows の【スタート】→【プログラム】→【アクセサリ】→【コマンド プロンプト】を選び、 MS-DOSの命令文プロンプトを起動し、コマンドライン上で、「perl -v」と入力して、バージョン情報が表示されたら、インストールは成功です。

  参考サイト:  ActivePerlのインストール方法  ActivePerlをインストール  Homeサーバ構築
 
  【AN HTTPD のインストールと起動】 (2) 

AN HTTPD が起動中  Windows上でウェブサーバーを構築するソフト AN HTTPD は、中田氏のサイト から、httpd142p.zip 等をダウンロードし、解凍します。
  解凍したファイルを適当なフォルダにおきます。そこにある httpd.exe をダブルクリックしてHTTPDが起動すると、PCはサーバーとして動作を開始し、PCのタスクバーに黄色いアイコンが表示されます。 →

  参考サイト:   AN HTTPD Server  AN HTTPD インストール
 
  【AN HTTPD の設定】 

  黄色のアイコンが表示されると、既にPCはウェブサーバーとして動作しています。

  このとき、黄色のアイコンを右クリックして、「オプション一般」を選択して、→
[オプション/一般]で、 [ドキュメントルート] で、 下記の項目を設定します。↓

   ■HTMLデータを置くフォルダ(例、C:\HomePage)を指定。(3)
   ■「リモートホストを取得」にチェックを入れ、ホームディレクトリの設定。(5)
   ■さらに、「拡張子」.pl,.cgi をポイントして、「編集」をクリックして、

ドキュメントルート設定


  拡張子 ".pl .cgi "に対して実行するアプリケーション(perl.exe)を指定します。
  この指定で、拡張子 ".pl .cgi "のファイルにリクエストがあった場合 C:\Perl\bin\perl.exe で実行しその結果を WWWブラウザに表示させることが出来ると言う事です。↓

perl.exe の指定

  参考サイト:  AN HTTPDを設定  AN HTTPDの設定  とにかく使ってみる
 


設定ウインド




【左例でのPCフォルダ配置】

C:\
├ Perl
│ ├ bin
│ │ ├ Perl.exe   (1)
│ : :
│
├ Program Files
│ ├ httpd142p
│ │ ├ httpd.exe  (2)
│ │ ├ readme.html
│ : :
│
├ HomePage         (3)
│ ├ index.html
│ ├ top.html      (4)
│ │ :
│ │
│ ├ public_html   (5)
│ │ ├ index.html  
│ │ ├ public.html  (6)
│ │ │ :
│ │ │
│ │ └ cgi-bin
│ │    ├ test.cgi  (7)
: :    : :
  【AN HTTPD を動かしてみる】 

  以下の操作は、AN HTTPDが起動した黄色のアイコンが表示された状態で行います。

1.HTMLファイルの表示
  ブラウザより http://localhost/top.html または、 http://127.0.0.1/top.html と入力すると、ドキュメントルート ( \HomePage ) にある、top.html が表示されます。(4)
  ブラウザより http://localhost/~big/public.html または、 http://127.0.0.1/~big/public.html と入力すると、public.html が表示されます。(6)
  *リモートホストで、/~big と定義されたフォルダ C:\HomePage\public_html にある public.html が表示されます。(6)

2.CGIファイルを動かす
  ブラウザより http://localhost/~big/cgi-bin/test.cgi または、 http://127.0.0.1/~big/cgi-bin/test.cgi と入力すると、test.cgi が動きます。(7)
  もちろん http://localhost/public_html/cgi-bin/test.cgi または、 http://127.0.0.1/public_html/cgi-bin/test.cgi でも同じです。

     【test.cgi】のサンプル
 Windowes 10 での動作】  (参考: Win 10 での対処法)  [Win10 以降は次の(XAMPP)の使用を勧めます]

 Windows7 から Windows10 にアップグレードして httpd を起動すると、「80ポートは別のプロセスで使用されている」というメッセージが表示され、動作しなくなります。
 これは、Windows10 で「インターネット インフォメーション サービス(IIS)」が有効化されていて、これが 80ポートを占有しているためで、チェックを外して、これを無効化すると httpd が動くようになります。
 具体的には、デスクトップ左下の Windows ボタンを右クリック→「コントロールパネル」→「プログラムと機能」→「Windowsの機能の有効化または無効化」の中にある「インターネット インフォメーション サービス」の「World Wide Webサービス」のチェックを外して httpd を再起動すれば 80ポートが解放されて起動するようになります。
 なお、アップグレードの際、httpd の設定(ドキュメントルートなど)も書き換えるようなので確認しておきましょう。

 
 5 【PCで CGIプログラムを動かす】(XAMPP編)  [Win10 以降はこちらを使用] 参考

 Windows10 以降は、Apacheや、CGIのためのPerlやメールソフト等がパックになった「XAMPP」を利用します。
プログラム(xampp-windows-x64-7.4.8-0-VC15-installer.exe)は、こちらからダウンロードして利用します。
 
  【 XAMPP のダウンロード】 & インストール 参考

 XAMPP はこちらにアクセスすると自動的にダウンロードします。↓
ダウンロード
 xampp-windows-x64-7.4.8-0-VC15-installer.exeをクリックすると、インストールが開始されます。
 途中で、インストールするソフトを選択する画面が出ます。初期設定では全てにチェックが入っています。 cgiを動かす場合、Perl、Apache、Fake Sendmail は必ずチェックを入れておきましょう。↓
 インストール  インストールソフト
 インストール先の初期値は、「C:\xampp」になっています。
 インストール完了後、コントロールパネルが開きます。WWWサーバソフト「Apache」は、動作していない状態になっています。
 「Apache」を起動させるには、Actionsの「Start」ボタンを押すと、ボタンは「stop」に替わり Apacheが起動します。この「stop」を押すと停止します。↓
 インストール先  インストールソフト
  【 動作テスト 】  参考
 Apacheが起動されたら、cgiページの表示動作テストをしてみましょう。
 動作確認用のテストプログラムとして「 C:\xampp\cgi-bin\perltest.cgi 」が準備されていますので、↓

 ブラウザを起動させて、以下のURLへアクセスします。

 下記のページが表示すれば、CGIのテストは成功です。
 cgi test
  【 自前の CGIプログラムの設置 】

 cgiプログラムの表示動作テストが成功したら自前のプログラムで試してみましょう。
  【temp.cgi】のサンプル
>
 このファイルを「 C:\xampp\htdocs\temp.cgi」と保存した後、ブラウザから以下のようにアクセスします。

 このページが下記のように表示されれば OKです。
 cgi test
  【 Perlプログラムの先頭行処理 】

 CGIプログラムの先頭行の「Perlのパス」(shebang行)ですが、XAMPPで CGIのテストを行い、本番はレンタルサーバ等を利用するような環境を考えたとき、両者では Perlのパスが異なるため、その都度 Perlのパスを書き換える必要が発生します。それはかなり面倒です。
 サーバ環境 Perlのパス
 XAMPP #! C:/xampp/perl/bin/perl
 通常のUNIX系サーバ
(レンタルサーバ等)
 #! /usr/bin/perl
 #! /usr/local/bin/perl
 そこで、本番用の「Perlのパス」のままで、XAMPP環境で動作させるための工夫として、Windows Vista以降で利用できる、「シンボリックリンク」を利用します。
 作成 mklink /d "作成するシンボリックリンクのパス" "元フォルダのパス"
 削除 rmdir "削除するシンボリックリンクのパス"
 管理者権限でコマンドプロンプトを起動します。「スタートボタン」→「検索: cmd」→「管理者として実行」
 cmd プロンプト
 起動したら、以下のように入力します。↓
 cmd 入力
 シンボリックリンクの作成が完了すると、エクスプローラでは、下記のような「ショートカットを表す矢印」が表示されます。↓
 cmd 入力
 これで、上の「test.cgi」も「temp.cgi」も、この PCの XAMPPで同様に動作することが出来ます。  

  【 phpプログラムの設置 】

 XAMPPは 当然 phpプログラムも動作します。実際試してみましょう。
  【hello.php】のサンプル
>
 このファイルを「 C:\xampp\htdocs\hello.php」と保存した後、ブラウザから以下のようにアクセスします。

 このページが下記のように表示されれば OKです。
 cgi test

Top_HP作りTopHPの仕組HTML初歩超HTMLCSSで装飾/ CGIを駆動/ JavaScript/ JavaApplet/ Flash/