Article ID: 113836, created on May 9, 2012, last review on Aug 12, 2014

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

Symptoms

The following error is shown in the SiteBuilder Wizard when I open a module page, e.g., Guestbook:

--->8---
Internal Sitebuilder error.
File: /usr/local/sitebuilder/include/Base/GUI.php; Line: 101
Message: PHP Warning : DOMDocument::loadXML() [function.DOMDocument-loadXML]: Char 0xDB64 out of allowed range in Entity, line: 3; Code: 2
---8<---

Cause

The error is caused by the existence of a non-UTF8 symbol ("<db64>") in the content of the Guestbook message.

Resolution

To fix the issue, it is necessary to find this symbol in the SQLite database and remove it. You may use the following steps:

1. Since the SQLite database file sb_modules.php where Guestbook messages are stored is located on the published host, you should download the database from there. Here are the publishing settings of the site SOMESITE.TLD:

mysql> SELECT host.name AS host, sps.user, sps.password, sps.path, sps.url FROM site_publish_settings sps, host WHERE sps.host_id=host.id AND sps.id IN (SELECT DISTINCT site_publish_settings_id FROM site WHERE site_publish_settings_id in (select id from site_publish_settings where url like '%SOMESITE.TLD%'));
+-----------------+----------+--------------+--------------------+---------------------+
| host            | user     | password     | path               | url                 |
+-----------------+----------+--------------+--------------------+---------------------+
| PUBLISHING_HOST | FTP_USER | FTP_PASSWORD | /WORKING_DIRECTORY | http://SOMESITE.TLD |
+-----------------+----------+--------------+--------------------+---------------------+
1 row in set (0.64 sec)

mysql>


2. Download the SQLite database file sb_modules.php from the publishing location. The database is stored in the directory /data/storage under /WORKING_DIRECTORY.

~# ftp PUBLISHING_HOST
...
Name: FTP_USER
331 Please specify the password.
Password: FTP_PASSWORD
230 Login successful.
...
ftp> cd /WORKING_DIRECTORY/data/storage                
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (94,136,40,100,71,66)
150 Here comes the directory listing.
drwxrwxrwx    2 237      237         28672 Apr 16 22:16 attachments
-rwxrwxrwx    1 237      237        134144 Apr 18 00:22 sb_modules.php    
226 Directory send OK.
ftp> get sb_modules.php


3. Dump the database file to see its contents in plain text:

~# sqlite sb_modules.php .dump > sqlite.dump.sql

4. Open the dumped file with a file editor, for example "vi," and find the symbol <db64>:

~# vi sqlite.dump.sql
--->8---
INSERT INTO modules_2nsum8f4ftv_message VALUES(TEXT <db64> IS HERE<br />^M
0785-01.66.99','a:0:{}',2);
---8<---


Remove the symbol and the same file, sqlite.dump.sql:

~# vi sqlite.dump.sql
--->8---
INSERT INTO modules_2nsum8f4ftv_message VALUES(TEXT IS HERE<br />^M
0785-01.66.99','a:0:{}',2);
---8<---


5. Restore the database from the fixed dump file:

~# echo -n > sb_modules.php
~# sqlite sb_modules.php < sqlite.dump.sql


6. Upload the database file to the directory/data/storage of the the publishing location via FTP.

7. Publish the site to apply the changes to http://SOMESITE.TLD.

Additional information

Fix for a plain page: http://kb.sp.parallels.com/en/6259

56797cefb1efc9130f7c48a7d1db0f0c f7f840260c1591440648a375a64b5b75 fad6dc0c8e983c17ae70a51ac7952cd0 d055be4fdc562a8ecb8e6d0bf419f946 ea6a61e571a858aa6019ceb068ea403a

Email subscription for changes to this article
Save as PDF