PHPを5.2から5.3にバージョンアップする際に
いろいろとつまづいたのでメモを残しておこう思う。
■インストール済みのパッケージを確認
yum list installed | grep "php"
php-cli.i386 5.1.6-27.el5_7.5 installed
php-common.i386 5.1.6-27.el5_7.5 installed
■インストールできるパッケージを確認
yum list | grep php
■削除
yum remove php php-common php-cli
■インストール
yum install php53 php53-common php53-cli
↓色々足りなかったので追加
yum install php53-mysql php53-mbstring
yum install php53-xml
yum install php-pear
■確認
$ yum list installed | grep "php"
php53.i386 5.3.3-21.el5 installed
php53-cli.i386 5.3.3-21.el5 installed
php53-common.i386 5.3.3-21.el5 installed
php53-mbstring.i386 5.3.3-21.el5 installed
php53-mysql.i386 5.3.3-21.el5 installed
php53-pdo.i386 5.3.3-21.el5 installed
■PHPのバージョン確認
$ php -v
PHP 5.2.17 (cli) (built: Mar 2 2012 23:30:11)
おや・・・?
phpinfo.php 作ってブラウザで確認
⇒PHP 5.3.3
$ /usr/bin/php -v
PHP 5.3.3 (cli) (built: Oct 1 2013 18:40:05)
$ /usr/local/bin/php -v
PHP 5.2.17 (cli) (built: Mar 2 2012 23:30:11)
既存とは別のパスにインストールしちゃった。テヘペロ
新しい方のPHPにパスを通すように変更。
次にpearもバージョンアップ
1.4.9⇒1.9.4
■pearのバージョン確認
$ pear version
PEAR Version: 1.4.9
PHP Version: 5.3.3
Zend Engine Version: 2.3.0
■インストール済みのパッケージに関してアップグレード出来るものがあるか確認
$ pear list-upgrades
WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update
PEAR.PHP.NET AVAILABLE UPGRADES (STABLE):
=========================================
CHANNEL PACKAGE LOCAL REMOTE SIZE
pear.php.net Archive_Tar 1.3.1 (stable) 1.3.11 (stable) 18.1kB
pear.php.net Console_Getopt 1.2 (stable) 1.3.1 (stable) 4.4kB
pear.php.net PEAR 1.4.9 (stable) 1.9.4 (stable) 290kB
pear.php.net XML_RPC 1.5.0 (stable) 1.5.5 (stable) 32kB
■怒られたのでチャンネルをアップデード
$ pear channel-update pear.php.net
■pearのアップグレード
$ pear upgrade PEAR
Warning: strtotime(): 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. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in PEAR/Validate.php on line 486
今度はタイムゾーンを指定しろって怒られた。
■タイムゾーン指定
php.ini
date.timezone = Asia/Tokyo
⇒pearアップグレード再実行
ERROR: unable to unpack /tmp/tmpGcrVE1/Structures_Graph-1.0.4.tgz
調べたところpearのバージョンが古すぎてpearのコマンドじゃだめらしい。
■手動でアップグレードをかける
$ wget http://pear.php.net/go-pear.phar
$ php go-pear.phar
$ pear version
PEAR Version: 1.9.4
PHP Version: 5.3.3
Zend Engine Version: 2.3.0
やっと完了
今回のバージョンアップの目的は
ソースコードをチェックしてくれる
PHP_PMD と phpcpd を入れること。
■PHPモジュール追加
$ pear channel-discover pear.phing.info
$ pear channel-discover pear.pdepend.org
$ pear channel-discover pear.phpmd.org
$ pear channel-discover pear.phpunit.de
$ pear channel-discover components.ez.no
$ pear channel-discover pear.symfony-project.com
$ pear channel-discover pear.netpirates.net
$ pear install phing/phing
$ pear install pdepend/PHP_Depend
$ pear install phpmd/PHP_PMD
$ pear install phpunit/phpcpd
$ pear install PHPDocumentor
$ pear install --alldeps phpunit/PHPUnit
$ pear list -a
=============================================
PACKAGE VERSION STATE
Base 1.8 stable
ConsoleTools 1.6.1 stable
PHP_Depend 1.1.1 stable
phing 2.6.1 stable
Archive_Tar 1.3.11 stable
Console_Getopt 1.3.1 stable
PEAR 1.9.4 stable
PhpDocumentor 1.4.4 stable
Structures_Graph 1.0.4 stable
XML_RPC 1.5.5 stable
XML_Util 1.2.1 stable
PHP_PMD 1.5.0 stable
File_Iterator 1.3.4 stable
PHPUnit_MockObject 1.2.3 stable
PHP_CodeCoverage 1.2.13 stable
PHP_Invoker 1.1.3 stable
PHP_Timer 1.0.5 stable
PHP_TokenStream 1.2.1 stable
Text_Template 1.1.4 stable
■PHPUnitだけ失敗
$ pear install phpunit/PHPUnit
Unknown remote channel: pear.symfony.com
phpunit/PHPUnit requires package "channel://pear.symfony.com/Yaml" (version >= 2.0.0, version <= 2.99.99)
No valid packages found
install failed
$ pear install channel://pear.symfony.com/Yaml
unknown channel "pear.symfony.com" in "channel://pear.symfony.com/Yaml"
invalid package name/package file "channel://pear.symfony.com/Yaml"
install failed
$ pear channel-discover pear.symfony.com
Adding Channel "pear.symfony.com" succeeded
Discovery of channel "pear.symfony.com" succeeded
$ pear install --alldeps phpunit/PHPUnit
$ pear install phpunit/phpcpd
■PHPunitバージョン確認
$ /usr/bin/phpunit --version
PHPUnit 3.7.28 by Sebastian Bergmann.
■追加
PHPUnit_Selenium 1.3.2 stable
phpcpd 1.4.3 stable
あとはJenkinsおじさんにみてもうだけ