先日、Netcommons3のヴァージョンを、3.3.4から3.3.5に上げようと、いつもの手順で作業していました。
しかし、今まで見たこともないエラーが・・・
しばらく考えていましたが、情報も得られずエラーメッセージも分からない。
でも、もう一度良く見てみると、
Error: ReflectionMethod::__construct(): Argument #2 ($method) cannot be null when argument #1 ($objectOrMethod) is an object
> #0 /var/www/html/vendors/cakephp/cakephp/lib/Cake/Console/Shell.php(358): ReflectionMethod->__construct()
> #1 /var/www/html/vendors/cakephp/cakephp/lib/Cake/Console/Shell.php(423): Shell->hasMethod()
> #2 /var/www/html/vendors/cakephp/cakephp/lib/Cake/Console/ShellDispatcher.php(222): Shell->runCommand()
> #3 /var/www/html/vendors/cakephp/cakephp/lib/Cake/Console/ShellDispatcher.php(66): ShellDispatcher->dispatch()
> #4 /var/www/html/app/Console/cake.php(35): ShellDispatcher::run()
phpの動きに問題?
このサーバーのphp環境は7.4だったはずなんですが、調べてみたらなんと8.1に上がっていました!
こまめにOSのアップデートをしていますが、その時にphpもアップデートされてしまうのは知りませんでした。
最初にOSインストールした時、phpのリポジトリ登録は手作業でやったんですが、この関係?
ここで、Netcommonsプロジェクトにメールで相談してみました。
手掛かりがなければ、phpを元の7.4に戻してみようと思っていました。
ところが何と!
嬉しいことに、すぐ返信が届いたんです!
「Netcommons3はphp8に対応させる予定はあるが、まだ見通しが立っていません」
「サーバーをphp7環境に戻して使って下さい」
この情報で、対処の見通しがつきました!
# update-alternatives --config php
このコマンドを実行すると、出力は、
選択肢 パス 優先度 状態
------------------------------------------------------------
* 0 /usr/bin/php7.4 74 自動モード
1 /usr/bin/php7.3 73 手動モード
2 /usr/bin/php7.4 74 手動モード
現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください
といった感じでメッセージが出るので、
希望するヴァージョンのphpを選んで番号を入力、Enterすれば使用phpの切り替えが簡単に出来ます!
この後Netcommonsのヴァージョンアップの作業を再度やってみたら、無事にアップデート完了しました!
Netcommonsプロジェクトの中島様、それからプロジェクトの皆様、
本当にありがとうございました!