Чат Бородина - это продукт для Unix/Windows, написанный на PHP и использующий передовые веб-технологии, например так называемый "непрерывающийся коннект", благодаря которому сообщения в чат поступают постоянно без периодических перезагрузок окна. Чат имеет массу преимуществ и очень удобен в применении.
Программный продукт разделен на две части - он разделен на две части - серверная написана на языке TCL, запускается как отдельный сервис (демон), и веб-часть (клиентская) написана на PHP.
Для установки Чата Бородина http://php.spb.ru/chat/ использовался VDS под управлением VDSmanager (на хостингах FirstVDS и ISPserver для тестирования использовались минимальные тарифные планы) с темплейтами ISPmanager (Apache 1.3, PHP4) и Soft2006 (Apache 2.2, PHP5)
Также для работы чата потребуется TCL 8.4, он также входит в эти темплейты.
Оригинальный проект автора не развивается с 25.10.2003 и, как выяснилось, неработоспособен под современными браузерами, так, например, не работает в Internet Explorer 6.0 и 7.0 из-за передаваемой авторизационной информации в строке адреса (Microsoft посчитал такой способ небезопасным), а в Firefox 2 качество работы оригинальной версии чата 4.60 бета 9 желает лучшего.
Поэтому я не рекомендую использовать ее (фактически вы и не сможите воспользоваться им, так как в настоящее время нереально найти интернет-пользователей работающих с браузерами 2003 года без патчей) и в данный момент существует несколько проектов, которые поддерживают программный продукт в актуальном и рабочем состоянии. Установка его проводится аналогично описанию в статье.
Остановимся на одном из них, он наиболее живой и работоспособный. Сайт разрабочиков ChatMod.Net.Ru предлагает как коммерческий дистрибутив (текст статьи не в коем случае не является их рекламой, просто авторский проект сейчас неработоспособен в силу причин выше), так и бесплатную версию, об установке которой пойдет речь в данной статье.
Итак, приступим к установке Чата Бородина 4.6.11b + ChatMOD.Net.RU Modifications version 0.1
Использовался виртуальный выделенный сервер с темплейтом ISPmanager (Apache 1.3, PHP4)
Создаем пользователя chat через панель управления, даем ему возможности использовать PHP как CGI и доступ к шелл для вашего для удобства (после установки и настройки чата доступ к shell можно забрать), либо используйте команду su -m chat под root для смены пользователя
Создадим домен chat.example.com в меню WWW домены, включим для него PHP в режиме как CGI (возможно Чат будет работать и в режиме PHP как модуль Apache, только надо будет выставить нужные права на каталоги, но я предпочел первый метод, возможно также его удастся запустить под nginx+fpm (http://ihtiandr.info/unix/ustanovka-i-nastroyka-nginx-i-php-fpm.html)
Зайдя с правами пользователя chat в шелл выполним следующие действия (в его домашней директории)
Поправим настройку PHP для PHP в режиме CGI создав в каталоге php-bin файл php.ini с параметрами необходимыми для работы чата
%vi php-bin/php.ini
magic_quotes_gpc = Off
register_globals = On
Скачаем с сайта разработчиков бесплатную версию чата Бородина
%wget http://chatmod.net.ru/download/chat-4-60-11-beta-plus-chatmod-net-ru-modifications-0-1-1.rar
Для работы чата потребуется также библиотека TCLPro для FreeBSD
На сайте разработчиков http://chatmod.net.ru/page/download.html уже есть библиотека libtbcload1.4.so собранная под FreeBSD 6.3, но я собрал ее вручную, так как первоначально ставил оригинальный чат автора, ничего в этом сложного нет
Зайдем на сайт разработчиков http://tcllib.sourceforge.net/ и в разделе download следует скачать файл
% wget ftp://tcl.activestate.com/pub/tcl/nightly-cvs/tbcload-20061023.tar.gz
Для сборки tbcload нам понадобятся все хидеры tcl, тех, которые стоят в системе будет недостаточно, поэтому скачаем TCL8.4 На сайте http://tcl.sourceforge.net/ в разделе download находим и скачиваем файл
% wget http://downloads.sourceforge.net/tcl/tcl8.4.19-src.tar.gz
Далее следует его распаковать и собирать tcl (устанавливать не будем)
%tar xzfv tcl8.4.19-src.tar.gz
%cd tcl8.4.19/unix/
%./configure
%make
Затем распаковать и собирем tbcload
%cd /home/chat/data/
%tar xzvf tbcload-20061023.tar.gz
%cd tbcload
%./configure --with-tcl=/home/chat/data/tcl8.4.19/unix
%make
В каталоге /home/chat/data/tbcload появился файл libtbcload1.4.so - вернемся к нему позднее
Теперь следует распаковать и настроить чат
Удалите index.html который ISPmanager делает по-умолчанию
%rm /home/chat/data/www/chat.example.com/index.html
Распакуйте архив
%rar x chat-4-60-11-beta-plus-chatmod-net-ru-modifications-0-1-1.rar
Скопируйте веб-часть чата
%cd chat-php-spb-ru-04/www
%cp -R * /home/chat/data/www/chat.example.com/
Скопируйте серверную часть
%cd /home/chat/data/chat-php-spb-ru-04
%cp -R daemon /home/chat/data
Теперь приступим к настройке, в каталоге /home/chat/data/www/chat.example.com/ отредактируйте файл __dima.php
%vi __dima.php
Адрес сервера
$wwwhost="127.0.0.1";
Замените на
$wwwhost="chat.example.com";
Впишите любую строку из случайных символов, от 10 до 20 символов в параметры
$rand_password='12345fsdfsadfsf3r3rfdsfsa67';
$cookie_pass='1f2sadf34sdf5as6df7asdfasdf3d';
Установите тип операционной системы - система Unix
$os=0;
Замените на
$os=1;
Установите локаль чата
$locale=0
$locale_name=""
Поменять на
$locale=1
$locale_name="ru_RU.CP1251";
Укажите ник главного администратора чата
$admfirst=" логин зарегистрированного админа в нижнем регистре без пробелов по краям! ";
Поменять на
$admfirst="admin";
Пропишем пути к каталогу с демоном
$dpath="../daemon";
Я прописал как
$dpath="../../daemon";
Также отредактируем файл __phpini.php
%vi __phpini.php Укажем путь до PHP-сессий
Вместо
iniset("session.save_path","../php_sess");
Прописать
iniset("session.save_path","../../tmp");
Теперь можно приступить к настройке демона, его конфиг называется dima_chat.conf
%cd /home/chat/data/daemon/
%vi dima_chat.conf
set wwwhost "127.0.0.1"
Поменять на
set wwwhost "chat.example.com"
Путь к каталогу с HTML-файлами: z-channel.txt, z-scroll.txt
set phppath "../www"
set phppath "../www/chat.example.com"
Как называется файл настоек чата (этот файл, которые вы читаете)
set chat_config [info script]
set chat_config dima_chat.conf
Библиотека загрузчика для unix
#set library "tbcload13.dll"
set library "./libtbcload1.4.so"
Скопируйте библиотеку libtbcload1.4.so в каталог демона
%cp /home/chat/data/tbcload/libtbcload1.4.so /home/chat/data/daemon
И запустите демона (находясь в каталоге /home/chat/data/daemon)
%tclsh8.4 dima_chat.conf
Config loaded. Your TCL version: 8.4. Wait please...
------------------------------------------------------------
CHAT.PHP.SPB.RU, ver 4.60.beta11 (2003-12-01)
------------------------------------------------------------
Chat software (c) Dmitry Borodin, Russia, St.-Petersburg
------------------------------------------------------------
Before using, please read licence on http://php.spb.ru/chat!
------------------------------------------------------------
[17:58] **Starting** pid: 1111; TCL version: 8.4.19; HostName: chat-borodina.ispvds.com
[17:58] Listing chat.example.com:8888 ...
[17:58] OS name: FreeBSD chat.example.com 6.3-STABLE FreeBSD 6.3-STABLE #2:
Mon Jun 9 06:45:30 CEST 2008 root@dione.ispsystem.net:/root
/src/sys/i386/compile/ISPSYSTEM i386
[17:58] Encoding iso8859-1 ...
[17:58] Found charset for IRC-frame: windows-1251.
[17:58] Searching old session file...
[17:58] Opening main chat file: www-chat/chat.txt ...
[17:58] file clean - ok
[17:58] chmod 0777 www-chat/chat.txt - ok
[17:58] *** LOADED (1.65 sec) ***
Запуск прошел успешно
Заходите браузером (лучше использовать Internet Explorer 6, в 7.0 не тестировал, т.к. у меня его не оказалось под рукой) на http://chat.example.com/
Все работает, начальная настройка закончена. Зарегистрируйте пользователя admin (которого указали в $admfirst)
Избавимся от сообщения в правом фрейме
Notice: Undefined index: my_status in /home/chat/data/www/chat.example.com/frame_more.php on line 77
Для этого вновь отредактируйте __dima.php и поменяйте значение
define("debug",1)
на
define("debug",0)
Добавьте запуск демона в автозагрузку, для этого используйте cron пользователя chat
%crontab -e
@reboot cd /home/chat/data/daemon/ ; /usr/local/bin/tclsh8.4 dima_chat.conf >/dev/null 2>&1 &
Убедитесь что демон стартует после перезагрузки
# ps ax|grep tcl
7818 ?? SJ 0:00,50 /usr/local/bin/tclsh8.4 dima_chat.conf
Теперь чат установлен и работает.
Установка на VDS под управлением темплейта Soft2006 проводится также аналогично данной инструкции, при этом 4.6.11b работает без проблем в отличие от оригинального чата автора, никаких проблем отмечено не было.