Lighthttpd i uruchamianie skryptów w perlu

Konfiguracja serwerów, usług, itp.
szpuni
Beginner
Posty: 112
Rejestracja: 15 stycznia 2007, 15:25
Lokalizacja: dublin

Lighthttpd i uruchamianie skryptów w perlu

Post autor: szpuni »

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?
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Zajrzyj. Pierwszy link.
szpuni
Beginner
Posty: 112
Rejestracja: 15 stycznia 2007, 15:25
Lokalizacja: dublin

Post autor: szpuni »

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.
Now append or modify text as follows so that support for mod_cgi get loaded:
W jakim pliku?
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.

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" )
}
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.
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

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:
Jak dla mnie to w /etc/lighttpd/lighttpd.conf, przecież wynika z tekstu. Uprzedzając pytanie ,,w którym miejscu'':
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.
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")
Brzmi znajomo? Bardziej łopatą chyba się nie da tego wyłożyć.
¯eby nie było że się z Ciebie natrząsam.

Obrazek
szpuni
Beginner
Posty: 112
Rejestracja: 15 stycznia 2007, 15:25
Lokalizacja: dublin

Post autor: szpuni »

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:

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",
)
Tylko że jak wpiszę adres:

Kod: Zaznacz cały

http://192.168.1.4
to wyskakuje:

Kod: Zaznacz cały

err 403
Adres:

Kod: Zaznacz cały

http://192.168.1.4/cgi-bin/
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:

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"
To jest domyślny plik konfiguracyjny lighthttpd 1.4.13.
Jedyne co tam zmieniłem to

Kod: Zaznacz cały

server.modules
I co Ty na to?
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Plik do edytowania cgi to conf-enabled/10-cgi.conf
A to skąd wytrzasnąłeś? Napisałem Ci przecież, że wpisujesz to w KONFIGU SERWERA. Tutek podziela moje zdanie.
tylko ze jak wpisze adres http://192.168.1.4 wyskakuje err 403.

Kod: Zaznacz cały

chmod +x skypt.pl
Ostatni raz
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" )
}
szpuni
Beginner
Posty: 112
Rejestracja: 15 stycznia 2007, 15:25
Lokalizacja: dublin

Post autor: szpuni »

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" 
To zostało zmienione na /var/www/:

Kod: Zaznacz cały

server.username = "lighttpd"
server.groupname = "lighttpd" 
no i to oczywisce
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
To standardowa instalacja z paczki przez apt-get.
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Wywal więc

Kod: Zaznacz cały

include "mime-types.conf" 
Tutaj
server.indexfiles = ("index.php", "index.html",
"index.htm", "default.htm")
dopisz

Kod: Zaznacz cały

"index.cgi"
Na stronę wchodź przez http://host/cgi-bin
sigo
Junior Member
Posty: 501
Rejestracja: 21 marca 2009, 19:12

Post autor: sigo »

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.
szpuni
Beginner
Posty: 112
Rejestracja: 15 stycznia 2007, 15:25
Lokalizacja: dublin

Post autor: szpuni »

Dostałem Piękne 403 znów. Chcesz zrzut ekranu?
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.
To że nie ma domyślnych akcji wiem od samego początku.
Tylko jak te akcje skonfigurować tak żeby działały?
ODPOWIEDZ