PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lighttpd und cgi



kombinat
17.04.08, 18:45
Hallo Gemeinde,

lighttpd laesst mich keine CGI-Scripts ausfuehren, sondern bietet sie nur zum Download an. Die gaengigen Docs/HowTo's habe ich gelesen und kann eigentlich keine logischen Fehler erkennen. Auch kleine Informationshappen in Blogs, via Google und Forensuche brachten mich nicht weiter. Ich versorg' euch mal mit Infos zu meiner Config und hoffe auf Hilfe. Ganz unten gibt's nochmal die vollstaendige lighttpd.conf.

Fehler beim Starten gibt Lighty nicht aus.
Danke schonmal fuers anschauen...

-Debian 4.0r3
-Lighttpd 1.4.13
-PHP4

- lighttpd.conf:


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

cgi.assign = ( ".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl" )

- php.ini:


cgi.fix_pathinfo = 1

- vollstaendige lighttpd.conf:


server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_auth",
"mod_fastcgi",
"mod_cgi",
"mod_proxy"
)

# secure digest authentication
auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/etc/lighttpd/.passwd"
auth.debug = 2

#secure folders
auth.require = (

"/tralala/" =>
(
"method" => "digest",
"realm" => "tralala",
"require" => "valid-user"
),

"/tralala/" =>
(
"method" => "digest",
"realm" => "tralala",
"require" => "valid-user"
),

"/tralala/" =>
(
"method" => "digest",
"realm" => "tralala",
"require" => "valid-user"
),

)

server.document-root = "/var/www/"
server.errorlog = "/var/log/lighttpd/error.log"
index-file.names = ( "index.html", "index.php" )
accesslog.filename = "/var/log/lighttpd/access.log"
url.access-deny = ( "~", ".inc" )
server.pid-file = "/var/run/lighttpd.pid"
dir-listing.encoding = "utf-8"
server.dir-listing = "enable"
server.username = "www-data"
server.groupname = "www-data"


$HTTP["remoteip"] =~ "127.0.0.1" {
alias.url += (
"/doc/" => "/usr/share/doc/",
"/images/" => "/usr/share/images/"
)
$HTTP["url"] =~ "^/doc/|^/images/" {
dir-listing.activate = "enable"
}
}


include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"


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


cgi.assign = ( ".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl" )


$SERVER["socket"] == "192.168.178.6:443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/tralala/server.pem"
}

jensrenner
17.04.08, 22:18
Hatte irgendwie ein ähnliches Problem vor geraumer Zeit, kann mich leider nicht mehr im Detail erinnern. Hast Du im Verzeichnis conf-enabled einen Symlink gesetzt auf conf-available/10-cgi.conf (und ggf. 10-fastcgi.conf)?
Und dann mal ein /etc/init.d/lighttpd force-reload machen. Ändert das was?

Jens

kombinat
20.04.08, 12:39
Nein, die Symlinks hatte ich noch nicht gesetzt - Danke!

Hab grad' keine Zeit gross rumzuprobieren, aber nun gibt server.org/cgi-bin/ eine voellig leere Seite aus, also nichts; bei server.org/cgi-bin/script.cgi gibts einen Internal Server Error (500).

jensrenner
20.04.08, 17:31
Bei meiner Frickel-Aktion habe ich das CGI auch nur im www-Root zum Laufen gebracht, nicht unter ./cgi-bin. Hatte dann nicht den Ehrgeiz, das weiterzuverfolgen. Versuch das mal.

Bei mir war das CGI auch kein Skript, sondern ein Binary. Evtl. ist da die Konfiguration anders.

kombinat
26.04.08, 17:54
Es funktioniert, aber ebenfalls nur im Wurzelverzeichnis. Aber das bekomm ich dann schon hin..

Danke!

Max Power
26.04.08, 18:49
Habt ihr einfach mal versucht diesen Teil



cgi.assign = ( ".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl" )

in die jeweilige Config von Vhost zu schreiben?