PHP5.2.x → PHP5.3.3 on Windows

フォルダの中身をごそっと入れ替えて 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をコピーしました