parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

По многочисленным просьбам трудящихся...

Sanja (v.2) 08.05.2002 22:50

Устанавливаем парсер на Apache+WinXP. Quick Guide для чайников и приравненных к ним категорий населения :)

Далее предполагается, что у вас установлен Apache 1.3.2x и Windows NT/2000/XP, но инструкция должна работать и для других версий винды. Сильно не уверен, что будет работать со второй версией Апача. Предполагается также, что апач установлен в папку "по умолчанию" на диске c:\

1. Остановите Apache, ежели он запущен. (Кстати, стартовать/запускать Apache с удобством можно с помощью маленькой удобной приблуды под названием Apache Tray - но это так, отступление..)

2. Создайте на диске файл c:\create.bat такого содержания:
@echo off
rem Создаём все папки, вплоть до cgi-bin/parser3:
md  c:\MyWebsites\www.example.ru\html\cgi-bin\parser3
rem Делаем папку под пользовательские классы:
md  c:\MyWebsites\www.example.ru\html\etc\classes
rem Папка под логи апача:
md  c:\MyWebsites\www.example.ru\logs\
и запустите. Или создайте нужные папки вручную, если не влом. Будете менять названия папок - проследите, чтобы вы замените их и в файлах настройки.

3. Скачайте файлы дистрибутива p3 - cgi-версию парсера. У вас должны быть файлы

parser3_1_0_0001_win32_cgi_xml.zip - собственно, парсер
parser3conf_20020430_win32.zip - файлы описаний кодировок (кои, вин1251..)
parser3sql_1_0_0001_win32_mysql.zip - драйверы MySQL
parser3sql_1_0_0001_win32_odbc.zip - драйвер ODBC
parser3xml_20020424_win32.zip - XML-драйверы

4. Вывалите содержимое всех архивов в папку c:\MyWebsites\www.example.ru\html\cgi-bin\parser3 в одну кучу. У вас там должно остаться 14 файлов (убейте все лишние):

parser3.exe
parser3.conf
windows-1251.cfg
koi8-r.cfg
libexslt.dll
libgdome.dll
libglib-1.3-11.dll
libintl-1.dll
libmySQL.dll
libxml2.dll
libxslt.dll
iconv.dll
parser3mysql.dll
parser3odbc.dll

Переименуйте parser3.exe в parser3.cgi.

5. Откройте файл c:\WINDOWS\system32\drivers\etc\hosts в Блокноте. Если у вас Windows 95/98/Me, то он называется c:\windows\hosts (если его нет, его надо создать, расширение файлу не требуется). Добавьте в конец строчки
127.0.0.1                  localhost # Эта строчка там уже должна быть, если у вас NT/2K/XP, не копируйте её.
127.0.0.1             www.example.ru
127.0.0.1                 example.ru
6. Откройте в Блокноте файл c:\Program Files\Apache Group\Apache\conf\httpd.conf и добавьте в самый конец такой кусок текста:
<VirtualHost 127.0.0.1>
 ServerName  example.ru
 ServerAlias *.example.ru
 ServerAdmin parser@rules.forever
 DocumentRoot "c:/MyWebsites/www.example.ru/HTML/"
 <Directory   "c:/MyWebsites/www.example.ru/HTML/">
   Options All
   AllowOverride All
   Order allow,deny
   Allow from all
 </Directory>
 ScriptAlias /cgi-bin/ "c:/MyWebsites/www.example.ru/html/cgi-bin/"
 <Directory            "c:/MyWebsites/www.example.ru/html/cgi-bin/">
   Options All
   AllowOverride All
   Order allow,deny
   Allow from all
 </Directory>
 SetEnv HTTP_PARSER_ROOT_CONFIG  /MyWebsites/www.example.ru/html/cgi-bin/parser3/parser3.conf
 AddHandler    parsed-html       html
 Action parsed-html              /cgi-bin/parser3/parser3.cgi
 <Files ~ "\.(p|cfg)$">
  Order allow,deny
  Deny from all
 </Files>
 DirectoryIndex index.html
 ErrorLog   "c:/MyWebsites/www.example.ru/logs/error.log"
 CustomLog  "c:/MyWebsites/www.example.ru/logs/custom.log" combined
 RewriteLog "c:/MyWebsites/www.example.ru/logs/rewrite.log"
 RewriteLogLevel 3
</VirtualHost>
7. Откройте файл c:\MyWebsites\www.example.ru\html\cgi-bin\parser3\parser3.conf
Замените его содержимое следующим текстом:
@auto[]

$SQL[
$.drivers[^table::set{protocol	driver	client
odbc	c:/MyWebsites/www.example.ru/html/cgi-bin/parser3/parser3odbc.dll
mysql	c:/MyWebsites/www.example.ru/html/cgi-bin/parser3/parser3mysql.dll	c:/MyWebsites/www.example.ru/html/cgi-bin/parser3/libmySQL.dll}]
]

$CHARSETS[
$.windows-1251[c:/MyWebsites/www.example.ru/html/cgi-bin/parser3/windows-1251.cfg]
      $.koi8-r[c:/MyWebsites/www.example.ru/html/cgi-bin/parser3/koi8-r.cfg]
]

$CLASS_PATH[^table::create{path
/etc/classes}]

## Mime-types:

$MIME-TYPES[^table::set{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
}]

## Post-request limit:

$LIMITS[
	$.post_max_size(10*0x400*0x400)
]

## Sendmail and SMTP:

$MAIL[
   $.SMTP[127.0.0.1]
]

## Exceptions handler:

@unhandled_exception[exception;stack]
$response:content-type[
        $.value[text/html]
        $.charset[$response:charset]
]

<title>Error!</title>
<body bgcolor=white text=black>
<h2>Parser3: Error in the code</h2>
^untaint[html]{<pre><b><font color=orange face=Courier>$exception.comment</font></b></pre>}
^if(def $exception.source){
<p><b>Error caused by the operator:</b> $exception.source</p>
<p><b>Error in file:</b> ^untaint[html]{$exception.file}
<b>in line:</b>  ^untaint[html]{$exception.lineno}</p>
}
^if(def $exception.type){<p><b>Exception Type:</b> $exception.type </p>}
^if($stack){
	<hr size=1>
	<p><b>Backtrace:</b></p>
	<ul>
	^stack.menu{
		<li><b>$stack.name</b> $stack.file^($stack.lineno^)</li>
	}
	</ul>
}
8. Создайте файл c:\MyWebsites\www.example.ru\html\auto.p со следующим текстом:
@auto[]

$request:charset[windows-1251]
$response:charset[windows-1251]
$response:content-type[
   $.value[text/html]
   $.charset[$response:charset]
]

$SQL.connect-string[mysql://логин:пароль@127.0.0.1/базаданных?charset=cp1251_koi8] 
Замените логин, пароль и базаданных своими настройками или же добавьте символ "#" в начало этой строчки, если вы не знаете, как настроить доступ к базе данных или у вас её попросту нет.

9. Положите в c:\MyWebsites\www.example.ru\html\ файл index.html такого содержания:
<h1> Дважды два = ^eval(2*2) </h1>
10. Сохраните все открытые файлы и закройте все открытые окна браузера. Попробуйте запустить из командной строки команду c:\Program Files\Apache Group\Apache\Apache.exe -t Вы должны увидеть сообщение httpd.conf: Syntax OK. Если нет, apache подскажет вам, где ошибка. Скроее всего причина - в несозданной папке или опечатке.

11. Запустите apache, откройте браузер и наберите в адресной строке http://www.example.ru/
Если увидите строчку Дважды два = 4 - у вас всё получилось.

Другие тестовые сайты на вашем компьютере организуются аналогичным образом. Если ваш сайт называется, например, iloveparser.ru создавайте локальный тестовый вариант под названием beta.iloveparser.ru - это избавит вас от лишней путаницы. Создайте дополнительную папку в c:\MyWebsites\ , добавьте новые строки в httpd.conf и hosts, перезапустите апач - и новый локальный тестовый сайт готов.

P.S. Если вы ходите в интернет через прокси, не забудьте вписать www.example.ru и другие создаваемые вами локальные тестовые сайты в окно браузера "Не использовать прокси сервер для следующих адересов: ..."

P.P.S. Если вы захотите показать ваш тестовый сайт вашему коллеге - соседу по локальной сети, добавьте ему в файл hosts строчку:
ваш.ip.адрес.всети www.example.ru
чтобы браузер вашего друга знал, где искать ваш example.ru. Или пойдите к админу, пущай вас в dns пропишет сразу..

P.P.P.S. Когда будете устанавливать parser3 на сервер провайдеру, не заливайте по ftp папки /cgi-bin/parser3 - на провайдерском сайте потребуется создать свою, под операционную систему провайдера. Но это уже отдельная песня...