Решение проблем
В общем случае
Если возникли какие-либо ошибки при работе скрипта, в первую очередь необходимо посмотреть в папку /ftt2/system/logs/ и найти там текстовые файлы с логами ошибок. Туда записываются все ошибки mysql и php. Если там видны ошибки mysql, необходимо починить таблицы ftt2 используя phpMyAdmin ( выберите базу данных, выделите все таблицы и в выпадающем меню выбрать «Восстановить таблицу» ). Таблицы могут быть повреждены из-за аварийного отключения питания сервера. Другая распространенная причина — переполнение разделов диска. Можно проверить не переполнены ли разделы диска с помощью команды df -h
в терминале ssh и освободить место на разделах.
Проблемы при апгрейде
Fast Traffic Trader 2 может обновляться автоматически, в один клик для всех сайтов в сети . Для этого надо зайти в Maintaince->Sites Management и кликнуть Upgrade all Sites если есть новая версия. Через несколько минут апгрейд будет завершен. Если некоторые сайты находятся в состоянии upgrading очень долгое время, то это может быть из-за того, что на них нет трафика и скрипт крона не запускается. В этом случае можно запустить скрипт крона вручную набрав в браузере адрес http://example.com/ftt2/cron.php (где example.com — Ваш сайт ).
Если Вы заметили, что после апгрейда имеются проблемы в работе скрипта, в первую очередь, посмотрите в папку /ftt2/system/logs/ и найдите там лог с ошибками — это может помочь Вам определить проблему. Во-вторых — Вы можете обновить файлы вручную, загрузив архив из http://www.ftt2.com/updates/ и разархивировав его поверх папки ftt2, исключая такие пути как ftt2/config.inc.php, ftt2/install, ftt2/toplists, ftt2/system/templates/toplists. Таким же образом можно сделать даунгрейд, загрузив одну из предыдущих версий и изменив название версии в Settings->Other. И само собой необходимо обратиться в поддержку FTT2, но если в данный момент она недоступна, то по крайней мере Вы можете сделать даунгрейд.
Перемещение скрипта на другой сервер
Чтобы переместить скрипт на другой сервер, следуйте следующим шагам:
- Проверьте, что время на сервере установлено верно ( На сервере может быть установлена другая зона времени, но время по гринвичу должно быть корректным).
- На старом сервере заархивируйте файлы аtt2 используя команду tar из терминала ssh:
tar zcf ftt2.tar.gz /path/to/your/site/ftt2
( или можно переместить файлы на другой сервер как-то иначе ) - На старом сервере заархивируйте базы mysql используя команду mysqldump из терминала ssh:
mysqldump -u mysql_user --password=mysql_password --databases ftt2_local ftt2_shared ftt2_global | gzip > ftt2.sql.gz
. Важно! Если у Вас уже есть сайты на новом сервере, которые принадлежат к той же сети сайтов, что и перемещаемый, то необходимо заархивировать только локальную базу! ( смотри руководство по установке по поводу local, shared и global баз ). Если же на новом сервере нет сайтов той же сети, но global database остается на старом сервере или на каком-то другом сервере (или она уже на новом сервере), необходимо заархивировать только local и shared базы. В остальных случаях надо архивировать все базы. - Переместите ftt2.tar.gz и ftt2.sql.gz на новый сервер используя команду scp из терминала ssh:
scp ftt2.tar.gz ssh_user@new_server_ip:/path/to/your/site
;scp ftt2.sql.gz ssh_user@new_server_ip:/path/to/your/site
( или переместите их каким-то другим образом). - На новом сервере разархивируйте ftt2.tar.gz в каталоге Вашего сайта:
tar zxf ftt2.tar.gz
. - Измените пользователя-владельца файлов на пользователя, под которым работает апач:
chown -R apache_user /path/to/your/site/ftt2
или измените права на 0777 для всей папки и вложенных файлов и папок:chmod -R 0777 /path/to/your/site/ftt2
. Альтернативно, можно установить права 0777 только на некоторые каталоги как описано в руководстве по установке и после перемещения скрипта на новый сервер изменить настройки FTP/SFTP для скрипта автоапдейта в Maintaince->Sites Management. - На новом сервере восстановите из архива базы данных используя следующую команду в теминале ssh:
zcat ftt2.sql.gz | mysql -u mysql_user --password=mysql_password
. - Отредактируйте ftt2/config.inc.php и смените настройки доступа к mysql, если они другие на новом сервере.
- Если Вы переместили также global database, надо отредактировать настройки доступа к mysql в config.inc.php для всех установок FTT2, которые используют эту базу.
- Зайдите в Maintaince->Sites Management и отредактируйте перемещенный сайт так, чтобы настройки доступа mysql указывали на базу на новом сервере. Также проверьте Upgrade parameters.
Альтернативный путь:
- Установите скрипт с нуля на новый сервер, как описано в руководстве по установке. Можно устанавливать его как дополнительный сайт в сети сайтов.
- Импортируйте всех стрейдеров, статсы и настройки со старого сайта с помощью Maintaince->Import Stats and Traders. Процесс импортирования может быть долгим, не перезапускайте его. Учтите, что не все настройки могут быть импортированы.
- Удалите старый сайт из Maintaince->Sites Management если Вы установили сайт как дополнительный в сети сайтов.
Сегодня ставил ftt2 в связке с cj-скриптом и столкнулся с проблемой — cj-скрипт выдавал ошибку «Access denied for user ‘apache’@’localhost’ (using password: NO)» на страницах, где было соединение с базой.
Пошаманив, понял, что дело во вставке in.php в header-файл (тоже на php).
По всей видимости, in.php закрывает соединение с базой по завершению работы и header ничего не знает об этом.
Сделал хак ниже в виде переподключения к базе после вставки in.php
Криво, но работает.
Думаю, в настройках ftt2 стоит добавить пункт «Close DB-connection after the in.php work finishing» (Yes/No) с ‘Yes’ по умолчанию, или что-то вроде того.
Странно… Вообще-то in.php открывает свое соединение к базе дополнительно к существующим соединениям, если они уже открыты в файле откуда in.php инклюдится. И только это соединение потом закрывает. Открытые до него остаются открытыми.
Сегодня, после обновления системы все мои сайты легли и трейды лежали с полчаса, пока искал ошибку в коде.
Проблема была в in.php. На время отладки файл пришлось убрать со всех сайтов, что в итоге, конечно, немного исказило статистику часа.
Запуск ‘php in.php’ из консоли выдавал ошибку синтаксиса.
Оказалось, что в 3-й строке вместо
<? while(1):
нужно было указать
<?php while(1):
В моем апаче по умолчанию стоит, что php — это <?php
Его конфиг я, конечно, поправлю, но это жесть, однозначно.
Рекомендую проверить весь оставшийся код на подобные вещи — ни у одного меня <? может не обрабатываться.
Прошу прощения за досадную ошибку! Я сначала проверяю все апдейты на своих сайтах, но в данном случае из-за разных конфигов апача эта ошибка была пропущена. Дистрибутив поправлен.
В этом разделе помощи описаны возможные пути решения, если возникают подобные проблемы при апдейте. Всегда можно перезалить более старую версию поверх. Взять отсюда — http://www.ftt2.com/updates/ ( не забыть удалить из архива каталоги и файлы, указанные в этом руководстве ) . Даже если в новой версии были изменения в базе, старая версия будет работать с новой базой. А когда я буду онлайн, я смогу решить эту возникшую проблему.
hi, is there another as calling include_once(‘/path/to/your/site/index/directory/ftt2/in.php’); ?
somehow it’s causing a problem with my mechbunny tube script, that some functions won’t work.
thanks
ok solved, needed to add into my tube script db.php and not into the template header and everything working fine. thanks
как восстановить пассворд в админку на ftt2 ?