エックスサーバX10プランにおいてLightからProfessionalへの自動バージョンアップの不具合について
■問題の状況
Milkystep ver 0.96をエックスサーバX10プランにインストールし動作確認ができ、自動バージョンアップにも対応しているということで、Professional版を購入しました。
指定の方法でバージョンアップキーを取得し、共通設定メニューのバージョンアップから、最新バージョンである1.87のバージョンアップ実行をしました。キーを入力し、実行を押すと、下記のエラーが発生し、自動バージョンアップが正常に完了しません。
■ブラウザでのエラーメッセージ
バージョンアップ中です。ブラウザを終了しないでください
古いバージョンアップファイルを削除中・・・完了
バージョンアップファイルを取得中・・・
Software error
■サーバ
エックスサーバX10プラン
■サーバ情報
サーバOS: linux
Perlのバージョン: 5.8.8
Perlのパス: 不明
【必須モジュールのインストール状況】
Digest::MD5…
[ O K ] あなたの使用しているサーバには、Digest::MD5モジュールがインストールされています。
(バージョン 2.36)
CGI…
[ O K ] あなたの使用しているサーバには、CGIモジュールがインストールされています。
(バージョン 3.15)
CGI::Cookie…
[ O K ] あなたの使用しているサーバには、CGI::Cookieモジュールがインストールされています。
(バージョン 1.26)
DBI…
[ O K ] あなたの使用しているサーバには、DBIモジュールがインストールされています。
(バージョン 1.621)
DBD::mysql…
[ O K ] あなたの使用しているサーバには、DBD::mysqlモジュールがインストールされています。
(バージョン 3.0007)
Scalar::Util…
[ O K ] あなたの使用しているサーバには、Scalar::Utilモジュールがインストールされています。
(バージョン 1.21)
【オプションモジュールのインストール状況】
Archive::Zip…
[ O K ] あなたの使用しているサーバには、Archive::Zipモジュールがインストールされています。
(バージョン 1.16)
LWP::UserAgent…
[ O K ] あなたの使用しているサーバには、LWP::UserAgentモジュールがインストールされています。
(バージョン 2.033)
HTTP::Request::Common…
[ O K ] あなたの使用しているサーバには、HTTP::Request::Commonモジュールがインストールされています。
(バージョン 1.26)
HTTP::Cookies…
[ O K ] あなたの使用しているサーバには、HTTP::Cookiesモジュールがインストールされています。
(バージョン 1.39)
IO::Socket::SSL…
[ O K ] あなたの使用しているサーバには、IO::Socket::SSLモジュールがインストールされています。
(バージョン 1.01)
Authen::SASL…
[ N G ] あなたの使用しているサーバには、Authen::SASL モジュールがインストールされていません。
SMTPサーバを指定してのメール送信時、SMTP認証を行う場合に必要です。
Net::SSLeay…
[ O K ] あなたの使用しているサーバには、Net::SSLeayモジュールがインストールされています。
(バージョン 1.30)
Crypt::SSLeay…
[ O K ] あなたの使用しているサーバには、Crypt::SSLeayモジュールがインストールされています。
(バージョン 0.51)
GD…
[ O K ] あなたの使用しているサーバには、GDモジュールがインストールされています。
(バージョン 2.45)
■エラーログ
エラーログの状況は下記のとおりです。
[Thu Aug 11 06:42:17 2016] [error] [client 60.97.110.62] [Thu Aug 11 06:42:17 2016] index.cgi: Can’t locate object method “new” via package “LWP::UserAgent” (perhaps you forgot to load “LWP::UserAgent”?) at ./lib/get.pl line 4692., referer: http://example.com/milkystep/index.cgi?mode=show_ready_vup&vup_type=system&latest_ver=1.87&old_ver=0.96&fir_time=1
■対策について
エラーメッセージにある lib/get.pl の 4692行目を確認したところ、下記のようにソースは記述されています。
lib/get.pl の 4692行目
my $ua = LWP::UserAgent->new;
インストールや検証に相応の時間を使っておりますし、今後の運用を考えると、手動アップデートではなく自動バージョンアップで行いたいと思っています。ソースコードにパッチを充てるなどでも構わないので、本環境下におけるLightからProfessionalへの自動バージョンアップの方法を教えて下さい。
どうぞよろしくお願いいたします。
記事投稿をした者です。
とりあえず、下記の対策で自動バージョンアップが完了したので、追記しておきます。
■対策
lib/get.gl の行頭に下記の2行を追加。
use LWP::UserAgent;
use HTTP::Request::Common;
■バージョンアップメッセージ
再度、自動バージョンアップを実行。
古いバージョンアップファイルを削除中・・・完了
バージョンアップファイルを取得中・・・完了
ファイルを展開中・・・完了
ファイルを更新中・・・完了
ファイルチェックおよびアクセス権限を更新中・・・完了
不要ファイルを削除中・・・完了
データベースを再構築中・・・完了
一時ファイルを削除中・・・完了
履歴を保存中・・・完了
バージョンアップが正常に完了しました。
「O K」を押した後、画面のレイアウトが崩れている場合は「F5」キーを押すかブラウザを再読み込みしてください。
と表示され、Professional版に切り替わりました。
一応これでバージョンアップができたように見えますが、何か問題等があればご指摘下さい。
zeroalgo様
平素はMilkyStepをご利用いただきありがとうございます。
この度は、貴重なご意見ならびに詳細な検証報告をいただきまして、誠にありがとうございます。
モジュール呼び出し処理の2行を追記して、正常にオンラインバージョンアップが完了した旨、了解いたしました。
理論上は、Pro版もLight版も、オンラインバージョンアップのロジックは同一で、バージョンアップファイル取得までの過程は同様の処理になるため、いずれか一方で失敗することは考えにくい状況ではございますが、今回のご意見を参考に、処理の不備などがないか、今後鋭調査させていただく所存です。
なおバージョンアップ完了に伴い、オンラインバージョンアップを行うプログラム部分も、便宜上更新されておりますので、取り急ぎは、Pro版にバージョンアップ後も、再度Ver1.87にオンラインバージョンアップをお試しいただき、正常に完了するかをご確認いただければ幸いです。
Igreks.Incさま
迅速なご返信、ありがとうございます。
> Pro版にバージョンアップ後も、再度Ver1.87にオンラインバージョンアップをお試しいただき、正常に完了するかをご確認いただければ幸いです。
こちら確認しました。
ブラウザから、Professional Version 1.87環境にて、再度Version 1.87にバージョンアップをしたところ、正常に処理が完了しました。
ロジックがLightとProで同一なのであれば、原因の切り分けも難しいと思いますが、今後のご参考になれば幸いです。
どうもありがとうございました。
今後の開発も期待しております。