2002-05-18 19:08:56 UTC
ВНИМАНИЕ: Данная статья работает только для версии парсера 0001, для версии 0005 механизм установки слегка другой, более простой.
На net.ru наконец-то вняли мольбам пользователей и исправили кривизну с переменной окружения DOCUMENT_ROOT, которая теперь указывает на реальный корень веб-пространства. Следовательно, можно пропустить хитрые манипуляции касающиеся DOCUMENT_ROOT, описанные в этой статье и поэтому установка станет проще.
Для неопытных товарищей установка парсера 3 у данного провайдера может вызвать некоторые затруднения и поэтому я решил немного написать о том, как это делал я.
http://egorov2000.narod.ru/download/parser3_1_0_0001_freebsd45R_grpunlim_cgi.tar.gz — CGI без XML http://egorov2000.narod.ru/download/parser3_1_0_0001_freebsd45R_grpunlim_cgi_xml.tar.gz — CGI с XML
Тексты файлов .htaccess, главного конфигурационного файла (ГКФ), конфигурационного файла сайта (КФС)
SetEnv HTTP_PARSER_ROOT_CONFIG /users/e/g/egoroff.spb.ru/html/www/cgi-bin/parser3.conf SetEnv HTTP_PARSER_SITE_CONFIG /users/e/g/egoroff.spb.ru/html/www/parser3.conf AddHandler parsed-html .html Action parsed-html /cgi-bin/parser3.cgi <Files ~ "\.(p|cfg)$"> Order allow,deny Deny from all </Files>
Здесь для строчек начинающихся с SetEnv, путь до /cgi-bin/parser3.conf и /parser3.conf — это полный путь до корня веб-пространства сайта в файловой системе сервера и для его определения можно порекомендовать следующее:
#source/client charsets #$request:charset[windows-1251] #$response:charset[windows-1251] #$response:content-type[ # $.value[text/html] # $.charset[$response:charset] #]
$env:PATH_TRANSLATED
@auto[] $charsetsdir[/users/e/g/egoroff.spb.ru/html/www/cgi-bin/parser3.charsets] $sqldriversdir[/users/e/g/egoroff.spb.ru/html/www/cgi-bin/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::set{protocol driver client mysql $sqldriversdir/libparser3mysql.so libmysqlclient.so}] ] #for ^file:load[name;user-name] mime-type autodetection $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 }] $LIMITS[ $.post_max_size(10*0x400*0x400) ] $MAIL[ # $.sendmail[your sendmail command goes here] # these are tried when no "sendmail" specified: $.prog1[/usr/sbin/sendmail -t] $.prog2[/usr/lib/sendmail -t] ] @unhandled_exception[exception;stack] $response:content-type[ $.value[text/html] $.charset[$response:charset] ] <title>UNHANDLED EXCEPTION (root)</title> <body bgcolor=white> <font color=black> <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> } }
@auto[] #source/client charsets $request:charset[windows-1251] $response:charset[windows-1251] $response:content-type[ $.value[text/html] $.charset[$response:charset] ] $from_doc_root_to_web_root[/e/g/egoroff.spb.ru/html/www] $CLASS_PATH[^table::create{path $from_doc_root_to_web_root/classes $from_doc_root_to_web_root/classes/specific}] $connect_string[mysql://имя:пароль@localhost/база]
Поскольку на net.ru переменная DOCUMENT_ROOT (её значение можно получить вызовом $env:DOCUMENT_ROOT) не указывает на реальное местоположение корня веб-пространства, и у данного провайдера она равна /users, я ввел переменную $from_doc_root_to_web_root определяющую путь, ВНИМАНИЕ!: от DOCUMENT_ROOT до корня веб-пространства, — это необходимо для работы с абсалютными путями для доступа к файлам и каталогам. Без этой переменной, каждый раз при использовании абсалютного пути к файлу(каталогу), придется писать весь этот путь (от DOCUMENT_ROOT до корня веб-пространства).
Пример:
Вместо:
^table::load[$from_doc_root_to_web_root/dir/file.txt]
придется каждый раз писать:
^table::load[/e/g/egoroff.spb.ru/html/www/dir/file.txt]
Если у вас (у вашего провайдера) переменная DOCUMENT_ROOT как и положено (в доке по Apache) указывает на реальное местонахождение корня веб-пространства, то вам все эти замороки с дополнительной переменной не нужны и все будет немного проще.