いつも、cgiやphpはlocalでテストしてから公開しているが、自宅で作ったphpがweb上では動くが、店舗のPCでは作動しなくなっている。バージョン違いかと思うが設定しなおすのも面倒だから、最初から入れなおす。
AN HTTPD 1.42p と PHP Version 5.2.0で動かしていたが、これを
- Apache HTTP Server 2.2.4(apache_2.2.4-win32-x86-openssl-0.9.8d.msi)
- PHP Version 5.2.3(php-5.2.3-win32-installer.msi)
に変えてみる。 両方とも最新バージョンでしかも楽なmsiタイプ。 - PerlはActivePerl-5.8.6.811-MSWin32-x86-122208.msiを使った。
とりあえず英文を斜めよみしながら、Apacheをインストール後
スタート→Apache HTTP Server 2.2.4→Configure Apache Server→Edit the Apache httpd.conf Configuration File でhttpd.confを開いて
“C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf”(標準時のパス)
149行目 DocumentRoot の指定と
177行目 Directory の指定のみし、
http://localhost/ にアクセスすると You don’t have permission to access って
3分ほど悩み、xpで動かしてるから / じゃなく \でルート指定ね。
212行目 DirectoryIndex を
DirectoryIndex index.html index.php index.cgi
ってして
http://www.php.net/manual/ja/install.windows.apache2.php を参考に、
モジュールとしてPHPのインストール
そうすると勝手にhttpd.confの最終行に
#BEGIN PHP INSTALLER EDITS – REMOVE ONLY ON UNINSTALL
PHPIniDir “C:\\PHP\\“
LoadModule php5_module “C:\\PHP\\php5apache2_2.dll”
#END PHP INSTALLER EDITS – REMOVE ONLY ON UNINSTALL
って書き込まれるから、\\を\にしてPHPは作動する。
- include_path や doc_root や extension_dir は設定は済ませておく
- どういうわけか、PHP Version 5.2.3のextをいれるとApacheがとまってしまうのでv5.2.0のを使った
次はperlの設定
Option Indexesの最後に「ExecCGI」を追加して、 (190行目)
Options Indexes FollowSymLinks MultiViews ExecCGI
ScriptAlias /cgi-bin/ は#追加して止めて
# ScriptAlias /cgi-bin/ “C:/Program Files/Apache Group/Apache/cgi-bin/”
<IfModule mime_module>360行目の配下に下記の行を追加して
AddType application/x-httpd-cgi .cgi .pl
終わり。
私の環境では動いているが、これまたすごく早くなっていてすごく快適になった!!
(perlはc:\use\にインストールすると大抵のフリーcgiは、1行目が#!/usr/bin/perlになっているのが多いから後からが楽だよー)
phpを5.2.5にverupしたら
Apache confに書き込まれるのは、下記のままのdefaultで動く
#BEGIN PHP INSTALLER EDITS – REMOVE ONLY ON UNINSTALL
PHPIniDir “C:/PHP/”
LoadModule php5_module “C:/PHP/php5apache2_2.dll”
#END PHP INSTALLER EDITS – REMOVE ONLY ON UNINSTALL