Автор Тема: Как я поднимал из руин галерею  (Прочитано 2870 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vstep

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1599
  • Пол: Мужской
    • Сайт села Карпово МО
Как я поднимал из руин галерею
« : 06 Октября 2015, 12:26:50 »
После фатальной аварии дисковой подсистемы на своём старом серваке никак не мог "оживить" старую фотогалерею на движке Coopermine (CPG).
Саму структуру каталога восстановить удалось, но это отдельная тема. Каталог со свежими дампами баз ну никак...
Был найден старый бэкапчик за 2014 год, пришлось "поднимать" уже из него. Часть данных, которые были залиты на сайт уже после этого, увы придётся восстанавливать "ручками", ну и статистика за полтора года пошла "коту под хвост" - урок на будущее! Бэкапов слишко много НЕ БЫВАЕТ  ;D Нужно футболить их ещё куда-нить, не хранить на одном серваеке, ибо не ровен час...

Короче говоря, уже на "новом" серваке поднимаем соответствующий vhost (у меня там "индеец"). Далее создаём базу (у меня MySQL, кодировка дампа UTF-8) стандарным способом:

Идём в консоль мускуля,

там проделываем примерно это:

CREATE DATABASE `имя_базы` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON имя_базы.* TO юзер@localhost IDENTIFIED BY 'пароль';
FLUSH PRIVILEGES;

теперь заливаем наш многострадальный дамп:

use имя_базы;
\. /путь_к_дампу/имя_дампа.sql
\q

Всё, типа радость и веселье! Ну по идее должно быть быть так, ан нет, фигвам (народная индейская изба :) ), если у вас в конфиге "мускуля" не указана "единственно правильная" кодировка, ну типа
...
[mysqld]
character-set-server=utf8
init-connect="SET NAMES utf8"
init-connect="SET CHARACTER SET utf8"
...

То в галерее Coopermine мы получаем набор "знаков вопроса" вместо киррилического текста! Несмотря ни на какие ухищьрения (например с .htaccess и т.п.)
Я не мог в глобальных настройках настройках мускуля менять кодировку, ибо тогда я получал гиммор старых сайтов с кодировкой cp1251, например форумы smf 1.x
Что делать?

Помогло такое решение:

В файле настроек путь_к_галерее\include\functions.inc.php ищем строку:

$result = @mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']);

сразу после неё добавляем строку:

mysql_query("SET NAMES UTF8", $result);

т.е. указываем конкретную кодировку при запросе скрипта к базе.
Ура, "бинго"  ;D

Если кому это поможет (ибо "купермайн" довольно таки популярен и бесплатен), буду рад!
« Последнее редактирование: 06 Октября 2015, 20:56:02 от vstep »