1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

DoS 3.0/3.1

Тема в разделе 'Запуск и Поддержка', создана пользователем TyMaH, 17 сен 2012.

  1. TyMaH Рекомендуемый

    Сообщения:
    154
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7
    ~5 часов назад вышла DoS 3.0, затем через несколько часов вышло обновление 3.1
    http://sourceforge.net/projects/dotaopenstats/files/OpenStats 3.0/
    Кто-нибудь ставил уже? лично у меня ничего не вышло, через Install.php выводит ошибку, на последнем этапе.

    И не понял как делать запрос из sql_heroes_items.sql, там каша какая-то, половина закомментированно.
    evilmaker нравится это.
  2. evilmaker Старожила

    Сообщения:
    321
    Спасибы:
    28
    Сборка бота GHost:
    brtghost rev.185
    Дата начала использования бота:
    07.07.9999
    Skype:
    Мой статус
  3. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Забей, там полно недоработок. Жди пока автор еще выпустит апдейты.
    PS: OS2 был лучше.

    http://46.0.223.207/doska/
  4. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Уже ставили, прям сразу после её выхода. Работает на ура. Там просто инсталлятор кривой 3.0 был, если всё самому вставить, то без проблем пойдёт. + там установка идёт в чистую, т.е. если что-то в базе есть, оно всё затрёт.
    В 3.1 обещали вроде поправить.


    DOS 2.0 был лучше тем, что там на каждую страницу был свой отдельный файл, а тут всё вкинули в один километровый, плюс этот скунс до сих пор не соблюдает форматирование кода и не придерживается никакого стиля, в результате чего не комфортно производить поиск и изменения.
    TyMaH нравится это.
  5. TyMaH Рекомендуемый

    Сообщения:
    154
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7
    to ViperNight
    Мб в аську стукнешь, объяснишь? Если время и желание есть.
  6. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    ICQ: No
    Время: Yes
    Желание: Undefined

    Просто неизвестно что тебе конкретно нужно сделать, запустить статистику с нуля либо поставить её на уже работающий проект, имеющий какие-то данные в таблицах или обновиться с DOS версии 1.3.9 к примеру.

    Так как цель явно не была определена, давай возьмёмся за наиболее комплексное решение - обновление с DOS 1.3.х до этой DOS 3.x.

    Я просто покажу, как должен был бы действовать ты.

    Будем полагать, что веб-сервер, PHP и сервер баз данных настроены подобающим образом и соответствуют необходимым требованиям.

    Шаг 0.o

    Делаешь резервную копию своей базы данных и файлов DOS 1.3.x, если таковые имеются.


    Шаг первый

    Скачиваешь, распаковываешь DOS 3.x в DOCUMENT_ROOT директорию своего хоста (для примера я распаковываю в /home/openstats/public_html/dos/v3/).


    Шаг второй

    В директории install/ открываешь файл с таблицами и данными - sql_data.sql.
    Далее лезешь на сервер баз данных, в свою базу данных и производишь сравнение структур таблиц у себя в базу с файлом, приложенным к DOS 3.x.

    [IMG]

    В ходе анализа ты устанавливаешь, что появились новые таблицы `comments`, `stats`, `users` имеющие следующие структуры соответственно:

    Код:
    CREATE TABLE `comments` (
      `id` INT(11) NOT NULL AUTO_INCREMENT,
      `user_id` INT(11) NOT NULL,
      `page` VARCHAR(16) NOT NULL,
      `post_id` INT(11) NOT NULL,
      `text` TEXT NOT NULL,
      `date` INT(11) NOT NULL,
      `user_ip` VARCHAR(16) NOT NULL,
      PRIMARY KEY (`id`),
      KEY `user_id` (`user_id`)
    );
     
    CREATE TABLE `stats` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `player` VARCHAR(30) NOT NULL,
      `score` INT(11) NOT NULL,
      `games` INT(11) NOT NULL,
      `wins` INT(11) NOT NULL,
      `losses` INT(11) NOT NULL,
      `draw` INT(11) NOT NULL,
      `kills` INT(11) NOT NULL,
      `deaths` INT(11) NOT NULL,
      `assists` INT(11) NOT NULL,
      `creeps` INT(11) NOT NULL,
      `denies` INT(11) NOT NULL,
      `neutrals` INT(11) NOT NULL,
      `towers` INT(11) NOT NULL,
      `rax` INT(11) NOT NULL,
      `banned` TINYINT(1) NOT NULL,
      `ip` VARCHAR(16) NOT NULL,
      PRIMARY KEY (`id`),
      KEY `score` (`score`)
    );
     
    CREATE TABLE `users` (
      `user_id` MEDIUMINT(8) NOT NULL AUTO_INCREMENT,
      `user_name` VARCHAR(30) NOT NULL,
      `user_password` VARCHAR(60) NOT NULL,
      `password_hash` VARCHAR(65) NOT NULL,
      `user_email` VARCHAR(60) NOT NULL,
      `user_joined` INT(11) NOT NULL,
      `user_level` TINYINT(1) NOT NULL,
      `user_last_login` INT(11) NOT NULL,
      `user_ip` VARCHAR(40) NOT NULL,
      `user_avatar` VARCHAR(255) NOT NULL,
      `user_location` VARCHAR(100) NOT NULL,
      `user_realm` VARCHAR(255) NOT NULL,
      `user_website` VARCHAR(255) NOT NULL,
      `user_gender` TINYINT(4) NOT NULL,
      `user_fbid` VARCHAR(30) NOT NULL,
      `can_comment` TINYINT(4) NOT NULL DEFAULT '1',
      `code` VARCHAR(15) NOT NULL,
      `confirm` VARCHAR(65) NOT NULL,
      PRIMARY KEY (`user_id`),
      UNIQUE KEY `user_name` (`user_name`),
      KEY `last_login` (`user_last_login`),
      KEY `joined` (`user_joined`),
      KEY `confirm` (`confirm`)
    );
    Также с радостью или сожалением ты обнаруживаешь, что структура таблиц `games`, `heroes`, `items` и `news` претерпела некоторые изменения.


    Шаг третий

    На основании проведённых исследований добавляешь ранее отсутствующем и делаешь изменения в уже имеющемся.

    Создаёшь новые таблицы:

    Код:
    CREATE TABLE `comments` (`id` INT(11) NOT NULL AUTO_INCREMENT,`user_id` INT(11) NOT NULL,`page` VARCHAR(16) NOT NULL,`post_id` INT(11) NOT NULL,`text` TEXT NOT NULL,`date` INT(11) NOT NULL,`user_ip` VARCHAR(16) NOT NULL,PRIMARY KEY (`id`),KEY `user_id` (`user_id`));
    CREATE TABLE `stats` (`id` int(11) NOT NULL AUTO_INCREMENT,`player` VARCHAR(30) NOT NULL,`score` INT(11) NOT NULL,`games` INT(11) NOT NULL,`wins` INT(11) NOT NULL,`losses` INT(11) NOT NULL,`draw` INT(11) NOT NULL,`kills` INT(11) NOT NULL,`deaths` INT(11) NOT NULL,`assists` INT(11) NOT NULL,`creeps` INT(11) NOT NULL,`denies` INT(11) NOT NULL,`neutrals` INT(11) NOT NULL,`towers` INT(11) NOT NULL,`rax` INT(11) NOT NULL,`banned` TINYINT(1) NOT NULL,`ip` VARCHAR(16) NOT NULL,PRIMARY KEY (`id`),KEY `score` (`score`));
    CREATE TABLE `users` (`user_id` MEDIUMINT(8) NOT NULL AUTO_INCREMENT,`user_name` VARCHAR(30) NOT NULL,`user_password` VARCHAR(60) NOT NULL,`password_hash` VARCHAR(65) NOT NULL,`user_email` VARCHAR(60) NOT NULL,`user_joined` INT(11) NOT NULL,`user_level` TINYINT(1) NOT NULL,`user_last_login` INT(11) NOT NULL,`user_ip` VARCHAR(40) NOT NULL,`user_avatar` VARCHAR(255) NOT NULL,`user_location` VARCHAR(100) NOT NULL,`user_realm` VARCHAR(255) NOT NULL,`user_website` VARCHAR(255) NOT NULL,`user_gender` TINYINT(4) NOT NULL,`user_fbid` VARCHAR(30) NOT NULL,`can_comment` TINYINT(4) NOT NULL DEFAULT '1',`code` VARCHAR(15) NOT NULL,`confirm` VARCHAR(65) NOT NULL,PRIMARY KEY (`user_id`),UNIQUE KEY `user_name` (`user_name`),KEY `last_login` (`user_last_login`),KEY `joined` (`user_joined`),KEY `confirm` (`confirm`));
    Добавляешь новые поля в таблицу `games`:

    Код:
    ALTER TABLE `games` ADD `stats` TINYINT(1) NOT NULL, ADD `views` INT(11) NOT NULL;

    Таблицы `heroes`, `items` и `news` уже имеются.
    С таблицами `heroes` и `items` (и в некоторой степени с `news`, хотя её можно пересобрать, если там много полезной информации) у тебя есть два выбора: просто дропнуть данные таблицы и создать вместо них таблицы с уже новой структурой либо для начала переименовать старые, оставив их для дальнейшего использования, а затем уже создать взамен них новые.

    1) Удаляешь или переименовываешь таблицы

    a. В случае если решил оставить
    Переименовываешь уже имеющиеся таблицы:

    Код:
    RENAME TABLE `heroes` TO `heroes_old`;
    RENAME TABLE `items` TO `items_old`;
    RENAME TABLE `news` TO `news_old`;
    b. В случае если решил удалить

    Удаляешь:

    Код:
    DROP TABLE IF EXISTS `heroes`;
    DROP TABLE IF EXISTS `items`;
    DROP TABLE IF EXISTS `news`;
    2) Взамен удалённых или переименованных таблицы создаёшь новые

    Код:
    CREATE TABLE `items` (`itemid` VARCHAR(4) NOT NULL,`code` SMALLINT(10) NOT NULL,`name` VARCHAR(50) NOT NULL,`shortname` VARCHAR(50) NOT NULL,`item_info` MEDIUMTEXT NOT NULL,`price` SMALLINT(6) NOT NULL,`type` VARCHAR(10) NOT NULL,`icon` VARCHAR(50) NOT NULL,PRIMARY KEY (`itemid`),KEY `name` (`name`));
    CREATE TABLE `heroes` (`heroid` VARCHAR(4) NOT NULL,`original` VARCHAR(4) NOT NULL,`description` VARCHAR(32) NOT NULL,`summary` VARCHAR(900) NOT NULL,`stats` VARCHAR(300) NOT NULL,`skills` VARCHAR(300) NOT NULL,`type` TINYINT(4) NOT NULL,PRIMARY KEY (`heroid`),KEY `description` (`description`),KEY `original` (`original`));
    CREATE TABLE `news` (`news_id` MEDIUMINT(8) NOT NULL AUTO_INCREMENT,`news_title` VARCHAR(255) NOT NULL,`news_content` MEDIUMTEXT NOT NULL,`comments` INT(11) NOT NULL,`news_date` INT(11) NOT NULL,`news_updated` INT(11) NOT NULL,`views` INT(11) NOT NULL,`status` TINYINT(4) NOT NULL,PRIMARY KEY (`news_id`),KEY `status` (`status`));
    Допроставляешь индексы:

    Код:
    ALTER TABLE `dotagames` ADD INDEX ( `min` );
    ALTER TABLE `dotaplayers` ADD INDEX `colour` (`colour`);
    ALTER TABLE `games` ADD INDEX `duration` (`duration`);
    TyMaH нравится это.
  7. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    10k reached, продолжение следует ->>


    Шаг четвёртый

    Наполняешь свежеизготовленные структуры новыми необходимыми и не очень данными.

    Для начала тебе необходимо в sql_heroes_items.sql, лежащего в директории install/, каким-то макаром избавиться от всех встречающихся последовательно идущих двух знаков дефиса '--'.
    sed -i 's/--/\n/g' sql_heroes_items.sql

    Затем зачищенный файл импортируешь в базу данных.

    По команде:
    Код:
    mysql -uПОЛЬЗОВАТЕЛЬ_БД -pПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_БД ИМЯ_БАЗЫ_ДАННЫХ < sql_heroes_items.sql
    либо через phpMyAdmin или любой другой клиент.

    Если открыть файл install.php находящийся в директории install/, то можно выцепить отсюда несколько запросов: добавление demo-информации в таблицы новостей и комментариев, а также создание аккаунта пользователя-администратора.

    Demo-информацию можно добавлять, можно не добавлять:
    Код:
    INSERT INTO `news` (`news_id`, `news_title`, `news_content`, `news_date`, `news_updated`, `views`, `status`, `comments`) VALUES (1, 'Hello world!', '<p>Welcome to OpenStats 3.2. This is your first post. Edit or delete it.</p>', UNIX_TIMESTAMP(), 0, 1, 1, 1);
    INSERT INTO `comments` (`id`, `user_id`, `page`, `post_id`, `text`, `date`, `user_ip`) VALUES (1, 1, 'news', 1, 'Hi, this is a comment.\nTo delete a comment, just log in and view the post&#039;s comments. There you will have the option to edit or delete them.', UNIX_TIMESTAMP(), '127.0.0.1');
    Самое главное создать учётную запись администратора, так как без неё попасть в администраторский раздел не получится.

    Код:
    -- Отображаемое имя администратора
    SET @admin_name = 'Admin';
     
    -- Почта администратора
    SET @admin_email = 'admin@openstats.com';
     
    -- Пароль администратора
    SET @admin_pass = 'p@55W0rd';
     
    -- Соль
    SET @salt = SHA1('(=#=!)0.o(?=#=)');
     
    INSERT INTO users(user_name, user_password, password_hash, user_email, user_joined, user_level,user_ip, confirm, can_comment) VALUES (@admin_name, CONCAT(SUBSTR(MD5(@salt), 1, 3), SHA1(CONCAT(@admin_pass, @salt)), SUBSTR(MD5(@admin_pass), 1, 3), SUBSTR(SHA1(@salt), 1, 3)), @salt, @admin_email, UNIX_TIMESTAMP(), 9, '127.0.0.1', '', 1);
    [IMG]


    Шаг пятый

    Переходишь непосредственно к конфигурации скрипта статистики, но для начала…
    Удаляешь директорию install/, больше она не понадобиться.
    Также в директории adm/, в файле .htaccess, рекомендуется удалить все строки кроме Options -Indexes.

    Открываешь файл конфигурации – config.php, ищешь и устанавливаешь соответствующие значения:
    Код:
    // Данные для соединения с базой
    $server = 'localhost';
    $username = 'root';
    $password = '';
    $database = 'ghost';
     
    /*
    Относительный путь от корневой директории
    сервера, вместе с доменом и протоколом,
    в моём случае это:
    */
    $website = 'http://openstats.hf/dos/v3/';
     
    /*
    Устанавливаешь соответствующий флаг,
    оповещающий о том, что статистика установлена
    */
    $OS_INSTALLED = 1;

    Всё, идёшь на свою страницу статистики, авторизуешься и рулишь.
    Guard и TyMaH нравится это.
  8. TyMaH Рекомендуемый

    Сообщения:
    154
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7
    А как быть если у тебя нет прошлой статы, и ты хочешь поставить чистую 3.0?
  9. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Отличие будет только в подготовке структуры таблиц.
    Точно так же действуешь, смотришь свою базу, смотришь приложенные *.sql файлы, ищешь чего не хватает, добавляешь недостающее.