Многосерверные конфигурации (в основном для админов)
Перенос между серверами
Скрипт логически разделен на несколько независимых от месторасположения (на серверах) частей :
- база данных
- админки (вебмастерская и овнера)
- дизайны платников
- мемберзоны
- FHG/FHS
Эти части могут быть расположены на на разных серверах в произвольном порядке, единицей деления для платников и FHG является домен (дизайн и мемберзона являются отдельными частями)
Ограничений по числу серверов нет, на данный момент максимально большой реально работающей конфигурацией является связка из 12 серверов
У каждого сервера в партнерке есть приписанный ему отдельный ID (srv_id)
Список их ведется в Settings / Sites / [ servers list ] :
- ID создаются автоматически по порядку при добавлении
- Name - текстовое описание сервера для дальнейшего использования в админке (хостер, etc)
- для удаления сервера из списка нужно сделать update с пустым Name
Соответствие конкретного сервера его ID указывается параметром srv_id в файле конфигурации
/etc/partner.conf на этом сервере
Для каждого дизайна платника, мемберзоны, домена FHG/FHS в их настройках указывается на каком именно сервере из списка он расположен
NOTE ! точное соответствие сервера в настройках элемента партнерки его реальному расположению чрезвычайно важно; при неправильно указанном сервере правильная работа не только не гарантируется -
гарантированно не будет работать; при всех переносах сайтов между серверами не забывайте указывать это в админке скрипта
- Обновление локальных конфигов (saveconfig.cron)
При работе скрипт считывает конфигурацию не напрямую из базы, а использует заранее сохраненные plain-text файлы конфигурации (каталог /home/dp/spool, файлы site.*, ban.*, geo.*, members, aliases, etc)
За апдейт этих конфигов на данном сервере отвечает крон-скрипт
saveconfig.cron, который должен запускаться из крона раз в минуту на
каждом сервере партнерки
Причины для изменения конфигов - добавление сайта, FHG галерей, регистрация вебмастера, etc; скрипт определяет на каких серверах необходимо обновление и делает пометки в базе для saveconfig.cron
В админке в Settings / Sites (FHG/FHS) сайты расположенные на этих серверах отмечаются (
*), при нормальной работе скрипта эта отметка должна исчезнуть максимум через минуту, после отработки saveconfig.cron на соответствующем сервере(ах)
Подключение / смена сервера, перенос сайтов между серверами
- Копирование каталога скрипта
Копируется целиком каталог /home/dp со всеми подкаталогами и сохранением прав на них (рекомендуется tar)
Так же желательно заранее создать ssh-аккаунт для саппорта и установить его владельцем этого каталога
Если операционные системы бинарно несовместимы между собой - обратиться к сапорту для перекомпиляции
- Настройка файла конфигурации и доступа к базе
- настраивается доступ к базе партнерки с нового сервера
- копируется файл конфигурации и соответственно правятся db* параметры в нем
- при добавлении нового сервера в партнерку - создается новый сервер в админке (см. выше) и указывается его srv_id в конфиге
Тестирование - запустить saveconfig.cron -v (полное обновление конфигов) и проконтролировать что файлы конфигурации в /home/dp/spool обновились
Прописать saveconfig.cron в крон
Дальнейшие действия зависят от от списка частей партнерки, которые переносятся :
- Мемберзоны платников
- проверить в админке в настройках сайтов правильность указания путей к файлам паролей мемберок и логам апача на новом сервере
- если необходимо - сменить в админке сервер, на котором они расположены
- запустить скрипты analyze.cron и parse.cron с параметром -v, проверить что они находят файлы и логи
- прописать эти два скрипта в crontab
- если используются скрипты сообщения о бане - перенести на новый сервер
- Дизайн платников, домены FHG / FHS
- проверка наличия PHP в апаче
- переключение DNS и тестирование обработки трафика :
- зайти на каждый сайт (1-2 галереи из домена для FHG) по вебмастерскому линку
- проверить обработку echo $dpid или echo $fhgid для галер
- убедиться что в файл /home/dp/spool/stats записывается статистика
- запустить clicks.cron -v и проверить появление статистике в админке
- прописать clicks.cron в крон
- Смена главного сервера (админки и база)
- копирование скрипта
- копирование базы и файла конфигурации
- на всех остальных серверах - правка доступа к базе в конфиге
- перенос сайтов / мемберок / FHG, как описано выше
- настройка админок - в VirtualHost домена партнерки добавить
ScriptAlias /admin /home/dp/admin
ScriptAlias /partners /home/dp/memb
ScriptAlias /cust /home/dp/cust
Alias /dpwww /home/dp/www
- note : /partners - это каталог вебмастерской статистики; на вашей партнерке может быть другим (/resellers, /stats, etc), соответственно изменить
- полностью скопировать crontab_example
- для биллингов с привязкой к серверу :
- с ограничением по IP забора статистики (ex. CCBILL, VXSBill) - прописать в админке билла или сообщить саппорту биллинга IP нового сервера
- Paycom - настроить и сообщить им новый доступ к базе