Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

как установить помоги пожалуйста #1

Closed
centert opened this issue Jul 15, 2014 · 55 comments
Closed

как установить помоги пожалуйста #1

centert opened this issue Jul 15, 2014 · 55 comments

Comments

@centert
Copy link

centert commented Jul 15, 2014

скопировал yii
перенёс все папки в root
выдаёт пустую страницу
1
если запускаю index-test.php выходит
Warning: require_once(/home/artofwar/public_html/stats/../../framework/yii.php) [function.require-once]: failed to open stream: No such file or directory in /home/artofwar/public_html/stats/index-test.php on line 14

Fatal error: require_once() [function.require]: Failed opening required '/home/artofwar/public_html/stats/../../framework/yii.php' (include_path='.:/usr/lib/php') in /home/artofwar/public_html/stats/index-test.php on line 14

как будто yii не проинсталирован

@borodulin
Copy link
Owner

Структура каталогов с установленным фреймворком должна быть такой:
screen_wotdb

@borodulin
Copy link
Owner

  1. 1.1.15
  2. зависит от настроек на хостере. Можно удалить эту строчку, тогда сработает всё по умолчанию.
    CREATE
    /* DEFINER = 'artofwar_war'@'localhost' --эту строчку удалить */
    TRIGGER tr_wot_clan_update
  3. ошибки можно посмотреть в /protected/runtime/application.log
  4. если не удалять строчку, а объявить defined('YII_DEBUG') or define('YII_DEBUG',true); то в лог повалится более подробное описание ошибок.
    include(PDO.php) Скорее всего отключен PDO. Можно посмотреть на phpinfo() и определить какой движок имеется для связи PHP с MySQL. Именно его прописать в настройках соединения с базой в db.php
  5. в скрипте явно прописана база wotdb. Поправил скрипт wot_wn8_etv.sql, убрал привязку к базе.

@borodulin
Copy link
Owner

поправил схему, убрал DEFINER

@borodulin
Copy link
Owner

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

ALTER TABLE wot_wn8_etv
DROP FOREIGN KEY FK_wot_wn8_etv_wot_tank_tank_id;

схему тоже исправил

@borodulin
Copy link
Owner

тут проблема с PhpMyAdmin. А именно в разделителе. Пойти можно двумя путями:

  1. Определить разделитель. Вместо ; использовать например $$. как это делается, можно почитать например вот тут http://forum.php-myadmin.ru/viewtopic.php?id=327
    Если триггеры накатывать по одному, то можно именно так и поступить.
  2. Снести базу данных и создать заново, только не скриптом из окошка, а через импорт. В этом случае скрипт отработает с консоли, разделители будут пониматься так как надо.

@borodulin
Copy link
Owner

index-test.php запускать не нужно.
всё срубается, потому что нет внятного сообщения об ошибке инициализации... чтобы заработало, нужно запустить скрипт сканирования статистики. Сейчас в базе отсутствует запись с кланом, по которому нужно показывать данные.
нужно выполнить cron scan

@borodulin
Copy link
Owner

вместо многоточия нужно прописать правильный путь. а еще проверить что на yiic установлены разрешения на выполнение (eXecute)

@borodulin
Copy link
Owner

похоже, это ограничения хостера. нужно к ним писать в службу тех поддержки.
я добавил новый контроллер, http://stats.art-of-war-clan.com/cron/scan
можно вот так попробовать

@borodulin
Copy link
Owner

$yiic=dirname(FILE).'public_html/stats/protected/framework/yiic.php';
$config=dirname(FILE).'public_html/stats/protected/config/console.php';

require_once($yiic)
помогло?

@borodulin
Copy link
Owner

файлы db.php и mailroute.php есть в protected/config?

@borodulin
Copy link
Owner

  1. клан должен быть целым числом.
    2.http://www.templatemonster.com/help/ru/open_basedir-restriction-in-effect-filex-is-not-within-the-allowed-paths-y.html
    лучше всё-таки обратиться к хостеру...

@borodulin
Copy link
Owner

http://worldoftanks.ru/community/clans/161900
#161900 - вот это идентификатор клана

но это не поможет с проблемой open_basedir restriction

@borodulin
Copy link
Owner

не надо бред нести, ничего не должен.

'params'=>array(
'clan'=>целое число!
)

@borodulin
Copy link
Owner

'params'=>array(
'clan'=>100478,
A0W - не нужно

@borodulin
Copy link
Owner

open_basedir=none
либо прописать туда пути

@borodulin
Copy link
Owner

нужны логи.
/protected/runtime/application.log
и логи Web сервера и php

@borodulin
Copy link
Owner

/protected/runtime/ - разрешение на запись есть?

@borodulin
Copy link
Owner

тогда нужны ошибки от вебсервера
т.е. логи веб-сервера

@borodulin
Copy link
Owner

Нужно включить PDO на PHP. это расширение такое, чтобы можно было делать запросы к MySQL

@borodulin
Copy link
Owner

Call to a member function historyValues() - сделаю хорошее сообщение в ближайшее время, в целом это не критично.
Сейчас оно конкретно выдает, что в безопасных путях прописано:
/home/hillayco/public_html:/tmp:/home/hillayco/public_html/tmp:/home/hillayco/public_html/logs
а обращение идет в /home/artofwar/public_html/
т.е. ошибка вполне понятная. нужно добавить эти пути, либо развернуть в уже разрешенных.

@borodulin
Copy link
Owner

давай постепенно. сначала нужно чтобы отработал сбор статистики клана. cron/scan
вот если там ошибки валятся, покажи какие.

@borodulin
Copy link
Owner

исправил классы на дашборде, чтобы блоки правильно стояли.

@borodulin
Copy link
Owner

cron presense - сейчас исправил. на самом деле это была новая версия, не документированная.

сделал 2 акшина, вторая версия (которой пользуюсь я - presense2). там логика добавлена на управление группами в тимспике. Игроки, которые не являются членами клана отправляются в специальную группу - друзья. т.е. робот проходит по тимспику, смотрит кто есть, если пользователь не в клане - у него отнимается группа "Солдат"(член клана), ставится группа "Друг".

    'params'=>array(
            'clan'=>123132,
            'tsUri'=>"",
            'application_id'=>'',
            'tsGroupFriend'=>'Друг',
            'tsGroupMember'=>'Солдат',
    ),

cron presense2 - с этой логикой работы.

cron presense - просто посещаемость.

@borodulin
Copy link
Owner

кривой хостер... скорее всего для консольного php PDO не установлен. нужно показать phpinfo() из консоли.

@borodulin
Copy link
Owner

это phpinfo() с модуля апача, а нужен из консоли!

@borodulin
Copy link
Owner

сделал акшн в кроне,
public function actionIndex()
{
file_put_contents(Yii::app()->getRuntimePath().'/phpinfo.txt', phpinfo());
}

в protected/runtime будет файл phpinfo.txt

@borodulin
Copy link
Owner

c phinfo не всё так просто.

public function actionIndex()
{
    ob_start();
    phpinfo();
    $variable = ob_get_contents();
    ob_get_clean();
    file_put_contents(Yii::app()->getRuntimePath().'/phpinfo.txt', $variable);
}

@borodulin
Copy link
Owner

файл phpinfo.txt сюда выложить

@borodulin
Copy link
Owner

это акшн в команде. выполнить как все остальные акшины /protected/yiic cron index

@borodulin
Copy link
Owner

нужно обновить файлик /protected/commands/CronCommand.php
там есть этот акшн.
далее выполнить /..../wotdb/protected/yiic cron index

@borodulin
Copy link
Owner

extension=php_pdo_sqlite.dll
extension=pdo.so

"dll" - это для Windows'а, в Linux это "so"

@borodulin
Copy link
Owner

Что касаемо последней ошибки "statistic is not defined!" - это мой косяк...
выложил в protected/data новый скрипт, wot_statistic.sql. Нужно его выполнить. После этого должно работать!

@borodulin
Copy link
Owner

Динамика сейчас пустая, будет отражаться по мере накопления данных. Через день уже будут графики.

@borodulin
Copy link
Owner

500 - application.log нужно посмотреть.

@borodulin
Copy link
Owner

для этого отдельный отчет нужен...

@borodulin
Copy link
Owner

Нужно выполнить SQL:
ALTER TABLE wot_tank
ADD ivanner_kef decimal(3, 3) NOT NULL DEFAULT 0;

@borodulin
Copy link
Owner

еще вот этот скрипт:
UPDATE wot_tank SET ivanner_kef = 0.996 WHERE tank_id=3649;
UPDATE wot_tank SET ivanner_kef = 0.560 WHERE tank_id=3681;
UPDATE wot_tank SET ivanner_kef = 0.338 WHERE tank_id=4145;
UPDATE wot_tank SET ivanner_kef = 0.340 WHERE tank_id=5425;
UPDATE wot_tank SET ivanner_kef = 0.494 WHERE tank_id=6145;
UPDATE wot_tank SET ivanner_kef = 0.650 WHERE tank_id=6209;
UPDATE wot_tank SET ivanner_kef = 0.536 WHERE tank_id=6225;
UPDATE wot_tank SET ivanner_kef = 0.430 WHERE tank_id=6929;
UPDATE wot_tank SET ivanner_kef = 0.816 WHERE tank_id=7169;
UPDATE wot_tank SET ivanner_kef = 0.222 WHERE tank_id=7249;
UPDATE wot_tank SET ivanner_kef = 0.736 WHERE tank_id=8481;
UPDATE wot_tank SET ivanner_kef = 0.914 WHERE tank_id=8705;
UPDATE wot_tank SET ivanner_kef = 0.612 WHERE tank_id=9233;
UPDATE wot_tank SET ivanner_kef = 0.730 WHERE tank_id=9297;
UPDATE wot_tank SET ivanner_kef = 0.924 WHERE tank_id=9489;
UPDATE wot_tank SET ivanner_kef = 0.858 WHERE tank_id=10785;
UPDATE wot_tank SET ivanner_kef = 0.438 WHERE tank_id=11841;
UPDATE wot_tank SET ivanner_kef = 0.292 WHERE tank_id=12049;
UPDATE wot_tank SET ivanner_kef = 0.502 WHERE tank_id=12305;
UPDATE wot_tank SET ivanner_kef = 0.896 WHERE tank_id=12369;
UPDATE wot_tank SET ivanner_kef = 0.720 WHERE tank_id=13089;
UPDATE wot_tank SET ivanner_kef = 0.856 WHERE tank_id=13569;
UPDATE wot_tank SET ivanner_kef = 0.946 WHERE tank_id=13825;
UPDATE wot_tank SET ivanner_kef = 0.552 WHERE tank_id=13857;
UPDATE wot_tank SET ivanner_kef = 0.704 WHERE tank_id=13889;
UPDATE wot_tank SET ivanner_kef = 0.462 WHERE tank_id=14113;
UPDATE wot_tank SET ivanner_kef = 0.666 WHERE tank_id=14337;
UPDATE wot_tank SET ivanner_kef = 0.514 WHERE tank_id=14609;
UPDATE wot_tank SET ivanner_kef = 0.932 WHERE tank_id=14881;
UPDATE wot_tank SET ivanner_kef = 0.125 WHERE tank_id=15905;
UPDATE wot_tank SET ivanner_kef = 0.924 WHERE tank_id=16897;
UPDATE wot_tank SET ivanner_kef = 0.834 WHERE tank_id=16913;
UPDATE wot_tank SET ivanner_kef = 0.614 WHERE tank_id=17153;
UPDATE wot_tank SET ivanner_kef = 0.416 WHERE tank_id=58641;

@borodulin
Copy link
Owner

тоже SQL

@borodulin
Copy link
Owner

ничего. всё.

@borodulin
Copy link
Owner

поправил в репозитории, но в целом поставил просто заглушку. не знаю в чем там дело.

@borodulin
Copy link
Owner

заменить /protected/commands/CronCommand.php

@borodulin
Copy link
Owner

Очки считаются так:

  1. Был онлайн и больше нигде - это -1 (т.е. не принимал участие в клановых мероприятиях)
  2. Был онлайн и воевал на ГК - это +1 очко
  3. Было онлайн и был в ТС - это +1 очко
  4. Был оффлайн - 0

@borodulin
Copy link
Owner

праймтайм - это только учет посещаемости в ТС. настраивается кроном.
*/15 20-23 * * *
это расписание крона. означает что нужно смотреть каждые 15 минут начиная с 20 до 23 часов

@borodulin
Copy link
Owner

Поздравляю с успешной настройкой и установкой! это было не просто...

@borodulin
Copy link
Owner

Сила (Ivanner) - считается по формуле и коэффициентам Ivanner'а, для каждого игрока. Позиция клана в рейтинге зависит именно от силы.

@borodulin
Copy link
Owner

оо, спасибо за подарок!! ;)

@borodulin
Copy link
Owner

ГК нет - ничего страшного. будет только ТС учитываться.
yiic cron presense - всё правильно. это именно он смотрит в ТС.
еще нужно чтобы ники в ТС были правильно оформлены. ИмяВИгре(РеальноеИмя)

@borodulin
Copy link
Owner

ок. будут идеи - пиши. только в отдельный тикет :)
А я пока подумаю над инсталлятором ))

@borodulin
Copy link
Owner

кстати, тут есть еще авторизация через варгейминг, временно отключена была.
Обнови /protected/controllers/WotController.php - заработает.

@borodulin
Copy link
Owner

Доступ к большинству отчетов есть только у членов клана.

@borodulin
Copy link
Owner

на самом деле проект еще сыроват. продавать - хз, я не продажник... я это сделал просто ради интереса.

@borodulin
Copy link
Owner

я не готов этим заниматься по серьезному. чтобы продавать - нужен серьезный подход, делать коробочную версию, сопровождать. Ладно вот тебе помог, а если сотни людей пойдут с вопросами? - у меня на работу времени не останется.
Пускай пользуются кто хочет и кому нужно.
Было бы не плохо найти кого-то, кто хотел бы участвовать в развитии проекта. А в целом вот оно такое как есть.

@borodulin
Copy link
Owner

SQL запросом всё можно сбросить.

@borodulin
Copy link
Owner

посещаемость ГК лучше не трогать - это общая статистика игрока. а вот чтобы посещаемость тимспика грохнуть, нужно выполнить:
DELETE FROM wot_presense;

@borodulin
Copy link
Owner

да,, могу. давай этот тикет закроем. открой новый тикет про танки 8го уровня, а то тут дофига уже всего.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants