Zone file and corresponding record in named.conf are missed for particular domain

Symptoms
Bind DNS server is used.
There is no entry in named.conf for some domain, there also no zone file for it in %plesk_bin%dns\var folder. If records are created manually they will be removed the next time Plesk updates named.conf.
Cause
There is wrong status in dns_zone table for this domain (it is configured to 2). If DNS for some domain is managed in Plesk Control Panel, the status for this domain in dns_zone table is temporary setting to value 2 (to lock it for any changes) and sets it to 0 value when the transaction is over. If for some reason the transaction is interrupted during DNS
managing (Plesk restarts for example) the status field value is not changed to 0 and stays as 2. Domains with that status value are not recorded in named.conf file during any DNS management.
Resolution
Notes: You are recommended to backup Plesk database before applying described solution.
To run SQL queries you can use dbclient.exe tool.

Check dns_zone records for problem domain (domain.com for example):

Example for MysQL (Jet)

select * from dns_zone where name like 'domain.com';

If there is only one selected record, please change status field from 2 to 0.

Notice, that in case that there are several records, Plesk uses the first of them in numeral order. So it is necessary to check that this id does not belong to another domain and delete it in case it is orphaned:

delete from dns_zone where id=[wrong_record_id]

Otherwise set correct values to all fields.

Please apply following query to DNS zone record which belongs to problem domain:

update dns_zone set status=0 where id=[where id is numerical value
obtained from query 1]

When it’s done update DNS records using dnsmng.exe utility:

cd %plesk_bin%
dnsmng.exe update *

Domain cannot be open in Parallels Plesk Panel: SysUser: unable to select: no such row in the table

The following error is shown when try to open domain in Parallels Plesk Panel 8.x through Domains -> domain.tld:

Unable to create SysUser object: SysUser: unable to select: no such row in the table

0: /usr/local/psa/admin/plib/class.DomainControlForm.php:168
DomainControlForm->assign(object of type BsDomain)
1: /usr/local/psa/admin/htdocs/domains/dom_ctrl.php3:149

In Parallels Plesk Panel 9.x through Domains -> domain.tld:

Unable to create PHostingManager object:An error occured during SysUser class creation: SysUser: unable to select: no such row in the table

0: common_func.php3:108
psaerror(string ‘Unable to create PHostingManager object:An error occured during SysUser class creation: SysUser: unable to select: no such row in the table’)
1: client.domain.hosting.anonymous-ftp.php:19
plesk__client__domain__hosting__anonymous_ftp->validateHosting(object of type BsDomain)
2: client.domain.hosting.anonymous-ftp.php:47
plesk__client__domain__hosting__anonymous_ftp->validateItem(object of type UserAdmin)
3: UIPointer.php:1123
UIPointer->validate()

Cause
Physical hosting is configured on the domain, however appropriate system user is missing:

mysql> select * from (select A.id, A.name as domain, A.htype as 'hosting type', sys_users.login as 'system user' from (select id, concat('/var/www/vhosts/', name) as home, htype, name from domains) A left join sys_users on (A.home=sys_users.home)) B where `hosting type` = 'vrt_hst' and `system user` is NULL;
+-----+------------+--------------+-------------+
| id | domain | hosting type | system user |
+-----+------------+--------------+-------------+
| 15 | domain.tld | vrt_hst | NULL |
+-----+------------+--------------+-------------+
1 row in set (0.00 sec)

mysql>

Where domain.tld is your domain that experiences the problem. /var/www/vhosts is PRODUCT_ROOT_D, it may be /var/www/vhosts, /usr/local/www/vhosts or /srv/www/vhosts on your server.
Resolution
The following instructions are recommended for problem resolving.

1. Backup old database of Parallels Plesk Panel before any reconfiguration.

~# mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` psa > psa.dump.`date +%F.%s`.sql

2. Further instructions depends on either domain system user exist.
2.1 System user exists:

~# grep domain.tld /etc/passwd
domain_ftp_user:x:10001:2524::/var/www/vhosts/domain.tld:/bin/false
~#

Where /var/www/vhosts is PRODUCT_ROOT_D. domain_ftp_user is old domain’s system user.

3.1 To resolve the problem it is recommended to insert the missing record into database of Parallels Plesk Panel manually.

3.1.1 Get ID of domain’s system user:

mysql> select sys_user_id from hosting where dom_id=15;
+-------------+
| sys_user_id |
+-------------+
| 4 |
+-------------+
1 row in set (0.00 sec)

mysql>

Where 15 is domain’s ID, for details see query in part CAUSE.

3.1.2 Insert account record:

mysql> insert into accounts(type,password) values ('plain','');
Query OK, 1 row affected (0.09 sec)

mysql>

Where is new password for new system user for the domain. This is password for domain’s FTP user also.

3.1.3 Find ID of created record:

mysql> select * from accounts order by id desc limit 1;
+-----+-------+------------------+
| id | type | password |
+-----+-------+------------------+
| 186 | plain | |
+-----+-------+------------------+
1 row in set (0.00 sec)

mysql>

3.1.4 Insert record into table sys_users:
mysql> insert into sys_users values (4,'sb4',186,'/var/www/vhosts/domain.tld','/bin/false',0);
Query OK, 1 row affected (0.08 sec)

mysql>

Where is login of new system user for domain domain.tld, it is also domain’s FTP user. And 4 is domain’s sys_user_id, 186 is ID of new password.

2.2 System user does not exist.

~# grep domain.tld /etc/passwd
~#

3.2 It is recommended to re-enable physical hosting for the domain anew. However note that whole virtual hosting directory is overwritten and domain content is lost.

3.2.1 Disable hosting for domain:

mysql> update domains set htype='none' where name='domain.tld';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> delete from hosting where dom_id=15;
Query OK, 1 row affected (0.00 sec)

mysql>

Where 15 is domain’s ID, for details see query in part CAUSE.

3.3.3 Login to Parallels Plesk Panel and configure physical hosting for the domain anew through Domains -> domain.tld -> Setup. Choose Physical hosting, insert new user login and password. Click OK to finish configuration.
Additional information
Use the following command to connect to database of Parallels Plesk Panel:

~# mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa

Uninstall APF

Sometimes we may require to remove APF from the server. Here is a guide which shows how to remove APF completely from the server.

Stop the firewall first
service apf stop
/bin/rm -rfv /etc/apf
Remove the cron for APF
/bin/rm -fv /etc/cron.daily/fw
/bin/rm -fv /etc/init.d/apf
lastly disable at startup
chkconfig apf off

This should remove APF completely from the server as we removed the APF daemon, cron and files.

PVA troubleshooting.

Linux/Unix, Management Node:
PVA status: # pvamn status
PVA restart: # pvamn restart
PVA (Control Center) status: # pvacc status
PVA (Control Center) restart: # pvacc restart
Special config file: /opt/pva/mn/bin/pva.conf
[log_folder] – Location of log files, default: /var/log/pva
[etc_folder] – Location of config files, default: /var/opt/pva/mn/etc
To change log level, find vzagent.conf location in pva.conf and change , then restart pvamn
3 – INFO level
4 – DEBUG level
Installation logs: /var/log/pva/setup/
To collect PVA Report run: # /opt/pva/mn/bin/pvareport.sh
Linux/Unix, Slave node:
PVA status: # pvaagent status
PVA restart: # pvaagent restart
PVA (Power Panel) status: # pvapp status
PVA (Power Panel) restart: # pvapp restart
Special config file: /opt/pva/agent/bin/pva.conf
[log_folder] – Location of log files, default: /var/log/pva
[etc_folder] – Location of config files, default: /vz/pva/agent/etc
To change log level, find vzagent.conf location in pva.conf and change , then restart pvaagent
3 – INFO level
4 – DEBUG level
Installation logs: /var/log/pva/setup/
To collect PVA Report run: # /opt/pva/agent/bin/pvareport.sh