Webの開発環境を構築する
第4回 PHPの設定
ここまでWebサーバとしてApache、データベースとしてMySQLの設定を行いました。
今回は小中規模のWebシステムでも使用例の多いPHPの実行環境をWindowsに設定していきます。
レンタルサーバ等でも、採用されているところが多いので目にする機会も多いのではないでしょうか。
しかし、各社のレンタルサーバで稼動しているバージョンは様々存在しているのが実情です。
出来る事なら
「1つのプログラムで複数の環境で動作するか?」という確認が出来る環境が欲しい所です。
という事で今回はWindowsでPHPの複数のバージョンが共存する実行環境を構築していきます。
あくまでも開発用の環境の構築になりますので、自宅サーバ用途等のセキュリティの対策は今回は対象としていません。
以上の事を踏まえた上で記事を読み進めて下さい。
それでは、早速、本題に入りましょう。
PHPの環境構築
- PHPのサイト
- Windows版のダウンロード
DownLoad のページhttp://www.php.net/downloads.phpにアクセス
Windows BinariesのPHP 5.2.3 zip packageを選択しダウンロードして下さい。
今回はプロバイダ等にてPHPのバージョンの違いを考慮し、複数の環境を共存出来る様な環境を構築します。
という事でPHP 4.4.7 zip packageも選択しダウンロードして下さい。
- PHPのインストール
ダウンロードしたphp-4.4.7-Win32.zipをディレクトリ付きで解凍し、
d:\usr\php-4.4.7以下にコピーします。
同様にダウンロードしたphp-5.2.3-Win32.zipをディレクトリ付きで解凍し、
d:\usr\php-5.2.3以下にコピーします。
- PHP4.4.7の設定
ファイルのコピーをしたd:\usr\php-4.4.7以下のphp.ini-distをphp.iniに名前の変更を行います。
テキストエディタ(秀丸やメモ帳など)で開き、ファイルを編集します
- バッファリングを有効にする
内部コードと出力コードが違う場合にはバッファリングが必要な為です
output_buffering = Off
↓ OffをOnに変更
output_buffering = On
- 文字エンコードを行う設定にします
- エスケープを無効にします
magic_quotes_gpc = On
↓ OnをOffに変更
magic_quotes_gpc = Off
- デフォルトの文字コードをShift JISにします
default_charset = "iso-8859-1"
↓ Shift JISに変更
default_charset = "Shift_JIS"
- ドキュメントルートの設定をします
- PHPモジュールのディレクトリを設定します
- 日本語対応等のモジュールの使用を設定します
;extension=php_mbstring.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
↓ コメントを外す
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_gettext.dll
- 日本語対応モジュールの設定をします
[mbstring]
;mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
;mbstring.http_input = auto
;mbstring.http_output = SJIS
;mbstring.encoding_translation = Off
;mbstring.detect_order = auto
;mbstring.substitute_character = none;
;mbstring.func_overload = 0
↓ 以下の様にShift JISを使用
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = SJIS
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
- PHP5.2.3の設定
ファイルのコピーをしたd:\usr\php-5.2.3以下のphp.ini-distをphp.iniに名前の変更を行います。
テキストエディタ(秀丸やメモ帳など)で開き、ファイルを編集します
- バッファリングを有効にする
内部コードと出力コードが違う場合にはバッファリングが必要な為です
output_buffering = Off
↓ OffをOnに変更
output_buffering = On
- 文字エンコードを行う設定にします
- エスケープを無効にします
magic_quotes_gpc = On
↓ OnをOffに変更
magic_quotes_gpc = Off
- デフォルトの文字コードをShift JISにします
default_charset = "iso-8859-1"
↓ Shift JISに変更
default_charset = "Shift_JIS"
- ドキュメントルートの設定をします
- PHPモジュールのディレクトリを設定します
- 日本語対応等のモジュールの使用を設定します
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_mbstring.dll
↓ コメントを外す
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_mbstring.dll
- MySQLを使用する為のモジュール使用を設定します
(PHP4.4.7では定義不要)
;extension=php_mysql.dll
↓ コメントを外す
extension=php_mysql.dll
- 日本語対応モジュールの設定をします
[mbstring]
;mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
;mbstring.http_input = auto
;mbstring.http_output = SJIS
;mbstring.encoding_translation = Off
;mbstring.detect_order = auto
;mbstring.substitute_character = none;
;mbstring.func_overload = 0
↓ 以下の様にShift JISを使用
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = SJIS
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
- PHPを使用する為のApacheの設定
Apacheをインストールしたディレクトリ配下のconfディレクトリにhttpd.confファイルがあります
テキストエディタ(秀丸やメモ帳など)で開き、ファイルを編集します
- ファイルの最後に以下の記述を追加
- Apacheをインストールしたディレクトリ配下のconfディレクトリにextraディレクトリが無ければ作成する
- extraディレクトリにphp.confファイルを新規で作成し、テキストエディタで以下の様なファイルを作成します
php.confの作成
<IfDefine PHP4.4.7>
LoadFile "d:\usr\php-4.4.7\php4ts.dll"
LoadFile "d:\usr\php-4.4.7\dlls\libmysql.dll"
LoadModule php4_module "d:\usr\php-4.4.7\sapi\php4apache2.dll"
AddType application/x-httpd-php .php
PHPINIDir "d:\usr\php-4.4.7"
</IfDefine>
<IfDefine PHP5.2.3>
LoadFile "d:\usr\php-5.2.3\php5ts.dll"
LoadFile "d:\usr\php-5.2.3\libmysql.dll"
LoadModule php5_module "d:\usr\php-5.2.3\php5apache2.dll"
AddType application/x-httpd-php .php
PHPINIDir "d:\usr\php-5.2.3"
</IfDefine>
- Apacheのサービスを登録し、切り替えが可能にする
コマンドラインから以下のコマンドを実行
Apache -k install -n "Apache2.0.59 with PHP4.4.7" -D PHP4.4.7
Apache -k install -n "Apache2.0.59 with PHP5.2.3" -D PHP5.2.3
- 登録したサービスの自動起動を無効にします
Windowsのスタートメニューからコントロールパネルを開く
管理ツールを開く
サービスをダブルクリック
登録したサービスを選択しダブルクリック
スタートアップの種類を「自動」から「手動」にかえて、OKボタンをクリック
- Apache Service Monitor から、サービスの登録状態を確認します
これで準備完了です
- PHPの動作確認
Apacheのhtdocsの下に作成したtestディレクトリのに以下の様なファイルを作成します
php.php
<HTML>
<HEAD>
<TITLE>PHPのトップ</TITLE>
<META HTTP-EQUIV="content-type" content="text/html; charset=shift_jis">
</HEAD>
<BODY>
<H2>PHPテスト</H2>
<?php
phpinfo();
?>
</BODY>
</HTML>
PHPの動作確認用ページを用意
php_mysql41.php
<HTML>
<HEAD>
<TITLE>PHP-MySQL4.1 テスト</TITLE>
<META HTTP-EQUIV="content-type" content="text/html; charset=shift_jis">
</HEAD>
<BODY>
<h2>PHPからMySQL4.1への接続テスト</h2>
<?php
$hostname = "localhost";
$username = "test";
$password = "test";
$dbname = "test_db";
$connect = mysql_connect($hostname, $username, $password);
mysql_select_db($dbname);
$sqlq = mysql_query("UPDATE test_table SET NAME='日本語更新テスト(PHP)' WHERE code=2", $connect);
$sqlq = mysql_query("SELECT * from test_table", $connect);
while($row = mysql_fetch_array($sqlq)){
echo $row["code"] . " / ";
echo $row["name"] . "<br>";
}
mysql_free_result($sqlq);
mysql_close($connect);
?>
</BODY>
</HTML>
PHPからMySQL4.1に接続の確認をするページを用意
php_mysql50.php
<HTML>
<HEAD>
<TITLE>PHP-MySQL5.0 テスト</TITLE>
<META HTTP-EQUIV="content-type" content="text/html; charset=shift_jis">
</HEAD>
<BODY>
<h2>PHPからMySQL5.0への接続テスト</h2>
<?php
$hostname = "localhost:3307";
$username = "test";
$password = "test";
$dbname = "test_db";
$connect = mysql_connect($hostname, $username, $password);
mysql_select_db($dbname);
$sqlq = mysql_query("UPDATE test_table SET NAME='日本語更新テスト(PHP)' WHERE code=2", $connect);
$sqlq = mysql_query("SELECT * from test_table", $connect);
while($row = mysql_fetch_array($sqlq)){
echo $row["code"] . " / ";
echo $row["name"] . "<br>";
}
mysql_free_result($sqlq);
mysql_close($connect);
?>
</BODY>
</HTML>
PHPからMySQL5.0に接続の確認をするページを用意
PHP4.4.7のサービスを開始します
Apache Service Monitor から、Apacheを停止する
Stopボタンを押して、停止します。
Apache Service Monitor から、Apache2.0.59 with PHP4.4.7を開始する
Startボタンを押して、開始します。
PHP4.4.7の確認準備が出来ました。
ブラウザからアクセスしてみましょう。
続いて、MySQL4.1と接続してみましょう
更に、MySQL5.0と接続してみましょう
続けてPHP5.2.3の動作確認をしてみましょう
PHP5.2.3のサービスを開始します
Apache Service Monitor から、Apacheを停止する
Stopボタンを押して、停止します。
Apache Service Monitor から、Apache2.0.59 with PHP5.2.3を開始する
Startボタンを押して、開始します。
PHP5.2.3の確認準備が出来ました。
ブラウザからアクセスしてみましょう。
続いて、MySQL4.1と接続してみましょう
更に、MySQL5.0と接続してみましょう
以上でPHPの設定は完了です。
同一のプログラムでPHPの環境を切り替えてのテストが可能な環境は何かと便利だと思います。
次回の予定は、Rubyの設定とMySQLとの接続を予定しています。
この様な記事が技術者の第一歩として、助けになれば幸いです。
2008/05/13
Webの開発環境を構築する