ホームページ作成 ≫ PCでWebサーバ
自宅でWebサーバ
自分のPCにWebサーバを作りましょう。
これとPerlやPHPをインストールすることにより、自宅マシンでCGIのテストができます。
また、普通のHTMLファイルだけならWebサーバを通さなくても表示できますが、JavascriptはWebサーバを通さないと動きません。

できたらWebサーバを通して表示テストをしておくといいでしょう。
代表的なWebサーバである、Apache(アパッチと読む)を入れてみましょう!
Apacheとは?
Apacheは、一般的に非常に多く出回っているWebサーバです。無料で使う事ができます。
が、フリーなため動かなくなったところで誰にも文句は言えませんが、世の中熱心な方々が多く存在するのでその辺は問題ありません。
ここではWindows環境でのインストール方法を説明します。たいていはどのWindowsでも動くはずです。
早速入れてみましょう!

ダウンロードとインストール
それではApacheをダウンロードしてみましょう。
とりあえずhttps://www.apachelounge.com/download/のページを開いてください。
ダウンロードするファイルを選びます。環境によって違うので、インストールするPCが64bitか32bitか確認してからダウンロードしてください。
64bitの場合はApache 2.4.35 Win64
32bitの場合はApache 2.4.35 Win32
それぞれ選んでクリック、ファイルを適当な場所に保存します。
ファイルはzip形式なので、展開します。
展開すると、httpd-2.4.35-win32-VC15\Aapche24というフォルダができます。
このAapche24だけどこかに展開するか、あとで移動してください。
今回はCドライブ直下に
C:\Apache24
として作りたいので、Cドライブ直下に展開します。
以降の説明は、この場所にApacheを置いたことにして話を進めます。別の場所に置いた場合は、その値にあわせて設定してください。
起動と確認
インストールといってもzip形式ファイルを展開すただけなので、今の状態だと何もなりません。
Webサーバはいつも起動している「サービス」として、アクセスを待っている状態にならないといけません。サービスとして動かすためにはApacheを起動する必要があります。
サービスに登録する
まず、コマンドプロンプトを起動します。
コマンドプロンプトとは、コンピュータをコマンドと呼ばれる命令文を使って操作するための画面です。詳しくは「Perl入門の基礎知識」で説明しています。
[スタート]->[すべてのプログラム]->[コマンドプロンプト] を開いてみて下さい。Windowsのバージョンによっては[スタート]->[コマンドプロンプト]になります。なければ探してください。
このとき、右クリックで「管理者として起動」を選んでください。
先ほどApacheを展開した場所のさらにbin下に移動します。
コマンドプロンプトは、コマンドを入力する前の部分として「C:\Users\usr\>」というような表示が出ています(内容は人によって違います)。そのあとから続いて「cd c:\Apache24\bin」と入力しましょう。リターンを押せばコマンド入力が終ったことになります。
C:\Users\usr\> cd c:\Apache24\bin
もしドライブが違うD:\Apache24とかに置いたら、 先に「D:」と入力してドライブを変更しましょう。
C:\Users\usr\> D:
D:\> cd D:\Apache24\bin
ここで「httpd -k install」とコマンドを入力します。
C:\Apache24\bin\> httpd -k install
「Error」とか表示されなければこれでサービスが立ち上がったはずです。
これでサービスとして起動しました。確認しましょう。
サービスを確認する
スタートメニューから[管理ツール]-[サービス]を選択します。(管理者として実行します)

Apache2.4というサービスが登録されているはずです。状態は「開始」になっているはずです。
サービスを開始する
開始していなかったら、右クリックして、「開始」を選んでください。
それか、モニタを出してみます。モニタは、Apacheの状態を表示してくれるものです。状態の変更もできます。
エクスプローラーでApache24\bin下のApacheMonitor.exeをクリックします。

すでに立ち上がっている場合はエラーになるので複数は上がりません。
Windows画面の右下に

こんなマークが出ています。
これをクリックして、Apache2.4のStartを選べば起動します。

今後、設定を変えたらここでRestartをすることを覚えておいてください!
立ち上がれば、Start以外の2つしか選べなくなります。
マークの中央三角部分が赤の場合は開始していません。緑になっていれば開始している、と覚えておいてください。
もしも開始できない場合はイベントビューアで原因を探ってください。

Apacheの設定は、Apache24\confの下にあるhttpd.confファイルで行います。
詳しくはこのあとでやりますが、とりあえずこの中身が原因で動かない場合が多いです。
最初、この中のSRVROOTという部分の設定が、
Define SRVROOT "C:/Apache24"
となっています。Apacheのインストール場所がここ以外の場合はエラーになります。
なので、ここを各自の環境にあわせて変えましょう。
しかし!変更前に、このファイルは大事なので、コピーしてオリジナルは必ず残しておきましょう!
変更する値が"D:/Apache24"だったら次のようにします
Define SRVROOT "D:/Apache24"
これで大体は動くはずです。
ブラウザで確認する
Apacheが開始できたら、実際にブラウザで確認して見ましょう。ブラウザでURLに
http://localhost/
を指定するとこんな画面が出てきます。

これは、Apache24\htdocs\の下にあるindex.htmlが表示されています。
このファイルをいじったり、別のHTMLファイルを置いて確認してみましょう。
設定を変更する
ApacheをC:\Apache24にインストールしたとしましょう。
その中のconfというディレクトリの中にあるファイル群が設定しなければならないファイルになります。
では、最低限の設定をしていきましょう。
httpd.confというファイルをテキストエディタで開いてください。
このファイルは大事なので、コピーしてオリジナルは必ず残しておきましょう!
設定が必要なところと重要な部分をピックアップしていきます。
行の最初に”#”が付いているのはコメント文扱いされているので、有効にしたい行の前に”#”がついていたらはずしましょう。
ServerRoot "C:/Apache24"
37行目のServerRootは、Apacheをインストールした場所です。
この値が違うとまず動かないので、この時点では問題ないはずです。
DocumentRoot "${SRVROOT}/htdocs"と<Directory "${SRVROOT}/htdocs">
2行続いていると思います。
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
ここは重要です。この部分はドキュメントルートの設定です。
Webサーバを通して表示できるのは、ここで指定したディレクトリの下のみです。
普通は、“ServerRootで指定したフォルダ/htdocs”となっているのでとりあえずこのままでいいです。
変更する場合は、両方の値を「D:\htdocs」などとフルパスで指定しましょう。
もし何かApacheの設定をかえたら、必ずApacheを再起動をします。そうしないと設定は有効になりません。
今現在Apacheは起動されているので、Apacheを再起動しましょう。
モニタからRestartで再起動になります。止める時はStop、止まった状態から起動する時はStartを行います。
CGIを使う
Apacheを入れただけではCGIは動かせません。
再度httpd.confを設定しましょう。
それ以前にPerlやPHPをCGIとして使うためには、同じPC上にPerlとPHPもインストールしておく必要があります。
まだインストールされていない場合はインストールしておいて下さい。
インストール方法はそれぞれ「Perl入門の準備(インストール)」と「PHP入門の準備(インストール)」を参照してください。
まず、perlの設定です
拡張子cgiを使えるようにする
AddHandler cgi-script .cgi
がコメントになっている場合はコメントをはずしましょう。
これで、拡張子.cgiの場合はCGIとして実行し、ます。しかし、これだけではまだ動きません。
CGIを使えるようにする
次にDocumentRootの設定の次あたりに、
<Directory "${SRVROOT}/htdoc">
という部分がないでしょうか?この中の
Options Indexes FollowSymLinks
という部分のあとに、ちょっと追加をします。
Options Indexes FollowSymLinks MultiViews ExecCGI Includes
これでperlは使えます。PHPを動かすためにも必要なので、どちらの場合もやっておいてください。
PHPの設定
PHPの設定として「AddHandler cgi-script .cgi」の設定のあとぐらいに次の3行をいれます。
AddType application/x-httpd-php .php
LoadModule php5_module "C:\php\php5apache2_4.dll"
または
LoadModule php7_module "C:\php\php7apache2_4.dll"
PHPIniDir "C:\php\"
「C:\php\php5apache2_4.dll」というのはphpの中にあるファイルです。PHPをインストールした場所を確認して設定しましょう。これはphp5の場合です。
バージョン7の場合は「LoadModule php7_module "C:\php72\php7apache2_4.dll"」になります。PHPのバージョンを確認して設定しましょう。
どちらの場合も、dllファイルのフルパスを間違わないように気をつけましょう。
最後のPHPIniDirは、PHPの設定ファイルphp.iniファイルの場所を示します。
ついでの設定
あと、<IfModule dir_module>という部分に、「index.htm index.cgi index.php」を追加しておきましょう。
<IfModule dir_module>
DirectoryIndex index.html index.htm index.cgi index.php
</IfModule>
「http://localhost/」とファイル名を指定しない場合は、この中で順番にあるものから表示されます。index.htmlとindex.cgiがあれば、index.htmlが優先です。index.htmlがなければ、index.cgiが表示されます。
ここまで設定したらApacheを再起動をしましょう。
確認してみよう!
CGI講座の「とにかく書こう!」を参考にそれぞれテストを行ってください。
とりあえず簡単に動くかどうかテストしたい場合は、次を参考にしてください。
【test.cgi】
#!c:\perl\bin\perl
print "Content-type: text/html\n\nHello!"
1;
というテストCGIファイルを作成し、ドキュメントルートの下に置いてみましょう。
一行目のパスは同じPC上にインストールしたPerlのパスを指定します。
ファイル名はtest.cgiにします。
C:/Apache24/htdocs/
直下にそのファイルを置いたとします。
ブラウザから
http://localhost/test.cgi
を実行すると、このCGIが実行されHello!とだけ表示されます。
次はphpです。
【test.php】
<?php
echo 'Hello!';
?>
ファイル名はtest.phpにします。
ブラウザから
http://localhost/test.php
を実行すると、このCGIが実行されHello!とだけ表示されます。
もしも動かない場合は、Apacheの設定か、プログラムの方をよく確認してください。

これでPC上でCGIのテストを行う事が出来ます。
CGIはプログラムなので、妙な動きをすると、コンピュータ全体に迷惑をかけることになります。
なるべくPC上で動かして問題がないことを確認してからサーバにアップしてください。


まず、Apache自体が起動できない場合、これは大抵の場合httpd.confが問題です
変更を加えるときは、ちょっとずつ行いましょう。エラーが出たら、直前に変更したところが原因なのでそこをよく確認しましょう。

なんでだかCGIが動かない場合、あらかじめプログラムが間違っていないか確認するのがまず大前提なんですが、それ以降はApacheのログを頼りにましょう。
Apache24/log
の中にあります。この中の、error.logファイルがそうです。大抵、「どこどこのファイルの何行目がおかしいよー」って親切に言ってくれているので、それを参考に修正しましょう。

PHPをCGIとして使っている場合、PHPの設定ファイルであるphp.iniの値を変更したときもApacheの再起動が必要です。
これも重要なので忘れないようにしましょう!