Article ID: 6973, created on Dec 7, 2009, last review on Apr 25, 2014

  • Applies to:
  • Plesk Sitebuilder 4.5 for Linux/Unix

Symptômes

L'erreur suivante s'affiche dans les assistants lorsque vous essayez de publier un site :

Internal Sitebuilder error.
File: /usr/local/sitebuilder/include/SB/ORM/SitePublication.php; Line: 34
Message: PHP Notice : Trying to get property of non-object; Code: 8

Cause

Une instance du module de la page du site n'a aucune enregistrement historique de publié.

Ce problème a été résolu dans Parallels Sitebuilder depuis la version 4.5 : lors de la publication des modules, les instances sont publiées correctement. Ce problème peut exister dans Parallels Sitebuilder versions 3.x, 4.0, 4.1, 4.2 ou si Parallels Sitebuilder a été mis à niveau vers 4.5 et le problème n'a pas été résolu auparavant. La mise à niveau ne résoudrait pas une configuration incorrecte.

Résolution

Pour résoudre le problème, nous vous conseillons de trouver le problème de configuration dans la base de données de Parallels Sitebuilder et de le corriger. A l'aide des étapes ci-dessous, vous pouvez résoudre ce problème de configuration dans Parallels Sitebuilder versions 4.2 et 4.5.

1. Sauvegardez la base de données de Parallels Sitebuilder:

~# mysqldump -u<user> -p<password> --skip-extended-insert sitebuilder3 > sitebuilder3.dump.`date +%F.%s`.sql

Sachant que <user>/<password> sont l'utilisateur et le mot de passe pour l'admin mysql.

2. Trouvez l'id du site qui rencontre ce problème :

mysql> select id, alias, site_publish_settings_id, site_page_id from site where alias='SITE NAME';
+------+-----------+--------------------------+--------------+
| id   | alias     | site_publish_settings_id | site_page_id |
+------+-----------+--------------------------+--------------+
| 4220 | SITE NAME |                       11 |           48 |
+------+-----------+--------------------------+--------------+
1 row in set (0.00 sec)

mysql>


4220 est l'ID du site 'SITE NAME'.

3. Sélectionnez les instances pour tous les modules des pages dans le site:

mysql> select * from module_instance where site_id=4220;
+-------+-------------+---------+-----------+-------------+-------------+
| id    | instance_id | site_id | module_id | time_create | time_remove |
+-------+-------------+---------+-----------+-------------+-------------+
| 15855 | 2b4h2qxgkmd |    4220 |         5 |  1192718497 |        NULL |
| 15361 |
4606yem2714 |    4220 |         5 |  1205400670 |        NULL |
| 18513 | u9plgl9tsf2 |    4220 |        13 |  1214325030 |        NULL |
+-------+-------------+---------+-----------+-------------+-------------+
3 rows in set (0.00 sec)

mysql>


4. Testez toutes les instances 15855,15361,18513 et cherchez l'enregistrement de publication manquant. Par exemple, un enregistrement de publication manque pour l'instance 15361:

mysql> select id, module_instance_id, published_instance_id, version, required_api_version, site_publication_id from module_instance_publication where module_instance_id=15361;
+------+--------------------+-----------------------+---------+----------------------+---------------------+
| id   | module_instance_id | published_instance_id | version | required_api_version | site_publication_id |
+------+--------------------+-----------------------+---------+----------------------+---------------------+
| 9328 |              15361 | 4606yem2714           | 4.1.0   | 4.1.0                |                4901 |
+------+--------------------+-----------------------+---------+----------------------+---------------------+
1 row in set (0.00 sec)

mysql> select * from site_publication where id=4901;
Empty set (0.01 sec)

mysql>


5. Supprimez l'instance problématique :

mysql> delete from module_instance where site_id=4220 and id=15361;
Query OK, 1 row affected (0.02 sec)

mysql>

f7f840260c1591440648a375a64b5b75 fad6dc0c8e983c17ae70a51ac7952cd0 d055be4fdc562a8ecb8e6d0bf419f946 ea6a61e571a858aa6019ceb068ea403a 56797cefb1efc9130f7c48a7d1db0f0c

Email subscription for changes to this article
Save as PDF