Lighttpd и cgi скрипты (мониторинга apcupsd)
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- OSBoy
- сержант
- Сообщения: 228
- Зарегистрирован: 2007-04-09 12:17:50
- Откуда: Из капусты
Lighttpd и cgi скрипты (мониторинга apcupsd)
Как заставить lighttpd выполнять cgi скрипты?
Lighttpd настроен с fastcgi
Lighttpd настроен с fastcgi
Последний раз редактировалось OSBoy 2009-11-26 19:28:58, всего редактировалось 2 раза.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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 скрипты
Код: Выделить всё
cgi.assign = ( ".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl",
".php" => "/usr/local/bin/php-cgi" )
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
- OSBoy
- сержант
- Сообщения: 228
- Зарегистрирован: 2007-04-09 12:17:50
- Откуда: Из капусты
Re: Lighttpd и cgi скрипты мониторинга apcupsd
Не пойму! Я, собственно, хочу прикрутить вэб-морду к apcupsd, как описано тут.
Прописал в lighttpd.conf:
Далее пробовал:
- делать линк:
- делать виртуальную директорию средствами lighttpd типа:
- создавать вручную диру /usr/local/www/apcupsd и копировать в неё cgi, hosts.conf и т.д. из /usr/local/etc/apcupsd.
В итоге при попытке открыть в браузере http://your-site/cgi-bin/multimon.cgi во всех случаях получаю "500 - Internal Server Error"! Кто-нибудь подскажет, как это победить?
Прописал в 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
Код: Выделить всё
alias.url = ( "/apcupsd" => "/usr/local/etc/apcupsd" )
В итоге при попытке открыть в браузере http://your-site/cgi-bin/multimon.cgi во всех случаях получаю "500 - Internal Server Error"! Кто-нибудь подскажет, как это победить?
- skeletor
- майор
- Сообщения: 2548
- Зарегистрирован: 2007-11-16 18:22:04
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
Вот как я делал http://skeletor.ho.ua/index.php?name=ar ... &cat=7&p=2 . Может тебе поможет.
- thefree
- лейтенант
- Сообщения: 980
- Зарегистрирован: 2008-12-29 9:23:19
- Откуда: Весёлая Страна
Re: Lighttpd и cgi скрипты мониторинга apcupsd
Покажи лог lighttpd errorOSBoy писал(а):В итоге при попытке открыть в браузере http://your-site/cgi-bin/multimon.cgi во всех случаях получаю "500 - Internal Server Error"! Кто-нибудь подскажет, как это победить?
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
- OSBoy
- сержант
- Сообщения: 228
- Зарегистрирован: 2007-04-09 12:17:50
- Откуда: Из капусты
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
Вот, но это выводится, пока работает phpsysinfo. При обращении к cgi скриптам apcupsd в lighttpd.error.log ничего не пишется.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
- OSBoy
- сержант
- Сообщения: 228
- Зарегистрирован: 2007-04-09 12:17:50
- Откуда: Из капусты
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
Вот попробовал ещё сделать так:
При этом, при обращении к cgi скрипту в лог пишется:
Код: Выделить всё
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"
# )
Код: Выделить всё
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)
запустите плиз
Код: Выделить всё
#!/usr/bin/perl -w
use strict;
print "Content-type: text/html\n\n";
print "oki";
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
- OSBoy
- сержант
- Сообщения: 228
- Зарегистрирован: 2007-04-09 12:17:50
- Откуда: Из капусты
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
И??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)
1. показывает, что на страници, сохраните только как test.cgi
2. что в логах.
2. что в логах.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
- OSBoy
- сержант
- Сообщения: 228
- Зарегистрирован: 2007-04-09 12:17:50
- Откуда: Из капусты
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
То же самое:
и 500 - Internal Server Error
Код: Выделить всё
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
- thefree
- лейтенант
- Сообщения: 980
- Зарегистрирован: 2008-12-29 9:23:19
- Откуда: Весёлая Страна
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
начнем с первого вопроса FCGI модуль для perl стоит?этот код будет правильнее
и попробуйте запустить этот код, только сохраните с расширением pl
Код: Выделить всё
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 по Рунету
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
- OSBoy
- сержант
- Сообщения: 228
- Зарегистрирован: 2007-04-09 12:17:50
- Откуда: Из капусты
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
Вот что получилось: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)
lighttpd вы должны были собрать с поддержкой spawn-fcgi (/usr/ports/www/spawn-fcgi)
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
- OSBoy
- сержант
- Сообщения: 228
- Зарегистрирован: 2007-04-09 12:17:50
- Откуда: Из капусты
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
Собрал - эффекта нет, в логе тоже самое. И вообще, причём тут spawn-fcgi ?thefree писал(а):lighttpd вы должны были собрать с поддержкой spawn-fcgi (/usr/ports/www/spawn-fcgi)
Вот вычитал, что модуль FCGI для перла устанавливается через cpan или из портов, только вот установил я его, после этого ещё какие либо телодвижения требуются?
- thefree
- лейтенант
- Сообщения: 980
- Зарегистрирован: 2008-12-29 9:23:19
- Откуда: Весёлая Страна
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
/usr/ports/www/p5-FastCGI вот это то что вам нужно ... и вот это вам то же нужно
/usr/ports/www/spawn-fcgi т.к. запускай придется через spawn-fcgi (как построена в apcupsd хз)
почитать можно тут
http://www.lissyara.su/articles/freebsd ... pawn-fcgi/
у меня же сделано вот таквот сам скриптПосмотреть можно вот тут _http://test.thefree.ru/test.fpl
upd
skeletor все выше же описал как запускать ... прикрути к lighttpd нет проблем.
/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);
upd
skeletor все выше же описал как запускать ... прикрути к lighttpd нет проблем.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
- OSBoy
- сержант
- Сообщения: 228
- Зарегистрирован: 2007-04-09 12:17:50
- Откуда: Из капусты
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
Ни фига не получается, в лучшем случае содержимое самого кода выдаёт!
- thefree
- лейтенант
- Сообщения: 980
- Зарегистрирован: 2008-12-29 9:23:19
- Откуда: Весёлая Страна
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
фантастика ...
Честное слово, привел же рабочий код.
upd: выполнили perl test.pl & ?
Честное слово, привел же рабочий код.
upd: выполнили perl test.pl & ?
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
- OSBoy
- сержант
- Сообщения: 228
- Зарегистрирован: 2007-04-09 12:17:50
- Откуда: Из капусты
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
Блин, у товарища выше всё на nginx ориентировано, а во всех доках по lighttpd всё расписано только про php!
Из всего этого у меня уже полная каша в голове!
Итак, сейчас у меня имеется следующее:
lighttpd пересобрал с поддержкой spawn-fcgi;
установил из портов /usr/ports/www/p5-FastCGI;
В lighttpd.conf следующее:
Сервер стартует нормально, без ошибок.
При обращении к test.pl (тот, что вы дали выше) имеем: 503 - Service Not Available и ругань в логе:
Что не удивительно, т.к. коннектиться по 9000 порту, как я понимаю, собственно не к чему.
И ещё я так и не понял, за каким всё таки нужен spawn-fcgi?
Я ради интереса попробовал стартануть: /usr/local/etc/rc.d/spawn-fcgi start
При этом запрос к test.pl вывыл содержимое его кода...
Вопрос теперь, что надо делать дальше?
Строка "Для Perl вы должны установить FCGI модуль с CPAN." в доке к lighttpd ну просто шикарна! Мать её!
Из всего этого у меня уже полная каша в голове!

Итак, сейчас у меня имеется следующее:
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
И ещё я так и не понял, за каким всё таки нужен 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)
какая разница nigx или lighttpd они оба front-end
ссылку на apcupsd откуда ставить завтра думаю заведем ...
ссылку на apcupsd откуда ставить завтра думаю заведем ...
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету
- OSBoy
- сержант
- Сообщения: 228
- Зарегистрирован: 2007-04-09 12:17:50
- Откуда: Из капусты
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
/usr/ports/sysutils/apcupsd
http://www.apcupsd.com/
http://www.apcupsd.com/manual/manual.html
http://www.lissyara.su/articles/freebsd/trivia/apcupsd/
И в частности, самое то, что меня интересует:
http://www.apcupsd.com/manual/manual.ht ... i-programs
http://www.apcupsd.com/
http://www.apcupsd.com/manual/manual.html
http://www.lissyara.su/articles/freebsd/trivia/apcupsd/
И в частности, самое то, что меня интересует:
http://www.apcupsd.com/manual/manual.ht ... i-programs
-
- проходил мимо
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
это ELF файлы, http://osdir.com/ml/web.lighttpd/2005-01/msg00144.html
просто тестом сделал
и он запустился.
Заметь если смотреть файл (F4), то видно, что он не скрипт а исполняемый!
просто тестом сделал
Код: Выделить всё
#### 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#
-
- проходил мимо
Re: Lighttpd и cgi скрипты (мониторинга apcupsd)
Примерно делал так:
Код: Выделить всё
alias.url += ( "/apcupsd/" => "/usr/local/etc/apcupsd/cgi/" )
$HTTP["url"] =~ "^/apcupsd/" {
cgi.assign = ( "" => "" )
}