Windowsへphp4をインストールする

Windows環境へphp4をインストールします。 ここでは、php4.3.11(2005/04/28)を対象に話を進めていきます。

MySQL4.1.xからは、パスワードの保存形式が変更されたためMySQLの設定を変更しないと

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client

と表示されます。

PHPからPHP 4.3.11 zip packageを任意のフォルダにダウンロードします。

次にphpをインストールするフォルダを作成します。例えば、c:\phpのようにCドライブにフォルダを作成します。

ダウンロードしたファイルをc:\phpに解凍します。

インストール先

phpを解凍したフォルダにある php4ts.dll をWindowsのシステムフォルダにコピーします。 (C:\windows\system32 や C:\WINNT\system32 や C:\windows\systemなど)

phpを解凍したファイルから php.ini-dist ファイルをWindowsフォルダにコピーします。 Windowsフォルダにコピーした php.ini-dist ファイルを php.ini に名前を変更します。

このphp.iniにphpの動作設定をします。

オプション意味
magic_quotes_gpcOffGet/POST/Cookieなどがらデータを取得したときダブルクォーテーション「"」等にエスケープ文字を付加するかを決定する
default_charsetShift_JISデフォルトの文字コードを指定します
include_path.;c:/php/includes;
c:/php/pear
pearやSmartyを使う場合変更します。
extension_dir c:/php/extensions動的にロード可能な拡張モジュールを置くディレクトリを指定します。
doc_rootd:/public_htmlサーバーにおけるPHPの"ルートディレクトリ"です。
この値は空で無い場合のみ使用されます。PHPがセーフモードで設定されている場合には、このディレクトリの外側にあるファイルは使用されません。
extension=php_mbstring.dllコメントをはずしますマルチバイト文字列を有効にします。
mbstring.languageJapaneseデフォルトを日本語に設定します。
mbstring.internal_encodingSJIS内部文字エンコーディングをSJISに設定します。
mbstring.http_inputautoHTTP入力文字エンコーディング変換をautoに設定します。
mbstring.http_outputSJISHTTP出力文字エンコーディング変換をSJISに設定します。
mbstring.encoding_translationOn内部文字エンコーディングへの変換を有効にします。
mbstring.detect_orderauto文字コード検出をautoに設定します。
mbstring.substitute_characternone無効な文字を出力しない。

文字コードの設定に関しては、 [php.iniの文字コードの設定]を参考にしてください。

Apache2でphp4を使うための設定

Apache2からphpを使用するには、2つの方法があります。
phpをCGIとして動作させる方法とApache2のモジュールとして動作させる方法です。

ここでは、モジュールとして動作させます。

ApacheをインストールしたフォルダのconfフォルダにApacheの設定ファイル[httpd.conf]があります。 このhttpd.confファイルを編集してphpがモジュールとして動作できるように設定します。

以下の行をhttpd.confに追加します。

LoadModule php4_module c:/php/sapi/php4apache2.dll
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

DirectoryIndexディレクティブにindex.phpを追加します。

DirectoryIndex index.html index.php

ここまでで、Apacheの設定は終了です。Apacheを再起動します。

DocumentRootに設定したフォルダに、以下の1行を追加したファイルを作成します。

<? phpinfo(); ?>

適当にinfo.phpと名前を付けて保存します。

ブラウザのアドレスにhttp://localhost/info.phpと入力し以下の画面が表示されれば 設定は正常に終了しています。

インストールの確認

CGIとして動作させるには、httpd.confを以下のように設定します。

#DirectoryIndexディレクティブにindex.phpを追加
DirectoryIndex index.html index.php

#以下の行を追加
ScriptAlias /php/ "c:/php/"
Action application/x-httpd-php php-cgi.exe
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

php4からMySQL4.1.xを使うための設定

4.1.xからは、パスワードの保存形式が変更されたためphp4.3.11ではそのまま接続できません。

まず、MySQL4.1.xのサービスを停止します。 MySQLをインストールしたフォルダのmy.iniに下記行を追加します。

[mysqld]
old-passwords

修正後、MySQLのサービスを開始します。

この後、設定したユーザーは短いパスワードで管理されます。

MySQL Configuration Wizardを使用している場合、rootのパスワードが設定されているはずです。 これを短いパスワードに変更するには、コマンドプロンプトからmysqlクライアントを起動します。

mysqlクライアントの起動

mysql>SET PASSWORD FOR root@localhost = PASSWORD('パスワード');

上記コマンドを実行することでパスワードを変更することができます。

ちなみに、下記SQL文でパスワードの長さが確認できます。

mysql>use mysql;
mysql>SELECT host,user,password FROM user;