ある日、pleskにログインしたら
以下のエラーが表示されておりました。
ERROR: Call to a member function getWebServerPackage() on a non-object (class.ServiceControl.php:76)
以下真っ白
原因
pleskの設定値が保持されている、
”psa”データベースの”ServiceNodeEnvironment”テーブルのレコード値の1つが、
空欄になっているのが原因でした。
pleskの自動アップデートが行われた後、このような現象が起こるようです。
解決方法
コマンドラインからmysqlにadmin userでログインし、
以下の2つの作業を行います。
- 空欄になっているレコードを削除する
- 正常なレコードを挿入
- 空欄になっているレコードを削除する。
MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin psa -e
"delete from ServiceNodeEnvironment where name='httpd';"
- 正常なレコードを挿入
MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin psa -e
"insert into ServiceNodeEnvironment values
(1,'componentsPackages','httpd','`rpm -q --qf "%{VERSION}.%{RELEASE}\n" httpd`')"
もし、
Thread died in Berkeley DB library
というエラーが表示された場合、
RPMのデータベースが壊れているかもしれません。
その場合は、こちらのリンクを参照してください。
お世話になった記事