Article ID: 6661, created on Sep 30, 2009, last review on Aug 12, 2014

  • Applies to:
  • Plesk 9.x for Linux/Unix
  • Plesk 8.x for Linux/Unix

Symptômes

L'erreur suivante apparaît en essayant d'ouvrir le domaine dans Parallels Plesk Panel 8.x via Domaines -> 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


Dans Parallels Plesk Panel 9.x via Domaines -> 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

L'hébergement physique est configuré sur le domaine, cependant l'utilisateur système approprié manque :

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>


Le domain.tld est votre domane qui rencontre le problème. /var/www/vhosts is PRODUCT_ROOT_D, il peut s'agir de /var/www/vhosts, /usr/local/www/vhosts or /srv/www/vhosts sur votre serveur.

Resolution

Les instructions suivantes sont conseillées pour résoudre le problème.

1. Sauvegarder la base de données de Parallels Plesk Panel avant toute reconfiguration.

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

2. Les autres instructions dépendent de l'utilisateur système du domaine qui existe.

2.1 L'utilisateur système existe :

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


/var/www/vhosts est PRODUCT_ROOT_D. domain_ftp_user est l'utilisateur système de l'ancien domaine.

3.1 Pour résoudre le problème, nous vous conseillons d'insérer manuellement l'enregistrement manquant dans la base de données de Parallels Plesk Panel.

3.1.1 Obtenez l'ID de l'utilisateur système du domaine:

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

mysql>


15 est l'ID du domaine. Pour de plus amples détails, voir la requête dans la partie CAUSE.

3.1.2 Insérez un enregistrement de compte :

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

mysql>


<NEW PASSWORD> est un nouveau mot de passe pour le nouvel utilisateur système pour le domaine. C'est également le mot de passe pour l'utilisateur FTP du domaine.

3.1.3 Trouvez l'ID de l'enregistrement créé:

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

mysql>


3.1.4 Insérez l'enregistrement dans le tableau 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>


<NEW USER> est le login du nouvel utilisateur système pour le domaine domain.tld, il est également l'utilisateur FTP du domaine. et 4 est sys_user_id du domaine, 186 est l'ID du nouveau mot de passe.

2.2 L'utilisateur système n'existe pas.

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


3.2 Nous vous conseillons de réactiver l'hébergement physique pour le domaine. Cependant notez que le répertoire d'hébergement virtuel est écrasé et que le contenu du domaine est perdu.

3.2.1 Désactivez l'hébergement pour le domaine :

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>


15 est l'ID du domaine, pour de plus amples détails, voir la requête dans la partie CAUSE.

3.3.3 Connectez-vous à Parallels Plesk Panel et configurez l'hébergement physique pour le domaine via Domaines -> domain.tld -> Configuration. Choisissez l'hébergement physique, insérez un nouveau mot de passe et login utilisateur. Cliquez sur OK pour terminer la configuration.

Additional information

Utilisez la commande suivante pour vous connecter à la base de données de Parallels Plesk Panel :

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

b8ef5052d936e902043e41759118114e a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 6ef0db7f1685482449634a455d77d3f4 56797cefb1efc9130f7c48a7d1db0f0c

Email subscription for changes to this article
Save as PDF