STERFIELD

PHPのバージョン移行

PHPのバージョン移行

目的

PHPのバージョンアップ。

他のサブシステムとの連携での関係上、必要性が高まったため実施しました。

その中で特定のPHPのバージョンでは上手く動作しないケースがあったため備忘録として記します。

やったこと

PHPの複数バージョン管理のためにphpenvを導入(開発にて)。

マイナーバージョンが上のものを任意に選んだが
権限周りでログイン後にエラーが出て四苦八苦。

その後、PHP 5.4.6以降であれば発生しない情報を得て解決。

導入の経過

phpenvのインストール

参照サイト:http://qiita.com/ktarow/items/513ac42f1f4a2b30ffee

適当に5.4.3あたりをインストール後、管理画面にログインすると以下のようなエラーで真っ白画面

Call to a member function getRole() on a non-object

ひたすらStack OverflowやGithubのissuesを巡り巡って以下のforumを見つける。
https://github.com/symfony/symfony/issues/3691

どうやら5.4.5以下で発生する現象。
しかし5.4.7でも発生する報告も挙がってる不思議。

動作報告の挙がっている5.4.6をインストールしてみると問題なく動作。

変更履歴

念のためバージョン間での差分を調査。

http://php.net/manual/ja/migration54.php

ざっと見た感じではコアとなる致命的な変更は無さそうです。

と思ったものの・・・

php -v
を実行すると 5.4.6 と表示されるのに

DocumentRoot以下にphpinfo.phpを作成して中身を見ると
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-18-17-04-20
結局アプリケーションレベルではphpenvで入れたバージョンアップ版phpが読み込まれてなかったという落ち。。。apacheのモジュールかもしれないけれど、もうちょっと検証が必要でした。

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい