Любой хостинг на Linux подойдет, никаких особенных требований нет.
PHP 5.2.4 или выше, MySQL 5.0 или выше. Apache или nginx. Для экспорта в Excel потребуется PHP модуль xmlreader. Системные требования такие же как у Wordpress, этим требованиям отвечают все современные хостинги.
Если у вас меньше 20 тысяч переходов в день, то можно на хостинг.
Достаточно обычного хостинга.
Вам нужен отдельный домен или поддомен. Вы также можете установить трекер в папку существующего домена.
Вы можете скачать трекер и установить его на свой хостинг. В этом случае вам потребуется домен (можно использовать папку в существующем домене). Или вы можете зарегистрироваться в онлайн-версии, ссылка на главной странице и использовать трекер не устанавливая ничего на свой сервер.
server {
listen 80;
server_name www.myserver.com myserver.com;
root /path/to/cpatracker;
index index.php ;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
location ~ ^/track/cookie\.js$ { rewrite ^/.*$ /track/cookie.php; }
location /track/ { try_files $uri $uri/ @track; }
location @track { rewrite ^/track/(.*)$ /track/track.php?track_request=$1 last; }
location ~ \.php$
{
fastcgi_index index.php;
fastcgi_pass backend;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
Раздел про буфера возможно не понадобится, если они соответствующим образом описаны в глобальном конфиге, но с дефолтными настройками его нужно оставлять, так как некоторые урлы (отчет "переходы по ссылкам" в частности) без него не обрабатываются.
Апстрим должен быть описан соответствующим образом в глобальном конфиге, например так:
upstream backend {server unix:/tmp/fcgi.sock;}
Отчеты, учет переходов и постбэков на этом конфиге оттестированы, все работает.
К сожалению, нет.
Да. У нас есть пользователи, которые используют CPA Tracker и данный хостинг.
На любой вопрос, который связан с нагрузкой или shared хостингами очень сложно ответить однозначно. Слишком много параметров могут отличаться от хостинга к хостингу. Какие ресурсы ограничивает ваш хостер, что происходит при их превышении, какой у вас сервер и какая скорость дисков, как настроен PHP, какой используется веб-сервер и как работает файловый кеш.
Я могу дать базовую информацию о работе трекера, а вы уже самостоятельно или вместе с системным администратором сможете принять решение о максимальной нагрузке или способах ее увеличения на конкретной конфигурации.
Для того, чтобы трекер мог работать на максимальном количестве хостингов, он использует максимально простые, я бы даже сказал примитивные механизмы.
Каждый переход дописывается в текстовый файл с блокировкой записи, имя файла выбирается исходя из текущей минуты.
file_put_contents(dirname (__FILE__).'/cache/clicks/'.'.clicks_'.date('Y-m-d-H-i'), $str, FILE_APPEND | LOCK_EX);
Каждую минуту (или сколько вы поставили при настройке крона) выполняется скрипт process_clicks.php, который берет данные из текстовых файлов и сохраняет их в базу данных mySQL.
Файлы текущей или прошлой минуты не обрабатываются, так как в них еще может осуществляться запись. За один раз обрабатывается не более 60 последних файлов.
Перед сохранением записи в mySQL подключаются несколько библиотек (WURFL для определения мобильных устройств, MaxMind для определения страны, UAParser для определения типов браузеров), после чего выполняется SQL запрос INSERT к таблице tbl_clicks. Данные вставляются по одному переходу за раз, группировки нет. Использование библиотек занимает какое-то время, плюс есть время на вставку в базу данных.
Какие у данной схемы есть потенциальные узкие места? Здесь можно расписывать подробнее, но я исхожу из того, что если вы уже начали заниматься вопросом тюнинга сервера, то базовое понимание этих вещей у вас есть и как их решать вы тоже знаете.
1. Скорость поступления запросов к /track/
2. Блокировка записи в текстовый файл и очистка данных за текущую минуту при сбоях в механизме блокировки
3. Скрипт process_clicks.php не успевает обрабатывать данные за 1 минуту (интервал крона) и начинают запускаться новые копии данного скрипта
4. Количество данных для INSERT вставки замедляет базу и данные начинают накапливаться
5. База ложится по любой причине и INSERT проходит в никуда
6. Скрипт process_clicks.php работает медленнее чем данные накапливаются в файлах и расхождение по времени между файлами и базой увеличивается
Хочу отметить, что в большинстве случаев вы вряд ли столкнетесь с какой-либо из этих проблем. Если количество переходов не превышает 30-40 тысяч в день, скорее всего любая конфигурация хостинга будет работать. А если у вас больше трафика, то вы без труда сможете решить проблему или тюнингом сервера (к примеру, уже есть успешные установки на nginx+php-fpm) или подключением дополнительных механизмов (memcache, nosql), правильной настройкой интервала для запуска крона или косметическими исправлениями скриптов track.php и process_clicks.php.