Ich habe ein Problem beim Abrufen von Python-Skripten innerhalb von Lighttpd und cgi-bin. Ich habe ähnliche Probleme innerhalb von stackoverflow (d. H. Lighttpd and cgi python) und anderen Websites gefunden, aber keines betrifft vollständig meine Konfiguration. Ich kann das eigenständige Python-Skript ausführen, indem ich "python flash.py" ohne Probleme ausstelle.Python-Skripte mit Lighttpd und CGI ausführen
Ein wichtiger Punkt, der helfen könnte, dies zu lösen, ist die Tatsache, dass alles vor der Ausführung von "apt-get update" und "apt-get upgrade" funktionierte. Ich habe experimentiert, indem ich die Berechtigungen für bestimmte Dateien missbraucht habe und mit den Konfigurationsdateien herumgespielt habe, aber keiner davon hat geholfen.
Ich habe seitdem alles wieder in den Zustand zurückversetzt, in dem es gerade nach dem Ausführen der Updates war. Das ist Neuland für mich und ich bin einfach nicht gebildet genug, um etwas Offensichtliches zu finden. So wie es aussieht, hier ist meine aktuelle Konfiguration.
/etc/lighttpd/lighttpd.conf
server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
# "mod_auth",
# "mod_rewrite",
)
server.document-root = "/var/www"
server.upload-dirs = ("/var/cache/lighttpd/uploads")
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
index-file.names = ("index.php", "index.html", "index.lighttpd.html")
url.access-deny = ("~", ".inc")
static-file.exclude-extensions = (".php", ".pl", ".fcgi")
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ("application/javascript", "text/css", "text/html", "text/plain")
# default listening port for IPv6 falls back to the IPv4 port
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
#auth.backend = "plain"
#auth.backend.plain.userfile = "/etc/lighttpd/.lighttpdpwd"
#auth.require = ("/var/www" =>
#(
#.method. => "basic",
#.realm. => "Authentication required",
#.require. => "user=admin"
#)
#)
etc/lighttpd/conf-enabled/10-cgi.conf
# /usr/share/doc/lighttpd/cgi.txt
server.modules += ("mod_cgi")
$HTTP["url"] =~ "^/cgi-bin/" {
cgi.assign = (".py" => "/usr/bin/python")
}
## Warning this represents a security risk, as it allow to execute any file
## with a .pl/.py even outside of /usr/lib/cgi-bin.
#
#cgi.assign = (
# ".pl" => "/usr/bin/perl",
# ".py" => "/usr/bin/python",
#)
/var/www/cgi-bin/Blitz. py
#Dog Treat Dispenser. Flash Code
import RPIO
import time
import cgi
FLASHER = 22
#ADD CLICKER!
RPIO.setup(FLASHER , RPIO.OUT) #Set FLASHER pin as OUTPUT
for x in range(0, 5): #Flash for 2 seconds
RPIO.output(FLASHER, True)
#ADD CLICKER SUBROUTINE
time.sleep(.500)
RPIO.output(FLASHER, False)
#ADD CLICKER SUBROUTINE
time.sleep(.500)
# reset every channel that has been set up by this program,
# and unexport interrupt gpio interfaces
RPIO.cleanup()
print "Content-Type: text/html"
print "Location: http://10.143.141.164"
print
print "<html><head>"
print "<title>Flash!</title>"
print "</head>"
print "<body>"
print "<h1>Flash!</h1>"
print "</body>"
print "</html>"
Nach einer Tonne Forschung, und nirgends zu bekommen, bin ich ratlos. Jede Hilfe, die Sie zur Verfügung stellen könnten, wäre sehr willkommen. Wenn es etwas gibt, was ich vermisst habe, lass es mich wissen und ich werde mein Bestes tun, um es dir zu bringen.
Vielen Dank!