PHPスクリプトをサーバにアップロードする前に、まずローカルでテストしてみたいよね。 ということで、自PC(Windows XP)に HTTPD を入れて PHP 動作テストをする為の環境構築メモ。
HTTPD は何でも良いんだけど、とりあえず標準的な HTTPD である Apache を入れる。
まず、下記サイトからダウンロード。
KDDI Labs. の FTP から FTPクライアントで落とすのが速い。
/infosystems/apache/httpd/binaries/win32
の中にある
apache_2.0.x_win32_x86_nossl.msi
または
apache_2.2.x_win32_x86_nossl.msi
というのが Windows 用のインストーラ。
どちらでも良いが、ここは 2.2 系の方をダウンロードしてみる。
ダウンロードしたら msi 実行。
ウィザード形式でインストールが進む。
サーバ情報の設定のところで、サービスとして起動するか、スタンドアロンとして一時的に起動するかの選択がある。 ここはテスト用サーバなので、スタンドアロンの方を選択しておく(サービスでも良いけど)。
あと、インストール先がデフォルトで "C:\Program Files\Apache Software Foundation" 下になるので、 長いパスが嫌いな人は、適当な場所に変更する。
私は長いパスが嫌いなので、例えば "C:\apache" に変更。(これは好み)
このパスを、以下 apache_path と呼ぶ。
あとは基本的に何も変更する必要は無く、ずっと「next」で OK。
インストールが終わったら、設定ファイルを編集する。
apache_path/Apache2.2/conf
の中に、httpd.conf というファイルがあるので、これを適当なテキストエディタで開く。
(「スタート」→「Apache HTTP Server 2.2」→「Configure Apache Server」を辿っても OK。)
DocumentRoot? を探す。"apache_path/Apache2.2/htdocs" となっているはず。
私の場合は
DocumentRoot "C:/apache/Apache2.2/htdocs"
となっている。このディレクトリに Web 表示するファイル諸々を置く。
この場所が気に入らなければ変更する。
私は気に入らないので、"C:\apache\wwwroot" というディレクトリを作って、これに書き換えた。
#DocumentRoot "C:/apache/Apache2.2/htdocs" DocumentRoot "C:/apache/wwwroot"
このパスを、以下 www_path と呼ぶ。
ここに適当な HTML ファイルをつくって index.html という名前で保存しておく。 面倒なら Apache2.2/htdocs 下にあるファイルをそのままコピー。
あと、httpd が使うポートがデフォルトで 80 または 8080 になっているので、 これが気に入らなければ変更する。
80 が HTTP のデフォルトポートだが、これを開くと外部から予期せぬアタックを受けることが懸念される。 なので、外部に公開するのでなければ、 80 でも 8080 でもないポートに変更しておくのが安全。
私は 8081 に変更した。
#Listen 8080 Listen 8081
これで編集を保存して、サーバを起動してみる。
「スタート」→「Apache HTTP Server 2.2」→「Control Apache Server」→「Start Apache in Console」
を選択してサーバを起動する。黒いコンソール画面が表示されたら起動したということ。
(サービスの場合は「Monitor Apache Servers」からサービスを起動する。)
この状態で適当な Web ブラウザを開いて http://localhost:8081/ にアクセスしてみる。 上でつくった www_path/index.html が表示されればインストールは成功。
下記サイトから PHP5 をダウンロード。
「Windows Binaries」の「PHP5.2.x zip package」の方をダウンロード。
アーカイブを適当なディレクトリに展開する。
私は "C:\php5" というディレクトリをつくってそこに展開した。
このパスを、以下 php5_path と呼ぶ。
php5_path/php.ini-recommended というファイルを php.ini という名前に変更。 これを適当なテキストエディタで開く。
以下の変更をする。
includ_path に php5_path/PEAR を追加。
;includ_path = ".;c:\php\includes" includ_path = ".;c:\php5\includes;c:\php5\PEAR"
doc_root を www_path に指定。
doc_root = C:/apache/wwwroot
extension を php5_path/ext に指定。
;extension_dir = "./" extension_dir = "c:/php5/ext"
mbstring を有効にする。(日本語表示をするのに必須)
;extension=php_mbstring.dll
上記コメントをはずす。
extension=php_mbstring.dll
default_charset を UTF-8 にする。
;default_charset = "iso-8859-1" default_charset = "UTF-8"
mbstring セクションを次のように変更する。
[mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.encoding_translation = Off mbstring.http_input = pass mbstring.http_output = pass mbstring.detect_order = UTF-8,SJIS-win,eucJP-win mbstring.substitute_character = none
このPHPが動作するように httpd.conf の設定を追加する。
DirectoryIndex index.html
という設定に、.php を追加。
DirectoryIndex index.php index.html
起動時に PHP をロードするように設定。
LoadModule ... xxx.so
という記述が並んでいる最後の行に次の行を追加。
Apache 2.0系の場合
LoadModule php5_module "c:/php5/php5apache2.dll"
Apache 2.2系の場合
LoadModule php5_module "c:/php5/php5apache2_2.dll"
ファイルの最後に、次の設定を追加。
<IfModule mod_php5.c> AddType application/x-httpd-php .php PHPIniDir "c:/php5" </IfModule>
("c:/php5" は php5_path )
テスト用に test.php というファイルを作成して、
<?php phpinfo();?>
この一行だけ書いて www_path 下に保存。
Apache を再起動して、 http://localhost:8081/test.php にアクセスしてみる。
Web サーバの情報が表示されたら、PHPもインストール成功。