Главное меню
Проблемы при установке
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: Включил в настройках отображение статических блоков. Всё стало работать. Но ведь они, по умолчанию включены... Странно. Но спасибо, пока ждал ответа, копался и нашел выход.