Article ID: 120055, created on Mar 19, 2015, last review on Mar 19, 2015

  • Applies to:
  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux
  • Plesk 10.4 for Linux/Unix
  • Plesk 12.5 for Windows
  • Plesk 12.0 for Windows
  • Plesk 11.5 for Windows
  • Plesk 10.4 for Windows

Symptômes

L'erreur suivante se produit pendant que vous essayez d'ouvrir le panneau de contrôle d'un domaine dans Parallels Plesk ou d'ouvrir le lien "domaines" dans le volet de navigation à gauche :

Unable to load object of type BsDomain with id=: Domain does not exist.

Cause

Ce problème est dû à une incohérence de la base de données psa. Il se produit si un enregistrement dans les colonnes domains.webspace_id ou domain_aliases.dom_id pointe vers l'ID d'un domaine inexistant.

Résolution

  1. Créez une sauvegarde de la base de données.

  2. Vérifiez les liens vers <ID du message d'erreur> dans la table psa.domains :

    mysql -uadmin -p`cat /etc/psa/.psa.shadow ` psa -e"select * from domains where webspace_id=<id from error>"
    

    La requête ci-dessus renvoie une liste des domaines qui appartiennent à un espace Web "cassé", s'il y en a.

  3. Vérifiez les tables et les alias de domaines associés aux domaines :

    for table in domain_aliases hosting dom_param DomainServices subdomains;do echo TABLE: $table; mysql -uadmin -p`cat /etc/psa/.psa.shadow ` psa -e"select * from $table where dom_id=<id from error>";done
    

    Cette requête renvoie les alias de domaines qui appartiennent au dom_id manquant ainsi que les entrées des tables associées qui contiennent les infos sur le domaine.

  4. Si les tables hosting\DomainServices ont renvoyé un résultat non vide à l'étape 2, vérifiez si le dossier du domaine réel existe (valeur www_root de la table hosting) :

        ls -la /var/www/vhosts/domain.com/htdocs
    

    Le cas échéant, vous devrez recréer l'entrée du domaine dans la base de données. Vous pouvez la récupérer depuis les dumps de bases de données Plesk à l'aide de cette commande :

    export dom_id=<dom_id that you got from hosting table>
    
    find /var/lib/psa/dumps/ -name mysql.daily.dump.*|sort -n -r|while read dump_file;do zcat $dump_file|sed -n '/^INSERT INTO `domains/,/\;/p'|grep -v ALTER|sed 's/INSERT INTO `domains` VALUES //g'|sed 's/),(/)\n(/g'|grep '"("$dom_id'; if [ $? == 0 ];then echo;echo Dump file $dump_file contains the entry;exit 0;fi;done
    
    (2,'2013-11-21','domain.com','domain.com',3,0,'vrt_hst',760319296,1,0,NULL,NULL,'53238f70-4818-49a3-8d7e-1a5220e0e06e','','false','on',1,0,0,0,0)
    
    Dump file /var/lib/psa/dumps/mysql.daily.dump.8.gz contains the entry
    

    La commande ci-dessus renvoie l'entrée de domaine des dumps de bases de données, si elle y existe. Ensuite, vous pouvez réinsérer l'entrée dans la table des domaines :

    mysql -uadmin -p`cat /etc/psa/.psa.shadow ` psa -e"INSERT INTO domains VALUES(2,'2013-11-21','domain.com','domain.com',3,0,'vrt_hst',760319296,1,0,NULL,NULL,'53238f70-4818-49a3-8d7e-1a5220e0e06e','','false','on',1,0,0,0,0);"
    
  5. Si l'entrée de domaine n'existe pas dans les dumps, et si le dossier de contenu n'existe pas, vous pouvez définir dom_id sur "0" pour tous les domaines dont le webspace_id pointe vers le domaine manquant. Vous devez également supprimer les entrées des tables suivantes :

    mysql> begin;
    mysql> DELETE FROM hosting WHERE dom_id = <id from error>;  
    mysql> DELETE FROM dom_param WHERE dom_id = <id from error>;
    mysql> DELETE FROM domainServices WHERE dom_id = <id from error>; 
    mysql> DELETE FROM domain_aliases WHERE dom_id = <id from error>;
    mysql> DELETE FROM subdomains WHERE dom_id = <id from error>;
    mysql> commit;
    
  6. Si le dossier de contenu existe mais si l'entrée du domaine n'existe pas, créez une demande d'assistance afin de résoudre ce problème.

a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c 85a92ca67f2200d36506862eaa6ed6b8 46a8e394d6fa13134808921036a34da8 bd7fc88cf1b01f097749ae6f87272128 29d1e90fd304f01e6420fbe60f66f838 e8756e9388aeca36710ac39e739b2b37 dd0611b6086474193d9bf78e2b293040 e0aff7830fa22f92062ee4db78133079 ff5a00b8ead2e480367b019417a04207 c796c01d6951fa24ed54c7f1111667c6 aea4cd7bfd353ad7a1341a257ad4724a 0a53c5a9ca65a74d37ef5c5eaeb55d7f 01bc4c8cf5b7f01f815a7ada004154a2 caea8340e2d186a540518d08602aa065 ed7be2b984f9c27de1d2dc349dc19c6d a766cea0c28e23e978fa78ef81918ab8 742559b1631652fadd74764ae8be475e e335d9adf7edffca6a8af8039031a4c7 2a5151f57629129e26ff206d171fbb5f 8b661cab116c79dbe6c4ac5bbdf1c8cb

Email subscription for changes to this article
Save as PDF