[PHP] PHP5.2.x → PHP5.3.3 on Windows

この記事は3年以上前に書かれた記事です。情報が古い可能性があります。

フォルダの中身をごそっと入れ替えて php.ini だけ流用しようと考えたけど、go-pear.bat がうまくいかず。どうも、php_pdo.dll と php_zip.dll がPHP5.3のextにはない。他にもあったものがなかったり、その逆もあったりがありそうだったので、しょうがなく php.ini からつくり直すことに。

とりあえず、

extention=php_pdo.dll
extention=php_zip.dll

はコメントアウト。これで、もう一度 go-pear.bat。

すると

phar “C:\php\PEAR\go-pear.phar” does not have a signaturePHP …云々

とかいうエラーが出てこれまた上手くいかず。

とりあえず Google先生に聞いてみたところ、

Windows 版 PHP 5.3 の go-pear.bat がエラーになる
http://ameblo.jp/phpwalker/archive1-200912.html

ということらしい。ほほうっ!

ということで、go-pear.phar を以下のように修正。

@ECHO OFF
set PHP_BIN=php.exe
%PHP_BIN% -d output_buffering=0 -d phar.require_hash=0 PEAR\go-pear.phar
pause

そして php.ini の phar.require_hash を修正?あれ?そんな項目ないな。

どうも PHP5.3 から新しくできたエントリらしい。なので、PHP5.3付属の php.ini-development を参考にエントリーごと追加。

[Phar]
; http://php.net/phar.require-hash
phar.require_hash = Off

これで go-pear.bat を実行。

上手くいった!

Apacheを起動してphpinfo()を表示してみる。

すると、dateのところで

It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function.

というようなエラーになっているぞ?

Google先生ー!

PHP5.3のdate関数でIt is not safe to rely on the system’s timezone settings.
http://d.hatena.ne.jp/replication/20100321/1269097359

ほうほう。5.1以降ではtimezoneの設定をしないとエラーになるんですね。

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Tokyo

これでいいかな。

改めて phpinfo()を表示してみると、万事成功。

でも、PHP5.2でもtimezone設定してなかったんだけど、そっちは上手く動いてたな。まぁ、動いたからいいやっと。

タイトルとURLをコピーしました