Article ID: 6661, created on Dec 1, 2009, last review on Aug 12, 2014

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

Síntomas

Cuando se intenta abrir un dominio en Parallels Plesk Panel 8.x a través de Dominios -> domain.tld, se obtiene el siguiente error:

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


En Parallels Plesk Panel 9.x a través de Dominios -> 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()

Causa

El alojamiento físico se configura en el dominio, pero no se encuentra el usuario de sistema apropiado:

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>


En este ejemplo, domain.tld es el dominio que está experimentando el problema. /var/www/vhosts es PRODUCT_ROOT_D, que puede ser /var/www/vhosts, /usr/local/www/vhosts o /srv/www/vhosts en su servidor.

Resolución

Para resolver esta incidencia, le recomendamos realizar los pasos que se detallan a continuación.

1. Realice una copia de seguridad de la base de datos de Parallels Plesk Panel antes de realizar cualquier cambio en la configuración.

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

2. Las indicaciones que aparecen a continuación dependen de la existencia del usuario de sistema del dominio.

2.1 El usuario de sistema existe:

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


Donde /var/www/vhosts es PRODUCT_ROOT_D. domain_ftp_user es el usuario de sistema del dominio.

3.1 Para resolver el problema, le recomendamos insertar manualmente el registro ausente en la base de datos de Parallels Plesk Panel.

3.1.1 Obtenga el ID del usuario de sistema del dominio:

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

mysql>


Donde 15 es el ID del dominio. Si desea más información, vea la consulta en la parte CAUSE.

3.1.2 Inserte el registro de la cuenta:

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

mysql>


Donde <NEW PASSWORD> es la contraseña nueva para el usuario de sistema nueva para el dominio. También es la contraseña para el usuario FTP del dominio.

3.1.3 Busque el ID del registro creado:

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 Inserte el registro en la tabla 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>


Donde <NEW USER> es el nombre de usuario del usuario de sistema nuevo para el dominio domain.tld. También es el usuario FTP del dominio. 4 es sys_user_id del dominio, 186 es el ID de la contraseña nueva.

2.2 El usuario de sistema no existe:

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


3.2 Es recomendable volver a habilitar el alojamiento físico para el dominio. De todas formas, tenga en cuenta que se sobrescribirá todo el alojamiento virtual y que se perderá el contenido del dominio.

3.2.1 Deshabilite el alojamiento para el dominio:

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>


Donde 15 es el ID del dominio. Si desea más información, vea la consulta en la parte CAUSE.

3.3.3 Inicie sesión en Parallels Plesk Panel y vuelva a configurar el alojamiento físico para el dominio a través de Dominios -> domain.tld -> Configuración. Seleccione alojamiento físico, inserte el nombre de usuario y la contraseña nueva. Haga clic en ACEPTAR para finalizar la configuración.

Información Adicional

Para conectarse a la base de datos de Parallels Plesk Panel, use el siguiente comando:

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

b8ef5052d936e902043e41759118114e a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 6ef0db7f1685482449634a455d77d3f4 56797cefb1efc9130f7c48a7d1db0f0c

Email subscription for changes to this article
Save as PDF