~5 часов назад вышла DoS 3.0, затем через несколько часов вышло обновление 3.1 http://sourceforge.net/projects/dotaopenstats/files/OpenStats 3.0/ Кто-нибудь ставил уже? лично у меня ничего не вышло, через Install.php выводит ошибку, на последнем этапе. И не понял как делать запрос из sql_heroes_items.sql, там каша какая-то, половина закомментированно.
Забей, там полно недоработок. Жди пока автор еще выпустит апдейты. PS: OS2 был лучше. http://46.0.223.207/doska/
Уже ставили, прям сразу после её выхода. Работает на ура. Там просто инсталлятор кривой 3.0 был, если всё самому вставить, то без проблем пойдёт. + там установка идёт в чистую, т.е. если что-то в базе есть, оно всё затрёт. В 3.1 обещали вроде поправить. DOS 2.0 был лучше тем, что там на каждую страницу был свой отдельный файл, а тут всё вкинули в один километровый, плюс этот скунс до сих пор не соблюдает форматирование кода и не придерживается никакого стиля, в результате чего не комфортно производить поиск и изменения.
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. В ходе анализа ты устанавливаешь, что появились новые таблицы `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`);
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'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); Шаг пятый Переходишь непосредственно к конфигурации скрипта статистики, но для начала… Удаляешь директорию install/, больше она не понадобиться. Также в директории adm/, в файле .htaccess, рекомендуется удалить все строки кроме Options -Indexes. Открываешь файл конфигурации – config.php, ищешь и устанавливаешь соответствующие значения: Код: // Данные для соединения с базой $server = 'localhost'; $username = 'root'; $password = ''; $database = 'ghost'; /* Относительный путь от корневой директории сервера, вместе с доменом и протоколом, в моём случае это: */ $website = 'http://openstats.hf/dos/v3/'; /* Устанавливаешь соответствующий флаг, оповещающий о том, что статистика установлена */ $OS_INSTALLED = 1; Всё, идёшь на свою страницу статистики, авторизуешься и рулишь.
Отличие будет только в подготовке структуры таблиц. Точно так же действуешь, смотришь свою базу, смотришь приложенные *.sql файлы, ищешь чего не хватает, добавляешь недостающее.