Страница 1 из 1

lighttpd как Веб-сервер для админки

Добавлено: Вс июл 24, 2011 11:46 pm
Тримбукаунл Пру
Патч, позволяющий использовать lighttpd в качестве Веб-сервера для abills/cgi-bin/admin.cgi

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

--- index.cgi.save      2011-03-18 14:22:40.000000000 +0300
+++ index.cgi   2011-07-25 03:28:41.000000000 +0400
@@ -87,9 +87,10 @@
 #}
 #exit;
 %permissions = ();
-if (defined($ENV{HTTP_CGI_AUTHORIZATION})) {
-  $ENV{HTTP_CGI_AUTHORIZATION} =~ s/basic\s+//i;
-  my ($REMOTE_USER,$REMOTE_PASSWD) = split(/:/, decode_base64($ENV{HTTP_CGI_AUTHORIZATION}));
+my $authstr = $ENV{HTTP_CGI_AUTHORIZATION} || $ENV{HTTP_AUTHORIZATION};
+if ($authstr) {
+  $authstr =~ s/basic\s+//i;
+  my ($REMOTE_USER,$REMOTE_PASSWD) = split(/:/, decode_base64($authstr));

   my $res =  check_permissions("$REMOTE_USER", "$REMOTE_PASSWD");
   if ($res == 1) {
Аналогичное исправление можно внести в modules/Ashield/avd.cgi и modules/Paysys/paysys_check.cgi
В них тоже проверяется только $ENV{HTTP_CGI_AUTHORIZATION}.
В идеале желательно было бы весь кусок оформить отдельным методом в Abills::HTML.

Re: lighttpd как Веб-сервер для админки

Добавлено: Пн июл 25, 2011 10:20 am
~AsmodeuS~
спасибо сделаем

просьба сразу приводить конфигурацию

Re: lighttpd как Веб-сервер для админки

Добавлено: Вт июл 26, 2011 6:14 am
Тримбукаунл Пру
~AsmodeuS~ писал(а):просьба сразу приводить конфигурацию
Конфигурацию lighttpd?
Её практически не пришлось менять.

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

--- lighttpd.conf.orig  2011-07-22 09:51:36.000000000 +0400
+++ lighttpd.conf       2011-07-26 09:47:09.000000000 +0400
@@ -17 +18 @@
-var.server_root = "/usr/local/www/data"
+var.server_root = "/usr/abills/cgi-bin"
@@ -93 +94 @@
-server.use-ipv6 = "enable"
+server.use-ipv6 = "disable"
@@ -115 +116 @@
-server.document-root = "/usr/local/www/data/"
+server.document-root = "/usr/abills/cgi-bin"
@@ -122 +123 @@
-#server.tag = "lighttpd"
+server.tag = "lighttpd"
@@ -298,3 +299 @@
-index-file.names += (
-  "index.xhtml", "index.html", "index.htm", "default.htm", "index.php"
-)
+index-file.names = ( "index.html", "index.cgi" )
@@ -336 +335,2 @@
-static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi" )
+static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi",
+       ".cgi", ".conf", ".cfg", ".rc", ".ini", ".db", ".sql", ".pm" )
@@ -429 +429,8 @@
-$SERVER["socket"] == "0.0.0.0:80" { }
+#$SERVER["socket"] == "0.0.0.0:80" { }
+
+server.breakagelog = "/tmp/lighttpd.stderr"
+
+server.modules += ( "mod_cgi" )
+cgi.assign = ( ".cgi" => "/usr/bin/perl" )
+
+## EOF ##
Она же в полном виде без пустых строк и комментариев:

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

var.log_root    = "/var/log/lighttpd"
var.server_root = "/usr/abills/cgi-bin"
var.state_dir   = "/var/run"
var.home_dir    = "/var/spool/lighttpd"
var.conf_dir    = "/usr/local/etc/lighttpd"
var.vhosts_dir  = server_root + "/vhosts"
var.cache_dir   = "/var/cache/lighttpd"
var.socket_dir  = home_dir + "/sockets"
include "modules.conf"
server.port = 80
server.use-ipv6 = "disable"
server.username  = "www"
server.groupname = "www"
server.document-root = "/usr/abills/cgi-bin"
server.tag = "lighttpd"
server.pid-file = state_dir + "/lighttpd.pid"
server.errorlog             = log_root + "/error.log"
include "conf.d/access_log.conf"
include "conf.d/debug.conf"
server.event-handler = "freebsd-kqueue"
server.network-backend = "writev"
server.max-fds = 2048
server.stat-cache-engine = "simple"
server.max-connections = 1024
index-file.names = ( "index.html", "index.cgi" )
url.access-deny             = ( "~", ".inc" )
$HTTP["url"] =~ "\.pdf$" {
  server.range-requests = "disable"
}
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi",
        ".cgi", ".conf", ".cfg", ".rc", ".ini", ".db", ".sql", ".pm" )
include "conf.d/mime.conf"
include "conf.d/dirlisting.conf"
server.follow-symlink = "enable"
server.upload-dirs = ( "/var/tmp" )
server.breakagelog = "/tmp/lighttpd.stderr"
server.modules += ( "mod_cgi" )
cgi.assign = ( ".cgi" => "/usr/bin/perl" )

Re: lighttpd как Веб-сервер для админки

Добавлено: Сб мар 07, 2015 8:43 pm
abcoleh
У меня нет меню логина и пароля! Что делать?