Чат, его установка и настройка
ЧАТ. Установка, настройка
Лекция. Подготовлена Прохоровым В.С.
Web Form Chat
Наиболее распространенным из всех видов чатов является Web Form Chat. Для него не нужны специальные программы или модули: можно использовать обычный браузер. Для участия в беседе нужно подключиться к серверу, обеспечивающему функционирование чата. Такие серверы, называют чат-серверами. Если сайт англоязычный, соответствующий его раздел будет назван chat-room — комната для бесед. При соединении с сервером на компьютер загружается web-страница с элементами для отправки реплик и отображения принятых ответов. Введя свою фразу, вы отправляете ее на сервер, после чего она помещается, вместе с фразами других участников беседы, на специальную страницу, рассылаемую на компьютеры пользователей.
Ссылку на чат-сервер можно найти на главной странице поисковых систем или на сайтах компаний. Вот несколько адресов чат-серверов: http://www.chat.ru; http://chat.talk.ru; http://www.chillout.net.ru. После загрузки web-страницы с чатом, нужно найти ссылку, указывающую на подключение к беседе. Эта ссылка может называться «Чат», «Вход в чат» или подобным образом. Воспользовавшись ссылкой для входа в чат, вы окажетесь на странице регистрации пользователя.
Разные компании придерживаются разной стратегии по отношению к пользователям. Одни считают, что в их чат могут входить только пользователи, зарегистрированные в системе. В этом случае имя пользователя и пароль, дающие право принять участие в беседе, одновременно являются пропуском в другие разделы. Например, с их помощью можно проверить содержимое зарегистрированного на том же сервере почтового ящика или пополнить содержимое своей web-страницы. На странице регистрации такой компании от вас потребуют заполнения большой анкеты с личными данными.
Другие предоставляют доступ в чат любому человеку. Но в этом случае вам все равно придется указать имя пользователя. Пароль может и не потребоваться. В подобных системах общения принято представляться не настоящими именами, а псевдонимами (в английском варианте — nickname — кличка). При входе в чат, сервер сообщает участникам о том, что к ним присоединился новый собеседник, а все ваши сообщения подписываются псевдонимом. На жаргоне псевдоним или имя пользователя часто называют «nick» или «ник» (от nickname).
Многие чат-серверы одновременно поддерживают несколько «комнат для бесед» — каналов. Каждый канал, как правило, характеризуется своей темой. Если чат разделен на каналы, вам придется выбрать один из них при входе на сервер. В ходе беседы можно сменить канал.
Оказавшись в «комнате для бесед», вы увидите перед собой следующую картину: часть окна браузера отведена под отображение сообщений, имеется строка для ввода сообщения (обычно в нижней части окна), рядом со строкой ввода находится кнопка Отправить (Send) или другая с аналогичным названием. Эта кнопка служит для отправки сообщения в чат. Там же могут находиться и другие элементы, например, список участников.
После того как вы освоитесь с элементами страницы, можно приступать к разговору. Обычно это происходит следующим образом: вы вводите в строке свое сообщение и нажимаете кнопку Отправить (часто можно нажать клавишу Enter), кто-то из участников отвечает вам, вы ему и так далее.
В большинстве случаев можно видеть на экране, от кого пришло сообщение. Это позволяет обратиться к нужному человеку по имени (пусть даже нику). Можно просто указать имя в сообщении, чтобы человек знал, что эта реплика обращена к нему. Часто при помощи специальной команды (или просто путем ввода имени в специальном поле) можно отправить участнику беседы личное сообщение. Его увидите только вы (как отправитель) и ваш собеседник. Иногда в процессе разговора можно пересылать другим участникам беседы различные файлы, например, изображения. Так как сообщения выводятся в виде HTML-документа, имеется возможность «разукрасить» свои сообщения при помощи тегов HTML. Однако это часто запрещается администраторами чата. Даже если вы можете отправлять в чат изображения и другие элементы HTML, не злоупотребляйте этим. Многим может не понравиться.
Для того чтобы придать своим выражениям эмоциональную окраску можно использовать «рожицы» (комбинации символов, выражающие эмоции). Некоторые чат-серверы распознают подобные комбинации символов в сообщениях и при отображении заменяют их графическими изображениями (рожицами).
В процессе общения на русскоязычных сайтах можно заметить, что некоторые из участников используют для написания русских слов латинские буквы (eto viglyadit primerno vot tak). Это может означать, что человек работает на компьютере, не оснащенном русскими шрифтами. Некоторые чаты содержат специальные системы перекодировки. Они позволяют пользователям выбрать, в какой кодировке следует отправлять им обновленное содержимое «разговора». Запись русских слов латинскими буквами называется транслитерацией. Поэтому такую кодировку символов часто называют Translit. Так как латинские буквы одинаково отображаются в разных кодовых таблицах, транслитерация позволяет прочесть текст независимо от того, установлены на компьютере русифицированные шрифты или нет.
По окончании разговора следует выйти из чата. У сервера могут возникать проблемы с определением того, почему пользователь долго не отвечает, — или он просто сидит и смотрит, что пишут другие, или отключился от системы. Поэтому в чате обычно предусматривают кнопку или ссылку выхода из системы (Выход, Отключиться, Exit и так далее). Воспользуйтесь ей для того, чтобы покинуть чат. При этом вы не создадите лишних проблем серверу и себе, так как если вас будут считать подключенным к чату, то подключиться второй раз могут и не дать.
Многие считают, что, «дорвавшись» до анонимного общения, можно делать что угодно, но это не так. За злостные нарушения порядка могут «выставить» из чата, а то и вовсе лишить доступа к нему. Кроме того, если кто-либо из участников серьезно на вас обидится, то он может принять личные меры, например, «сломать» ваш электронный почтовый ящик. Для того чтобы избежать конфликтов и насладиться беседой, запомните и выполняйте правила общения. Придерживайтесь темы разговора. Многие чат-серверы (или каналы сервера) специализируются на конкретной тематике. Отклонения от заданного направления допускаются. Но если вы будете говорить о далеком от основной темы, вас могут просто проигнорировать или «выбросить» из чата. Если вы хотите просто поболтать, выберите канал или сервер с широкой темой для общения. Избегайте употребления ненормативной лексики и других ругательств. Электронное общение расслабляет человека, и многие дают волю своему языку (рукам). Для любителей общаться не на литературном русском языке, существуют специальные чаты. Старайтесь использовать язык, на котором общается большинство из присутствующих в чате. Многие чат-системы ревностно следят за чистотой происходящего в них общения. В таких серверах могут использоваться автоматические системы, выдающие предупреждение при использовании «плохих» слов.
Чат – Simple Chat
Чат Simple Chat (http://hot-things.net ) —написан на РНР. Работает быстро, вывод сценария небольшой, поэтому нет большой нагрузки на трафик. Архив чата занимает 34 Кб. Преимущества чата Simple Chat:
● Быстрая загрузка (3...9 Кб за каждое обновление).
● Простая установка, не требует MySQL.
● Поддерживается форматирование текста — жирный, курсив, а также выделение текста цветом, 20 цветовых схем.
● Различные пиктограммы пользователей — пользователь сам выбирает свою пиктограмму.
● Поддержка смайликов и гиперссылок.
● Автоматическое обновление через 5, 10, 20, 30 или 60 секунд (можно выбирать).
● До 150 строк истории (предыдущих сообщений).
● Список online-пользователей.
● Звуковое сопровождение — при получении нового сообщения вы услышите звуковой сигнал.
● Переведен на разные языки, в том числе русский.
● Оптимизирован под браузеры MSIE, Netscape, Opera, Mozilla.
В то же время:
● Отсутствует аутентификации пользователей.
● Чат легко взломать — получить возможность писать сообщения от имени другого пользователя.
● Отсутствует приватная комната.
Но чат — не место для ведения секретных переговоров. Для этого рекомендуют использовать SSL-соединения.
Чат работает сразу после установки. Не нужно ничего менять или переписывать заново. Для русификации чата нужно открыть файл incl/hdr.inc и измените последнюю строку include "lang/lang-en.inc"; строкой include "lang/lang-ru.inc";
Для работы с чатом в строке браузера вводят URL, например: http://localhost/schat/. Открывается окно для регистрации:
Нужно ввести свой Ник выбрать пиктограмму и нажать ОК. Открывается чат – комната:
Simple Chat отображает сообщения в формате «Дата/Время», «Ник», «Сообщения». Справа расположен список «Online-собеседники» — тех, кто работает с чатом в данный момент времени.
В нижней части окна находится панель управления чатом. Здесь можно:
● Отправить простое сообщение.
● Отправить форматированное сообщение (допускается использование цвета, изменение начертания, вставка смайликов и гиперссылок).
● Изменить цветовую гамму: в нижней части панели находятся 20 цветных прямоугольников — это кнопки выбора цветовой схемы.
● Включить/выключить звуковое сопровождение.
● Изменить режим работы чата: Чат/Архив/Выход/Очистить/Инфо.
Наиболее часто используют режимы работы: «Архив» и «Выход». Режим работы «Архив» можно модифицировать.
По умолчанию отображаются 150 последних сообщений. Если нужно это число увеличить (или уменьшить), отредактируйте файл index.php, строка 45:
for($i=0;$i<150;$i++)(if(isset($myar[$i]>){$ar=$nr.$myar[$i]."\n";}}wrl($nr);
Нужно заменить константу в выражении цикла $i<150 нужным числом.
Возможны проблемы при установке и некорректная работа чата. Если чат некорректно работает, например, нельзя:
● войти;
● отправить сообщение;
● изменить цветовую схему,
убедитесь, что в конфигурационном файле php.ini включена директива register_globals=On
Если же изменить файл php.ini невозможно, то нужно добавить следующие строки в начало файла incl/hdr.inc:
ini_set('error_reporting',7);
import_request_variabies("GPC");
ini_set('error_reporting',7);import_request_variabies("GPC");
По умолчанию для отображения даты и времени чат настроен на GMT (UTC). Для настройки чата на нужный часовой пояс, изменяют 0 в первой строке файла incl/hdr.inc нужным значением (+/- число):
$datetime=gmdate('M j, G:i',time()+0*3600);
$datetime=gmdate('M j, G:i',time()+3*3600);
По умолчанию пароль для очистки чата - 12345. Для изменения пароля редактируют файл clear.php (строка 7):
if (isset($pass)&&$pass=="12345") . . .
Чат построен по модульной структуре. Поэтому можно легко перевести его на другой язык, вставить печать списка online-пользователей в любую страницу сайта и многое другое.
Если вы хотите перевести чат на какой-нибудь язык, скопируйте файл lang/lang-ru.inc в файл lang/lang-XX.inc и переведите сообщения на нужный вам язык.
Тут же можно изменить кодировку сообщений.
Возможно, вы хотите просмотреть полный протокол чата без вызова самого чата. Откройте файл data/log — в нем вы найдете, например:
1053076834:|:Мау16, 9:20:|:evg:|:wl:|: <b></b>
1053076782:|:Мау16, 9:19:|:evg:|:w2:|:Как дела? <img
src="pics/m5.gif" width="15" height="15" hspace="2" alt=" ">
1053076582:|:May16, 9:16:|:evg:|:w2:|:Привет!
1053076536:|:May 16, 9:15:|:denis:|:wl:I:Hello all
Можно модифицировать сценарий, добавив в него запись в протокол IP-адреса.
Можно отображать список online-пользователей на любой странице вашего сайта. Для этого подключите файл user.inc к вашей странице:
<?php
$pth='xxx';
include "$pth/incl/users.inc";
?>
где 'xxx' — это относительный путь к чату.
После этого вызовите функцию whos_online(), передав ей строку-разделитель пользователей:
<?php
whos_online('<br>');
?>
Пример файла index.php с использованием функции whos_online() приведен в листиге.
Листинг. Вывод списка пользователей
<?php $pth='friends/simple-chat';
include "$pth/incl/users.inc";
?>
<html><head>
<title>Основная страница </title>
</head><body>
<!-- список в строку -->
<div style="background-color: #cccccc">
<?php
whos_online(' ');
?>
</div><br>
<!-- список - в колонку -->
<div style="background-color:#aaaaaa">
<?php whos_online('<br>');
?>
</div><br>
</body>
</html>
2. УСТАНОВКА, НАСТРОЙКА И РАБОТА ПРОГРАММЫ CHAT.PHP.SPB.RU
2.1 КРАТКОЕ ОПИСАНИЕ ВОЗМОЖНОСТЕЙ ЧАТА
Существуют разные способы создания чатов (с непрерывной загрузкой). Самый неправильный состоит в том, что на каждого юзера запускается PHP-скрипт, который держит коннект. Из-за постоянно висящего в памяти PHP-скрипта, так же в памяти находится и копия Apache. Эта копия и исполняет программу PHP. Проблема в том, что при таком подходе очень быстро расходуется память.
Суть этого чата, как утверждает автор, показать правильное направление: «Разумеется, есть другие способы написания чата. Я лишь не сделал "не правильно"».
Чат состоит из 2х частей:
● PHP-скриптов;
● чат-сервера (программы для серверной части). Эта программа держит коннекты и отсылает в них сообщения, как только они приходят. Все остальное - делают скрипты на PHP.
Веб-каталог может быть как корнем сервера, так и в любом его подкаталоге (это легко настроить в _dima.php - $wwp). Каталог с .ехе программой (чат-сервером), разумеется, не должен быть доступен из Интернета, через какой-либо URL.
Кроме того, по-умолчанию, оба упомянутых каталога (две части) должны находиться на одном уровне. Т.е. чтобы попасть из одного в другой надо было только выйти ".." выше и войти в другой "www" или "daemon". Это тоже легко изменить, всего лишь отредактировав переменные, которые задают эти пути.
На сайте http://php.spb.ru/chat/ можно найти исходники чата и подробную документацию с описанием всех возможностей:
● Чат работает в Windows/FreeBSD/Linux в PHP 4-й версии (любой).
● Чат не использует MySQL.
MySQL не нужна, но вас есть выбор, где хранить базу юзеров: на диске (по-умолчанию) или в базе. Поддержка MySQL в чате есть. Именно поддержка, т.к. по умолчанию чат работает и абсолютно не нуждается в MySQL. Имеется возможность интегрировать чат с любым форумом (vBulletin.com, phpBB.com, phoru.org), phpNuke и любой другой программой, которая хранит свои регистрационные данные в MySQL базе. Чат можно настроить на любую по структуре внешнюю базу данных от любой программы. Смотрите параметр $export_db в _dima.php.
● Чат рассчитан на большие нагрузки, работает стабильно и быстро при нагрузках до 1000 человек одновременно.
● Чат защищен от флуда. Это решается установкой отдельной утилиты _dima_noflood.php с php.spb.ru.
● Можно выбрать обязательную или не обязательную регистрацию пользователей, предусмотрена защита от регистрации похожих ников.
● Легко добавить новые поля к регистрационной форме - все это можно проделать мышкой прямо из браузера. Каждое поле анкеты имеет множество параметров для защиты от ввода некорректной информации пользователями.
● FAQ и другие документы к чату постоянно обновляются, чтобы помочь при установке и устранении неполадок. В форуме разработчиков чата можно получить ответ на возникший вопрос.
Это далеко не все возможности чата. FAQ по чату находится в файле http://php.spb.ru/chat/faq.html. Адрес форума для вопросов: http://www.phpclub.net/talk/forumdisplay.php?s=&forumid=30. Онлайн вопросы можно задать в чате PHP-клуба (как туда войти, описано на главной странице http://php.spb.ru) либо в чате разработчика программы - http://chat.php.spb.ru.
2.2 УСТАНОВКА ЧАТА ПОД WINDOWS
Существует 3 способа установки чата CHAT.PHP.SPB.RU под Windows:
● полностью автоматическая установка и автоматическая настройка;
● автоматическая установка с последующим заданием нескольких параметров (надо отредактировать один файл);
● ручная установка и ручная подробная настройка.
Вариант 2 нужен, если вариант 1 не сработает. Необходимость в ручной установке описана ниже.
2.3 ПОЛНОСТЬЮ АВТОМАТИЧЕСКАЯ УСТАНОВКА + АВТОНАСТРОЙКА ПОД WINDOWS
Зайдите на http://php.spb.ru/chat/ и скачайте последнюю версию чата: файл chat-php-spb-ru-04_60.exe (или другой, последней версии), Запустите этот файл. Это самораспаковывающийся архив. Он захочет себя распаковать в "c:\www". Все, что нужно сделать после запуска, нажать кнопку ИЗВЛЕЧЬ и дождаться окончания распаковки. Появится каталог C:\WWW\CHAT-PHP-SPB-RU-04, потом автоматически запустятся 2 черных окошка (закрывать нельзя), далее откроется Internet Explorer на адресе "http://127.0.0.1", где будет загружена страница чата. Чат готов к работе: вводите ник и нажимайте "Войти в чат".
Если автонастройка прошла неудачно, то переходите к автоматической установке с последующим заданием нескольких параметров.
2.4. АВТОМАТИЧЕСКАЯ УСТАНОВКА И РУЧНАЯ НАСТРОЙКА ПОД WINDOWS
Эту установку нужно выполнять, если только автоматическая установка не удалась: черные окна не появились, Internet Explorer не открылся, на адресе 127.0.0.1 ничего нет:
● Запустите файл chat-php-spb-ru-04_60.exe (или другой, последней, версии). Нажмите кнопку ИЗВЛЕЧЬ и дождаться окончания распаковки. Появится каталог C:\WWW\CHAT-PHP-SPB-RU-04. Можно распаковать и в другие каталоги:
● Откройте файл www/_dima.php. Найдите раздел "Название вашей операционной системы" и строку "$os=0". Впишите вместо нуля цифру 3, если у вас Windows 95/98/ME. Впишите вместо нуля цифру 2, если у вас Windows NT/XP/2000.
● Рядом найдите строку "$rand_password=.." и "$cookie_pass=.." и впишите в обе переменных две разных строки из случайных символов.
● Чтобы сделать себя админом, впишите в $admfirst (файл _dima.php) свой будущий логин в чате, а как только чат заработает - зарегистрируйтесь под этим админом. Так вы станете главным админом чата. Других админов добавляйте в "админовке".
● Нажмите ПУСК->ВЫПОЛНИТЬ и запустите "c:\www\chat-php-spb-ru-04\apache\apache.exe". Убедитесь, что после этого запускается Apache и через 5-10 секунд продолжает работать в черном окошке. Если окошко закрывается или в заголовке пишут "Сеанс завершен" или "Программа завершена", то Apache не запустился. Если сервер Apache не запустился, то придется его настроить и приступить к дальнейшей настройки чата.
● Нажмите ПУСК->ВЫПОЛНИТЬ и запустите "c:\www\chat-php-spb-ru-04\run_this.bat". Аналогично убедитесь, что программа работает в черном окошке.
● Откройте браузер, отключите прокси сервер и перейдите по адресу "http://127.0.0.1/". Если вы не увидите работающий чат, то выполняйте данную главу до тех пор, пока не заработает. Либо сотрите чат и запомните, что установка чата не рассчитана на …
2.5 РУЧНАЯ УСТАНОВКА И РУЧНАЯ НАСТРОЙКА ПОД WINDOWS
Ручная установка нужна тогда, если у Вас уже есть установленный web-сервер Apache или нужно:
● поставить чат не в C:\www, а куда угодно;
● изменить адрес чата со "127.0.0.1" на нужный Вам (помните, на адрес 127.0.0.1 возможен доступ только с вашего компьютера);
● установить 2 и более чатов на одном компьютере.
Распакуйте архив чата в любой каталог. Сотрите из распакованного архива Apache, если он у Вас уже установлен.
Настроенный Apache включен в архив для уменьшения количества криков: "Ничего не работает!" Если у Вас Apache на компьютере еще не установлен, то оставьте все как есть.
2.5.1 ВЫБОР ХОСТА, НА КОТОРОМ БУДЕТ ЗАПУЩЕН ЧАТ
Подумайте, на каком URL будет работать ваш веб-сервер с PHP-скриптами. Запишите URL будущего чата на бумажку и далее все настройки будет исходить от этого URL.
Допустим, есть сервер www.prowics-chat.ru, на который можно попасть не только по этому слову, но и без "www" или вовсе по Ip-адресу. Задача "подумать о хосте" состоит в том, что нужно выбрать один из вариантов. Любой, но один. HOST берется из URL Вашего чата достаточно простым преобразованием. Пример:
URL: http://www.prowics-chat.ru/ -> HOST: www.prowics-chat.ru
URL: http://prowics-chat.ru/ -> HOST: prowics-chat.ru
URL: http://127.0.0.3/ -> HOST: 127.0.0.3
Выберите любой из 3-х вариантов адреса Вашего чата в Интернете. После этого определите, какой у него HOST, как в примере. Для этого отбросьте из будущего адреса Вашего чата слово "http://" и последний слеш - это и будет имя HOST`а. Не важно, что там: буквы (пример 1 и 2) или цифры (IP-адрес).
2.5.2 НАСТРОЙКА APACHE
Если у Вас еще нет Apache, то используйте тот, что поставляется в дистрибутиве chat-php-spb-ru-04_60.exe, и хранится в каталоге apache.
Если вы выбрали IP-адрес 127.0.0.1 и Apache взят из дистрибутива чата, то и делать ничего не надо, все настроено:
Listen 127.0.0.1:80
NameVirtualHost 127.0.0.1:*
<VirtualHost 127.0.0.1:*>
php_value magic_quotes_gpc 0
php_value register_globals 1
ServerAdmin a@b.ru
DocumentRoot c:/www/chat-php-spb-ru-04/www
ServerName 127.0.0.1
ErrorLog logs/chat.err
CustomLog logs/chat.log common
</VirtualHost>
Если у Вас уже установлен рабочий Apache на компьютере, то для размещения чата рекомендуется создать специальный виртуальный сервер prowics-chat:
Опишем этот сервер в файле виртуальных хостов D:\usr\Apache\conf\vhosts.conf:
#----prowics-chat
<VirtualHost 127.0.0.3> //задается IP-адрес сервера
php_value magic_quotes_gpc 0
php_value register_globals 1
ServerAdmin a@b.ru // адрес администратора сервера
DocumentRoot "/home/prowics-chat/chat-php-spb-ru-04/www/index.php" // папка расположения документов c чатом
ServerName www.prowics-chat // имя сервера
ErrorLog /home/prowics-chat/chat-php-spb-ru-04/daemon/logs/chat.err // расположение файла ошибок
CustomLog /home/prowics-chat/chat-php-spb-ru-04/daemon/logs/chat.log common // расположение файла доступа
</VirtualHost> //закрываем описание сервера
В конец файла С:\WINDOWS\system32\drivers\etc\hosts нужно добавить IP-адрес и имя сервера:
127.0.0.3 prowics-chat
"/home/prowics-chat/chat-php-spb-ru-04/" - будет корень чата, а подкаталог "www" - для PHP-файлов. Туда и должен указывать DocumentRoot. Создайте этот пустой подкаталог. Сделайте для проверки файл index.php:
<html> Чат CHAT.PHP.SPB.RU <? echo "работает"; ?></html>
И поместите его в подкаталог "www" - для PHP-файлов. Запустите Apache и убедитесь, что в браузере по адресу http://prowics-chat/chat-php-spb-ru-04 имеется тестовый index.php, который выдает два слова:
И до тех пор, пока на выбранном URL Вы не увидите эти слова, не переходите дальше, а настраивайте Apache до …
2.5.3 НАСТРОЙКА КОНФИГОВ ЧАТА
Самые важные настройки зависят от правильного выбора HOST`а.
● Откройте daemon/dima_chat.conf. Впишите имя хоста в поле "wwwhost":
set wwwhost "127.0.0.3";
и укажите локальный путь до чата:
set wwp "chat-php-spb-ru-04/";
Каждый раз при измении любого из этих 3-х параметров в _dima.php необходимо менять эти значения и в этом файле.
● Откройте www/_dima.php:
Впишите имя хоста в поле $wwwhost. В нашем примере имя хоста - "127.0.0.3".
● Впишите правильное значение для $wwp:
Если вы хотите держать чат НЕ В КОРНЕ вашего веб-сервера, т.е. не по адресу: "http://чат.домен.ру/", а в любом каталоге типа: "http://чат.домен.ру/любой/путь/" то вам нужно изменить параметр $wwp. Здесь нужно написать ту часть URL, которая находится после имени сервера:
http://имясервера/путь/до/начала/чата
● Впишите 2 случайных пароля для внутренних криптографических операций в переменные $rand_password и $cookie_pass.
● Впишите тип ОС в переменную $os.
● Впишите в массив $admlist имя вашего будущего логина и удалите те логины, которые там записаны по-умолчанию. Не забудьте после настройки чата зарегистрировать этот логин, чтобы получить права.
2.5.4 ЗАПУСК ЧАТ-СЕРВЕРА
Перейдите в каталог daemon и запустите "run_this.bat". Убедитесь, что в черном окошке запускается программа, которая не завершается в течении 5-10 секунд с сообщениями об ошибках.
Фраза "Loaded" означает успешное завершение загрузки.
Если в черном окне промелькивает много сообщений и появляется командная строка ДОСа, то это неудачный старт программы. Читайте сообщения об ошибках.
Запустите Apache и зайдите браузером на " http://prowics-chat/", в нашем случае http://127.0.0.3. Чат должен работать:
Если Вы вообще ничего не видите, убедитесь, что Apache работает и ваш браузер настроен правильно: отключены дозвоны в Инет, прокси сервер, автономный режим и т.д.
Если возникает детектор ошибок, то внимательно читайте, что там написано. Это не проблема чата. Это ошибки неправильной настройки программы. Детектор ошибок придуман для упрощения налаживания чата и для простого способа поиска неполадок. Если что не так - сразу в логах (или и в логах и на экране) вы будете видеть сообщения о возникших проблемах.
Обратим внимание на часто встречающиеся проблемы.
● Чат работает с любым PHP 4.х, любым Apache 1.х и любой версией Windows и Unix.
● По настройкам PHP проверьте, что register_globals в on и magic_quotes_gpc в off. В чате есть защита от неправильной настройки этих двух параметров, поэтому не волнуйтесь, чат проверит их сам. Кроме того, используйте и качайте только последнюю версию чата.
● Как правильно задать $wwwhost и $wwp?
Откройте главную страницу чата из браузера: index.php?helpme=1. Вам выдадут то, что нужно записать в эти 2 переменных. Допустим: www.host.ru. Чтобы все правильно работало, вы должны ходить с этого момента по адресу http://www.host.ru, а не http://host.ru или http://chat.host.ru. Данное значение берется из параметра ServerName вашего виртульного хоста, заведенного в Apache для вашего домена.
● Что такое в адресной строке браузера: index.php?&fixhost=1 ?
Это попытка автоматически подкорректировать неправильную настройку $wwwhost. Значит лишь одно - в $wwwhost написано одно, а настоящий URL в браузере - другой. Например, если в $wwwhost вы написали "www.чат.ru", а пользователь пришел на адрес "чат.ru", то он будет принудительно перенаправлен на $wwwhost.
● Чат при установке не прописывает себя в автозапуск. Поэтому при включении компьютера нужно запустить 2 приложения - Apache и чат-сервер (файл run_this.bat для Windows или run_background для Unix).
● Вхожу успешно в чат (фрейм сообщений грузится). Но там пусто!
Если фрейм сообщений загрузился, но не выводится ничего (ни топика, ни сообщений), то откройте логи чат-сервера. Если в логе пишут Can't open z-channel.html, то значит в конфиге чата не настроена переменная set wwp "***". В противном случае возможно испорчен какой-то шаблон и из-за HTML ошибки ничего не рисуется на экран: проверьте из админовки шаблон топика, текст топика, файлы шаблоны в скинах, что вы меняли.
● нельзя в одностороннем порядке изменить параметры $wwwhost и $wwp в конфигурационных файлах. Если в одном из файлов Вы это поменяли, то во втором тоже нужно внести точно такое же исправление. Конфиги: _dima.php и dima_chat.conf.
3. УСТАНОВКА И НАСТРОЙКА ЧАТА ПОД LINUX/FreeBSD
Рассмотрим порядок установки программы CHAT.PHP.SPB.RU на Интернет-сервер провайдера/хостера/организации. 90% успеха - точное исполнение инструкций, буквально по каждому слову. Пропустите хотя бы один абзац/фразу/слово инструкций - чат работать не будет. Необходимо выполнять обычные пользовательские действия типа распаковки архива, выполнения готовых команд и правки файлов. После установки изучить все опции в _dima.php, _phpini.php, .htaccess, dima_chat.conf и документацию в readme.html, faq.html, unix.html.
Вся разница между Windows и Unix установкой заключается в следующем:
● Поставить при необходимости TCL (распаковать, ./configure; make; make install);
● Скачать libtbcload1.3.so по ссылке;
● Изменить файл run_this;
● В dima_chat.conf заменить tbcload13.dll на libtbcload1.3.so;
● Настроить права chmod -R 777 /home/wwwchat/chat/daemon;
Больше отличий между Windows и Unix версиями установки чата нет. Просто для Windows уже есть готовый архив, который нужно распаковать и сразу запустить, а под Unix нужно еще немного подумать, настроить права, скачать библиотеки под Linux/FreeBSD и т.п. мелочи. Реально сделать нужно всего 5 операций.
Дополнительные настройки чата находятся в файлах, содержимое которых нужно знать наизусть:
● www/_dima.php;
● www/_phpini.php;
● www/.htaccess;
● daemon/dima_chat.conf.
При установке чата нужно копировать файлы на сервер вашего хостинг-провайдера. Если вы это делаете из CuteFTP или других подобных FTP-менеджеров, то включайте в них "бинарный режим пересылки данных" (binary mode), иначе будут скопированы испорченные файлы. В FTP-модуле файлового менеджера FAR Manager этот режим включен по-умолчанию и называется по другому - text mode (т.е. в FAR'е нужно выключить text mode, чтобы работал binary). Если скопировать файлы криво, то у них будет различаться длина и содержимое от того, что находится в архиве. В результате чат вылетит на ошибке "load_s_file error #10: Ошибка распаковки конфиг файла [имя_файла]", когда будет анализировать правильность формата файла.
Копируйте только из FAR Manager и проблем не будет. Как это сделать, будет описано ниже. Либо копируйте архив, а распаковывайте прямо в шелле.
Рекомендуется сначала поставить чат на Windows и убедитесь, что там все работает. Если не работает, то решить проблему сначала под Windows, только потом под Unix.
3.1 ПОДГОТОВКА К ИНСТАЛЛЯЦИИ ЧАТА
Скачайте следующие файлы к себе на локальный компьютер:
● Основной архив: файл с именем chat-php-spb-ru-****.exe (зависит от номера версии). Взять последнюю версию можно на этой странице. Скачивайте именно последнюю версию. Это будет чат для Windows, который с помощью данной инструкции вы запустите под Unix'ом.
● Дополнительный файл: tcl8.3.4.tar.gz (2,5Мб). Если вы работаете с модема, то не скачивайте этот файл, ниже будет написано, как загрузить этот файл прямо на диск хостера, минуя ваш локальный компьютер.
● Дополнительную библиотеку:
◘ Для Linux серверов: libtbcload1.3.so.zip (17Кб)
◘ Для FreeBSD серверов: libtbcload1.3.so_freebsd.zip (20Кб)
Если вы не знаете название своего сервера - спросите администратора или скачайте оба файла.
3.2 USER/GROUP
Если вы root - создайте нового юзера wwwchat. Если вы просто пользуетесь хостингом у провайдера, то выполняйте все под своим логином. Дальше он будет называться wwwchat. Домашний каталог /home/wwwchat (мысленно заменяйте его на ваш, реальный).
Выберем место, где будет каталог чата, пусть /home/wwwchat/chat. Тогда каталог чат-сервера будет в /home/wwwchat/chat/daemon, а корень веб-сайта /home/wwwchat/chat/www. Не ставьте чат в /home/wwwchat, а создайте в /home/wwwchat любой подкаталог. Внимание: ставить чат можно куда угодно и в любые каталоги. Но в инструкции они названы так, чтобы было проще и не надо было редактировать конфиги.
Если у вас уже был чат версии 4.05 или ниже, то этот ставить ПОВЕРХ него нельзя (можно взять только базу пользователей). Поэтому в дальнейшем речь идет о полностью пустых каталогах, которые вы будете создавать. Как только новый чат будет работать, вы скопируете базу юзеров (каталог 'db') из старого каталога чата в новый каталог. Больше из старого чата брать нечего.
Будущая структура каталогов (сейчас ничего создавать не надо):
/home/wwwchat этот каталог является домашним для юзера wwwchat
/home/wwwchat/tmp для временных файлов
/home/wwwchat/chat тут будет корень чата
/home/wwwchat/chat/www PHP-скрипты
/home/wwwchat/chat/www/src PHP-скрипты, каталог не должен быть виден из браузера
/home/wwwchat/chat/www/skin файлы шаблонов чата
/home/wwwchat/chat/daemon чат-сервер (постоянные секретные файлы)
/home/wwwchat/chat/php_sess файлы сессий PHP-скриптов (временные секретные файлы)
/home/wwwchat/chat/readme.html этот файл вы сейчас читаете (копию)
Структура каталога daemon:
daemon/ чат-сервер
daemon/db2 база данных юзеров: не шифров. пароли, рег. данные (сохраните при переносе!)
daemon/bin библиотеки для unix-версии чат-сервера (каталог появится при установке TCL)
daemon/lib библиотеки для windows-версии чат-сервера
daemon/logs логи от чат-сервера
daemon/www-chat временные файлы для PHP-скриптов и логи чата от PHP
daemon/www-conf конфигурация чата для PHP-скриптов (сохраните при переносе!)
daemon/www-server временные файлы чат-сервера
daemon/www-sess временные файлы профилей пользователей, для чат-сервера и PHP-скриптов
Если вы root - создайте группу wwwchat и поместите туда юзера wwwchat и юзера, из под которого работает ваш веб-сервер. Если вы просто на хостинге, то вам придется подумать над тем, чтобы никто, кроме вас не смог читать каталог демона чата. Там хранятся номера сессий посетителей, пароли и прочая секретная информация. Кроме того, веб-сервер должен иметь права в определенные каталоги демона чата, чтобы писать и читать там общие файлы. Разумеется, никто, кроме вас из под веб-сервера не должен иметь возможность писать в каталог демона.
3.3 БЕЗОПАСНОСТЬ НА ВАШЕМ ХОСТИНГЕ
Множество людей пользуется публичными хостинг провайдерами для запуска чата. Если вы один из них, то после установки чата попросите администратора чата ради безопасности проделать следующие операции (можете просто переслать данную главу о безопасности). PHP-скрипты от пользователя Apache и чат-сервер от вашего логина (мы называем его "wwwchat") создают на диске файлы/каталоги с атрибутами 0777. Это нужно, чтобы оба юзера (Apache и чат-сервер от юзера wwwchat) могли писать/читать одни и тот же каталог/файлы. В обязанности администратора хостера входит задача не допустить доступ к таким файлам ВНУТРИ КАТАЛОГА ПОЛЬЗОВАТЕЛЯ (/home/wwwchat). Это можно достигнуть только одним путем:
● добавить группу с любым именем, допустим group_chat, внести в нее юзеров Apache и wwwchat
● сделать chown -R wwwchat:group_chat/home/wwwchat и chmod 750 /home/wwwchat (drwxr-x---)
Тогда другие программы, запущенные другими юзерами, не смогут попасть в домашний каталог /home/wwwchat пользователя wwwchat. Apache из-за safe_mode не даст войти другим польхователям в каталог и будет иметь право входить в каталог из PHP-скриптов от пользователя wwwchat.
Если вы ничего не поняли из данной главы - не расстраивайтесь. Положитесь на порядочность и компетентность админа вашего хостера, который должен был обеспечить защищенность пользователей сервера друг от друга (данный чат не требует каких-то хитрых защит, а элементарную безопасность). Но если вы можете проверить - проверяйте правильность настройки прав на сервере! Имеется очень много хостеров, где пользователи могут легко читать чужие файлы (например, пароли и номера сессий). В чате нет ни одной уязвимости, которая бы позволила испортить его работу (путем кражи паролей пользователей или номеров сессий), но от сервера хостера, где любой человек может купить за небольшие деньги логин пользователя, и скопировать все ваши файлы, никто не защищен. Крупные и долговечные хостеры как правило настроены нормально (либо из-за компетентных админов, либо путем долгих проб и собственных ошибок). "Настроены нормально" - это когда пользователь может читать/писать только свои файлы из шелла или из PHP скриптов. Поставьте себе полезную программу для путешествий по диску хостера и проверьте, сможет ли она зайти в чужие каталоги: phpRemoteView.
3.4 УСТАНОВКА TCL
Скачайте файл tcl8.3.4.tar.gz, если еще этого не сделали (именно этот, но можно и tcl8.3.*.tar.gz) к себе на локальный компьютер и потом перепишите по FTP на сервер хостера в /home/wwwchat с любого из этих адресов:
● http://telia.dl.sourceforge.net/sourceforge/tcl/tcl8.3.4.tar.gz
● http://php.spb.ru/files/tcl8.3.4.tar.gz
● http://prdownloads.sourceforge.net/tcl/tcl8.3.4.tar.gz
● http://www.tcl.tk/software/tcltk/downloadnow83.html
● ftp://tcl.activestate.com/pub/tcl
● FTP-поиск
● Google поиск
Можно поступить более быстро, загрузив этот файл прямо на сервер хостера. Для ускорения загрузки рекомендуется качать этот файл не из браузера в ваш локальный компьютер, а прямо из шелла провайдера. Для этого перейдите в шелл, зайдите в домашний каталог /home/wwwchat и запустите загрузку: wget URL, где URL конечный(!) адрес файла. Не все примеры URL выше являются точными адресами файлов - некоторые ссылки ведут на HTML страницы, а не файлы. Правильный пример команды: wget http://php.spb.ru/files/tcl8.3.4.tar.gz
Зайдите в шелле в /home/wwwchat. Распакуйте архив: tar -xvzf tcl8.3.4.tar.gz (если вы скачали другой архив, укажите правильное имя файла). Программа создаст в текущем месте (где был архив) подкаталог tcl8.3.4. Таким образом, после выполнения команды и если архив был в /home/wwwchat/, появится каталог /home/wwwchat/tcl8.3.4. Этот каталог потом тоже надо будет стереть.
Шаг 1. Перейдите в tcl8.3.4/unix Конфигурация TCL, выполните команду: ./configure --disable-shared --prefix=/home/wwwchat/chat/daemon Обратите внимание - мы пишем тот путь, где будет каталог daemon нашего чата. Т.е. компилить TCL нужно именно в каталог daemon, а не куда то еще. Если вы скомпилите его не туда, то скопируйте в daemon. Параметр "--prefix" указывает, куда будет установлен TCL.
Убедитесь, что команда выполнена без ошибок, т.е. последние строки команды такие:
.........
.........
checking how to build libraries... shared
updating cache ./config.cache
creating ./config.status
creating Makefile
creating tclConfig.sh
Шаг 2. Далее выполните из того же каталога (tcl8.3.4/unix) команду make (и аналогично убедитесь, что она завершается без ошибок). Если вам напишут небольшое сообщение и команда завершится мгновенно, то видимо компиляция запрещена на вашем хостинге. Обратитесь к админу хостера и сообщите, что хотите поставить к себе в каталог интерпретатор популярного языка TCL. Если будут ошибки - разбирайтесь админом сервера.
Шаг 3. Далее выполните там же make install (и опять аналогично убедитесь, что она завершается без ошибок).
Итак, вот, что надо было сделать (где первоначально располагался tcl8.3.4.tar.gz - не важно):
tar -xvzf tcl8.3.4.tar.gz
cd tcl8.3.4/unix
./configure --prefix=/home/полный/путь/к/daemon --disable-shared
make
make install
Сотрите лишние каталоги:
/home/wwwchat/tcl8.3.4
/home/wwwchat/chat/daemon/man
/home/wwwchat/chat/daemon/tcl8.3/http***
/home/wwwchat/chat/daemon/tcl8.3/msgcat***
/home/wwwchat/chat/daemon/tcl8.3/opt***
/home/wwwchat/chat/daemon/tcl8.3/tcltest***
файлы, бОльшие 5Кб, в /home/wwwchat/chat/daemon/tcl8.3/encoding
файл дистрибутива tcl8.3.4.tar.gz
Где "***" - любое окончание имени. Можно отложить удаление этих файлов до окончательной установки чата, если лишние 2Мб не помеха.
3.5 РАСПАКОВКА ДИСТРИБУТИВА
Распакуйте основной RAR-архив chat-php-spb-ru-****.exe в /home/wwwchat/chat так, чтобы каталог daemon из архива скопировался в /home/wwwchat/chat/daemon.
ИСКЛЮЧЕНИЕ: не копируйте содержимое каталога daemon/lib. Т.е. распакуйте и скопируйте все, кроме lib - там файлы библиотек под Windows, а они нам не нужны (лишние 700Кб занимают).
Рекомендуется распаковать архив сначала в Windows'e на своем компьютере, а потом копировать по FTP на сервер провайдера. Не забудьте, что любое копирование по FTP нужно проводить при включенном BINARY MODE в вашей FTP-программе (иначе чат не будет работать, ссылаясь на кривое копирование файлов по FTP).
Сотрите лишние файлы в каталоге daemon: run_this.bat, run_this_loop.bat, tbcload13.dll.
3.5.1 FTP-модуль файлового менеджера FAR Manager
FTP-модуль FAR Manager не только умеет качать файлы на сайт и обратно, но также сумеет в случае обрыва связи продолжить перекачку с того места, где она оборвалась.
Перекинуть новые файлы на сайт, обновить веб-страницы и рисунки, исправить ошибки, создать или переименовать папки, поменять структуру сайта и все, что нужно для поддержки не слишком обширной персональной страницы, на которой не требуется ежедневно и ежечасно обновлять десятки файлов, можно сделать с помощью FAR Manager.
В меню дисков (Alt-F1 или Alt-F2):
под списком дисков есть несколько строк для вызова плагинов. Строка под номером 2 носит название FTP, она и перенесет нас на одноименную панель.
Возможен также обычный способ запуска: клавиша F11 ► строка FTP в списке плагинов:
Здесь имеется одна строка для перехода на словацкий файловый сервер, откуда можно бесплатно скачать самую последнюю версию самого FAR Manager, и много другого софта. Нажмете Enter на строке с адресом, и как только ваш компьютер установит соединение с сервером, вы увидите его файлы, как если бы в этом окне был показан один из ваших жестких дисков. Выделяйте, копируйте.
Чтобы добраться до своего сайта, нужно создать новую строку с его адресом. Отправляйтесь на панель FTP и нажмите комбинацию Shift-F4. В появившемся окне:
в верхней строке напишите адрес сайта, например:
ftp://www.мой_сервер.ru/моя_страница
Во второй и третьей строках введите логин и пароль, в четвертой - описание. Описание может быть какое угодно: эта надпись ни на что не влияет - просто для памяти. А вот адрес интернетовской странички, логин и пароль очень даже влияют на успех соединения с сайтом. Стоит хоть одну букву перепутать, и ничего не получится - либо сайт не найдете, либо сервер не примет пароль... Данные эти должен сообщить вам провайдер, предоставляющий вам место на своем сервере.
Тем, кто собирается воспользоваться бесплатным местом на отечественных (narod.ru, boom.ru, hut.ru, webservis.ru) или международных серверах (geocities.com, tripod.lycos. com, fortunecity.com), логин и пароль выдадут в процессе регистрации. Но тут Вам FTP клиент (FAR Manager) может и не понадобиться, потому что некоторые из таких серверов принимают от Вас страницы своими способами (через электронную почту или путем ввода информации в особом онлайновом редакторе веб-страниц).
В принципе, можно написать всё данные и в одной только строке, в самой верхней, таким примерно образом:
ftp://Misha-Mihailov:R!Resw2w08@www.my.server.ru/~stranica
Однако в этом случае всё будет показано в панели FTP, и любой интересующийся сможет прочитать с экрана ваш секретный пароль.
Адрес FTP по этой схеме можно вводить просто в командной строке. Работает абсолютно так же.
Крестик в строке Запрашивать пароль позволит вообще не указывать пароль в настройках: Вас попросят ввести его непосредственно в момент подключения. Эта функция понадобится тем, кто пользуется FTP-клиентом на работе или в институте, в интернет-клубе или на ином доступном не только Вам компьютере, где не рекомендуется оставлять свой пароль.
Кто работает дома и ничего не опасается, может ввести пароль в общие настройки FTP-клиента (F9 ► Параметры ► Параметры внешних модулей ► FTP клиент, строка Пароль по умолчанию):
Если Вы работаете в Windows, а сервер Сети любит кодировку KOI8-R, можете воспользоваться кнопкой Выбрать таблицу, чтобы русские имена файлов и тексты читались правильно. Это позволит настроить режим обращения к данному серверу.
В случае необходимости можно всегда поменять кодировку и на полном ходу.
Введя все, что следует, нажимаете кнопку Сохранить. Теперь в панели FTP появится новая строка. Повторите подобную процедуру столько раз, сколько файловых серверов Вы собираетесь посещать, и получите столько строк, сколько ввели адресов. Поправить что-то в ранее введенном адресе тоже несложно: встать на него и нажать F4.
Ну и что дальше? Жмете Enter на нужной строке и если Вы были уже подключены к Интернету, то FAR свяжется с сервером, тот проверит и подтвердит логин и пароль, и Вы увидите файлы и папки на удаленном компьютере. С ними можете делать все то же, что делаете с файлами и папками на своем собственном диске: просматривать, редактировать, удалять, копировать или перемещать (на сервер и с сервера), создавать и удалять файлы и папки, а также их переименовывать.
Будьте осторожны с переименованиями файлов по маске на удаленном компьютере. На Юнисовых серверах вы можете ненароком дать файлу совершенно невозможное в виндах имя «*.doc». Только что вы потом будете с таким файлом делать?
В режиме FTP действуют команды обычного сравнения папок (расширенное не работает), поиска файла (Alt-F7) и быстрого поиска в директории (Alt-буква имени).
В полном объеме это касается только выделенной лично Вам папки. Выйти из своей папки и зайти в какие-то другие можно только в том случае, если это на сервере разрешено (чаще всего - запрещено), а все операции редактирования или стирания в чужих папках сервер Вам запретит в любом случае. То же касается общедоступных файловых серверов, откуда можно копировать файлы, но никаких изменений в файлах и папках Вы произвести не сможете. Иногда на таких серверах есть специальная папка, в которую посетителю разрешено что-то записать - для обмена идеями. Обычно называются такие папки Incoming (входящие) или Upload (выгрузка).
Просмотра и редактирования файлов непосредственно на удаленном компьютере FAR не делает. Он перекачивает их к Вам во временную директорию, а потом закачивает обратно. Так что редактирование файлов большого размера займет немало времени.
То же касается и архивов: чтобы вы могли только заглянуть внутрь расположенного на сервере архивного файла, посмотреть, что в нем записано, FTP-клиенту придется перекачать его целиком. Так что хорошенько подумайте, прежде чем нажимать на Enter, стоя на архивном файле.
Бывает, что перекачка файла прерывается из-за разрыва соединения. Если это произошло, снова установите связь, снова встаньте на файл и нажмите F5 (F6). Увидев файл с тем же именем, программа спросит Вас, писать ли файл поверх старого или отменить копирование. Но вы нажмите новую кнопку - Возобновить (Resume), и копирование будет продолжено с того места, где прервалось. Правда, не все файловые серверы позволяют докачивать файлы после обрыва связи. Но тут ничего не поделаешь.
3.5.1.1 Копирование файла
Выделенные файлы берут левой кнопкой мыши и перетаскивают в другое окно. FAR Manager запрашивает подтверждение, а потом копирует выделенные файлы. Если прицельно оттащить файлы на имя вложенной папки в противоположном окне, то все файлы скопируются именно туда. Не потребуется даже открывать эту папку.
Если нужно скопировать файлы в новую, еще не существующую директорию, то нет необходимости сначала переходить в противоположное окно, создавать там эту папку, заходить в нее, потом возвращаться в другое окно и только потом копировать. Вместо всего этого просто допишите имя новой папки в конце строки адреса, она и будет создана.
Не забудьте поставить в самом конце косую черту (слэш \), иначе FAR подумает, что вы ввели тут имя нового файла, и создаст копию.
Крестик в строке Только новые/обновленные файлы сообщает файл-менеджеру FAR Manager, что более новые файлы старыми заменять не надо, а все остальные надо копировать автоматически, не задавая никаких вопросов. Эта возможность избавит Вас от необходимости отвечать на множество одинаковых вопросов на тему, надо ли перезаписывать этот файл.
Разрешается копировать файлы сразу в несколько мест. Адреса папок назначения надо писать через запятую или точку с запятой - и не забыть пометить строку Обрабатывать несколько имен файлов.
Встречая при копировании файл с таким же именем в папке назначения, FAR Manager выдает красную карточку-предупреждение:
Как видите, разрешается скопировать данный файл вместо одноименного (кнопка Вместо), скопировать все файлы вместо одноименных (Все), не копировать данный файл (Пропустить). Кнопка Пропустить указывает, что во всех случаях, когда файл с таким именем в папке существует, копировать (перемещать) не следует.
.3.5.1.2 Переименование файла
По Shift-F6 происходит переименования файла, на котором стоит курсор, вне зависимости от того, выделены в этот момент какие-то файлы или нет.
Причем в адресной строке сразу окажется имя этого файла. Останется написать здесь новое имя и нажать Enter.
По Shift-F5 можно таким же способом создать копию файла, вне зависимости от выделения.
FAR предоставляет нам очень неплохие возможности для группового переименования файлов.
Пример. Некоторые программы, обрабатывающие за один раз кучу файлов, создают для этих файлов резервные копии, прибавляя к именам файлов дополнительное расширение bak, отчего, скажем, index.html превращается в index.html.bak. Так поступают дополнительный модуль ФАРа Search and Replace («поиск и замена»), редактор веб-страниц TopStyle и некоторые другие программы. Как же вернуть файлам их исходные имена, если обработка не дала нужного результата?
Сначала выделяете нужные файлы по маске «*.*.bak» (то есть просите выделить файлы такого вида: имя.расширение.bak). А потом нажимаете F6 и переименовываете всю группу по такой вот маске: «*.». В результате лишний «bak» отваливается, и вы получаете свои файлы в исходном виде.
Если же вам хочется, наоборот, навесить на выделенные файлы лишнее расширение, можете переименовать или скопировать их по маске: «*.*.bak». Тогда из обычного index.html получите index.html.bak.
Когда появляются окна Копирование или Перенос/Переименование, адрес или имя в строке ввода будут написаны серенькими буковками. Стоит вам нажать хоть одну букву или иной символ на клавиатуре, как старая надпись исчезнет без следа, а новая будет вводиться вместо нее. Но если вместо буквы нажать стрелку курсора, то адрес останется, можно будет просто подредактировать его — например, дописать в конец имя папки и косую черту.
В строке действуют, клавиши Del и Backspace (для удаления буквы правее и левее курсора). Действуют даже комбинации Ctrl-V и Shift-Ins, по которым можно вставлять в адресную строку содержимое кармана, а также Ctrl-C и Ctrl-Ins, по которым можно скопировать адрес.
3.5.1.3 Создание новых папок
При создании папок по F7 можно создать разом несколько вложенных папок. Например, введя в качестве имени выражение Папка1\Папка2\Папка3, я создаю Папку 1, в ней - Папку 2, а в той - Папку 3, - целую ветку в дереве.
Если написать несколько имен через запятую, то будет создано несколько папок разом. Но чтобы это сработало, в окошке создания папки вы должны поставить крестик в строке Обрабатывать несколько имен папок.
3.5.1.4 Удаление выделенных файлов
Удаление выделенных файлов происходит по F8, но по Shift-F8 удаляется только один файл - тот, на котором стоит курсор, вне зависимости от выделения. Оттащить мышкой в корзину файлы нельзя, потому что вынести что-то из текстового режима Windows в графический невозможно.
FAR удаляет файлы в корзину, что позволит без хлопот их восстановить, если потребуется.
Но если вы абсолютно уверены в себе и вам не хочется лазить в корзину, чтобы еще раз уничтожить уже однажды уничтоженные файлы и папки, можете удалить их в обход корзины по комбинации Shift-Del.
FAR Manager умеет не просто удалять в обход корзины, но и уничтожать, затирать файлы и директории. Для этого предназначена комбинация Alt-Del. Будьте очень осторожны с ней: восстановить не удастся уже ничего.
Внимательно смотрите на сообщения, которые FAR выдает перед удалением в корзину, удалением мимо корзины и полным уничтожением всех выделенных файлов и папок.
3.6 ДОПОЛНИТЕЛЬНАЯ TCL-БИБЛИОТЕКА
Нужно скачать библиотеку libtbcload1.3.so (20 Кб).
Изначально библиотека входит в 15/25-мегабайтный пакет TCLPRO, можно (но не нужно) взять с:
● для Linux, HP-UX, SGI IRIX - версия 1.4 http://dev.scriptics.com/software/tclpro/eval/1.4.html;
● для Linux - версия 1.5 ftp://tcl.activestate.com/pub/tclpro/download/tclpro15.suse71.tar.gz;
● для FreeBSD, Solaris - версия 1.5 http://dev.scriptics.com/software/tclpro/eval/1.5.html.
Если у вас Linux или FreeBSD, то скачивать 15/25МБ не нужно - возьмите готовый файл (около 20Кб):
● для Linux - http://php.spb.ru/files/libtbcload1.3.so.zip;
● для FreeBSD - http://php.spb.ru/files/libtbcload1.3.so_freebsd.zip.
ВНИМАНИЕ: ЭТО НЕ ZIP-АРХИВЫ! Не пытайтесь их распаковать. После скачивания переименуйте в libtbcload1.3.so. Скопируйте файл в daemon. Расширения ZIP дописаны только для того, чтобы легче было скачать.
Если у вас не Linux/FreeBSD, то скачайте пакет TCLPRO 1.4 или 1.5, установите в любой каталог (в /tmp например) или вручную распакуйте, далее через поиск найдите файл libtbcload1.3.so и перепишите в daemon. После этого все скаченное сотрите.
3.7 НАСТРОЙКА ЧАТА
Если вы не пользуетесь хостином, то настройте в Apache новый виртуальный сервер для чата. Корнем сайта (DocumentRoot) должен быть каталог /home/wwwchat/chat/www. Где именно находится www не важно. Важно, чтобы каталоги www и daemon были в одном месте (в одном каталоге chat). Если у вас эти два каталога не на одном уровне, то нужно будет намного больше путей в конфигах отредактировать (читайте их - там все написано).
Добавьте в описание вашего виртуального хоста Apache следующие команды:
php_value register_globals 1
php_value magic_quotes_gpc 0
php_value display_errors 1 <= показывать ошибки на экране
php_value display_startup_errors 1 <= показывать ситаксические ошибки парсинга на экране
php_value log_errors 1 <= логирование PHP-ошибок в лог Апача
php_value session.use_trans_sid 0
Если их добавить нельзя - не беда. В крайнем случае вы получите сообщение от детектора ошибок и будете вынуждены изменить то, что он попросит сделать. Все эти параметры можно вписать в файл .htaccess из каталога www.
Откройте _dima.php из www. Отредактируйте $wwwhost (совпадающий с ServerName из Apache), $os, $rand_password, $cookie_pass. Если хотите, измените порт в $wwwport для чата с 8888 на другой (но не на 80). Если на сервере работают другие чаты - то этот порт наверняка занят.
Откройте dima_chat.conf. Впишите туда то же самое, что было в переменных $wwwhost и $wwp из _dima.php. В $wwwport впишите то, что было в переменной $httpport из _dima.php (по-умолчанию в обоих местах стоит 8888, но можно изменить).
Настройте права на каталоги, запустив 2 комнады:
chmod -R 777 /home/wwwchat/chat/daemon
chmod -R 777 /home/wwwchat/chat/php_sess
Параметр "-R" - рекурсивная замена прав для подкаталогов и всех их файлов. Если сразу после запуска чата кто-то будет жаловаться, что не хватает прав на файлы, то выполните команду chmod -R 777 /home/wwwchat/chat/daemon еще пару раз.
Зайдите в daemon. Необходимо открыть файлы run_this и run_backgound и проверить, что они написаны правильно (или создать, если их нет). Откройте эти два файла, там будет примерно следующее: "bin/tclsh8.3 dima_chat.conf" и "bin/tclsh8.3 dima_chat.conf >/dev/null 2>&1 &". Первым словом (до пробела) идет путь "bin/tclsh8.3" и имя конфига чата из текущего каталога. Путь "bin/tclsh8.3" должен быть верным, т.е. при входе в каталог "bin" там должен быть файл "tclsh8.3". Если файлов нет - значит успешно TCL вы не установили. Если файл называтся чуть-чуть по другому, то напишите правильный путь. Короче говоря, в обоих файлах должен быть либо относительный, либо полный путь к файлам "tclsh" или "tclsh8.3". Кроме bin/tclsh8.3 можно написать просто "tclsh" (или "tclsh8.3"), если TCL был установлен админов сервера для общего пользования. В этом случае TCL будет грузится из каталога /usr/lib/tcl***, а не вашего локального каталога "bin/". Оба файла должны иметь chmod 777, чтобы их можно было запустить.
Последняя настройка dima_chat.conf:
● найдите строку set library "./libtbcload1.3.so" и расскомментируйте ее, удалив "#" из начала строки.
● найдите строку set library "tbcload13.dll" и закомментируйте ее, поставив символ "#" в самое начало.
Должно получится так:
set source "chat.tbc" ;# не пишите "./chat.tbc" или еще что-то, только "chat.tbc"
# библиотека загрузчика для windows, если у вас чат под винду
#set library "tbcload13.dll"
# библиотека загрузчика для unix, если чат под юних
set library "./libtbcload1.3.so" ;# пишите имя файла с ./точкой
3.8 ЗАПУСК ЧАТ-СЕРВЕРА
Запускаем из каталога daemon файл ./run_this .
Если видите картину:
$ ./run_this
Config loaded. Your TCL version: 8.3. Wait please...
[19:50] ------------------------------------------------------------
[19:50] CHAT.PHP.SPB.RU, ver 4.06, 06 September 2002
[19:50] ------------------------------------------------------------
[19:50] Chat software (c) Dmitry Borodin, Russia, St.-Petersburg
[19:50] ------------------------------------------------------------
[19:50] Before using, please read licence on http://php.spb.ru/chat!
[19:50] ------------------------------------------------------------
[19:50] PID: 10495, TCL Version: 8.3.4, hostname: chat.php.spb.ru
[19:50] Listing chat.php.spb.ru:8888 ...
[19:50] Encoding iso8859-1 ...
[19:50] Found charset for IRC-frame: windows-1251.
[19:50] Searching old session file...
[19:50] Opening main chat file: www-chat/chat.txt ...
[19:50] ok, file clean
[19:50] *** LOADED (0.35 sec) ***
то чат-сервер успешно запущен.
Если появляется ошибка с фразой "The TclPro ByteCode Loader is not available or does not support the correct version", то исправить можно так:
● убедиться в версии TCL - только 8.3.х (версия пишется первой строкой при запуске);
● убедиться, что файл libtbcload1.3.so находится в каталоге daemon;
● убедиться, что в dima_chat.conf есть строка set library "./libtbcload1.3.so" и что эта строка РАСКОММЕНТИРОВАНА (а строка set library "tbcload13.dll" наоборот, закомментирована);
● убедиться, что есть строка set source "chat.tbc", а не какая-либо другая ("./chat.tbc" даст ошибку);
● убедиться, что libtbcload1.3.so взят для вашей ОС (если пункты выше точно проверены, то проблема в несовместимости самой библиотеки и ОС).
Если чат не выдает эту ошибку (про "TclPro ByteCode"), то вы обязательно увидите название программы в большой заставке (примерно "CHAT.PHP.SPB.RU, ver 4.06, 06 September 2002"). Далее, чат может завершиться после любой из строк при обнаружении ошибок в конфиге dima_chat.conf. При выходе чат пишет ошибку в виде кода (число от 1 до 999) или нормальной фразы. Если чат вываливается без словесной ошибки, внимательно посмотрите на последнее число, которое выдаст чат. Намного более вероятнее появление нормальной ошибки, типа "нет прав открыть файл" или "невозможно открыть хост:порт". Ошибки из нормальных фраз не баги чата, а проблема настройки. Нужно прочитать сообщение об ошибке и исправить то, о чем там написано.
Если чат завершается с ошибкой после команды "Listen www.чат.ru:8888", то внимательно прочитайте сообщение об ошибке (используйте англо-русский словарь Lingvo или www.translate.ru). Причин может быть две. Либо указанный вами хост не принадлежит серверу, где вы запускаете чат, либо указанный порт занят. Порт может быть любым числом от 1025 до 65535 - попробуйте несколько разных, т.к. по-умолчанию порт 8888 может быть занят другим чатом, который запустил другой пользователь сервера. Чтобы убедится, что хост допустимый, выполните "ping www.чат.ru" (ваш хост укажите - $wwwhost) и далее "ping `hostname`" (напиште слово "hostname" в обратных апострофах!). Если обе команды ping укажут на один и тот же IP-адрес, то выбран допустимый хост. Если команды дадут 2 разных адреса, то вы ошиблись с $wwwhost.
Если видите фразу LOADED, то чат загрузился. Далее читайте логи, где их найти написано в FAQ.
Теперь можно открыть браузер и пойти на ServerName (http://$wwwhost/) вашего сайта.
Как только вы проверите, что работает, вернитесь в шелл, который занят чат-сервером. Прервите его (Ctrl+C) и запустите ./run_background В дальнейшем запускайте именно этот файл для старта чат-сервера. Запускать файл можно только из текущего каталога (т.е. сначала перейти в /home/wwwchat/chat/daemon). Помните - чат-сервер будет работать только до перезагрузки всего сервера хостера! После перезагрузки необходимо будет опять запустить ./run_background или настроить автозапуск с помощью крона или autostart (/etc/rc.d/rc.local).
3.9 СОВЕТЫ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ
3.9.1 После установки чата выдаются ошибки о том, что нет прав
Первый вариант решения: правильно выполнить всю инструкцию снова (все стираем и по новой). Второй вариант: остановить чат-сервер; стереть все из www-chat, www-sess, www-server; запустить chmod -R 777 /home/wwwchat/chat/daemon Как только права выставлены, запускаем чат и более ошибок не будет.
3.9.2 Запуск/останов чат-сервера, автозапуск и cron
Для работы чата необходимо, чтобы на сервере работала программа. Запускать программу можно вручную (зайдя в шелл), можно из cron'a (раз в 15 минут), можно при загрузке сервера провайдера. Если сервер перезагрузился, то необходимо запустить вручную или автоматически чат-сервер. Если чат упал с какой-то ошибкой, необходимо его опять запустить. Если на сервере хостинг-провайдера работает программа, убивающая процессы, которые работают длительное время, то вам нужно разобраться с этой проблемой. Это обнаружить легко - чат падает без сообщений об ошибках в лог-файлах.
3.9.3 Обычный запуск чата вручную
● Написать в шелле команду "cd /home/username/chat/daemon" (написать абсолютный путь к каталогу daemon чата)
● Написать там же команду "./run_background"
● Выйти из шелла (закрыть PuTTY или другой SSH/telnet/rlogin-клиент)
3.9.4 Отладочный запуск чата (поиск проблем и неполадок)
● cd /home/username/chat/daemon
●./run_this
После этого чат "захватит" вашу консоль, т.е. будет отображать ход своей работы в шелле, где вы его запустили. Так вы сможете смотреть все сообщения чата, даже те, что не идут в лог файл! Важно помнить, что при запуске чата с помощью run_this и после выхода из шелла (когда вы закроете SSH-клиент типа PuTTY или др. программу) - чат будет завершен и выгружен из памяти сервера. Только лишь run_background позволяет запустить чат в фоновый режим, что не захватывает вашу консоль (команда завершается мгновернно) и вы можете выйти из шелла, а чат останется работать. После запуска run_this чат запускается в своем обычном режиме, только с особенностью выгрузки при закрытии шелла. Смотрите на сообщения, что пишет чат-сервер. Если команда завершается быстро, т.е. после некоторых сообщений вы попадаете обратно в командную строку шелла, то значит произошли ошибки. Если ошибкок не будет, то чат останется работать и будет постоянно выводить в шелле свои отладочные сообщения. Все сообщения без слова "ERROR" не являются ошибками. Как только вам надоет смотреть на сообщения, нажмите Ctrl+C, чат будет прерван. Далее запустите run_background для нормальной работы чата (если ошибок не было или все исправлены).
3.9.5 Проверка, что чат-сервер работает
● Зайти в чат: очень не надежно, т.к. чат-сервер может быть запущен, но из-за кривых настроен войти в чат не удасться
● Зайти в админовку и посмотреть на статус запущенности чата
● Зайти по/в FTP/шелле в каталог www-server и посмотреть на дату файла runstatus.tmp: если он имеет дату обновления не более 1 минуты, то чат-сервер запущен (чат простоянно обновляет этот файл)
● Воспользоваться 'ps':
● Написать в шелле ps axu | grep tcl (команда выдаст 1/2/несколько строк или ничего не выст)
● Найти строку, в которой написан ваш логин, но НЕ написано слово 'grep'
если такой строки нет, то чат сервер не запущен; если есть - чат работает
3.9.6 Ручное завершение работы чата
Необходимо либо в админовке чата нажать "shutdown", либо войти в шелл и выполнить:
● cd /home/username/chat/daemon
● kill `cat www-server/dimachat.pid` (внимание: кавычки обратные)
Либо по-другому:
● ps axu | grep tcl
● найти строку, начинающуюся с числа и содержащую ваш логин (username)
● написать kill число (число из пункта выше)
Данная команда kill убивает любой запущенный процесс на сервере по его номеру. Далее выполните туже команду еще раз. Если вам напишут "такого процесса не существует", то значит первая команда действительно выгрузила чат.
3.9.7 Автоматический запуск чат-сервера через cron/автозагрузку
Чтобы в случае падения чата-сервера (или перезагрузки сервера) он был перезагрузжен через NN минут, нужно воспользоваться услугой хостера "cron" и/или "автозагрузка" (если такая есть у хостера). Как именно воспользоваться - заранее не предсказать. Это может быть "панель управления" на сервере хостера, может быть некий файл на диске (в вашем домашнем каталоге), может быть команда в шелле (crontab), возможно, надо написать словами по почте в тех.поддержку.
3.9.8 Подготовка чата к автозапуску
Делайте это очень тщательно, как написано.
● Проверить, что чат без ошибок запускается вручную через run_background, предварительно выгрузив чат из памяти (командой kill или кнопкой shutdown в админовке). Попытка запуска run_background без выгрузки чата ничего не даст.
● Открыть run_background в редакторе файлов
● Добавить в начало файла новую пустую строку
● Вписать на строке "cd /home/username/chat/daemon" (написать абсолютный путь к каталогу daemon чата)
● Оставшуюся вторую стоку (с командой tclsh) оставить как есть.
● Выгрузить чат из памяти (еще раз)
● "cd /" (перейти в корень диска хостера)
● "/home/username/chat/daemon/run_background" (написать абсолютный путь к каталогу daemon чата и далее файлу run_background)
● Проверить, что чат работает после всего этого.
3.9.9 Запуск чата через CRON или автозапуск
Про это в 2-х следующих пунктах.
● Для добавления чата в cron нужно вписать туда команду и период запуска. Команда: /home/username/chat/daemon/run_background (написать абсолютный путь к каталогу daemon чата и далее файлу run_background). Период запуска: 15 минут. Если заботливый админ хостера спросит, нормально ли запускать одно и тоже много раз, то знайте - чат не запускается второй раз, если уже запущен. Поэтому можно сколько угодно раз запускать чат, а он ни разу не запустится (только в первый раз).
● Для добавления чата в автозагрузку, нужно вписать туда туже команду, что и в случае с кроном. Автозагрузка намного предпочтительнее крона, т.к. чат-сервер будет запущен сразу после перезагрузки сервера хостера, а не в течении 1-15 минут, как в случае с кроном.
3.9.10 Для пользователей, страдаюших от не квалифицированных админов
Если админ не хочет помещать run_background в автозапуск сервер, ссылаясь на то, что так чат будет запущен от root'а, а не от вашего юзера, то скажите, что админ не прав. Действительно, запускать чат root'а или какого-либо другого юзера нельзя (только от вашего юзера). Но, чтобы таки поместить команду в автозагрузку, которая запустит чат с правами вашего юзера, научите админа новой замечательной команде: "su <username> -c <команда>". Т.е. на самом деле админ должен вписать не "/home/username/chat/daemon/run_background" (иначе будет запуск от рута и ваш чата работать не будет), а установку вашего юзера при запуске, т.е. вот это: "su wwwchat -c /home/wwwchat/chat/daemon/run_background" (где wwwchat - ваш логин).
Обратите внимение еще раз на пункт, где описывается процесс добавления в run_this и run_background команды смены каталога на ваш daemon. Без смены каталога cron или автозапуск работать не будет!
3. 10 УСТАНОВКА ЧАТА БЕЗ НАЛИЧИЯ Shell'а
Если у хостера нет услуги шелла, то поставить будет сложнее или просто невозможно. Но кратко, нужно следующее:
● Сообщите админу хостера, что вам на сервере нужен TCL версии 8.3.
Вы имеете право на это так же, как и пользоваться PHP или Перлом. Но если TCL нужной версии так и нет, то выполняйте инструкции только из FTP. Как только ВСЕ будет сделано, подумайте, как можно запустить ./run_background. Если придумаете и получится - установка завершена.
● Вариант 1 - попросить админа. Вы должны объяснить, что хотите запустить обыкновенный скрипт на языке TCL (это не страшнее запуска PHP, Perl или bash-скрипта). Данная программа (чат-сервер) является демоном, который будет постоянно работать с момента запуска. Она потребяет 3-4 Мб памяти, около 2Мб на диске (включая все PHP-скрипты, HTML, картинки и т.д.), расходует около 1% ресурсов процессора и генерирует трафик, который раз в 10-20 меньше, чем от чатов с refresh-обновлениями. Вы должны убедить админа, что чат-сервер - это очень легенькая по ресурсоемкости программа (это так и есть на самом деле). Если у вас в чате будет в среднем 10 человек одновременно, расход ресурсов близок к 0%. При 100-200 людях нагрузка может доходить до 1-2%.
Вариант 2 - для запуска чата используйте команду system() из PHP. Для этого в _dima.php поставьте $system_run=1 для активации авто/ручного запуска, $system_manual_run=1 для включения кнопки "запустить чат" в админовке. Для браузеров авторизуйтесь в чате и в админовке нажмите "запустить чат". PHP-скрипты проверят, разрешено ли вам использовать команду system() на вашем хостинге. Если да - чат-сервер будет запущен прямо из админовки! Если это получится, то так же поставьте в конфиге $system_autorun=1 (там, где идет проверка на $os=1) и чат будет запускаться автоматически. Если вам на хостинге не выделили отдельную копию Apache, то этот метод работать не будет. Если вы не знаете, выдели ли - то точно не выделили. Помните, у обычных хостеров system() запрещена. А даже если разрешена, то чат-сервер будет запущен не от вашего логина, а от юзера апача. Только если вам выделили отдельную копию Apache или админ хостера настроил sudo запуск вашего чата, то через system() и команду админовки чат будет нормально запускаться. Более подробно: 'help.php?help=12' в вашем чате.
Вариант 3 - используйте для запуска другие средства: наличие услуги "cron" у вашего хостера, возможность запускать CGI или Perl-скрипты. На многих хостингах в нагрузку к PHP дают доступ к каталогу CGI-BIN, из которого можно будет запустить скрипт (на языке Perl или bash) с одной командой - старта ./run_background. На Перле программа будет примерно такой: chdir "/home/wwwchat/chat/daemon"; exec "./run_background"; exit. Если дают cron, то просто пишите там команду (cd /home/wwwchat/chat/daemon; ./run_background) и чат будет запущен без проблем. Однако, как и в предыдущем пункте, помните о том, что чат-сервер нужно запускать с правами вашего пользователя, а не веб-сервера