Lighthttpd i uruchamianie skryptów w perlu
Lighthttpd i uruchamianie skryptów w perlu
Witam.
Mam mały problem z lighthttpd.
Mam skrypt w perlu jako index.html
Zainstalowałem sobie lighthttpd i nie mogę uruchomić tego skryptu.
Zawsze wyskakuje mi opcja że mogę ściągnąć ten plik ale nie mogę go odpalić w żadnym razie.
Uruchomiłem usługi: CGI, FastCGI.
Ma ktoś jakieś podpowiedzi w tym temacie bo akurat praktycznie nie znam tego serwera.
Dodam ze pliki html i php chodzą bez problemów.
Jak powinienem to skonfigurować żeby to działało w domyślnym katalogu?
Mam mały problem z lighthttpd.
Mam skrypt w perlu jako index.html
Zainstalowałem sobie lighthttpd i nie mogę uruchomić tego skryptu.
Zawsze wyskakuje mi opcja że mogę ściągnąć ten plik ale nie mogę go odpalić w żadnym razie.
Uruchomiłem usługi: CGI, FastCGI.
Ma ktoś jakieś podpowiedzi w tym temacie bo akurat praktycznie nie znam tego serwera.
Dodam ze pliki html i php chodzą bez problemów.
Jak powinienem to skonfigurować żeby to działało w domyślnym katalogu?
Dlaczego wszyscy na podobnych forach myślą, że wszyscy dookoła są tacy leniwi że nie szukają żadnych informacji.
Tą stronę widziałem już jakiś czas temu.
Jeżeli to są manuale do lighthttpd to wcale się nie dziwię że ludzie używają apache.
To się dodaje gdzie? W 10.cgi? Moze w 10.fastcgi, a może w ustawieniach wirtualnego serwera? A może w lighthttpd.conf? Problem w tym że ja nie chcę używać wirtualnego serwera po domenie.
Bo tutaj domeny nie będzie. W głównej ,,conf'' mam ,,wwwroot'' ustawione na /var/www. Tam też jest ten skrypt. łączenie do tego serwera będzie po wewnętrznym adresie IP, a nie po domenie.
Jak dodałem adres IP do konfiguracji virtalnego hosta dostałem od razu błąd.
Ten lighthttpd ma już ustawionego virtualnego hosta ale w domyślnym katalogu muszę odpalić ten skrypt.
Tą stronę widziałem już jakiś czas temu.
W jakim pliku?Now append or modify text as follows so that support for mod_cgi get loaded:
Mam tego szukać na księżycu czy może ktoś łaskawie dałby trochę bardziej dogłębny opis.Find out your virtual server configuration and append the following:
Jeżeli to są manuale do lighthttpd to wcale się nie dziwię że ludzie używają apache.
Kod: Zaznacz cały
$HTTP["url"] =~ "/cgi-bin/" {
cgi.assign = ( ".pl" => "/usr/bin/perl" )
}
Bo tutaj domeny nie będzie. W głównej ,,conf'' mam ,,wwwroot'' ustawione na /var/www. Tam też jest ten skrypt. łączenie do tego serwera będzie po wewnętrznym adresie IP, a nie po domenie.
Jak dodałem adres IP do konfiguracji virtalnego hosta dostałem od razu błąd.
Ten lighthttpd ma już ustawionego virtualnego hosta ale w domyślnym katalogu muszę odpalić ten skrypt.
Jak dla mnie to w /etc/lighttpd/lighttpd.conf, przecież wynika z tekstu. Uprzedzając pytanie ,,w którym miejscu'':Open lighttpd configuration file using a text editor such as vi:
# vi /etc/lighttpd/ligttpd.conf
Now append or modify text as follows so that support for mod_cgi get loaded:
mój lighttpd.conf pisze:# At the very least, mod_access and mod_accesslog should be enabled.
# All other modules should only be loaded if necessary.
# NOTE: the order of modules is important.
server.modules = (
# "mod_rewrite",
# "mod_redirect",
# "mod_alias",
Gdzieś w tej okolicy.
szpuni pisze:Find out your virtual server configuration and append the following:
Mam tego szukać na księżycu? Czy może ktoś łaskawie dałby trochę bardziej dogłębny opis.
Brzmi znajomo? Bardziej łopatą chyba się nie da tego wyłożyć.znowu mój domyślny lighttpd.conf pisze:# set Content-Encoding and reset Content-Type for browsers that
# support decompressing on-thy-fly (requires mod_setenv)
# $HTTP["url"] =~ "\.gz$" {
# setenv.add-response-header = ("Content-Encoding" => "x-gzip")
# mimetype.assign = (".gz" => "text/plain")
¯eby nie było że się z Ciebie natrząsam.

Dodanie tego jak mówisz wyrzuca błąd że mam duplikaty.
Plik do edytowania cgi to conf-enabled/10-cgi.conf, który u mnie teraz wygląda tak:
Tylko że jak wpiszę adres:to wyskakuje:
Adres:daje listowanie katalogu, w którym jest index.cgi.
I wciąż nic się nie uruchamia. Po zmianie index.cgi na index.php wyświetla się strona ale niestety to nie perl tylko php.
lighthttpd.conf:
To jest domyślny plik konfiguracyjny lighthttpd 1.4.13.
Jedyne co tam zmieniłem toI co Ty na to?
Plik do edytowania cgi to conf-enabled/10-cgi.conf, który u mnie teraz wygląda tak:
Kod: Zaznacz cały
server.modules += ( "mod_cgi" )
alias.url += ( "/cgi-bin/" => "/var/www/cgi-bin/" )
$HTTP["host"] == "localhost" {
alias.url += ( "/cgi-bin/" => "/var/www/cgi-bin/" )
$HTTP["url"] =~ "/cgi-bin/" {
cgi.assign = ( ".pl" => "/usr/bin/perl" )
}
}
$HTTP["url"] =~ "/cgi-bin/" {
cgi.assign = ( ".pl" => "/usr/bin/perl" )
}
cgi.assign = (
".pl" => "/usr/bin/perl",
".php" => "/usr/bin/php-cgi",
".py" => "/usr/bin/python",
)
Kod: Zaznacz cały
http://192.168.1.4
Kod: Zaznacz cały
err 403
Kod: Zaznacz cały
http://192.168.1.4/cgi-bin/
I wciąż nic się nie uruchamia. Po zmianie index.cgi na index.php wyświetla się strona ale niestety to nie perl tylko php.
lighthttpd.conf:
Kod: Zaznacz cały
server.modules = (
"mod_cgi",
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_rewrite",
"mod_redirect",
"mod_status",
)
server.document-root = "/var/www/"
server.errorlog = "/var/log/lighttpd/error.log"
index-file.names = ( "index.php", "index.html",
"index.htm", "default.htm" )
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"
#### handle Debian Policy Manual, Section 11.5. urls
#### and by default allow them only from localhost
$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"
Jedyne co tam zmieniłem to
Kod: Zaznacz cały
server.modules
A to skąd wytrzasnąłeś? Napisałem Ci przecież, że wpisujesz to w KONFIGU SERWERA. Tutek podziela moje zdanie.Plik do edytowania cgi to conf-enabled/10-cgi.conf
tylko ze jak wpisze adres http://192.168.1.4 wyskakuje err 403.
Kod: Zaznacz cały
chmod +x skypt.pl
Nexus lis6502 # cat /etc/lighttpd/lighttpd.conf
var.basedir = "/var/www/localhost"
var.logdir = "/var/log/lighttpd"
var.statedir = "/var/lib/lighttpd"
server.modules = (
"mod_access",
"mod_cgi",
)
include "mime-types.conf"
server.username = "lighttpd"
server.groupname = "lighttpd"
server.document-root = var.basedir
server.pid-file = "/var/run/lighttpd.pid"
server.errorlog = var.logdir + "/error.log"
server.indexfiles = ("index.php", "index.html",
"index.htm", "default.htm")
server.follow-symlink = "enable"
server.stat-cache-engine = "fam"
static-file.exclude-extensions = (".php", ".pl", ".cgi", ".fcgi")
accesslog.filename = var.logdir + "/access.log"
url.access-deny = ("~", ".inc")
$HTTP["url"] =~ "/cgi-bin/" {
cgi.assign = ( ".pl" => "/usr/bin/perl" )
}
Kod: Zaznacz cały
chmod +x skypt.pl
Kod: Zaznacz cały
/var/www/cgi-bin# ls -l
total 4
-rwxr-xr-x 1 www-data www-data 1480 2009-06-04 15:03 index.cgi
Kod: Zaznacz cały
/etc/init.d/lighttpd restart
Stopping web server: lighttpd.
Starting web server: lighttpd2009-06-04 16:19:49: (configfile.c.869) opening configfile /etc/lighttpd/mime-types.conf failed: No such file or directory
2009-06-04 16:19:49: (configfile.c.827) source: /etc/lighttpd/lighttpd.conf line: 13 pos: 16 parser failed somehow near here: (EOL)
Kod: Zaznacz cały
var.basedir = "/var/www/localhost"
Kod: Zaznacz cały
server.username = "lighttpd"
server.groupname = "lighttpd"
Nie to żebym jaja sobie robił ale twoja konfiguracja nie działa w ogóle.
Brak pliku jak widzisz to jest katalog /etc/lighthttpd:
Kod: Zaznacz cały
drwxr-xr-x 2 root root 4096 2009-06-04 15:29 conf-available
drwxr-xr-x 2 root root 4096 2009-06-04 16:03 conf-enabled
-rw-r--r-- 1 root root 717 2009-06-04 16:09 lighttpd.conf
-rw-r--r-- 1 root root 245 2009-06-03 16:33 main
[Dodano: 2009-06-04, 17:01]
Pokaz mi ten plik z ,,mime'' jak możesz.
Jakiej wersji lighthttpd używasz? Może to starsza wersja albo po prostu pozmieniałeś cały konfig.
Jak już mówiłem nie znam lighthttpd w ogóle i dokumentacja jest bardzo niejasna jak dla mnie.
Popatrz na to:
Kod: Zaznacz cały
dpkg-query -s lighttpd
Package: lighttpd
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 736
Maintainer: Debian lighttpd maintainers <pkg-lighttpd-maintainers@lists.alioth.debian.org>
Architecture: i386
Version: 1.4.13-4etch11
Provides: httpd, httpd-cgi
Depends: libattr1 (>= 2.4.4-1), libbz2-1.0, libc6 (>= 2.3.6-6), libldap2 (>= 2.1.17-1), libpcre3 (>= 4.5), libssl0.9.8 (>= 0.9.8c-1), zlib1g (>= 1:1.2.1), lsb-base (>= 3.0-3), mime-support
Recommends: php4-cgi | php5-cgi
Suggests: openssl, rrdtool, apache2-utils
Conffiles:
/etc/lighttpd/conf-available/10-auth.conf 421219cb4a04a693e191ff6a32fa432a
/etc/lighttpd/conf-available/10-proxy.conf 7b4265f5aed9bd2a7622580016677911
/etc/lighttpd/conf-available/10-cgi.conf b4fd0fc7d486e32397b380ef85b55f33
/etc/lighttpd/conf-available/10-simple-vhost.conf cded76d5e184a21bbcf4b651f0ed745f
/etc/lighttpd/conf-available/10-userdir.conf 761e9bd64422f802c248f69d1fc504a0
/etc/lighttpd/conf-available/10-ssi.conf a0b0b83fe6060ec23e2d4e4b57a89936
/etc/lighttpd/conf-available/10-fastcgi.conf aa35e498f47edf5af5836f635b31f3f9
/etc/lighttpd/conf-available/10-ssl.conf 168706fe944890fa44b74461403da731
/etc/lighttpd/conf-available/README c376c00aeaa5aa71fba021b15b1bf45e
/etc/lighttpd/lighttpd.conf 92b4c405bb43e1bec0a9496247bb1035
/etc/init.d/lighttpd 86abe7ab5e4c3d091f2f6534fb0c9fe4
/etc/logrotate.d/lighttpd ebf0813469a57c2f16e1c17429befa08
Wywal więc
Tutaj Na stronę wchodź przez http://host/cgi-bin
Kod: Zaznacz cały
include "mime-types.conf"
dopiszserver.indexfiles = ("index.php", "index.html",
"index.htm", "default.htm")
Kod: Zaznacz cały
"index.cgi"
Wątek jest strasznie pokręcony.
Jeżeli podczas próby wyświetlenia pliku, przeglądarka próbuje Ci go pobrać, oznacza to, iż nie masz zdefiniowanych akcji dla konkretnych typów plików. Przykładowo txt domyślnie jest traktowane jako plain/text. Więcej informacji.
Nie jestem pewien w jaki sposób funkcjonuje lighttpd, ale w apache zachowanie dla konkretnych typów plików konfiguruje się odgórnie lub poprzez pliki .htaccess.
Jeżeli podczas próby wyświetlenia pliku, przeglądarka próbuje Ci go pobrać, oznacza to, iż nie masz zdefiniowanych akcji dla konkretnych typów plików. Przykładowo txt domyślnie jest traktowane jako plain/text. Więcej informacji.
Nie jestem pewien w jaki sposób funkcjonuje lighttpd, ale w apache zachowanie dla konkretnych typów plików konfiguruje się odgórnie lub poprzez pliki .htaccess.
Dostałem Piękne 403 znów. Chcesz zrzut ekranu?
Tylko jak te akcje skonfigurować tak żeby działały?
To że nie ma domyślnych akcji wiem od samego początku.Jeżeli podczas próby wyświetlenia pliku, przeglądarka próbuje Ci go pobrać, oznacza to, iż nie masz zdefiniowanych akcji dla konkretnych typów plików. Przykładowo txt domyślnie jest traktowane jako plain/text.
Tylko jak te akcje skonfigurować tak żeby działały?