Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибки в Perl при включение Gzip модуля в Apache 
:(
    Опции темы
Dima85
Дата 27.11.2008, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



Столкнулся с необъяснимой проблемой.
У меня выделенный Linux сервер, включая в Apache Gzip модуль, мои Perl скрипты начинают сходить сума, в случайных местах обрезается вывод данных, будь то html код или вывод какого-то текста. И что странно это не какой-то один определенный скрипт, это практически все написанный мною скрипты.
Подскажите в чем может быть дело. Сервер загружен как правело на 9-50%.
Сегодня просматривал лог файлы Apache ничего необычного не обнаружил. Может можно в Perl как-то вести логии запуска скриптов, что б понять как они работают и почему происходит эта ошибка?
PM MAIL   Вверх
sir_nuf_nuf
Дата 27.11.2008, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



Dima85, скрипты - обычный CGI ?
Странно вообще, но попробуй отключить буфферизацию ($| = 1) или
перед выходом из скрипта делать STDOUT->flush();


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Dima85
Дата 27.11.2008, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



Это *.pl файлы. Вот один из них (немного урезаный):
Код

#!/usr/bin/perl
use strict;
use Fcntl ':flock';
use CGI::Carp qw/fatalsToBrowser/;
print "Content-type: text/html\n\n";

my $user = "/home/dima/egop/ul.text"; 

my @onuser = ();
open(USER, "< $user") or die "Can't open file user!\n";
flock(USER,LOCK_SH); 
while (<USER>) {
   s|!|              <li>|g;
   s|:|</li>|g;
   s|Gria|<small>Gria</small>|g;
   push @onuser, $_;
}
my $kluser = $.;
close (USER) or die "Can't close file user!\n";

print q~<ul id="ch-p1">@onuser</ul>~;


Расскажите пожалуйста немного подробней о STDOUT->flush(); и ($| = 1) я не силен в Perl.
PM MAIL   Вверх
sir_nuf_nuf
Дата 27.11.2008, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



Код

#!/usr/bin/perl
use strict;
use Fcntl ':flock';
use CGI::Carp qw/fatalsToBrowser/;
print "Content-type: text/html\n\n";

my $user = "/home/dima/egop/ul.text"; 

my @onuser = ();
open(USER, "< $user") or die "Can't open file user!\n";
flock(USER,LOCK_SH); 
while (<USER>) {
   s|!|              <li>|g;
   s|:|</li>|g;
   s|Gria|<small>Gria</small>|g;
   push @onuser, $_;
}
my $kluser = $.;
close (USER) or die "Can't close file user!\n";

print q~<ul id="ch-p1">@onuser</ul>~;
STDOUT->flush();



--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Dima85
Дата 27.11.2008, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



Не помогло. В чем еще может быть проблема? Может ему не нравиться то что многие файлы которые подгружают скрипты находиться вне каталога сервера? 

Это сообщение отредактировал(а) Dima85 - 27.11.2008, 14:28
PM MAIL   Вверх
sir_nuf_nuf
Дата 27.11.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



Dima85, не от положения скриптов это никак не зависит. не гадай.
следующие вопросы:
1) я так понимаю используется mod_gzip ?
2) без zip компрессии все работает нормально ?
3) с zip компрессией статические файлы (простой html, css, jpg..) выдаются нормально ?

При запуске CGI скрипта (perl) - запускается отдельный процесс (интерпретатор perl),
и весь его вывод (STDOUT) через pipe направляется в апач.

Т.е. фактически apache читает данные не из файла, из pipe.
Но очевидно есть некоторые нюансы, и из-за этого глючит mod_gzip.

Вообщем я думаю это проблема конфигурации модулей и апача


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Dima85
Дата 27.11.2008, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



1.    Да, mod_gzip используется.
2.    Да.
3.    Как правело да.

Вобщем-то ответив на ваши вопросы, понял что нужно смотреть настройки Apache мода. Спасибо. 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.