Установка парсера 3.0005


Установка парсера 3.0005Морда: СтандартнаяСераяЗеленая Главная / Портфель / Установка парсера 3.0005 Запомнить № 13:
 Установка парсера 3.0005Опубликовано:
 25 сентября 2002Изменено:
 25 ноября 2002 |
В связи с выходом новой (0005) версии 3-го парсера и с тем что в ней произошли некоторые изменения, затрагивающие (облегчающие) процесс его установки, пожалуй я расскажу о том, как это делал я. Текст этой статьи будет похож на текст предыдущей статьи по установке 3-го парсера и он может быть полезен и при установке у других провайдеров.
Сначала несколько вводных замечаний:
У провайдера стоит операционная система FreeBSD 4.3, и для неё прекрасно подходят бинарики для FreeBSD 4.6, которые есть в разделе загрузок сайта parser.ru.
Все веб документы, должны находиться в каталоге /html или его подкаталогах и имя подкаталога в каталоге /html определяет имя сервера, например к документам в каталоге /html надо обращаться по http://domen.ru/, к документам в /html/www надо обращаться по http://www.domen.ru/ и т.д.
Парсер 3 будет находится в подкаталоге cgi-bin, веб-пространства, например если сайт находится в /html/www то парсер будет лежать в /html/www/cgi-bin. Далее в тексте я буду обращаться к корню веб пространства /html/www как — /, к /html/www/cgi-bin как — /cgi-bin и т.д.
У этого провайдера необходимо использовать версию скомпилированную с отключенной опцией --disable-foreign-group-files. Эту версию можно либо создать самому из исходников, либо попросить у сотрудников Студии Лебедева:
С парсером используется только СУБД MySQL т.е. рассказывается об установке драйвера только для этой СУБД, хотя для PostgreeSQL всё делается аналогично и более того, можно в пределах одного сайта и даже одной страницы, работать с двумя этими СУБД.
Основная кодировка в которой все файлы сайта и данные в БД — Windows-1251
Теперь о самой установке
Копируем по ftp (обязательно! в binary режиме) CGI скрипт parser3.cgi в каталог /cgi-bin и устанавливаем ему права 700 (это самые жесткие права), т.е. разрешение на чтение, запись и выполнение только для владельца файла.
В этом каталоге (/cgi-bin) создаем 2 подкаталога: lib и charsets
В /cgi-bin/lib копируем драйвер MySQL — libparser3mysql.so (если необходимо работать с другой СУБД, например PostgreeSQL, то в этот же каталог скопируйте файл libparser3pgsql.so)
В /cgi-bin/charsets копируем файлы таблиц перекодировки: koi8-r.cfg, windows-1250.cfg, windows-1251.cfg, windows-1257.cfg
В /cgi-bin создаем/копируем конфигурационный файл — auto.p. Тут хочу сделать небольшое замечание — это самый простой способ, хранение конфигурационного auto.p рядом с парсером, однако если cgi-bin находится в веб-пространстве, это не самый лучший способ с точки зрения безопасности и поэтому в этом случае его лучше хранить вне веб-пространства.
В случае если вы храните этот файл не рядом с парсером, вы должны написать полный путь к нему в качестве параметра конфигурационного метода @conf[] определенного в конфигурационном auto.p, если нет, то в качестве параметра этого метода можно (по-умолчанию) оставить filespec.
В .htaccess назначаем parser3 обработчиком html файлов и устанавливаем переменную окружения CGI_PARSER_CONFIG, определяющую путь до конфигурационного файла auto.p.
Тексты файлов .htaccess и конфигурационного файла auto.p.htaccess
SetEnv CGI_PARSER_CONFIG /users/e/g/egoroff.spb.ru/html/www/cgi-bin/auto.p
AddHandler parsed-html html
Action parsed-html /cgi-bin/parser3.cgi
<files ~ "\.p$">
Order allow,deny
Deny from all
</files>
Пояснения:Здесь для строчки начинающейся с SetEnv, путь до /cgi-bin/auto.p — это полный путь до корня веб-пространства сайта в файловой системе сервера и для его определения можно порекомендовать следующее:
После копирования всех необходимых файлов в соответствующие каталоги, правильной установки разрешений для файла parser3.cgi, назначения parser3 обработчиком html файлов (путь при определении переменной CGI_PARSER_CONFIG можно пока писать любой) и создания конфигурационного файла, в конфигурационном auto.p закомментируйте строчки касающиеся определения кодировок, т.е.:
#source/client charsets
#$request:charset[windows-1251]
#$response:charset[windows-1251]
#$response:content-type[
# $.value[text/html]
# $.charset[$response:charset]
#]
Создайте в корне сайта файл index.html (название документа может быть другим если вы не используете для документа по умолчанию index.html)
Сделайте в этом файле следующий вызов поля класса env (определение переменной окружения PATH_TRANSLATED): $env:PATH_TRANSLATED
Вы получите имя файла (index.html) с абсалютным путем до него (у меня этот вызов дает следующее — /users/e/g/egoroff.spb.ru/html/www/index.html)
Путь до /index.html (или любого другого файла) и есть искомый путь до корня веб-пространства (у меня это — /users/e/g/egoroff.spb.ru/html/www).
Раскомментируйте строчки, касающиеся кодировок.
Напишите правильный путь до конфигурационного файла при определении переменной CGI_PARSER_CONFIGКонфигурационный файл auto.p:
@conf[filespec]
# если конфиг auto.p лежит не рядом с парсером
# определаяем этот метод типа так:
# @conf[/users/e/g/egoroff.spb.ru/auto.p]
$confdir[^file:dirname[$filespec]]
$charsetsdir[$confdir/charsets]
$sqldriversdir[$confdir/lib]
$charsets[
$.koi8-r[$charsetsdir/koi8-r.cfg]
$.windows-1250[$charsetsdir/windows-1250.cfg]
$.windows-1251[$charsetsdir/windows-1251.cfg]
$.windows-1257[$charsetsdir/windows-1257.cfg]
]
#change your client libraries paths to
those on your system
$sql[
$.drivers[^table::create{protocol driver client
mysql $sqldriversdir/libparser3mysql.so libmysqlclient.so
#pgsql $sqldriversdir/libparser3pgsql.so libpq.so
}]
]
#for ^file::load[name;user-name] mime-type autodetection
$mime-types[^table::create{ext mime-type
zip application/zip
doc application/msword
xls application/vnd.ms-excel
pdf application/pdf
ppt application/powerpoint
rtf application/rtf
gif image/gif
jpg image/jpeg
png image/png
tif image/tiff
html text/html
htm text/html
txt text/plain
mts application/metastream
mid audio/midi
midi audio/midi
mp3 audio/mpeg
ram audio/x-pn-realaudio
rpm audio/x-pn-realaudio-plugin
ra audio/x-realaudio
wav audio/x-wav
au audio/basic
mpg video/mpeg
avi video/x-msvideo
mov video/quicktime
swf application/x-shockwave-flash
}]
$limits[
$.post_max_size(10*0x400*0x400)
]
$mail[
$.prog1[/usr/sbin/sendmail -t]
$.prog2[/usr/lib/sendmail -t]
]
@fatal_error[title;body]
$response:status(500)
$response:content-type[
$.value[text/html]
$.charset[$response:charset]
]
<html>
<head><title>$title</title></head>
<body>
<h1>$title</h1>
$body
#for [x] MSIE friendly
^for[i](0;512/8){<!-- -->}
</body>
@unhandled_exception_debug[exception;stack]
^fatal_error[Unhandled Exception (Debug);
<pre>^untaint[html]{$exception.comment}</pre>
^if(def $exception.source){
<strong>$exception.source</strong><br>
<pre>^untaint[html]{$exception.file^($exception.lineno^)}</pre>
}
^if(def $exception.type){exception.type=$exception.type}
^if($stack){
<hr>
^stack.menu{
<tt>$stack.name</tt> $stack.file^($stack.lineno^)<br>
}
}
]
@unhandled_exception_release[exception;stack]
^fatal_error[Unhandled Exception;
<p>Произошла ошибка сервера
из-за которой невозможно выполнить ваш запрос.</p>
<p>Пожалуйста свяжитесь с администратором сервера, <a href="mailto:admin@domain.ru">admin@domain.ru</a>
и информируйте его о времени когда произошла ошибка,
и о ёё причинах.</p>
]
@unhandled_exception[exception;stack]
^unhandled_exception_release[$exception;$stack]
@auto[]
#source/client charsets
$request:charset[windows-1251]
$response:charset[windows-1251]
$response:content-type[
$.value[text/html]
$.charset[$response:charset]
]
$CLASS_PATH[^table::create{path
/classes
/classes/specific}]
$connect_string[mysql://имя:пароль@localhost/база]
<< № 12 | Содержание | № 14 >>Из последнего№ 24 Работаем с .htpasswd 08.11.2003 (Изменено: 10.01.2004)№ 23 Самодокументирование парсерного кода 14.09.2003№ 22 Работаем с RSS 21.02.2003№ 21 Топологическая сортировка 16.02.2003№ 20 Установка 3-го парсера на хостинге 350mb.ru 12.02.2003ПолезноеParser 3Parser.ruУстановка и настройка Parser3Хостингnet.ruWWWЛаборатория dkГлавная / Портфель / Установка парсера 3.0005 Запомнить Информация о сервереАвторРегистрация/настройки
содержание | 2 | Такси в Тюмени
Используются технологии uCoz