Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] Странное поведение mod _perl



On Wed, 28 Apr 1999, Victor B Wagner wrote:

> Имеется достаточно сложная система скриптов на mod_perl, в которой
> Perl*Handler вешаются на самые различные стадии запроса
> (в частности PerlTransHandler и PerlFixupHandler, а отдачей контента
> занимается либо PerlSSI, либо Registry скрипты).

И я знаю, какая это система Ж-) Кстати, вместо PerlSSI лучше использовать
какую-нибудь из существующих надстроек типа HTML::Embperl, HTML::Mason
(который, кстати, умеет кэшировать результаты), Apache::ASP,
Apache::ePerl и т.д.

> При этом в Fixup-хэндлере для PerlSSI-страниц создается объект CGI,
> который живет в глобальной переменной модуля, и используется в
> соответствующих вызовах <!--#perl sub.

Не есть правильно. Если ты хранишь данные о сессии, используй
Apache::Session или механизм cookies напрямую (насколько я понимаю,
Apache::Session тоже реализован с использованием cookie).

> Некоторое время все это жило и каши не просило, но вдруг (после
> глобального переписывания) был замечен такой эффект, что 
> нечто (как правило параметр запроса) переживает текущий http запрос
> и в результате если Registry скрипт случайно обрабатывается копией httpd
> где все это живет, поведение его совершенно непредсказуемо.

Проведи тривиальную трассировку: поставь в ключевых точках 
print STDERR "Stage $stage : value $variable"; 
Попробуй, кстати, Apache::DB - расскажешь о впечатлениях.

> Попытка заменить local %ENV
> на 
> my %oldenv = %ENV;
> %ENV = $r->cgi_env;
> &init_context
> %ENV=%oldenv
> 
> положение сильно не улучшила. 

А local вообще не стоит использовать в mod_perl - это же аналог сишного
static, насколько я ничего не понимаю...

> Особые проблемы вызывает скрипт с multipart-формой, точнее с двумя формами
> - одной get, второй multipart.

А чем ты разбираешь multipart?

> Да, кстати. В Apache 1.2 была опция -x которая заставляла сервер
> работать в foreground и без форканья, что сильно упрощало отладку подобных
> вещей. В 1.3.4 и 1,3.6 сие куда-то испарилось.

Есть, только называется -X.

#-- Ilya Obshadko [IDO-RIPN] -------------------------------#
#-- email: ilya@xxxxxxxxxx, ilya24@xxxxxxx -----------------#
#-- ICQ UIN: 10704338 --------------------------------------#

=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.