This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ru:troubleshooting [2018/11/16 09:51] admin [Wrong skimming, wrong redirect, out does not work] |
ru:troubleshooting [2024/03/11 11:12] (current) admin [Server setup error, apache\nginx is running with user permissions - Warning] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Troubleshooting ====== | ||
+ | ===== It doesn' | ||
+ | |||
+ | Я рад вам помочь, | ||
+ | |||
+ | * Сделайте все апдейты, | ||
+ | * Попробуйте найти свой вопрос в траблшутинге или факе, скорее всего ответ там уже есть | ||
+ | * Напишите где именно проблема (урл, пункт в админке, | ||
+ | * Что именно вам выдало (ошибка, | ||
+ | * Если считаете что этого не достаточно - опишите что вы ожидали увидеть | ||
+ | |||
+ | Заранее спасибо! чем больше информации - тем быстрее и качественее будет помощь :) | ||
+ | |||
+ | ===== Page does not show ===== | ||
+ | |||
+ | не показывается, | ||
+ | |||
+ | |||
+ | ===== Does not count traffic ===== | ||
+ | |||
+ | |||
+ | 1. Проверьте работает ли крон. Вкладка Home. Если там нет надписи "check SCJ crontab job" - следуйте к следующим пунктам. | ||
+ | Если есть эта надпись, | ||
+ | Необходимо прописать запуск каждую минуту строки вида | ||
+ | |||
+ | cd / | ||
+ | |||
+ | |||
+ | 2. Если вы используете index.php Смарта убедитель, | ||
+ | В зависимости от настроек сервера по умолчанию при запросе урла | ||
+ | http:// | ||
+ | он может брать файл index.php или index.shtml или index.html и тд. Те если в каталоге лежит index.html - сервер грузит его вместо index.php (файл SmartCJ), те скрипт смарта не отрабатывает и хиты не считаются. | ||
+ | |||
+ | |||
+ | ===== How to view HTTP headers ===== | ||
+ | |||
+ | |||
+ | Это так же вариант, | ||
+ | Поскольку каждый клик проходит много правил - единственный вариант узнать почему вас редиректит туда а не сюда - это хедеры. | ||
+ | Итак в протоколе HTTP, говоря простым языком, | ||
+ | 99% всех редиректов происходит с использование хедера Location. Когда браузер получает от сервера такой хедер он сразу же идет по указанному урлу. | ||
+ | |||
+ | Итак, для того что бы посмотреть куда вас редиректит скрипт надо посмотреть хедеры. Это делается следующим образом (вариантов много, но мне кажется данный наиболее простой и требующий минимальных усилий): | ||
+ | - В settings - other включить out.php debug (Yes) (ждем минуту) | ||
+ | - Если у вас еще не установлен, | ||
+ | - Нажать Инструменты-Дополнения (Tools-addons), | ||
+ | - Открыть в ФФ свой сайт, из меню Инструменты (Tools) запустить Live HTTP Headers. Откроется новое окно, в котором будут видны все хедеры. Кликаете на любой ссылке и можете наблюдать как в этом окошке бегут запросы от вас к серверу. В этом надо найти строки вида | ||
+ | |||
+ | Location: http:// | ||
+ | |||
+ | это редирект. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Так же в хедерах может быть строки типа Current-Click: | ||
+ | |||
+ | ===== SmartCJ doesn' | ||
+ | |||
+ | Варианта 2: | ||
+ | |||
+ | **1. если вы используете для подсчета кликов инклуд** | ||
+ | |||
+ | Проверить это очень просто. Если вы используете include.php переименуйте его в include_scj.php и создайте файл include.php следующего содержания | ||
+ | |||
+ | <?php | ||
+ | $f = fopen(' | ||
+ | fputs($f, date(' | ||
+ | fclose($f); | ||
+ | include(' | ||
+ | |||
+ | потом создайте файл log.txt и chmod его 666 | ||
+ | |||
+ | Скрипт очень простой, | ||
+ | |||
+ | **2. если вы используете индекс смарта** | ||
+ | * создайте в корне файл log.txt и chmod 666 его | ||
+ | * оригинальный индекс (index.php смарта) переименуйте в index_scj.php | ||
+ | * создайте index.php следующего содержания | ||
+ | |||
+ | <?php | ||
+ | $f = fopen(' | ||
+ | fputs($f, date(' | ||
+ | fclose($f); | ||
+ | include(' | ||
+ | |||
+ | |||
+ | Все. | ||
+ | Скрипт очень простой, | ||
+ | |||
+ | **Если надо посчитать кол-во КЛИКОВ** все практически так же. | ||
+ | |||
+ | * out.php смарта переименовываем в scj_out.php | ||
+ | * создаем там же файл log.txt и 666 на него | ||
+ | * создаем out.php следующего содержания | ||
+ | < | ||
+ | <?php | ||
+ | |||
+ | if ($_COOKIE[' | ||
+ | $f = fopen(' | ||
+ | fputs($f, date(' | ||
+ | fclose($f); | ||
+ | } | ||
+ | |||
+ | include(' | ||
+ | |||
+ | </ | ||
+ | |||
+ | где **trader.com** соответственно нужный трейдер. | ||
+ | |||
+ | потом остается только посмотреть кол-во строк в лог файле за выбранный промежуток времени. | ||
+ | |||
+ | ===== All clicks are counted as nocookie. ===== | ||
+ | |||
+ | A: Клики считаются по кукам. При ИНЕ пользователю ставится кука, в которой записано от какого трейдера он пришел. При кликах считывается эта кука и соответствующему трейдеру зачисляется клик. Если при клике скрипт не может прочесть куку (ее нет) - скрипт записывает такие клики в nocookie. | ||
+ | |||
+ | Технология работы кук такова, | ||
+ | |||
+ | Что это значит в нашей ситуации: | ||
+ | http:// | ||
+ | а линк к ауту | ||
+ | http:// | ||
+ | (те без www), то на аут куки переданы НЕ будут и клики будут засчитаны как нокуки. Что бы такого не было надо все линки на аут делать относительными. | ||
+ | |||
+ | <a href=' | ||
+ | <a href='/ | ||
+ | |||
+ | |||
+ | Бывают частные случаи, | ||
+ | У трейдера прописана Personal Page. Трейдер шлет вам как | ||
+ | http:// | ||
+ | , а в Personal Page прописано | ||
+ | http:// | ||
+ | , те теряется кука. Что бы избежать этого лучше прописывать персональную страницу как путь те просто trader.html (без http:/ | ||
+ | |||
+ | |||
+ | ===== It redirects somewhere | ||
+ | |||
+ | Надо включить в Settings - Debug out.php, кликнуть на нужной ссылке | ||
+ | Обычно по хедерам в целом ясно что происходит. Если не ясно - создавайте тему на форуме с хедерами, | ||
+ | |||
+ | ===== It counts 3 times more traffic then I actually have ===== | ||
+ | |||
+ | Часто сталкиваюсь со сл. ситуацией: | ||
+ | |||
+ | Вариант 2: на корне лежит индекс смарта. При этом в [[CJ Pages]] так же прописан тот же индекс, | ||
+ | |||
+ | |||
+ | В любом случае проверить это достаточно просто. | ||
+ | |||
+ | 1. делаем тестовый темплейт где просто строка " | ||
+ | 2. открываем сайт как domain/? | ||
+ | 3. убеждаемся что в логе подсчета хитов только 1 запись с вашего ИП | ||
+ | 4. переносим в тестовый темплейт по частям то что у вас в индексе до того момента как заметите что считает 2 раза | ||
+ | ===== All traders are marked as banned by uribl.com ===== | ||
+ | |||
+ | Вероятнее всего проблема в настройках resolv сервера. | ||
+ | Скрипт проверяет наличие в бане этого сервиcа (http:// | ||
+ | host -tA trader.com.multi.uribl.com | ||
+ | |||
+ | Если домена нет в базе сервис должен ответить что-то вроде | ||
+ | |||
+ | Host trader.com.multi.uribl.com not found: 3(NXDOMAIN) | ||
+ | | ||
+ | Если у вас отвечает например "can not connect" | ||
+ | |||
+ | |||
+ | |||
+ | ===== It doesn' | ||
+ | |||
+ | |||
+ | Проверяет очень просто: | ||
+ | |||
+ | * создаем файл log.txt и 666 пермишены для него | ||
+ | * в common.php добавиваем ПОСЛЕ <?php добавляем следующий код | ||
+ | |||
+ | < | ||
+ | $f = fopen(' | ||
+ | fputs($f, date(' | ||
+ | fclose($f); | ||
+ | </ | ||
+ | |||
+ | |||
+ | Все. В скрипте как видно 3 строки, | ||
+ | |||
+ | |||
+ | ===== It doesn' | ||
+ | |||
+ | Сейчас гугл все больше любит сайты которые подписаны сертификатом (https). Вопрос трейда заключается в том, что по дефолту при переходе с https на http реферер не передается, | ||
+ | |||
+ | В этой ситуации есть 2 выхода: | ||
+ | |||
+ | - добавлять и слать на трейдеров с ИД. Те если у вас сайт с https то трейдеров вы добавляете как http:// | ||
+ | - Либо добавить <meta таг который скажет браузеру что в конкретной ситуации реферер передавать все же надо. | ||
+ | |||
+ | |||
+ | Таг добавляется в < | ||
+ | |||
+ | Есть следующие варианты значения тага: | ||
+ | * unsafe-url - передает реферер как есть, те полностью урл как все привыкли | ||
+ | * origin - только домен | ||
+ | * none-when-downgrade - пустой реферер если переход на http, и реферер ка обычно если переход на https | ||
+ | * none - ничего совсем | ||
+ | |||
+ | Из этого нас интерисуют только origin и unsafe-url. Технически для трейда достаточно origin. Однако, | ||
+ | |||
+ | Хотелось бы отметить, | ||
+ | |||
+ | |||
+ | ===== Wrong skimming, wrong redirect, out does not work ===== | ||
+ | |||
+ | 99% проблем с аутом решаются просмотром дебаг хедеров out.php | ||
+ | |||
+ | - Settings - включаем дебаг Add out.php debug comments = yes | ||
+ | - ждем минуту пока обновится конфиг | ||
+ | - кликаем на любом линке и смотрим хедеры (как смотреть хедеры и что это такое описано на этой же странице чуть выше) | ||
+ | |||
+ | Обычно по хедерам сразу ясно что как и почему, | ||
+ | |||
+ | ===== Global Admin does not work ===== | ||
+ | |||
+ | Если ГА не может скачать статистику с другого домена, | ||
+ | |||
+ | Проверить: | ||
+ | |||
+ | и смотрим какой ответ. Должно ответить HTTP/1.1 501 Password Error, если нет - значит надо смотерть админа куда на самом деле уходит запрос. | ||
+ | |||
+ | ===== Imagemagick lib path error ===== | ||
+ | |||
+ | Скрипт проверяет правильность пути основных либ, в том числе imagemagick. Проверка происходит как | ||
+ | |||
+ | < | ||
+ | exec("/ | ||
+ | </ | ||
+ | |||
+ | если $error не 0 (те произошла какая то ошибка, | ||
+ | |||
+ | < | ||
+ | <?php | ||
+ | exec("/ | ||
+ | echo $error; | ||
+ | </ | ||
+ | |||
+ | и проверить выводится ли ошибка. | ||
+ | |||
+ | ===== Cloudflare ===== | ||
+ | |||
+ | В целом большинство проксей http определяются по заголовку типа X-Forwarded-For | ||
+ | (в пхп он обозначается как HTTP_FORWARDED_FOR). При подключении Cloudflare сам запрос приходит от не от релаьного юзера, а то Cloudflare. Тут возникает 2 проблемы: | ||
+ | |||
+ | - реальный IP который должен быть в REMOTE_ADDR - это ИП не юзера, а Cloudflare | ||
+ | - Cloudflare добавляет хедер X-Forwarded-For и все хиты становяться проксями | ||
+ | |||
+ | Что делать: | ||
+ | |||
+ | - прочесть их доку по хедерам https:// | ||
+ | - прочесть как восстановить реальный ИП https:// | ||
+ | |||
+ | |||
+ | Так же можно без модов попробовать модификацией конфига , был интересный пример для nginx | ||
+ | |||
+ | < | ||
+ | if ($http_x_forwarded_for ~ " | ||
+ | set $xreal $2; | ||
+ | } | ||
+ | fastcgi_param HTTP_X_FORWARDED_FOR $xreal if_not_empty; | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== PHP version mismatch ===== | ||
+ | |||
+ | Скрипт работает под управлением IonCube Optimizer, | ||
+ | |||
+ | Но бывает что на сервере стоит несоклько версий пхп, одна из них является дефолтной. Например если просто в шеле написать | ||
+ | |||
+ | < | ||
+ | |||
+ | user@server: | ||
+ | PHP 7.0.33-0ubuntu0.16.04.16+esm4 (cli) ( NTS ) | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | то можно увидеть что дефолтная версия - 7.0.33, при этом для веба может быть включена другая версия. | ||
+ | |||
+ | Открываем scj/ | ||
+ | |||
+ | Получается, | ||
+ | |||
+ | Надо просить админа унифицировать версии. | ||
+ | |||
+ | |||
+ | ===== Full description copy - Warning | ||
+ | |||
+ | По умолчанию слейв имеет те же дески, что и мастер. Фактически он использует таблицу мастера с десками. Можно рассоединить дески мастера и слейва, | ||
+ | |||
+ | |||
+ | Иногда люди рассоединяют дески, однако не меняют дески. | ||
+ | |||
+ | В чем минус: | ||
+ | |||
+ | - для слейва создается таблица с теми же десками, | ||
+ | - mysql кеширует и таблицу мастера и таблицу слейва, | ||
+ | |||
+ | Поэтому если вы не меняете дески на слейве то лучше не рассоединять и экономить ресурсы сервера. | ||
+ | |||
+ | |||
+ | ===== Server setup error, apache\nginx is running with user permissions - Warning | ||
+ | |||
+ | |||
+ | Во всех системах есть разделение прав пользователей. Например, | ||
+ | |||
+ | Так же есть разграничение прав пользователя и вебсервера (апач\nginx). Например, | ||
+ | |||
+ | Иногда, | ||
+ | |||
+ | |||
+ | Однако, | ||
+ | |||
+ | |||
+ | ===== You are behind proxy - Warning | ||
+ | |||
+ | Для скрипта важно правильно находится ли пользователь за прокси, | ||
+ | |||
+ | Прокси определяются по наличию хедеров в запросе (HTTP_X_FORWARDED_FOR, | ||
+ | |||
+ | Но часто при настройке nginx + apache не настраивают передачу хедеров. Получается что приходит запрос с ИП 22.22.22.22 на nginx , он должен этот запрос передать апачу и " | ||
+ | |||
+ | Что б такого не было в апаче есть моды которые автоматически обрабатывают такую ситуацию (mod_remoteip, |