Symptoms
When accessing Tools & Settings > Services Management in Plesk, the below error is displayed:
ERROR: Call to a member function getWebServerPackage() on a non-object (class.ServiceControl.php:76)
Cause
Empty ServiceNodeEnvironment
value or record missing due to database inconsistency:
# plesk db “select * from ServiceNodeEnvironment where name=’httpd'”
Empty set (0.00 sec)
# plesk db “select * from ServiceNodeEnvironment where name=’httpd'”
+—————+————————+——-+———————-+
| serviceNodeId | section | name | value |
+—————+————————+——-+———————-+
| 1 | componentsPackages | httpd | |
+—————+————————+——-+———————-+
1 row in set (0.00 sec)
Resolution
For CentOS/RHEL
-
Connect to the server using SSH.
-
# MYSQL_PWD=
cat /etc/psa/.psa.shadow
mysqldump -u admin psa > psadate +%F_%H.%M
.sql -
Delete record from psa database to avoid duplicate entries:
# MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin psa -e”delete from ServiceNodeEnvironment where name=’httpd’;”
-
Insert record as below:
# MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin psa -e”insert into ServiceNodeEnvironment values(1,’componentsPackages’,’httpd’,’`rpm -q –qf “%{VERSION}.%{RELEASE}” httpd`’)”
For Debian/Ubuntu
-
Connect to the server using SSH.
-
# MYSQL_PWD=
cat /etc/psa/.psa.shadow
mysqldump -u admin psa > psadate +%F_%H.%M
.sql -
Delete record from psa database to avoid duplicate entries:
# MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin psa -e”delete from ServiceNodeEnvironment where name=’httpd’;”
-
Insert record as below:
# MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin psa -e”insert into ServiceNodeEnvironment values(1,’componentsPackages’,’httpd’,’`dpkg-query -W -f=’${Version} ${Release}’ apache2`’)”