İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

haserl - Bulutta Çevrimiçi

OnWorks ücretsiz barındırma sağlayıcısında haserl'i Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen haserl komutudur.

Program:

ADI


haserl - Gömülü ortamlar için bir cgi komut dosyası programı

SİNOPSİS


#!/usr/bin/haserl [--kabuk=yol belirtimi] [--yükleme-dir=direktif] [--yükleme işleyicisi=işleyicisi]
[--yükleme sınırı=sınır] [--hepsini kabul et] [--kabul-yok] [--sessiz] [--hata ayıklama]

[ metin ] [ <% kabuk komut dosyası %> ] [ metin ] ...

TANIM


Haserl, "PHP" tarzı cgi programlamaya izin veren, ancak bir UNIX kullanan küçük bir cgi sarmalayıcıdır.
programlama dili olarak bash benzeri kabuk veya Lua. Çok küçük olduğu için kullanılabilir
gömülü ortamlarda veya PHP gibi bir şeyin çok büyük olduğu yerlerde.

Üç özelliği küçük bir cgi motorunda birleştirir:

POST ve GET isteklerini ayrıştırır, form öğelerini ad=değer çiftleri olarak
CGI betiğinin kullanacağı ortam. Bu biraz şuna benziyor uncgi sargı.

Bir kabuk açar ve tüm metni yazdırılabilir ifadelere çevirir. Tüm metin
<% ... %> yapıları içinde kabuğa kelimesi kelimesine iletilir. Bu biraz
yazmak gibi PHP komut.

İzinlerini betiğin sahibine bırakmak için isteğe bağlı olarak kurulabilir,
güvenlik özelliklerinden bazılarını vererek suexec or cgi sarmalayıcı.

SEÇENEKLER ÖZET


Bu, komut satırı seçeneklerinin bir özetidir. Lütfen bkz SEÇENEKLER bölümünde
tam bir açıklama için uzun seçenek adı.

-a --hepsini kabul et
-n --kabul-yok
-d --hata ayıklama
-s, --kabuk
-S, --sessiz
-U, --upload-dir
-u, --yükleme limiti
-H, --yükleme işleyicisi

SEÇENEKLER


--hepsini kabul et
Program normalde yalnızca REQUEST_METHOD POST olduğunda POST verilerini kabul eder ve
yalnızca REQUEST_METHOD GET olduğunda URL verileri üzerindeki verileri kabul eder. Bu seçenek
REQUEST_METHOD'dan bağımsız olarak hem POST hem de URL verilerinin kabul edilmesine izin verir.
Bu seçenek ayarlandığında, REQUEST_METHOD önceliklidir (örn.
POST ise, FORM_variables, COOKIE verilerinden, GET verilerinden ve POST verilerinden alınır.
o sipariş. Yöntem GET ise, FORM_değişkenleri COOKIE verisinden alınır, POST
veri ve GET verisi.) Varsayılan, tüm giriş yöntemlerini kabul etmemek - yalnızca
COOKIE verileri ve REQUEST_METHOD.

--kabul-yok
Eğer verilirse, haserl, işlenmeden önce standart girdiyi http içeriği olarak ayrıştırmaz
senaryo. Bu, başka bir haserl betiğinden bir haserl betiği çağrıldığında kullanışlıdır.

- hata ayıklama
Komut dosyasını yürütmek yerine yürütülecek komut dosyasını yazdırın. Eğer
'REQUEST_METHOD' ortam değişkeni ayarlanır, veriler
düz/metin içerik türü. Aksi takdirde, kabuk betiği kelimesi kelimesine yazdırılır.

--kabuk=yol belirtimi
Kullanılacak alternatif bir bash benzeri kabuk belirtin. Varsayılan olarak "/ Bin / sh"

Kabuk parametrelerini dahil etmek için --shell= kullanmayın/ Bin / sh biçim. Bunun yerine,
--shell " gibi "=" olmadan alternatif biçim/ bin / bash --norc".
özel karakterleri korumak için seçenek dizesini alıntılayın.

Lua kitaplıkları ile derlenirse, "lua" dizgisi entegre bir kullanmak için kullanılır.
Lua vm. Bu dize büyük/küçük harf duyarlıdır. Örnek: --kabuk=lua

Bir alternatif "luac" dır. Bu haserl ve lua ayrıştırıcılarının devre dışı bırakılmasına neden olur,
ve betiğin önceden derlenmiş bir lua yığını olduğu varsayılır. Görmek LUAC daha fazlası için aşağıda
bilgiler.

--sessiz
Haserl normalde hata koşulları hakkında bir bilgi mesajı yazdırır. Bu
haserl kullanımının duyurulmaması için hata mesajını bastırır.

--upload-dir=direktif
Varsayılan olarak "/ Tmp". Yüklenen tüm dosyalar bu dosyada geçici dosya adıyla oluşturulur.
rehber HASERL_xxx_yol geçici dosyanın adını içerir. FORM_xxx_adı
istemci tarafından belirtildiği gibi dosyanın orijinal adını içerir.

--yükleme işleyicisi=yol belirtimi
Belirtildiğinde, dosya yüklemeleri, yazılmak yerine bu işleyici tarafından işlenir.
geçici dosyalar. Tam yol belirtimi verilmelidir (PATH aranmaz) ve
yükleme işleyicisine bir komut satırı parametresi verilir:
hangi yükleme dosyası gönderilecek. Ek olarak, işleyici 3 alabilir
Ortam Değişkenleri: İÇERİK TÜRÜ, DOSYA ADI, ve ADI. Bunlar MIME'yi yansıtır
içerik için içerik düzenleme başlıkları. Haserl, her biri için işleyiciyi çatallayacak
dosya yüklenir ve yükleme dosyasının içeriğini belirtilen FIFO'ya gönderir.
Haserl daha sonra işleyici sonlandırılana kadar engelleyecektir. Bu yöntem uzmanlar içindir.
bir tek.

--yükleme sınırı=sınır
MIME kodlu bir dosyaya izin ver sınır KB yüklenecek. Varsayılan 0KB (değil
yüklemelere izin verilir). Mime kodlamanın veri boyutunu %33 oranında artırdığını unutmayın.

OF ÇALIŞMA PRENSİBİ


Genel olarak, web sunucusu birkaç ortam değişkeni kurar ve ardından çatal or
CGI betiğini çalıştırmak için başka bir yöntem. Komut dosyası kullanıyorsa Haserl tercüman,
aşağıdaki olur:

If Haserl suid root kurulur, ardından uid/gid betiğin sahibine ayarlanır.

Çevre taranır HTTP_COOKIE, web tarafından ayarlanmış olabilir
sunucu. Varsa, ayrıştırılan içerik yerel ortama yerleştirilir.

Çevre taranır REQUEST_METHOD, web sunucusu tarafından ayarlandı.
İstek yöntemine göre standart girdi okunur ve ayrıştırılır. ayrıştırılmış
içerikler yerel ortama yerleştirilir.

Komut dosyası belirtilmiş, ayrıştırılıyor Haserl ham metinden kod blokları. Ham metin
"echo" ifadelerine dönüştürülür ve ardından tüm belirteçler alt kabuğa gönderilir.

Haserl çatallar ve bir alt kabuk (tipik olarak / Bin / sh) Başladı.

Tüm belirteçler, alt kabuğun STDIN'ine bir takip ile gönderilir. çıkış Komut.

Alt kabuk sona erdiğinde, Haserl tercüman son temizliği gerçekleştirir ve
sonra sonlandırılır.

MÜŞTERİ YAN GİRİŞ


The Haserl yorumlayıcı, HTTP_COOKIE ortam değişkeni aracılığıyla gönderilen verilerin kodunu çözecektir ve
istemciden GET veya POST yöntemini seçin ve bunları ortam değişkenleri olarak saklayın.
haserl tarafından erişilebilir. Değişkenin adı kaynakta verilen isimden sonra gelir,
bunun dışında bir önek ( FORMU_) başa yazılır. Örneğin, istemci "foo=bar" gönderirse,
ortam değişkeni FORM_foo=bar.

HTTP_COOKIE yöntemi için değişkenler ayrıca ( COOKIE_) katma.
Örneğin, HTTP_COOKIE "foo=bar" içeriyorsa, ortam değişkeni
COOKIE_foo=bar.

GET yöntemi için, %xx biçiminde gönderilen veriler, girdikleri karakterlere çevrilir.
temsil eder ve değişkenler de ( GET_) katma. örneğin, eğer
QUERY_STRING, "foo=bar" içerir, ortam değişkeni GET_foo=bar.

POST yöntemi için değişkenler ayrıca ( POST_) katma. İçin
örneğin, gönderi akışı "foo=bar" içeriyorsa, ortam değişkeni POST_foo=bar.

Ayrıca, POST yöntemi için, veriler kullanılarak gönderiliyorsa çok parçalı/form-veri kodlama,
verilerin kodu otomatik olarak çözülür. Bu genellikle dosyalar bir web'den yüklendiğinde kullanılır.
kullanan müşteri .

NOT Web sunucusuna bir dosya yüklendiğinde, dosyada saklanır. yükleme-dir
dizin. FORM_değişken_adı= yüklenen dosyanın adını içerir (olarak
müşteri tarafından belirtilir.) HASERL_variable_path= içindeki dosyanın adını içerir
yükleme-dir yüklenen içeriği tutan. Kötü niyetli istemcileri önlemek için
dolduruyor yükleme-dir web sunucunuzda, dosya yüklemelerine yalnızca şu durumlarda izin verilir:
--yükleme sınırı seçeneği, bir dosyanın ne kadar büyük yüklenebileceğini belirtmek için kullanılır. Haserl
komut dosyası bittiğinde geçici dosyayı otomatik olarak siler. tutmak için
dosya, taşıyın veya komut dosyasında bir yerde yeniden adlandırın.

Dosya adının içinde saklandığını unutmayın. HASERL_değişken_yol Bunun nedeni FORM_,
GET_ ve POST_ değişkenleri istemci tarafından değiştirilebilir ve kötü niyetli bir istemci
adıyla ikinci bir değişken ayarla değişken_yol=/ Etc / passwd. Önceki versiyonlar
pathspec'i içinde saklamadı HASERL ad. için korumak geriye
uyumluluk, the isim of the geçici dosya is Ayrıca saklı in FORM_değişken= ve
POST_değişkeni=. Bu is kabul emniyetsiz ve meli değil be Kullanılmış.

İstemci veri gönderirse her ikisi de POST ve GET yöntemleriyle, ardından Haserl yalnızca ayrıştırılacak
karşılık gelen veriler REQUEST_METHOD web sunucusu tarafından ayarlanan değişken,
hepsini kabul et seçeneği ayarlandı. Örneğin, POST yöntemiyle çağrılan ancak bir
some.cgi?foo=bar&otherdata=something URI'si, POST verilerini ayrıştıracak ve foo
ve diğer veri değişkenler göz ardı edilir.

Web sunucusu bir HTTP_COOKIE ortam değişkeni, tanımlama bilgisi verileri ayrıştırılır.
Çerez verileri ayrıştırılır önce GET veya POST verileri, yani iki değişken olması durumunda
aynı adla, GET veya POST verileri, tanımlama bilgisi bilgilerinin üzerine yazar.

Aynı değişkenin birden çok örneği farklı kaynaklardan gönderildiğinde,
FORM_variable, değişkenlerin işlendiği sıraya göre ayarlanacaktır.
HTTP_COOKIE her zaman önce işlenir, ardından REQUEST_METHOD gelir. hepsini kabul etse
seçeneği ayarlandı, ardından önce HTTP_COOKIE işlenir, ardından aşağıdaki yöntem işlenir:
REQUEST_METHOD ve ardından REQUEST_METHOD ile belirtilir. Son örneği
değişken, FORM_variable'ı ayarlamak için kullanılacaktır. Değişkenlerin de ayrı ayrı olduğuna dikkat edin.
COOKIE_variable, GET_variable ve POST_variable olarak oluşturur. Bu, kullanımına izin verir
her kaynaktan örtüşen isimler.

Aynı kaynaktan aynı değişkenin birden çok örneği gönderildiğinde, yalnızca sonuncusu
biri kurtulur. Tüm kopyaları saklamak için (örneğin çoklu seçimler için), sonuna "[]" ekleyin
değişken adından. Tüm sonuçlar, yeni satırlarla ayrılmış olarak döndürülür. Örneğin,
host=Enoch&host=Esther&host=Joshua "FORM_host=Joshua" ile sonuçlanır.
host[]=Enoch&host[]Esther&host[]=Joshua "FORM_host=Enoch\nEsther\nJoshua" ile sonuçlanır

DİL


Aşağıdaki dil yapıları tarafından tanınır: Haserl.

KOŞMAK
<% [kabuk komut dosyası] %>

<% %> etiketleriyle çevrelenen her şey, yürütülmek üzere alt kabuğa gönderilir. Metin
kelimesi kelimesine gönderilir.

DAHİL
<yol belirtiminde %%>

Bu komut dosyasına kelimesi kelimesine başka bir dosya ekleyin. Dosya, komut dosyası dahil edildiğinde
başlangıçta ayrıştırılır.

DEĞERLENDİRME
<%= ifade %>

kabuk ifadesini yazdırın. "echo ifadesi" için sözdizimsel şeker.

YORUM
<%# yorum %>

Yorum bloğu. Yorum bloğundaki hiçbir şey ayrıştırılmaz. Yorumlar iç içe olabilir
ve diğer haserl öğelerini içerebilir.

ÖRNEKLER


UYARI
Aşağıdaki örnekler, nasıl kullanılacağını göstermek için basitleştirilmiştir. Haserl. Olmalısın
kullanmadan önce temel web komut dosyası güvenliği konusunda bilgi sahibi Haserl (veya herhangi bir komut dosyası
dil) bir üretim ortamında.

Basit Komuta
#!/usr/yerel/bin/haserl
içerik türü: metin/düz

<%# Bu örnek bir "env" betiğidir %>
<% ortam %>

Sonuçlarını yazdırır env mime tipi bir "metin/düz" belge olarak komut. Bu
the Haserl ortak versiyonu printenv cgi.

döngü ile dinamik çıktı
#!/usr/yerel/bin/haserl
İçerik türü: metin/html




Kırmızı Mavi Sarı Camgöbeği için <%; %> yap
"><% echo -n "$a" %>
<% tamamlandı %>




Bir html tablosu ile birlikte istemciye mime tipi bir "metin/html" belgesi gönderir.
arka plan rengiyle etiketlenmiş öğeler.

kullanım Kabuk tanımlı fonksiyonlar.
#!/usr/yerel/bin/haserl
içerik türü: metin/html

<% # bir kullanıcı işlevi tanımlayın
tablo_element() {
Eko " $1 "
}
%>



Kırmızı Mavi Sarı Camgöbeği için <%; %> yap
<% tablo_element $a %>
<% tamamlandı %>




Yukarıdakiyle aynıdır, ancak gömülü html yerine bir kabuk işlevi kullanır.

öz Referans CGI ile a Airdrop Formu
#!/usr/yerel/bin/haserl
içerik türü: metin/html


Örnek Form
" method="GET">
<% # FORM_textfield'ın bazı temel doğrulamalarını yapın
# Yaygın web saldırılarını önlemek için
FORM_textfield=$( echo "$FORM_textfield" | sed "s/[^A-Za-z0-9 ]//g")
%>
<giriş türü=metin adı=metin alanı
Value="<% echo -n "$FORM_textfield" | tr az AZ %>" cols=20>




Bir form yazdırır. İstemci forma metin girerse, CGI yeniden yüklenir (tanımlı
by $SCRIPT_NAME) ve metin alanı web saldırılarını önlemek için sterilize edilir, ardından
form, kullanıcının girdiği metinle yeniden görüntülenir. Metin büyük harfle yazılmıştır.

Yükleme a fileto
#!/usr/local/bin/haserl --upload-limit=4096 --upload-dir=/ Tmp
içerik türü: metin/html


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



<% if test -n "$HASERL_uploadfile_path"; sonra %>

<% echo -n $FORM_uploadfile_name %> adlı bir dosya yüklediniz ve
. sunucuda geçici olarak olarak depolanır. NS
dosya <% cat $HASERL_uploadfile_path oldu | wc -c %> bayt uzunluğunda.
<% rm -f $HASERL_uploadfile_path %> Endişelenme, dosya yeni silindi
web sunucusundan.
<% başka %>
Henüz bir dosya yüklemediniz.
<% fi %>



Dosya yüklemeye izin veren bir form görüntüler. Bu, kullanılarak gerçekleştirilir
--yükleme sınırı ve formu ayarlayarak kod türü için çok parçalı/form-veri. Eğer
istemci bir dosya gönderir, ardından dosyayla ilgili bazı bilgiler yazdırılır ve ardından
silindi. Aksi takdirde, form istemcinin bir dosya yüklemediğini belirtir.

RFC 2616 Uygunluk
#!/usr/yerel/bin/haserl
<% echo -en "içerik türü: metin/html\r\n\r\n" %>

...


HTTP spesifikasyonuna tam olarak uymak için başlıklar kullanılarak sonlandırılmalıdır.
Yalnızca normal unix LF hat sonlandırması yerine CR+LF. Yukarıdaki sözdizimi
RFC 2616 uyumlu başlıklar üretmek için kullanılabilir.

ÇEVRE


Web sunucusundan devralınan ortam değişkenlerine ek olarak, aşağıdakiler
ortam değişkenleri her zaman başlangıçta tanımlanır:

HASERLVER
Haserl sürüm - bilgi etiketi.

OTURUM KİMLİĞİ
CGI ömrü için benzersiz olan bir onaltılık etiket (
cgi başlar; ve başka bir POST veya GET sorgusu oluşturulana kadar değişmez.)

HASERL_ACCEPT_ALL
Eğer --hepsini kabul et bayrak kuruldu, -1, Aksi takdirde 0.

HASERL_SHELL
Kabuk haserl'in adı, alt kabuk komutlarını çalıştırmaya başladı.

HASERL_UPLOAD_DIR
Haserl dizini, yüklenen dosyaları depolamak için kullanacaktır.

HASERL_UPLOAD_LIMIT
İstemciden sunucuya gönderilmesine izin verilen KB sayısı.

Bu değişkenler, komut dosyası içinde değiştirilebilir veya üzerine yazılabilir, ancak bunlar
"HASERL_" ile başlayanlar yalnızca bilgilendirme amaçlıdır ve çalışan komut dosyasını etkilemez.

GÜVENLİK ÖZELLİKLER


CGI betiklerini programlamak için kabuk kullanmanın tehlikeleri hakkında çok fazla literatür var.
Haserl içeren biraz Bu riski azaltmak için korumalar.

çevre Değişkenler
Ortam değişkenlerini dolduracak kod, alt kapsamın dışındadır.
kabuk. Karakterler üzerinde ayrıştırır mı? ve &, bu nedenle bir müşterinin yapması daha zordur
"enjeksiyon" saldırıları. Örnek olarak, foo.cgi?a=test;kedi / Etc / passwd sonuçlanabilir
değer atanan bir değişken test ve sonra çalıştırmanın sonuçları kedi
/ Etc / passwd müşteriye gönderiliyor. Haserl değişkeni tam olarak atayacaktır
değeri: test; kedi / Etc / passwd

Bu "tehlikeli" değişkeni kabuk komut dosyalarında, içine alarak kullanmak güvenlidir.
alıntılar; ancak doğrulama tüm giriş alanlarında yapılmalıdır.

Ayrıcalık Damlama
Suid komut dosyası olarak yüklendiyse, Haserl kullanıcı kimliğini/gidini sahibininkine ayarlayacaktır
senaryo. Bu, çeşitli özelliklere sahip bir dizi CGI betiğine sahip olmak için kullanılabilir.
ayrıcalık. Eğer Haserl ikili suid yüklenmezse, CGI betikleri
web sunucusunun kullanıcı kimliği/gid ile çalıştırın.

Reddetmek komuta hat parametreler verilmiş on the URL
URL kodlanmamış bir "=" içermiyorsa, CGI özelliği seçenekleri belirtir
programa komut satırı parametreleri olarak kullanılacaktır. Örneğin, göre
CGI spesifikasyonuna: http://192.168.0.1/test.cgi?--yükleme limiti%3d2000&foo%3dbar
"Foo=bar" ayarına ek olarak yükleme sınırını 2000 KB olarak ayarlamalıdır. Korumak
kendi yüklemelerini sağlayan müşterilere karşı, Haserl herhangi bir komut satırı seçeneğini reddeder
argv[2] ötesinde. # olarak çağrılırsa! komut dosyası, yorumlayıcı argv[0], tümü
# içinde listelenen komut satırı seçenekleri! satırı argv[1] içinde birleştirilir ve
komut dosyası adı argv[2]'dir.

AY


Lua desteği ile derlenirse, --kabuk=lua bunun yerine lua'yı betik dili olarak etkinleştirecek
bash kabuğundan. Ortam değişkenleri (SCRIPT_NAME, SERVER_NAME, vb.)
ENV tablosu ve form değişkenleri FORM tablosuna yerleştirilir. Örneğin,
Yukarıdaki kendi kendine referans formu şu şekilde yazılabilir:

#!/usr/local/bin/haserl --shell=lua
içerik türü: metin/html


Örnek Form
" method="GET">
<% # FORM_textfield'ın bazı temel doğrulamalarını yapın
# Yaygın web saldırılarını önlemek için
FORM.textfield=string.gsub(FORM.textfield, "[^%a%d]", "")
%>
<giriş türü=metin adı=metin alanı
Value="<% io.write (string.upper(FORM.textfield)) %>" cols=20>




<%= operatörü, sözdizimsel şekerdir io.write (tıp( ... )) Yani, örneğin,
Değer= yukarıdaki satır yazılabilir: Değer="<%= string.upper(FORM.metin alanı) %>" sütunlar=20>

haserl lua komut dosyaları işlevi kullanabilir haserl.loadfile(Dosya) bir hedefi işlemek
haserl (lua) komut dosyası olarak komut dosyası. İşlev, bir tür "işlev" döndürür.

Örneğin,

bar.lsp
<% io.write ("Merhaba Dünya") %>

Mesajınız <%= gvar %>

-- Ekleme dosyasının sonu --

foo.haserl
#!/usr/local/bin/haserl --shell=lua
<% m = haserl.loadfile("bar.lsp")
gvar = "m() olarak çalıştır"
m ()

gvar = "Tek adımda yükle ve çalıştır"
haserl.loadfile("bar.lsp")()
%>

Koşu foo üretecek:

Merhaba Dünya
Mesajınız Run as m()
-- Ekleme dosyasının sonu --
Merhaba Dünya
Mesajınız tek adımda Yükle ve çalıştır
-- Ekleme dosyasının sonu --

Bu işlev, iç içe haserl sunucu sayfalarına sahip olmayı mümkün kılar - sayfa parçacıkları
haserl belirteci tarafından işlenir.

LUAC


The Luac "kabuk" önceden derlenmiş bir lua yığınıdır, bu nedenle komut dosyalarının etkileşimli olarak düzenlenmesi ve test edilmesi
imkansız. Ancak haserl yalnızca luac desteğiyle derlenebilir ve bu,
Küçük bir bellek ortamında bile lua desteği. Yukarıda listelenen tüm haserl lua özellikleri
hala uygun. (Eğer haserl'de yerleşik tek kabuk luac ise, haserl.loadfile
haserl ayrıştırıcısı derlenmediğinden devre dışı bırakılır.)

İşte bir luac cgi betiğine dönüştürülmüş önemsiz bir betik örneği:

Test.lua dosyası göz önüne alındığında:
yazdır ("İçerik Türü: metin/düz0)
print ("Bu çalıştırma için UUID'niz: " .. ENV.SESSIONID)

luac ile derlenebilir:
luac -o test.luac -s test.lua

Ve sonra haserl başlığı buna eklendi:
echo '#!/usr/bin/haserl --shell=luac' | kedi - test.luac >luac.cgi

Alternatif olarak, standart lua kabuğunu kullanarak bütün bir web sitesi geliştirmek mümkündür,
ve sonra haserl'in luac derleyicisinin komut dosyalarını bir
inşa süreci. Bunu yapmak için --shell=lua kullanın ve web sitesini geliştirin. İnşa etmeye hazır olduğunda
çalışma zamanı ortamı, --debug satırını lua komut dosyalarınıza ekleyin ve çıktı olarak çalıştırın
sonuçları .lua kaynak dosyalarına gönderir. Örneğin:

haserl betiği test.cgi göz önüne alındığında:
#!/usr/bin/haserl --shell=lua --debug
Content-Type: text / plain

Bu çalıştırma için UUID'niz <%= ENV.SESSIONID %>

Haserl luac başlığını önceden derleyin, derleyin ve ekleyin:
./test.cgi > test.lua
luac -s -o testi.luac testi.lua
echo '#!/usr/bin/haserl --shell=luac' | kedi - test.luac >luac.cgi

onworks.net hizmetlerini kullanarak haserl'i çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

  • 1
    Phaser
    Phaser
    Phaser hızlı, ücretsiz ve eğlenceli bir açık
    sunan kaynak HTML5 oyun çerçevesi
    WebGL ve Canvas oluşturma
    masaüstü ve mobil web tarayıcıları. Oyunlar
    ortak olabilir...
    Phaser'ı indirin
  • 2
    VASAL Motor
    VASAL Motor
    VASSAL, oluşturmak için bir oyun motorudur.
    geleneksel tahtanın elektronik versiyonları
    ve kart oyunları. için destek sağlar
    oyun parçası oluşturma ve etkileşim,
    ve ...
    VASSAL Motorunu İndirin
  • 3
    OpenPDF - iText çatalı
    OpenPDF - iText çatalı
    OpenPDF oluşturmak için bir Java kütüphanesidir.
    ve PDF dosyalarını bir LGPL ile düzenlemek ve
    MPL açık kaynak lisansı. OpenPDF
    LGPL/MPL iText'in açık kaynaklı halefi,
    var ...
    OpenPDF'i İndirin - iText Çatalı
  • 4
    SAGA CBS
    SAGA CBS
    SAGA - Otomatik Sistem
    Yerbilimsel Analizler - Bir Coğrafidir
    Bilgi Sistemi (GIS) yazılımı ile
    coğrafi veriler için muazzam yetenekler
    işleme ve ana...
    SAGA GIS'i indirin
  • 5
    Java/JTOpen için Araç Kutusu
    Java/JTOpen için Araç Kutusu
    IBM Toolbox for Java / JTOpen, bir
    destekleyen Java sınıfları kütüphanesi
    istemci/sunucu ve internet programlama
    modelleri OS/400 çalıştıran bir sisteme,
    i5/OS veya...
    Java/JTOpen için Toolbox'ı indirin
  • 6
    d3.js
    d3.js
    D3.js (veya Veriye Dayalı Belgeler için D3)
    sağlayan bir JavaScript kitaplığıdır.
    dinamik, etkileşimli veriler üretmek için
    web tarayıcılarında görselleştirmeler. D3 ile
    sen...
    D3.js'yi indirin
  • Daha fazla »

Linux komutları

Ad