WinXP + Apache2 + PHP5 のローカルテスト環境構築

PHPスクリプトをサーバにアップロードする前に、まずローカルでテストしてみたいよね。 ということで、自PC(Windows XP)に HTTPD を入れて PHP 動作テストをする為の環境構築メモ。

Apache2 インストール

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 実行。

ウィザード形式でインストールが進む。

サーバ情報の設定のところで、サービスとして起動するか、スタンドアロンとして一時的に起動するかの選択がある。 ここはテスト用サーバなので、スタンドアロンの方を選択しておく(サービスでも良いけど)。

  • for All Users, on Port 80, as a Service -- Recommended
    サービスとして起動する場合はこちらを選択。
  • only for the Current User, on Port 8080, when started Manually.
    一時起動する場合はこちらを選択。(私はこっち)

あと、インストール先がデフォルトで "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 表示するファイル諸々を置く。

このパスを、以下 www_path と呼ぶ。

あと、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 インストール

下記サイトから PHP5 をダウンロード。

「Windows Binaries」の「PHP5.2.x zip package」の方をダウンロード。

アーカイブを適当なディレクトリに展開する。

私は "C:\php5" というディレクトリをつくってそこに展開した。

このパスを、以下 php5_path と呼ぶ。

php5_path/php.ini-recommended というファイルを php.ini という名前に変更。 これを適当なテキストエディタで開く。

以下の変更をする。

include_path に php5_path/PEAR を追加。

;include_path = ".;c:\php\includes"
include_path = ".;c:\php5\includes;c:\php5\PEAR"

doc_root を www_path に指定。

doc_root = C:/apache/Apache2.2/htdocs

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"

※ 作成するPHPファイルは 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もインストール成功。

PEAR インストール

PEAR というのは、PHP の標準ライブラリ。これをインストールには、PHP5 に同梱されているバッチを実行すればOK。

php5_path 下に pear.bat というバッチがあるので、これを実行する。 (このバッチは、php で php5_path/PEAR/go-pear.phar を実行するようになっている。)

いくつか問い合わせが出るけど、基本的に何も変更する必要はない。

最後に "Double-click this file ..." というメッセージが表示されるところまで行けばインストール成功のはず。

最後のメッセージは PEAR_ENV.reg を実行してパスを通しておくことを推奨されている。設定しておけば pear.bat がコマンドラインで直接呼び出せる。あと、DB を使用する場合は、これは推奨というより必須かも。(php5_path 下に DBまわりのライブラリがあるので)

例えば、PEAR のインストールされているパッケージは

C:\>pear list

で確認できる。

  • これは、以下のように指定しているのと同じ。
    C:\php5>php PEAR\pearcmd.php list

pear のコマンド一覧。

コマンド機能
pear helppearのヘルプ
pear help [command]pearコマンドのヘルプ
prar list現在インストールされているPEARパッケージの一覧
pear remote-listリモートからインストール可能なPEARパッケージの一覧
pear search [packagename]リモートからインストール可能なパッケージを検索
pear install [packagename]パッケージをインストール
pear install -a [packagename]パッケージをインストール(依存パッケージも含めて全て)

おそらく今後 DB は使うようになるので、そのパッケージをインストールしてみる。

まず

C:\php5>pear search MDB2

でリモートにあるかどうか確認。(いくつかヒットする)

リストに MDB2 (Database Abstraction Layer) というのがあれば、導入可能。(MDB2というのは、MySQL や PostgreSQL などの主要な DB にアクセスするためのインタフェースを提供してくれるパッケージ。)

C:\php5>pear install -a MDB2

で依存パッケージ含めてインストール。( -a はいらないかも )

"install ok: channel://pear.php.net/MDB2-2.4.x" というようなメッセージが表示されていれば、インストール完了。

続いて、ドライバを入れる。ここでは MySQL のドライバを入れてみる。

まず、php.ini のモジュールの設定を有効にする。

extension=php_mysql.dll
extension=php_mysqli.dll

このコメントをはずす。(これらには MySQL を操作するAPIが含まれる。)

有効にしたら、

C:\php5>pear install MDB2_Driver_mysql

もひとつ。

C:\php5>pear install MDB2_Driver_mysqli

※追記(2008/05/03 20:05):上記は "pear install MDB2#mysql" で同じ動作になるっぽい。

"install ok: channel://pear.php.net/MDB2_Driver_mysqli-1.4.x" というようなメッセージが表示されていれば、インストール完了。

他のパッケージも同じ要領でインストールできる。

何が必要か、ここらへん で確認しておくと良い。

WARNING が出る場合

pear コマンド実行時に、次のようなメッセージが出ることがある。

WARNING: channel "pear.php.net" has updated its protocols,
use "channel-update pear.php.net" to update

何やら更新されているから更新しろと。いわれるとおりに、

C:\php5>pear channel-update pear.php.net

としてやれば、エラーは解消。

MySQL がうまく動かない

上記のドライバをインストールしたにも関わらず、MySQLがうまく動作せず、 MDB2::connect() などでエラーになることがある。getMessage()すると

MDB2 Error: not found

これはドライバがない、ということらしいが、上記までの手順を踏んでいれば、ドライバは入っているはずだぞ!と。

考えられるのは、ライブラリにパスが通っていないこと。

php5_path(C:\php5 とか)にパスが通っていないと、libmysql.dll が読み込まれない。なので、libmysql.dll を C:\Windows\system32 にコピーしてみるか、環境変数で PATH に php5_path を追加して、OSを再起動すると動作することがある。

参考


MLEXP. Wiki


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-15 (土) 12:07:56 (3733d)