Lighttpd и cgi скрипты (мониторинга apcupsd)

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение OSBoy » 2009-11-26 12:10:03

Как заставить lighttpd выполнять cgi скрипты?

Lighttpd настроен с fastcgi
Последний раз редактировалось OSBoy 2009-11-26 19:28:58, всего редактировалось 2 раза.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Lighttpd и cgi скрипты

Непрочитанное сообщение thefree » 2009-11-26 12:39:17

Код: Выделить всё

cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
                               ".cgi" => "/usr/bin/perl",
                               ".php" => "/usr/local/bin/php-cgi" )
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Re: Lighttpd и cgi скрипты мониторинга apcupsd

Непрочитанное сообщение OSBoy » 2009-11-26 19:26:04

Не пойму! Я, собственно, хочу прикрутить вэб-морду к apcupsd, как описано тут.
Прописал в lighttpd.conf:

Код: Выделить всё

server.modules              = (
#                               "mod_fastcgi",
                                "mod_cgi",
 )

static-file.exclude-extensions = ( ".cgi", ".fcgi", ".php", ".rb", "~", ".inc", ".pl", ".yml" )

#fastcgi.server                 = ( ".php" =>
#                                  ( "localhost" =>
#                                   (
#                                   "socket" => "/tmp/php-fastcgi.socket",
#                                   "bin-path" => "/usr/local/bin/php-cgi"
#                                   )
#                                  )
#                                 )

cgi.assign                      = ( ".pl"  => "/usr/bin/perl",
                                    ".cgi" => "/usr/bin/perl",
                                    ".php" => "/usr/local/bin/php-cgi"
                                  )
Далее пробовал:
- делать линк:

Код: Выделить всё

/usr/local/www/apcupsd -> /usr/local/etc/apcupsd
- делать виртуальную директорию средствами lighttpd типа:

Код: Выделить всё

alias.url  = ( "/apcupsd" => "/usr/local/etc/apcupsd" )
- создавать вручную диру /usr/local/www/apcupsd и копировать в неё cgi, hosts.conf и т.д. из /usr/local/etc/apcupsd.

В итоге при попытке открыть в браузере http://your-site/cgi-bin/multimon.cgi во всех случаях получаю "500 - Internal Server Error"! Кто-нибудь подскажет, как это победить?

Аватара пользователя
skeletor
майор
Сообщения: 2508
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение skeletor » 2009-11-27 11:51:59

Вот как я делал http://skeletor.ho.ua/index.php?name=ar ... &cat=7&p=2 . Может тебе поможет.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Lighttpd и cgi скрипты мониторинга apcupsd

Непрочитанное сообщение thefree » 2009-11-27 13:37:04

OSBoy писал(а):В итоге при попытке открыть в браузере http://your-site/cgi-bin/multimon.cgi во всех случаях получаю "500 - Internal Server Error"! Кто-нибудь подскажет, как это победить?
Покажи лог lighttpd error
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение OSBoy » 2009-11-27 17:30:14

tail -f /var/log/lighttpd.error.log
2009-11-27 17:26:22: (mod_cgi.c.1279) cleaning up CGI: process died with signal 11
2009-11-27 17:26:22: (mod_cgi.c.1279) cleaning up CGI: process died with signal 11
2009-11-27 17:26:23: (mod_cgi.c.1279) cleaning up CGI: process died with signal 11
2009-11-27 17:26:24: (mod_cgi.c.587) cgi died, pid: 84378
2009-11-27 17:26:24: (mod_cgi.c.587) cgi died, pid: 84379
2009-11-27 17:26:24: (mod_cgi.c.587) cgi died, pid: 84380
2009-11-27 17:26:25: (mod_cgi.c.587) cgi died, pid: 84381
2009-11-27 17:26:25: (mod_cgi.c.587) cgi died, pid: 84382
2009-11-27 17:26:25: (mod_cgi.c.587) cgi died, pid: 84383
2009-11-27 17:26:25: (mod_cgi.c.587) cgi died, pid: 84384
2009-11-27 17:26:27: (mod_cgi.c.587) cgi died, pid: 84385
Вот, но это выводится, пока работает phpsysinfo. При обращении к cgi скриптам apcupsd в lighttpd.error.log ничего не пишется.

Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение OSBoy » 2009-11-27 20:18:04

Вот попробовал ещё сделать так:

Код: Выделить всё

server.modules              = (
....
                                "mod_fastcgi",
#                               "mod_cgi",
....
)

static-file.exclude-extensions = ( ".cgi", ".fcgi", ".php", ".rb", "~", ".inc", ".pl", ".yml" )

fastcgi.server                  = ( ".php" =>
                                   ( "localhost" =>
                                    (
                                    "socket" => "/tmp/php-fastcgi.socket",
                                    "bin-path" => "/usr/local/bin/php-cgi"
                                    )
                                   ),
                                    ".cgi" =>
                                   ( "localhost" =>
                                    (
                                    "host" => "127.0.0.1",
                                    "port" => 9000
                                    )
                                   )
                                  )


#cgi.assign                     = ( ".pl"  => "/usr/bin/perl",
#                                   ".cgi" => "/usr/bin/perl",
#                                   ".php" => "/usr/local/bin/php-cgi"
#                                 )
При этом, при обращении к cgi скрипту в лог пишется:

Код: Выделить всё

2009-11-27 20:16:58: (mod_fastcgi.c.1742) connect failed: Connection refused on tcp:127.0.0.1:9000 
2009-11-27 20:16:58: (mod_fastcgi.c.2943) backend died; we'll disable it for 5 seconds and send the request to another backend instead: reconnects: 0 load: 1 
2009-11-27 20:17:04: (mod_fastcgi.c.2756) fcgi-server re-enabled: tcp:127.0.0.1:9000 

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение thefree » 2009-12-04 17:02:00

запустите плиз

Код: Выделить всё

#!/usr/bin/perl -w

use strict;
print "Content-type: text/html\n\n";
print "oki";
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение OSBoy » 2009-12-04 17:22:31

thefree писал(а):запустите плиз

Код: Выделить всё

#!/usr/bin/perl -w

use strict;
print "Content-type: text/html\n\n";
print "oki";
И??

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение thefree » 2009-12-05 11:34:06

1. показывает, что на страници, сохраните только как test.cgi
2. что в логах.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение OSBoy » 2009-12-06 17:16:37

То же самое:

Код: Выделить всё

tail -f /var/log/lighttpd.error.log
2009-12-06 16:59:53: (mod_fastcgi.c.1742) connect failed: Connection refused on tcp:127.0.0.1:9000 
2009-12-06 16:59:53: (mod_fastcgi.c.2943) backend died; we'll disable it for 5 seconds and send the request to another backend instead: reconnects: 0 load: 1 
2009-12-06 16:59:59: (mod_fastcgi.c.2756) fcgi-server re-enabled: tcp:127.0.0.1:9000 
и 500 - Internal Server Error

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение thefree » 2009-12-07 0:10:20

начнем с первого вопроса FCGI модуль для perl стоит?

Код: Выделить всё

fastcgi.server = (
".pl" =>
  ( "localhost" =>
   (
     "socket" => "/tmp/perl-fastcgi.socket",
     "bin-path" => "/usr/bin/perl"
  )
 )
)
этот код будет правильнее
и попробуйте запустить этот код, только сохраните с расширением pl

Код: Выделить всё

#!/usr/bin/perl

use strict;
use FCGI;
 
while( FCGI::accept() >= 0 )
{
    print( "Content-Type: text/plain", "\n\n" );
    print( "Hello World in Perl", "\n" );
}
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение OSBoy » 2009-12-09 12:15:39

thefree писал(а):начнем с первого вопроса FCGI модуль для perl стоит?
Вот что получилось:

Код: Выделить всё

2009-12-09 12:14:22: (log.c.172) server started 
2009-12-09 12:14:22: (mod_fastcgi.c.1087) the fastcgi-backend /usr/bin/perl failed to start: 
2009-12-09 12:14:22: (mod_fastcgi.c.1091) child exited with status 0 /usr/bin/perl 
2009-12-09 12:14:22: (mod_fastcgi.c.1094) If you're trying to run your app as a FastCGI backend, make sure you're using the FastCGI-enabled version.
If this is PHP on Gentoo, add 'fastcgi' to the USE flags. 
2009-12-09 12:14:22: (mod_fastcgi.c.1398) [ERROR]: spawning fcgi failed. 
2009-12-09 12:14:22: (server.c.928) Configuration of plugins failed. Going down. 
Я так понимаю, что не стоит, так?
Где его искать в портах или как ставить?
/usr/ports/www/fcgi - это не то, что мне нужно?

Перл стоит так:

Код: Выделить всё

Options for perl 5.8.9_3 
[ ] DEBUGGING      Build with debugging support
[ ] GDBM           Build GDBM_File extension
[X] PERL_MALLOC    Use Perl malloc
[X] PERL_64BITINT  Use 64 bit integers (on i386)
[ ] THREADS        Build threaded perl
[ ] SUIDPERL       Build set-user-id suidperl binary 
[ ] SITECUSTOMIZE  Run-time customization of @INC
[X] USE_PERL       Rewrite links in /usr/bin

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение thefree » 2009-12-09 17:33:05

lighttpd вы должны были собрать с поддержкой spawn-fcgi (/usr/ports/www/spawn-fcgi)
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение OSBoy » 2009-12-09 20:04:04

thefree писал(а):lighttpd вы должны были собрать с поддержкой spawn-fcgi (/usr/ports/www/spawn-fcgi)
Собрал - эффекта нет, в логе тоже самое. И вообще, причём тут spawn-fcgi ?
Вот вычитал, что модуль FCGI для перла устанавливается через cpan или из портов, только вот установил я его, после этого ещё какие либо телодвижения требуются?

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение thefree » 2009-12-10 9:25:51

/usr/ports/www/p5-FastCGI вот это то что вам нужно ... и вот это вам то же нужно
/usr/ports/www/spawn-fcgi т.к. запускай придется через spawn-fcgi (как построена в apcupsd хз)
почитать можно тут
http://www.lissyara.su/articles/freebsd ... pawn-fcgi/
у меня же сделано вот так

Код: Выделить всё

fastcgi.server             = ( ".fpl" =>
                               ( "localhost" =>
                                (
                                 "host" => "localhost",
                                 "port" => 9090
                                )
                               )
                             )
вот сам скрипт

Код: Выделить всё

#!/usr/bin/perl -w

use strict;
use FCGI;
use CGI;

my $socket = FCGI::OpenSocket(":9090", 5);
my $request = FCGI::Request(\*STDIN, \*STDOUT, \*STDERR, \%ENV, $socket);
my $c = 0;
while($request->Accept() >= 0) {
        $c++;
        print "Content-type: text/plain\n\n";
        print "Hello World in Perl<br>\n";
        print "$_ = $ENV{$_}<br>\n" foreach sort keys %ENV;
        print "<hr>\n";
        my $query = CGI->new();
        print "$_ = ", $query->param($_), "<br>\n" foreach sort $query->param();
}
FCGI::CloseSocket($socket);
Посмотреть можно вот тут _http://test.thefree.ru/test.fpl

upd
skeletor все выше же описал как запускать ... прикрути к lighttpd нет проблем.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение OSBoy » 2009-12-10 13:17:35

Ни фига не получается, в лучшем случае содержимое самого кода выдаёт!

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение thefree » 2009-12-10 13:31:31

фантастика ...
Честное слово, привел же рабочий код.

upd: выполнили perl test.pl & ?
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
OSBoy
сержант
Сообщения: 228
Зарегистрирован: 2007-04-09 12:17:50
Откуда: Из капусты

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение OSBoy » 2009-12-10 19:04:37

Блин, у товарища выше всё на nginx ориентировано, а во всех доках по lighttpd всё расписано только про php!
Из всего этого у меня уже полная каша в голове! :st:

Итак, сейчас у меня имеется следующее:
lighttpd пересобрал с поддержкой spawn-fcgi;
установил из портов /usr/ports/www/p5-FastCGI;
В lighttpd.conf следующее:

Код: Выделить всё

fastcgi.debug   = "1"
fastcgi.server            = ( ".pl" =>
                                   ( "localhost" =>
                                    (
                                    "host" => "127.0.0.1",
                                    "port" => 9000
                                    )
                                   )
                                  )
Сервер стартует нормально, без ошибок.
При обращении к test.pl (тот, что вы дали выше) имеем: 503 - Service Not Available и ругань в логе:

Код: Выделить всё

2009-12-10 18:55:17: (mod_fastcgi.c.1734) connect failed: Connection refused on tcp:127.0.0.1:9000 
2009-12-10 18:55:17: (mod_fastcgi.c.455) backend disabled for 1 seconds 
2009-12-10 18:55:17: (mod_fastcgi.c.3024) backend died; we'll disable it for 1 seconds and send the request to another backend instead: reconnects: 0 load: 1 
2009-12-10 18:55:19: (mod_fastcgi.c.2851) fcgi-server re-enabled: tcp:127.0.0.1:9000 
Что не удивительно, т.к. коннектиться по 9000 порту, как я понимаю, собственно не к чему.
И ещё я так и не понял, за каким всё таки нужен spawn-fcgi?
Я ради интереса попробовал стартануть: /usr/local/etc/rc.d/spawn-fcgi start
При этом запрос к test.pl вывыл содержимое его кода...

Вопрос теперь, что надо делать дальше?
Строка "Для Perl вы должны установить FCGI модуль с CPAN." в доке к lighttpd ну просто шикарна! Мать её! :%)

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение thefree » 2009-12-10 22:41:52

какая разница nigx или lighttpd они оба front-end
ссылку на apcupsd откуда ставить завтра думаю заведем ...
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету


d15b200
проходил мимо

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение d15b200 » 2010-06-22 10:35:14

это ELF файлы, http://osdir.com/ml/web.lighttpd/2005-01/msg00144.html
просто тестом сделал

Код: Выделить всё

#### CGI module
cgi.assign                 = ( ".pl"  => "",
                               ".cgi" => "",
                               "multimon.cgi" => "" )
и он запустился.
Заметь если смотреть файл (F4), то видно, что он не скрипт а исполняемый!

Код: Выделить всё

svr# /usr/bin/perl /usr/local/www/apc/multimon.cgi
Unrecognized character \x7F in column 1 at /usr/local/www/apc/multimon.cgi line 1.
svr#

x6e6564
проходил мимо

Re: Lighttpd и cgi скрипты (мониторинга apcupsd)

Непрочитанное сообщение x6e6564 » 2010-06-23 10:30:54

Примерно делал так:

Код: Выделить всё

alias.url += ( "/apcupsd/" => "/usr/local/etc/apcupsd/cgi/" )

$HTTP["url"] =~ "^/apcupsd/" {
        cgi.assign = ( "" => "" )
}