Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

haserl — online w chmurze

Uruchom haserl w darmowym dostawcy hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

Jest to polecenie haserl, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z wielu naszych bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


haserl — program skryptowy cgi dla środowisk osadzonych

STRESZCZENIE


#!/usr/bin/haserl [--powłoka=ścieżka] [--prześlij-katalog=kierunkowskaz] [--obsługa-przesyłania=treser]
[--limit-wysyłania=ograniczenie] [--Akceptuj wszystkie] [--akceptuj-brak] [--cichy] [--odpluskwić]

[ tekst ] [ <% skrypt powłoki %> ] [ tekst ] ...

OPIS


Haserl to małe opakowanie cgi, które umożliwia programowanie cgi w stylu „PHP”, ale używa systemu UNIX
powłoka podobna do bash lub Lua jako język programowania. Jest bardzo mały, więc można go używać
w środowiskach osadzonych lub tam, gdzie coś takiego jak PHP jest za duże.

Łączy w sobie trzy funkcje w małym silniku cgi:

Analizuje żądania POST i GET, umieszczając elementy formularza jako pary nazwa=wartość w pliku
środowisko, którego ma używać skrypt CGI. To jest trochę jak z ungi obwoluta.

Otwiera powłokę i tłumaczy cały tekst na instrukcje do wydrukowania. Cały tekst
w <% ... %> konstrukcje są dosłownie przekazywane do powłoki. To jest trochę
jak pisanie PHP skrypty.

Opcjonalnie można go zainstalować, aby przekazać uprawnienia właścicielowi skryptu,
nadając mu niektóre funkcje bezpieczeństwa Suexec or cgiwrapper.

OPCJE PODSUMOWANIE


To jest podsumowanie opcji wiersza poleceń. Proszę zobaczyć OPCJE sekcja pod
długa nazwa opcji dla pełnego opisu.

-a --akceptuj-wszystko
-n --akceptuj-brak
-d --debuguj
-s, --skorupa
-S, --cicho
-U, --prześlij-katalog
-u, --limit-wysyłania
-H, --przesyłanie-obsługi

OPCJE


--Akceptuj wszystkie
Program normalnie akceptuje dane POST tylko wtedy, gdy REQUEST_METHOD to POST i
akceptuje dane dotyczące danych adresu URL tylko wtedy, gdy REQUEST_METHOD to GET. Ta opcja
umożliwia akceptację zarówno danych POST, jak i adresów URL niezależnie od REQUEST_METHOD.
Gdy ta opcja jest ustawiona, REQUEST_METHOD ma pierwszeństwo (np
jest POST, FORM_zmienne są pobierane z danych COOKIE, danych GET i danych POST, w
ten rozkaz. Jeśli metodą jest GET, FORM_variables są pobierane z danych COOKIE, POST
data i GET data.) Domyślnie nie akceptowane są wszystkie metody wprowadzania — tylko metody
COOKIE i REQUEST_METHOD.

--akceptuj-brak
Jeśli zostanie podany, haserl nie przeanalizuje standardowego wejścia jako treści http przed przetworzeniem
scenariusz. Jest to przydatne w przypadku wywoływania skryptu haserl z innego skryptu haserl.

--odpluskwić
Zamiast wykonywać skrypt, wydrukuj skrypt, który zostanie wykonany. Jeśli
ustawiona jest zmienna środowiskowa „REQUEST_METHOD”, dane są wysyłane z
zwykły/tekstowy typ zawartości. W przeciwnym razie skrypt powłoki jest drukowany dosłownie.

--powłoka=ścieżka
Określ alternatywną powłokę podobną do basha, której chcesz użyć. Domyślnie „/ Bin / sh"

Aby dołączyć parametry powłoki, nie używaj opcji --shell=/ Bin / sh format. Zamiast tego użyj
alternatywny format bez „=", jak w --shell "/ bin / bash --norc". Koniecznie
zacytuj ciąg opcji, aby chronić wszelkie znaki specjalne.

W przypadku skompilowania z bibliotekami Lua, łańcuch „lua” jest używany do użycia zintegrowanego
Lua vm. W tym ciągu rozróżniana jest wielkość liter. Przykład: --powłoka=Lua

Alternatywą jest „luac”. Powoduje to wyłączenie parserów haserl i lua,
i zakłada się, że skrypt jest prekompilowanym fragmentem lua. Widzieć LUAC poniżej po więcej
informacje.

--cichy
Haserl zwykle drukuje komunikat informacyjny o warunkach błędu. Ten
pomija komunikat o błędzie, dzięki czemu użycie haserl nie jest reklamowane.

--prześlij-katalog=kierunkowskaz
Domyślnie „/ Tmp". Wszystkie przesyłane pliki są tworzone z tymczasową nazwą pliku
katalog HASERL_xxx_ścieżka zawiera nazwę pliku tymczasowego. FORMULARZ_xxx_nazwa
zawiera oryginalną nazwę pliku, określoną przez klienta.

--upload-handler=ścieżka
Jeśli określono, przesyłanie plików jest obsługiwane przez ten program obsługi, a nie zapisywane
pliki tymczasowe. Należy podać pełną specyfikację ścieżki (ścieżka nie jest przeszukiwana), oraz
moduł obsługi wysyłania otrzymuje jeden parametr wiersza poleceń: nazwę FIFO na
do którego przesłany plik zostanie wysłany. Dodatkowo przewodnik może otrzymać 3
Zmienne środowiska: TYP ZAWARTOŚCI, NAZWA PLIKU, IMIĘ. Odzwierciedlają one MIME
nagłówki dyspozycji zawartości dla treści. Haserl rozwidli przewodnika dla każdego
przesłany plik i wyśle ​​zawartość przesłanego pliku do określonego FIFO.
Haserl będzie wtedy blokował, dopóki moduł obsługi nie zakończy działania. Ta metoda jest dla ekspertów
tylko.

--limit-przesyłania=ograniczenie
Zezwalaj na plik zakodowany w formacie MIME do ograniczenie KB do załadowania. Wartość domyślna to 0KB (nie
dozwolone przesyłanie). Należy zauważyć, że kodowanie MIME zwiększa rozmiar danych o 33%.

INFORMACJE OGÓLNE OF OPERACJA


Ogólnie rzecz biorąc, serwer WWW konfiguruje kilka zmiennych środowiskowych, a następnie ich używa widelec or
inna metoda uruchamiania skryptu CGI. Jeśli skrypt używa Haserl tłumacz, ur
dzieje się co następuje:

If Haserl jest instalowany suid root, następnie uid/gid jest ustawiany na właściciela skryptu.

Środowisko jest skanowane w poszukiwaniu HTTP_COOKIE, które mogły zostać ustawione przez sieć
serwer. Jeśli istnieje, przeanalizowana zawartość jest umieszczana w środowisku lokalnym.

Środowisko jest skanowane w poszukiwaniu REQUEST_METHOD, który został ustawiony przez serwer WWW.
W oparciu o metodę żądania standardowe wejście jest odczytywane i analizowane. przeanalizowane
treści są umieszczane w środowisku lokalnym.

Skrypt jest tokenizowany, analizowany Haserl bloki kodu z surowego tekstu. Surowy tekst jest
konwertowane na instrukcje „echo”, a następnie wszystkie tokeny są wysyłane do podpowłoki.

Haserl widelce i podpowłoka (zwykle / Bin / sh) jest uruchamiany.

Wszystkie tokeny są wysyłane do STDIN podpowłoki z końcowym ciągiem wyjście dowództwo.

Kiedy podpowłoka się kończy, the Haserl tłumacz wykonuje końcowe sprzątanie i
następnie kończy się.

KLIENT BOK WEJŚCIE


Połączenia Haserl interpreter zdekoduje dane przesłane przez zmienną środowiskową HTTP_COOKIE i
metodę GET lub POST od klienta i przechowywać je jako zmienne środowiskowe, które mogą
mieć dostęp do haserla. Nazwa zmiennej jest zgodna z nazwą podaną w źródle,
chyba że przedrostek ( FORMULARZ_) jest poprzedzone. Na przykład, jeśli klient wyśle ​​„foo=bar”,
zmienna środowiskowa to FORMULARZ_foo=bar.

W przypadku metody HTTP_COOKIE zmienne są również przechowywane z prefiksem ( COOKIE_) dodany.
Na przykład, jeśli HTTP_COOKIE zawiera „foo=bar”, zmienną środowiskową jest
COOKIE_foo=bar.

W przypadku metody GET dane przesłane w postaci %xx są tłumaczone na znaki, które one zawierają
reprezentować, a zmienne są również przechowywane z przedrostkiem ( GET_) dodany. Na przykład, jeśli
QUERY_STRING zawiera „foo=bar”, zmienną środowiskową jest GET_foo=bar.

W przypadku metody POST zmienne są również przechowywane z przedrostkiem ( POST_) dodany. Dla
na przykład, jeśli strumień postów zawiera „foo=bar”, zmienną środowiskową jest POST_foo=bar.

Również dla metody POST, jeśli dane są wysyłane za pomocą dane wieloczęściowe/formularz kodowanie,
dane są automatycznie dekodowane. Jest to zwykle używane, gdy pliki są przesyłane z sieci
klient za pomocą .

UWAGA Po przesłaniu pliku na serwer WWW jest on zapisywany w formacie ładowanie-reż
katalogiem. FORMULARZ_nazwa_zmiennej= zawiera nazwę przesyłanego pliku (as
określony przez klienta). HASERL_zmienna_ścieżka= zawiera nazwę pliku w
ładowanie-reż który przechowuje przesłane treści. Aby zapobiec złośliwym klientom
napełniać ładowanie-reż na twoim serwerze internetowym przesyłanie plików jest dozwolone tylko wtedy, gdy
--limit-wysyłania służy do określenia, jak duży plik może zostać przesłany. Haserl
automatycznie usuwa plik tymczasowy po zakończeniu skryptu. Aby zachować
plik, przenieś go lub zmień jego nazwę gdzieś w skrypcie.

Zauważ, że nazwa pliku jest przechowywana w HASERL_zmienna_ścieżka Dzieje się tak, ponieważ FORM_,
Zmienne GET_ i POST_ mogą być modyfikowane przez klienta, a złośliwy klient może
ustaw drugą zmienną o nazwie zmienna_ścieżka=/ Etc / passwd. Wcześniejsze wersje
nie zapisał pathspec w HASERL przestrzeń nazw. Do utrzymać do tyłu
kompatybilność, dotychczasowy Nazwa of dotychczasowy tymczasowy filet is również przechowywany in FORM_zmienna= i
POST_zmienna=. To zdjęcie is za niezabezpieczonym i powinien nie be używany.

Jeśli klient wysyła dane obie metodami POST i GET Haserl przeanalizuje tylko
dane, które odpowiadają ww REQUEST_METHOD zmienna ustawiona przez serwer WWW, chyba że
Akceptuj wszystkie opcja została ustawiona. Na przykład formularz wywołany metodą POST, ale posiadający rozszerzenie
URI some.cgi?foo=bar&otherdata=something spowoduje przeanalizowanie danych POST i bla
i inne dane zmienne są ignorowane.

Jeśli serwer WWW definiuje a HTTP_COOKIE zmiennej środowiskowej, dane cookie są analizowane.
Dane plików cookie są analizowane zanim dane GET lub POST, więc w przypadku dwóch zmiennych typu
tej samej nazwie, dane GET lub POST zastępują informacje o plikach cookie.

Gdy wiele wystąpień tej samej zmiennej jest wysyłanych z różnych źródeł, plik
FORM_zmienna zostanie ustawiona zgodnie z kolejnością przetwarzania zmiennych.
HTTP_COOKIE jest zawsze przetwarzane jako pierwsze, a następnie REQUEST_METHOD. Jeśli akceptujesz wszystko
została ustawiona opcja, najpierw przetwarzane jest HTTP_COOKIE, a następnie metoda not
określony przez REQUEST_METHOD, po którym następuje REQUEST_METHOD. Ostatnia instancja tzw
zmienna zostanie użyta do ustawienia zmiennej FORM_variable. Zauważ, że zmienne są również osobno
tworzy jako COOKIE_zmienna, GET_zmienna i POST_zmienna. Pozwala to na wykorzystanie
nakładające się nazwy z każdego źródła.

Gdy wiele instancji tej samej zmiennej jest wysyłanych z tego samego źródła, tylko ostatnia
jeden jest uratowany. Aby zachować wszystkie kopie (na przykład w przypadku wielokrotnego wyboru), dodaj „[]” na końcu
nazwy zmiennej. Zostaną zwrócone wszystkie wyniki, oddzielone znakami nowej linii. Na przykład,
host=Enoch&host=Esther&host=Jozue daje w wyniku „FORM_host=Jozue”.
host[]=Enoch&host[]Esther&host[]=Jozue daje w wyniku "FORM_host=Enoch\nEstera\nJozue"

JĘZYK


Następujące struktury językowe są rozpoznawane przez Haserl.

BIEGAĆ
<% [skrypt powłoki] %>

Wszystko, co jest ujęte w znaczniki <% %>, jest wysyłane do podpowłoki w celu wykonania. Tekst
jest wysyłany dosłownie.

ZAWIERAJĄ
<%w specyfikacji ścieżki %>

Dołącz inny plik dosłownie w tym skrypcie. Plik jest dołączany, gdy script
jest wstępnie analizowany.

RÓŻNE
<%= wyrażenie %>

wydrukuj wyrażenie powłoki. Cukier składniowy dla „echo expr”.

JAK
<%# komentarz %>

Blok komentarzy. Wszystko w bloku komentarza nie jest analizowane. Komentarze mogą być zagnieżdżane
i może zawierać inne elementy haserl.

PRZYKŁADY


OSTRZEŻENIE
Poniższe przykłady zostały uproszczone, aby pokazać, jak używać Haserl. Powinieneś być
zapoznać się z podstawowymi zabezpieczeniami skryptów internetowych przed użyciem Haserl (lub jakikolwiek skrypt
język) w środowisku produkcyjnym.

Prosty Command
#!/usr/local/bin/haserl
typ zawartości: tekst/zwykły

<%# To jest przykładowy skrypt „env” %>
<% środowisko %>

Drukuje wyniki env polecenie jako dokument typu „tekst/zwykły” typu MIME. To jest
dotychczasowy Haserl wersja wspólna drukuj komputer.

pętla w dynamiczny wydajność
#!/usr/local/bin/haserl
Typ zawartości: tekst/html




<% dla koloru czerwonego niebieskiego żółtego cyjanowego; zrób %>
"><% echo -n "$a" %>
<% zrobione %>




Wysyła do klienta dokument typu MIME „text/html” z tabelą html with
elementy oznaczone kolorem tła.

Zastosowanie Powłoka zdefiniowane funkcje.
#!/usr/local/bin/haserl
typ zawartości: tekst/html

<% # zdefiniuj funkcję użytkownika
element_tabeli() {
Echo " 1 $ "
}
%>



<% dla koloru czerwonego niebieskiego żółtego cyjanowego; zrób %>
<% element_tabeli $a %>
<% zrobione %>




Tak samo jak powyżej, ale używa funkcji powłoki zamiast osadzonego HTML.

Samego siebie Odniesienia CGI w a Nasz formularz
#!/usr/local/bin/haserl
typ zawartości: tekst/html


Przykładowy formularz
" method="GET">
<% # Wykonaj podstawową weryfikację pola FORM_textfield
# Aby zapobiec typowym atakom sieciowym
FORM_textfield=$( echo "$FORM_textfield" | sed "s/[^A-Za-z0-9 ]//g" )
%>
<input type=text name=textfield
Value="<% echo -n "$FORM_textfield" | tr az AZ %>" cols=20>




Drukuje formularz. Jeśli klient wprowadzi tekst w formularzu, CGI zostanie ponownie załadowany (zdefiniowany
by $SCRIPT_NAME), a pole tekstowe zostanie oczyszczone, aby zapobiec atakom sieciowym, a następnie
zostanie ponownie wyświetlony formularz z tekstem wprowadzonym przez użytkownika. Tekst jest pisany wielkimi literami.

Uploading a filet
#!/usr/local/bin/haserl --upload-limit=4096 --upload-dir=/ Tmp
typ zawartości: tekst/html


" method=POST enctype="multipart/form-data" >



<% if test -n "$HASERL_uploadfile_path"; następnie %>

Przesłałeś plik o nazwie <% echo -n $FORM_uploadfile_name %> i tak było
. tymczasowo przechowywane na serwerze jako . The
plik był <% cat $HASERL_uploadfile_path | wc -c %> długość bajtów.
<% rm -f $HASERL_uploadfile_path %> Nie martw się, plik został właśnie usunięty
z serwera WWW.
<% inny %>
Nie przesłałeś jeszcze pliku.
<% fi %>



Wyświetla formularz, który umożliwia przesyłanie plików. Osiąga się to za pomocą
--limit-wysyłania i ustawiając formularz wpisz do dane wieloczęściowe/formularza. Jeśli
klient wysyła plik, następnie drukowane są informacje dotyczące pliku, a następnie
usunięte. W przeciwnym razie formularz stwierdza, że ​​klient nie przesłał pliku.

RFC-2616 Zgodność
#!/usr/local/bin/haserl
<% echo -en "typ-zawartości: text/html\r\n\r\n" %>

...


Aby w pełni zachować zgodność ze specyfikacją HTTP, nagłówki powinny być zakończone za pomocą
CR + LF, zamiast zwykłego zakończenia linii unix LF. Powyższa składnia może
być używany do tworzenia nagłówków zgodnych z RFC 2616.

ŚRODOWISKO


Oprócz zmiennych środowiskowych odziedziczonych z serwera WWW, następujące
zmienne środowiskowe są zawsze definiowane podczas uruchamiania:

HASERLVER
Haserl wersja - znacznik informacyjny.

ID SESJI
Znacznik szesnastkowy, który jest unikalny przez cały okres istnienia CGI (jest generowany, gdy plik
uruchamia się CGI; i nie zmienia się, dopóki nie zostanie wygenerowane inne zapytanie POST lub GET.)

HASERL_ACCEPT_ALL
Jeśli --Akceptuj wszystkie ustawiono flagę, -1, W przeciwnym razie 0.

HASERL_SHELL
Nazwa powłoki haserl zaczęła uruchamiać polecenia podpowłoki.

HASERL_UPLOAD_DIR
Katalog, którego haserl użyje do przechowywania przesłanych plików.

HASERL_UPLOAD_LIMIT
Liczba KB, które mogą zostać wysłane od klienta do serwera.

Te zmienne mogą być modyfikowane lub nadpisywane w skrypcie, chociaż te
zaczynające się od „HASERL_” mają wyłącznie charakter informacyjny i nie wpływają na działanie skryptu.

BEZPIECZEŃSTWO ROZWIĄZANIA


Istnieje wiele literatury dotyczącej niebezpieczeństw związanych z używaniem powłoki do programowania skryptów CGI.
Haserl zawiera kilka zabezpieczenia w celu ograniczenia tego ryzyka.

Środowisko Zmienne
Kod wypełniający zmienne środowiskowe jest poza zakresem sub-
powłoka. Analizuje znaki? i &, więc jest to trudniejsze dla klienta
ataki „wtryskowe”. Jako przykład, foo.cgi?a=test;kot / Etc / passwd może spowodować
zmienna ma przypisaną wartość test a potem wyniki biegania jak
/ Etc / passwd wysyłane do klienta. Haserla przypisze zmiennej wartość kompletną
wartość: test; kot / Etc / passwd

Bezpiecznie jest używać tej „niebezpiecznej” zmiennej w skryptach powłoki, umieszczając ją w
cytaty; chociaż sprawdzanie poprawności powinno odbywać się na wszystkich polach wejściowych.

Przywilej Rzut
Jeśli jest zainstalowany jako skrypt suid, Haserl ustawi swój uid/gid na identyfikator właściciela
scenariusz. Można tego użyć, aby mieć zestaw skryptów CGI, które mają różne
przywilej. jeśli Haserl binarny nie jest zainstalowany suid, to zrobią to skrypty CGI
uruchom z uid/gid serwera WWW.

Odrzuć komenda linia parametry dany on dotychczasowy URL
Jeśli adres URL nie zawiera niezakodowanego znaku „=”, specyfikacja CGI określa opcje
mają być używane jako parametry wiersza poleceń programu. Na przykład wg
do specyfikacji CGI: http://192.168.0.1/test.cgi?--limit-przesyłania%3d2000&foo%3dbar
Powinien ustawić limit przesyłania na 2000 KB oprócz ustawienia „Foo = bar”. Chronić
przeciwko klientom umożliwiającym własne przesyłanie, Haserl odrzuca wszelkie opcje wiersza poleceń
poza argv[2]. Jeśli wywołany jako #! script, interpreter to argv[0], wszystko
opcje wiersza polecenia wymienione w #! line są łączone w argv[1], a
nazwa skryptu to argv[2].

LUA


Jeśli skompilowane z obsługą lua, --shell=lua zamiast tego włączy lua jako język skryptowy
powłoki bash. Zmienne środowiskowe (SCRIPT_NAME, SERVER_NAME itp.) są umieszczane w
tabeli ENV, a zmienne formularza są umieszczane w tabeli FORM. Na przykład
powyższy formularz odnoszący się do samego siebie można zapisać w następujący sposób:

#!/usr/local/bin/haserl --shell=lua
typ zawartości: tekst/html


Przykładowy formularz
" metoda = "POBIERZ">
<% # Wykonaj podstawową weryfikację pola FORM_textfield
# Aby zapobiec typowym atakom sieciowym
FORM.textfield=string.gsub(FORM.textfield, "[^%a%d]", "")
%>
<input type=text name=textfield
Value="<% io.write (string.upper(FORM.textfield)) %>" cols=20>




Operator <%= jest cukrem syntaktycznym io.napisz (tostring( ... )) Na przykład
Powyższą linię Value= można zapisać: Wartość="<%= string.upper(FORM.pole tekstowe) %>" kol.=20>

Skrypty haserl lua mogą używać tej funkcji plik haserl.ładuj(filename) przetworzyć cel
skrypt jako skrypt haserl (lua). Funkcja zwraca typ „funkcji”.

Na przykład,

bar.lsp
<% io.write ("Witaj świecie") %>

Twoja wiadomość to <%= gvar %>

-- Koniec pliku dołączania --

foo.haserl
#!/usr/local/bin/haserl --shell=lua
<% m = haserl.loadfile("bar.lsp")
gvar = "Uruchom jako m()"
m ()

gvar = "Załaduj i uruchom w jednym kroku"
haserl.loadfile("bar.lsp")()
%>

Bieganie bla będzie produkować:

Witaj świecie
Twoja wiadomość to Uruchom jako m()
-- Koniec pliku dołączania --
Witaj świecie
Twoja wiadomość to Załaduj i uruchom w jednym kroku
-- Koniec pliku dołączania --

Ta funkcja umożliwia zagnieżdżanie stron serwera haserl - fragmentów stron
które są przetwarzane przez tokenizer Haserl.

LUAC


Połączenia Luac „shell” to prekompilowany fragment lua, czyli interaktywna edycja i testowanie skryptów
nie jest możliwe. Jednak haserl można skompilować tylko z obsługą luac, a to pozwala
obsługa lua nawet w małym środowisku pamięci. Wszystkie wymienione powyżej funkcje haserl lua są
wciąż dostępne. (Jeśli luac jest jedyną powłoką wbudowaną w haserl, plik haserl.load jest
wyłączone, ponieważ parser haserl nie jest wkompilowany.)

Oto przykład trywialnego skryptu przekonwertowanego na skrypt luac cgi:

Biorąc pod uwagę plik test.lua:
print("Typ zawartości: tekst/zwykły0)
print("Twój identyfikator UUID dla tego uruchomienia to: " .. ENV.SESSIONID)

Można to skompilować za pomocą luaca:
luac -o test.luac -s test.lua

A potem dodano do niego nagłówek haserl:
echo '#!/usr/bin/haserl --shell=luac' | kot - test.luac > luac.cgi

Alternatywnie możliwe jest stworzenie całej strony internetowej przy użyciu standardowej powłoki lua,
a następnie sam Haserl wstępnie przetworzy skrypty dla kompilatora luac jako część pliku a
proces budowania. Aby to zrobić, użyj opcji --shell=lua i rozwijaj witrynę. Gdy jest gotowy do budowy
środowisku wykonawczym, dodaj linię --debug do swoich skryptów lua i uruchom ich wyjście
wyniki do plików źródłowych .lua. Na przykład:

Biorąc pod uwagę skrypt haserl test.cgi:
#!/usr/bin/haserl --shell=lua --debug
Content-Type: tekst / zwykły

Twój identyfikator UUID dla tego uruchomienia to <%= ENV.SESSIONID %>

Wstępnie skompiluj, skompiluj i dodaj nagłówek haserl luac:
./test.cgi > test.lua
luac -s -o test.luac test.lua
echo '#!/usr/bin/haserl --shell=luac' | kot - test.luac > luac.cgi

Korzystaj z haserl online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    Phaser
    Phaser
    Phaser to szybka, darmowa i zabawna gra otwarta
    źródłowa struktura gry HTML5, która oferuje
    Renderowanie WebGL i Canvas w poprzek
    przeglądarek internetowych na komputery i urządzenia mobilne. Gry
    może być współ...
    Pobierz Phaser
  • 2
    Silnik WASAL
    Silnik WASAL
    VASSAL to silnik gry do tworzenia
    elektroniczne wersje tradycyjnej tablicy
    i gry karciane. Zapewnia wsparcie dla
    renderowanie elementów gry i interakcja,
    i ...
    Pobierz silnik VASSAL
  • 3
    OpenPDF — rozwidlenie iText
    OpenPDF — rozwidlenie iText
    OpenPDF to biblioteka Java do tworzenia
    i edycji plików PDF z LGPL i
    Licencja open source MPL. OpenPDF to
    LGPL/MPL open source następca iText,
    w ...
    Pobierz OpenPDF — rozwidlenie iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - System do Automatyzacji
    Analizy geologiczne - to geografia
    Oprogramowanie systemu informacyjnego (GIS) z
    ogromne możliwości geodanych
    przetwarzanie i an...
    Pobierz SAGA GIS
  • 5
    Przybornik dla Java/JTOOpen
    Przybornik dla Java/JTOOpen
    IBM Toolbox for Java / JTOpen to
    biblioteka klas Java obsługująca
    klient/serwer i programowanie internetowe
    modeli do systemu z systemem OS/400,
    i5/OS, lub...
    Pobierz Zestaw narzędzi dla języka Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (lub D3 dla dokumentów opartych na danych)
    to biblioteka JavaScript, która pozwala
    do tworzenia dynamicznych, interaktywnych danych
    wizualizacje w przeglądarkach internetowych. Z D3
    ty...
    Pobierz plik D3.js
  • więcej »

Komendy systemu Linux

Ad