Главное меню
все форумы все темы форума добавить тему
Проблемы при установке
edit
проблемы решены
Возникла очень неприятная ситуация при установке уже готового сайта на хостинг. Хостинг не внушает доверия, навязан заказчиком. На хостинге VDS c установленной cPanel. Помогите пожалуйста разобратся. При первоначальном копировании выдаёт ошибку.
 

 
Warning: array_reverse() [function.array-reverse]: The argument should be an array in /home/dias153/public_html/kernel/classes/User.php on line 172
 
Warning: mysql_real_escape_string() expects parameter 2 to be resource, boolean given in /home/dias153/public_html/kernel/classes/DbSimple/Mysql.php on line 53
 
Warning: Cannot modify header information - headers already sent by (output started at /home/dias153/public_html/kernel/classes/User.php:172) in /home/dias153/public_html/kernel/classes/LabCMS.php on line 283
 
Warning: Cannot modify header information - headers already sent by (output started at /home/dias153/public_html/kernel/classes/User.php:172) in /home/dias153/public_html/kernel/classes/LabCMS.php on line 284
 
Warning: Cannot modify header information - headers already sent by (output started at /home/dias153/public_html/kernel/classes/User.php:172) in /home/dias153/public_html/kernel/classes/LabCMS.php on line 285
Страница не найдена!
 
Страница http://*****.net/ на этом сайте отсутствует.
Возможно, она была удалена или перемещена при редизайне.
Нет поключения к БД. Чтобы выдавало нормальную ошибку, надо внести изменение в файл kernel/classes/Db.php
PHP
//перенести эту строчку так, чтобы она располагалась
self::$db->setErrorHandler(array('Db', 'databaseErrorHandler'));
//выше этой            
if (!self::$db->link) return false;
Запустил сайт следующим образом:
-Установил чистую LabCMS
-Залил через FTP backup баз работающего сайта
-Изменил скин.
 
Вроде всё работает, я уже поправил в админке, что мне было надо. Перехожу на главную... И вылетает SQL ошибка, которая мне не о чём не говорит...
 
Smarty
SQL Error: Unknown column 'page_description' in 'field list' at /home/dias153/public_html/kernel/modules/admin_pages/show.php line 23
Array
(
    [error_code] => 1054
    [message] => Unknown column 'page_description' in 'field list'
    [query] => SELECT page_id, tree_id, page_title, page_description, page_keywords, page_text FROM lab_pages WHERE tree_id='14'
    [context] => /home/dias153/public_html/kernel/modules/admin_pages/show.php line 23
)

 
UPD: Впереди вся ночь, начал разбираться. Сравниваю БД работающего сайта и этого. Читаю ошибку, мониторю show.php
 
Нету колонок page_description и page_keywords в БД на новом сайте, из которых show.php должен считать информацию. Буду добавлять их руками, посмотрим что получится. Отпишусь.
 
UPD2: Много игрался с SQL-запросами на добавление новых полей и замену существующих. Сначала выполнил часть запроса из установочного sql-файла, вместе с DROP TABLE IF EXISTS. Таблицы очистились и создались заново, всё заработало. Моего контента естественно нет. А он мне нужен. Открыл архив бекапа. Выполнил SQL-запос INSERT INTO `lab_pages` VALUES с моими данными. Добавились. А колонки дескрипшн и кейвордс удалились. Подозреваю из-за пустых значений в них. Разобратся, я разобрался уже, конечно, и из ситуации выйду, но я думаю с этим нужно что-то сделать с CMS. Ведь бекап и восстановление - важные этапы и могут в нужный момент подвести, что очень не круто. Ещё буду заниматся, мб что-то ещё напишу.
UPD3: Как решил задачу:
- Заново создал чистую таблицу lab_pages (префикс бд = lab)
- Открыл архив с бекапом, из всего мусора нашел команду INSERT INTO `lab_pages` VALUES, благо в форматировании сжатого файла очень помог Notepad++
- Добавил перед значением столбца date-created два пустых поля, получилось что-то вида:
MySQL
INSERT INTO `lab_pages` VALUES
(1, 14, 'Название страницы', 'Содержание страницы', '', '', '2011-06-10 15:37:34', '2011-06-10 16:33:18');

Ну в общем-то почти все правильно сделали. Немного в обход, но результат все равно достигнут Пошло все кувырком потому, что попытались бакап от старой версии накатить на новую. Либо надо было устанавливать свою версию, а потом обновлять, либо сначала обновлять свою, а потом снимать бакап.
 
Самый простой путь был - посмотреть какие используются запросы в скриптах обновления (в Вашем случае updates/3.3-3.4.php). Или просто "руками" сказать системе что БД более старая, исправив в файле data/cms.ini на версию Вашей базы (правда, при этом все равно стоило ознакомиться с содержимым обновления - там не всегда бывают только запросы).
 
Кстати, чтобы переустановить систему, достаточно удалить файл data/install.lock (при этом, все данные в БД будут уничтожены).
 
PS В обновление входило три запроса
MySQL
ALTER TABLE ?_pages ADD `page_description` VARCHAR( 255 ) NULL DEFAULT NULL AFTER `page_text` , ADD `page_keywords` VARCHAR( 255 ) NULL DEFAULT NULL AFTER `page_description`;
 
ALTER TABLE ?_pages CHANGE `date_updated` `date_updated` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
 
ALTER TABLE  ?_pages ADD INDEX (  `date_updated` );

Первый, Вы в итоге сделали. Для завершения обновления осталось выполнить последние два
После того, что я описал выше сайт работал, и всё относительно нормально. Не показывались статические элементы в шаблоне, хотя всё было прописано и настроено, как на старом сайте. Из-за этого немного хромало позиционирование в конечном html сайта. Возился долго, кстате не подумал вообще о версиях, почему-то посчитал, что обновления не касались текстовых страниц (а они касались ), и проблем быть не должно. И связывал проблемы с чем угодно, но не с этим. В итоге провозившись, не смог заставить отображать статические блоки в шаблоне. Их просто небыло, хотя в tpl прописаны и в бд есть записи по ним. Сейчас просто ставлю чистую стабильную версию, скопирую мой шаблон и всё буду заполнять руками, а то уже поздновато, что бы изучением заниматся)
В настройках модуля отображение статичных блоков включили?
Если не ошибаюсь, она включена по умолчанию. Но точно не скажу, уже не посмотреть, поставил стабильную чистую.
Возникла проблема с БД при установке:
 
Warning: mysql_real_escape_string() expects parameter 2 to be resource, boolean given in /www/kernel/classes/DbSimple/Mysql.php on line 53
Это какая версия и на каком этапе установки?
Последняя стабильная выложенная на сайте (3.2)
 
У меня есть работоспособный настроенный сайт на ней, на одном хостинге.
Задача - сделать клон на другом.
Дампер пишет ошибку, потому я сделал бекап прямо из PhpMyAdmin.
Вот собственно ошибка дампера:
Клик
Скопировал с фтп работающего сайта на фтп нового, с предварительной очисткой кеша и папки темплейт_с. Удалил файл install.lock. Поставил систему, предварительно залив бекап в бд. Выдало вышеописанную ошибку. Удалив все таблицы из бд, перезапустив установку - опять выдало эту ошибку.
 
UPD: Так и не понял, в чём крылась описанная ошибка и что её вызвало.
Что сделал: Всё очистил (фтп, бд), залил стабильную, установил, скопировал нужный скин, востановил в бд нужный бекап - сайт работает. Но теперь всё, что нужно есть в бд, а на сайте содержиоме статических блоков не отображается
UPD2: Включил в настройках отображение статических блоков. Всё стало работать. Но ведь они, по умолчанию включены... Странно. Но спасибо, пока ждал ответа, копался и нашел выход.