انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

haserl - آنلاین در ابر

haserl را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این دستور haserl است که می تواند در ارائه دهنده میزبانی رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


haserl - یک برنامه برنامه نویسی cgi برای محیط های تعبیه شده

خلاصه


#!/usr/bin/haserl [--شل=pathspec] [--upload-dir=dirspec] [--upload-handler=دستیار]
[--upload-limit=محدود کردن] [--پذیرفتن تمامی موارد] [--accept-none] [--بی صدا] [--اشکال زدایی]

[ متن ] [ <% پوسته اسکریپت %> ] [ متن ] ...

شرح


Haserl یک بسته بندی کوچک cgi است که اجازه برنامه نویسی cgi به سبک "PHP" را می دهد، اما از یونیکس استفاده می کند.
پوسته bash مانند یا Lua به عنوان زبان برنامه نویسی. این بسیار کوچک است، بنابراین می توان از آن استفاده کرد
در محیط های تعبیه شده یا جایی که چیزی مانند PHP خیلی بزرگ است.

این سه ویژگی را در یک موتور کوچک cgi ترکیب می کند:

درخواست‌های POST و GET را تجزیه می‌کند و عناصر فرم را به‌عنوان جفت‌های name=value در
محیطی برای استفاده از اسکریپت CGI. این تا حدودی شبیه به uncgi لفافه

یک پوسته را باز می کند و تمام متن را به عبارات قابل چاپ ترجمه می کند. تمام متن
در ساختارهای <% ... %> کلمه به کلمه به پوسته ارسال می شود. این تا حدودی است
مثل نوشتن پی اچ پی اسکریپت.

می توان آن را به صورت اختیاری نصب کرد تا مجوزهای خود را به صاحب اسکریپت واگذار کند،
برخی از ویژگی های امنیتی را به آن می دهد suexec or cgiwrapper.

OPTIONS خلاصه


این خلاصه ای از گزینه های خط فرمان است. لطفا ببینید OPTIONS بخش زیر
نام گزینه طولانی برای توضیح کامل

-a -- قبول-همه
-n --accept-none
-d - اشکال زدایی
-s، --شل
-S، --بی صدا
-U، --upload-dir
-u، --upload-limit
-H، --upload-handler

OPTIONS


--پذیرفتن تمامی موارد
برنامه معمولاً داده های POST را فقط زمانی می پذیرد که REQUEST_METHOD POST باشد و
فقط زمانی که REQUEST_METHOD GET باشد داده‌های مربوط به URL را می‌پذیرد. این گزینه
اجازه می دهد تا داده های POST و URL بدون توجه به REQUEST_METHOD پذیرفته شوند.
وقتی این گزینه تنظیم می شود، REQUEST_METHOD اولویت دارد (به عنوان مثال اگر روش
POST است، FORM_variables از داده‌های COOKIE، داده‌های GET و داده‌های POST گرفته می‌شوند، در
آن دستور اگر روش GET باشد، FORM_variables از داده های COOKIE، POST گرفته می شود
داده، و داده دریافت کنید.) پیش فرض این است که همه روش های ورودی را نپذیرید - فقط
داده های COOKIE و REQUEST_METHOD.

-- قبول - هیچ
اگر داده شود، haserl ورودی استاندارد را به عنوان محتوای http قبل از پردازش تجزیه نمی کند
فیلمنامه اگر یک اسکریپت haserl را از اسکریپت haserl دیگری فراخوانی کنید، مفید است.

- رفع اشکال
به جای اجرای اسکریپت، اسکریپتی را که اجرا می شود چاپ کنید. اگر
متغیر محیطی 'REQUEST_METHOD' تنظیم شده است، داده ها با
نوع محتوای ساده/متن در غیر این صورت، اسکریپت پوسته کلمه به کلمه چاپ می شود.

--شل=pathspec
یک پوسته bash مانند جایگزین برای استفاده مشخص کنید. پیش فرض های "/ بن / شل"

برای گنجاندن پارامترهای پوسته از --shell= استفاده نکنید/ بن / شل قالب در عوض، از
قالب جایگزین بدون "="، مانند --shell"/ bin / bash --norc". حتما
برای محافظت از هر کاراکتر خاص، رشته گزینه را نقل قول کنید.

اگر با کتابخانه های Lua کامپایل شود، رشته "lua" برای استفاده از یک مجتمع استفاده می شود
Lua vm. این رشته به حروف بزرگ و کوچک حساس است. مثال: --شل=ماه

یک جایگزین "لواک" است. این باعث می شود تجزیه کننده haserl و lua غیرفعال شود.
و اسکریپت به عنوان یک قطعه لوا از پیش کامپایل شده فرض می شود. دیدن LUAC در زیر برای اطلاعات بیشتر
اطلاعات.

--بی صدا
هاسرل معمولاً یک پیام اطلاعاتی در مورد شرایط خطا چاپ می کند. این
پیغام خطا را سرکوب می کند، به طوری که استفاده از haserl تبلیغ نمی شود.

--upload-dir=dirspec
پیش فرض های "دایرکتوری / tmp". همه فایل های آپلود شده با نام فایل موقت در این ایجاد می شوند
فهرست راهنما HASERL_xxx_path حاوی نام فایل موقت است. FORM_xxx_name
شامل نام اصلی فایل است که توسط مشتری مشخص شده است.

--upload-handler=pathspec
در صورت مشخص شدن، آپلود فایل توسط این کنترل کننده انجام می شود، نه اینکه روی آن نوشته شود
فایل های موقت مشخصات مسیر کامل باید داده شود (PATH جستجو نمی شود)، و
به آپلود هندلگر یک پارامتر خط فرمان داده می شود: نام FIFO در
که فایل آپلود ارسال خواهد شد. علاوه بر این، کنترل کننده ممکن است 3 را دریافت کند
متغیرهای محیطی: نوع محتوا, نام فایلو نام. اینها MIME را منعکس می کنند
سرصفحه های content-disposition برای محتوا. هاسرل برای هر کدام دسته را چنگال می کند
فایل آپلود شده و محتویات فایل آپلود را به FIFO مشخص شده ارسال می کند.
سپس Haserl تا زمانی که کنترل کننده خاتمه یابد مسدود می کند. این روش برای افراد متخصص است
تنها.

--upload-limit=محدود کردن
یک فایل رمزگذاری شده با mime تا محدود کردن KB برای آپلود شدن پیش فرض است 0KB (شماره
آپلود مجاز است). توجه داشته باشید که رمزگذاری mime 33٪ به اندازه داده ها اضافه می کند.

بررسی اجمالی OF عمل


به طور کلی، وب سرور چندین متغیر محیطی را تنظیم می کند و سپس از آن استفاده می کند چنگال or
روش دیگری برای اجرای اسکریپت CGI. اگر اسکریپت از هاسرل مترجم،
زیر اتفاق می افتد:

If هاسرل suid root نصب می شود، سپس uid/gid به مالک اسکریپت تنظیم می شود.

محیط اسکن شده است HTTP_COOKIE، که ممکن است توسط وب تنظیم شده باشد
سرور اگر وجود داشته باشد، محتوای تجزیه شده در محیط محلی قرار می گیرد.

محیط اسکن شده است REQUEST_METHOD، که توسط وب سرور تنظیم شده است.
بر اساس روش درخواست، ورودی استاندارد خوانده و تجزیه می شود. تجزیه شده
محتویات در محیط محلی قرار می گیرند.

اسکریپت نشانه گذاری شده، تجزیه می شود هاسرل بلوک های کد از متن خام متن خام است
به عبارات "echo" تبدیل می شود و سپس همه نشانه ها به پوسته فرعی ارسال می شوند.

هاسرل چنگال و پوسته فرعی (معمولا / بن / شل) آغاز شده است.

همه توکن ها به STDIN پوسته فرعی، با یک دنباله ارسال می شوند خروج فرمان

هنگامی که پوسته فرعی خاتمه می یابد، هاسرل مترجم پاکسازی نهایی را انجام می دهد و
سپس خاتمه می یابد.

مشتری سمت INPUT


La هاسرل مفسر داده های ارسال شده از طریق متغیر محیطی HTTP_COOKIE را رمزگشایی می کند و
متد GET یا POST از سرویس گیرنده، و آنها را به عنوان متغیرهای محیطی ذخیره کنید که می توانند
توسط haserl قابل دسترسی باشد. نام متغیر از نام داده شده در منبع پیروی می کند.
به جز اینکه یک پیشوند ( FORM_) پیش بینی شده است. به عنوان مثال، اگر مشتری "foo=bar" را ارسال کند،
متغیر محیطی است FORM_foo=بار.

برای روش HTTP_COOKIE، متغیرها نیز با پیشوند ( کوکی ها_) اضافه.
به عنوان مثال، اگر HTTP_COOKIE شامل "foo=bar" باشد، متغیر محیطی است
COOKIE_foo=بار.

برای روش GET، داده های ارسال شده به شکل %xx به کاراکترهای آنها ترجمه می شود
نشان می دهد و متغیرها نیز با پیشوند ( شو_) اضافه. به عنوان مثال، اگر
QUERY_STRING شامل "foo=bar" است، متغیر محیطی است GET_foo=بار.

برای روش POST، متغیرها نیز با پیشوند ( پست_) اضافه. برای
به عنوان مثال، اگر جریان پست شامل "foo=bar" باشد، متغیر محیطی است POST_foo=بار.

همچنین برای روش POST در صورتی که داده ها با استفاده از چند بخشی/فرم-داده رمزگذاری،
داده ها به طور خودکار رمزگشایی می شوند. این معمولاً زمانی استفاده می شود که فایل ها از وب آپلود می شوند
مشتری با استفاده از .

توجه داشته باشید هنگامی که یک فایل در وب سرور آپلود می شود، در آن ذخیره می شود آپلود- کارگردان
دایرکتوری. FORM_variable_name= حاوی نام فایل آپلود شده (به عنوان
توسط مشتری مشخص شده است.) HASERL_variable_path= حاوی نام فایل در
آپلود- کارگردان که محتوای آپلود شده را نگه می دارد. برای جلوگیری از ورود مشتریان مخرب
پر کردن آپلود- کارگردان در سرور وب شما، آپلود فایل تنها زمانی مجاز است که
--upload-limit گزینه برای تعیین حجم فایل می تواند آپلود شود استفاده می شود. هاسرل
پس از اتمام اسکریپت به طور خودکار فایل موقت را حذف می کند. برای نگه داشتن
فایل، آن را منتقل کنید یا نام آن را در جایی از اسکریپت تغییر دهید.

توجه داشته باشید که نام فایل در آن ذخیره می شود HASERL_متغیر_مسیر این به این دلیل است که FORM_،
متغیرهای GET_ و POST_ توسط مشتری قابل تغییر هستند و یک کلاینت مخرب می تواند
متغیر دوم را با نام تنظیم کنید variable_path=/ etc / passwd. نسخه های قبلی
pathspec را در آن ذخیره نکرد HASERL فضای نام به حفظ رو به عقب
سازگاری، la نام of la موقت پرونده is همچنین ذخیره شده in FORM_variable= و
POST_variable=. این is در نظر گرفته ناامن و باید نه be استفاده شده.

اگر مشتری داده ارسال کند هر دو سپس با روش های POST و GET هاسرل فقط تجزیه خواهد شد
داده هایی که با REQUEST_METHOD متغیر تنظیم شده توسط وب سرور، مگر اینکه
پذیرفتن تمامی موارد گزینه تنظیم شده است به عنوان مثال، فرمی که از طریق روش POST فراخوانی می شود، اما دارای a
URI some.cgi?foo=bar&otherdata=something داده های POST را تجزیه می کند و فو
و داده های دیگر متغیرها نادیده گرفته می شوند.

اگر وب سرور a را تعریف کند HTTP_COOKIE متغیر محیطی، داده های کوکی تجزیه می شود.
داده های کوکی تجزیه می شود قبل از داده های GET یا POST، بنابراین در صورت وجود دو متغیر از
با همین نام، داده های GET یا POST اطلاعات کوکی را بازنویسی می کند.

هنگامی که چندین نمونه از یک متغیر از منابع مختلف ارسال می شود،
FORM_variable با توجه به ترتیب پردازش متغیرها تنظیم می شود.
HTTP_COOKIE همیشه ابتدا و سپس REQUEST_METHOD پردازش می شود. اگر قبول همه
گزینه تنظیم شده است، سپس HTTP_COOKIE ابتدا پردازش می شود و سپس روش not پردازش می شود
توسط REQUEST_METHOD و به دنبال آن REQUEST_METHOD مشخص شده است. آخرین نمونه از
متغیر برای تنظیم FORM_variable استفاده خواهد شد. توجه داشته باشید که متغیرها نیز جداگانه هستند
به عنوان COOKIE_variable، GET_variable و POST_variable ایجاد می کند. این امکان استفاده از
نام های همپوشانی از هر منبع

هنگامی که چندین نمونه از یک متغیر از یک منبع ارسال می شود، فقط آخرین نمونه
یکی ذخیره می شود برای حفظ همه کپی ها (مثلاً برای چند انتخاب)، "[]" را به انتها اضافه کنید
از نام متغیر همه نتایج با خطوط جدید جدا شده برگردانده می شوند. مثلا،
host=Enoch&host=Esther&host=Joshua به "FORM_host=Joshua" منجر می شود.
host[]=Enoch&host[]Esther&host[]=Joshua به "FORM_host=Enoch\nEsther\nJoshua" منجر می شود

زبان


ساختارهای زبانی زیر توسط: هاسرل.

RUN
<% [اسکریپت پوسته] %>

هر چیزی که با تگ های <% %> محصور شده باشد برای اجرا به پوسته فرعی ارسال می شود. متن
کلمه به کلمه ارسال می شود.

عبارتند از
<% در pathspec %>

فایل دیگری را به کلمه کلمه در این اسکریپت قرار دهید. فایل در هنگام اسکریپت گنجانده می شود
در ابتدا تجزیه می شود.

EVAL
<%= عبارت %>

عبارت پوسته را چاپ کنید. قند نحوی برای "echo expr".

چگونه
<%# نظر %>

بلوک نظرات هر چیزی در بلوک نظرات تجزیه نمی شود. نظرات می توانند تو در تو باشند
و می تواند حاوی سایر عناصر هاسرل باشد.

مثال ها


هشدار
مثال های زیر برای نشان دادن نحوه استفاده ساده شده اند هاسرل. تو باید باشی
قبل از استفاده با امنیت اولیه برنامه نویسی وب آشنا باشید هاسرل (یا هر اسکریپت
زبان) در یک محیط تولید.

ساده فرمان
#!/usr/local/bin/haserl
نوع محتوا: متن/ساده

<%# این نمونه اسکریپت "env" %> است
<% env %>

نتایج را چاپ می کند env دستور به عنوان یک سند "متن/ساده" از نوع mime. این هست
la هاسرل نسخه مشترک printenv cgi.

حلقه با پویا تولید
#!/usr/local/bin/haserl
نوع محتوا: متن/html




<% برای a در قرمز آبی زرد فیروزه ای. انجام %>
"><% echo -n "$a" %>
<% انجام شد %>




یک سند از نوع mime "text/html" را با یک جدول html با با
عناصر برچسب گذاری شده با رنگ پس زمینه

استفاده کنید صدف مشخص توابع.
#!/usr/local/bin/haserl
نوع محتوا: متن/html

<% # یک تابع کاربر را تعریف می کند
() table_element {
پژواک" 1 دلار "
}
%>



<% برای a در قرمز آبی زرد فیروزه ای. انجام %>
<% table_element $a %>
<% انجام شد %>




مانند بالا، اما از یک تابع پوسته به جای html تعبیه شده استفاده می کند.

خود ارجاع CGI با a فرم
#!/usr/local/bin/haserl
نوع محتوا: متن/html


نمونه فرم
" method="GET" style=";text-align:right;direction:rtl">
<% # اعتبار سنجی اولیه FORM_textfield را انجام دهید
# برای جلوگیری از حملات رایج وب
FORM_textfield=$( echo "$FORM_textfield" | sed "s/[^A-Za-z0-9 ]//g" )
%>
<نوع ورودی=نام متن=فیلد متن
Value="<% echo -n "$FORM_textfield" | tr az AZ %>" cols=20>




یک فرم را چاپ می کند. اگر مشتری متنی را در فرم وارد کند، CGI دوباره بارگذاری می شود (تعریف شده است
by $SCRIPT_NAME) و متن فیلد برای جلوگیری از حملات وب پاکسازی می شود، سپس
فرم با متنی که کاربر وارد کرده است دوباره نمایش داده می شود. متن با حروف بزرگ است.

آپلود a پرونده
#!/usr/local/bin/haserl --upload-limit=4096 --upload-dir=دایرکتوری / tmp
نوع محتوا: متن/html


" method=POST enctype="multipart/form-data" style=";text-align:right;direction:rtl">



<% if test -n "$HASERL_uploadfile_path"; سپس %>

شما یک فایل با نام <% echo -n $FORM_uploadfile_name %> آپلود کردید ، و
. به طور موقت در سرور به عنوان . در
فایل <% cat $HASERL_uploadfile_path بود | wc -c %> بایت طول دارد.
<% rm -f $HASERL_uploadfile_path %> نگران نباشید، فایل به تازگی حذف شده است
از وب سرور
<% دیگر %>
شما هنوز فایلی را آپلود نکرده اید.
<% fi %>



فرمی را نمایش می دهد که امکان آپلود فایل را فراهم می کند. این امر با استفاده از
--upload-limit و با تنظیم فرم تایپ کردن به چند بخشی/فرم-داده. اگر
کلاینت فایلی را ارسال می کند، سپس برخی از اطلاعات مربوط به فایل چاپ می شود و سپس
حذف شده. در غیر این صورت، فرم بیان می کند که مشتری فایلی را آپلود نکرده است.

RFC-2616 سازگاری
#!/usr/local/bin/haserl
<% echo -en "content-type: text/html\r\n\r\n" %>

...


برای مطابقت کامل با مشخصات HTTP، هدرها باید با استفاده از آن خاتمه داده شوند
CR+LF، به جای پایان خط معمولی یونیکس LF. نحو بالا می تواند
برای تولید هدرهای مطابق با RFC 2616 استفاده شود.

محیط زیست


علاوه بر متغیرهای محیطی که از وب سرور به ارث رسیده اند، موارد زیر نیز وجود دارد
متغیرهای محیطی همیشه هنگام راه اندازی تعریف می شوند:

هاسرلور
هاسرل نسخه - یک برچسب اطلاعاتی.

شناسه جلسه
یک تگ هگزادسیمال که برای طول عمر CGI منحصر به فرد است (زمانی ایجاد می شود که
cgi شروع می شود. و تا زمانی که پرس و جوی POST یا GET دیگری ایجاد نشود تغییر نمی کند.)

HASERL_ACCEPT_ALL
اگر --پذیرفتن تمامی موارد پرچم تعیین شد، -1در غیر این صورت 0.

HASERL_SHELL
نام پوسته haserl شروع به اجرای دستورات زیر پوسته در آن کرد.

HASERL_UPLOAD_DIR
دایرکتوری haserl برای ذخیره فایل های آپلود شده استفاده می کند.

HASERL_UPLOAD_LIMIT
تعداد کیلوبایتی که مجاز به ارسال از مشتری به سرور هستند.

این متغیرها را می‌توان در اسکریپت تغییر داد یا بازنویسی کرد، اگرچه آن‌ها
شروع با "HASERL_" فقط اطلاعاتی است و روی اسکریپت در حال اجرا تاثیری ندارد.

ایمنی ویژگی‌ها


ادبیات زیادی در مورد خطرات استفاده از پوسته برای برنامه نویسی اسکریپت های CGI وجود دارد.
هاسرل شامل برخی از حفاظت برای کاهش این خطر.

محیط متغیر
کد پر کردن متغیرهای محیطی خارج از محدوده زیر است.
پوسته. بر روی شخصیت ها تجزیه می شود؟ و &، بنابراین انجام آن برای مشتری سخت تر است
حملات "تزریق" به عنوان مثال، foo.cgi?a=test;cat / etc / passwd می تواند منجر شود
متغیری که مقدار را به آن اختصاص می دهد آزمون و سپس نتایج دویدن گربه
/ etc / passwd برای مشتری ارسال می شود. هاسرل متغیر را به طور کامل اختصاص می دهد
مقدار: تست؛ گربه / etc / passwd

استفاده از این متغیر «خطرناک» در اسکریپت‌های پوسته با قرار دادن آن در آن بی‌خطر است
نقل قول ها اگرچه اعتبارسنجی باید در تمام فیلدهای ورودی انجام شود.

امتیاز رها کردن
اگر به عنوان یک اسکریپت suid نصب شود، هاسرل uid/gid خود را به مالک آن تنظیم می کند
فیلمنامه از این می توان برای داشتن مجموعه ای از اسکریپت های CGI که ​​دارای تنوع هستند استفاده کرد
امتیاز اگر هاسرل باینری suid نصب نمی شود، سپس اسکریپت های CGI نصب خواهند شد
با uid/gid سرور وب اجرا شود.

رد کنید فرمان خط پارامترهای داده on la URL
اگر URL حاوی یک "="" رمزگذاری نشده نباشد، مشخصات CGI گزینه ها را بیان می کند
به عنوان پارامترهای خط فرمان برای برنامه استفاده می شود. به عنوان مثال، با توجه به
به مشخصات CGI: http://192.168.0.1/test.cgi?--upload-limit%3d2000&foo%3dbar
علاوه بر تنظیم "Foo=bar" باید محدودیت آپلود را روی 2000 کیلوبایت تنظیم کنید. برای محافظت
در برابر مشتریانی که آپلودهای خود را فعال می کنند، هاسرل گزینه های خط فرمان را رد می کند
فراتر از argv[2]. اگر به صورت # فراخوانی شود! اسکریپت، مفسر argv[0]، همه است
گزینه های خط فرمان فهرست شده در #! خط به argv[1] ترکیب می شوند و the
نام اسکریپت argv[2] است.

LUA


اگر با پشتیبانی lua کامپایل شده باشد، --shell=lua به جای آن lua را به عنوان زبان اسکریپت فعال می کند
از پوسته بش. متغیرهای محیطی (SCRIPT_NAME، SERVER_NAME، و غیره) در آن قرار می گیرند
جدول ENV و متغیرهای فرم در جدول FORM قرار می گیرند. به عنوان مثال
فرم خود ارجاع فوق را می توان به صورت زیر نوشت:

#!/usr/local/bin/haserl --shell=lua
نوع محتوا: متن/html


نمونه فرم
"متد="GET">
<% # اعتبار سنجی اولیه FORM_textfield را انجام دهید
# برای جلوگیری از حملات رایج وب
FORM.textfield=string.gsub(FORM.textfield، "[^%a%d]"، "")
%>
<نوع ورودی=نام متن=فیلد متن
Value="<% io.write (string.upper(FORM.textfield)) %>" cols=20>




عملگر <%= قند نحوی برای است io.نوشتن (توسترینگ( ... )) بنابراین، برای مثال،
مقدار = خط بالا می تواند نوشته شود: ارزش=<%= string.upper(FORM.textfield) %>" cols=20>

اسکریپت های haserl lua می توانند از این تابع استفاده کنند haserl.loadfile(نام فایل) برای پردازش یک هدف
اسکریپت به عنوان یک خط haserl (lua). تابع یک نوع "تابع" را برمی گرداند.

به عنوان مثال،

bar.lsp
<% io.write ("Hello World" ) %>

پیام شما <%= gvar %> است

-- انتهای فایل شامل --

foo.haserl
#!/usr/local/bin/haserl --shell=lua
<% m = haserl.loadfile("bar.lsp")
gvar = "اجرا به عنوان m()"
متر ()

gvar = "بارگیری و اجرا در یک مرحله"
haserl.loadfile("bar.lsp")()
%>

محل دویدن و پیاده روی فو تولید خواهد کرد:

سلام جهان
پیام شما به صورت m() اجرا شود
-- انتهای فایل شامل --
سلام جهان
پیام شما Load و اجرا در یک مرحله است
-- انتهای فایل شامل --

این تابع این امکان را فراهم می کند که صفحات سرور haserl تودرتو - قطعات صفحه را داشته باشید
که توسط توکنایزر haserl پردازش می شوند.

LUAC


La لوک "شل" یک قطعه lua از پیش کامپایل شده است، بنابراین ویرایش تعاملی و تست اسکریپت ها
ممکن نیست. با این حال، haserl را می توان تنها با پشتیبانی luac کامپایل کرد، و این اجازه می دهد
پشتیبانی lua حتی در یک محیط حافظه کوچک. تمام ویژگی های haserl lua ذکر شده در بالا هستند
هنوز موجود است (اگر luac تنها پوسته ای است که در haserl ساخته شده است، haserl.loadfile است
غیرفعال است، زیرا تجزیه کننده haserl در آن کامپایل نشده است.)

در اینجا نمونه ای از یک اسکریپت بی اهمیت است که به یک اسکریپت luac cgi تبدیل شده است:

با توجه به فایل test.lua:
چاپ ("نوع محتوا: متن/ساده0)
چاپ ("UUID شما برای این اجرا: " .. ENV.SESSIONID)

می توان آن را با luac کامپایل کرد:
luac -o test.luac -s test.lua

و سپس هدر haserl به آن اضافه شد:
echo '#!/usr/bin/haserl --shell=luac' | گربه - test.luac >luac.cgi

از طرف دیگر، امکان توسعه یک وب سایت کامل با استفاده از پوسته استاندارد lua وجود دارد.
و سپس از خود haserl بخواهید اسکریپت های کامپایلر luac را به عنوان بخشی از a پیش پردازش کند
فرآیند ساخت برای این کار از --shell=lua استفاده کنید و وب سایت را توسعه دهید. وقتی آماده ساختن
محیط زمان اجرا، خط --debug را به اسکریپت های lua خود اضافه کنید و خروجی آنها را اجرا کنید
نتایج به فایل های منبع .lua. مثلا:

با توجه به اسکریپت haserl test.cgi:
#!/usr/bin/haserl --shell=lua --debug
نوع محتوا: متن/ساده

UUID شما برای این اجرا <%= ENV.SESSIONID %> است

هدر haserl luac را از پیش کامپایل، کامپایل و اضافه کنید:
./test.cgi > test.lua
luac -s -o test.luac test.lua
echo '#!/usr/bin/haserl --shell=luac' | گربه - test.luac >luac.cgi

از haserl به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

  • 1
    فازر
    فازر
    Phaser یک باز سریع، رایگان و سرگرم کننده است
    منبع چارچوب بازی HTML5 که ارائه می دهد
    WebGL و Canvas Rendering در سراسر
    مرورگرهای وب دسکتاپ و موبایل بازی ها
    می تواند با ...
    دانلود فازر
  • 2
    موتور VASSAL
    موتور VASSAL
    VASSAL یک موتور بازی برای ایجاد است
    نسخه های الکترونیکی تخته سنتی
    و بازی های کارتی پشتیبانی می کند
    رندر و تعامل قطعه بازی،
    و ...
    دانلود VASSAL Engine
  • 3
    OpenPDF - Fork of iText
    OpenPDF - Fork of iText
    OpenPDF یک کتابخانه جاوا برای ایجاد است
    و ویرایش فایل های PDF با LGPL و
    مجوز منبع باز MPL. OpenPDF است
    LGPL/MPL جانشین منبع باز iText،
    و ...
    OpenPDF - Fork of iText را دانلود کنید
  • 4
    GIS SAGA
    GIS SAGA
    SAGA - سیستم برای خودکار
    تجزیه و تحلیل جغرافیایی - یک جغرافیا است
    نرم افزار سیستم اطلاعات (GIS) با
    قابلیت های بسیار زیاد برای داده های جغرافیایی
    پردازش و آنا...
    دانلود SAGA GIS
  • 5
    جعبه ابزار برای جاوا/JTOpen
    جعبه ابزار برای جاوا/JTOpen
    جعبه ابزار IBM برای جاوا / JTOpen یک است
    کتابخانه کلاس های جاوا که از
    کلاینت/سرور و برنامه نویسی اینترنتی
    مدل های سیستمی که دارای OS/400 است،
    i5/OS، o...
    جعبه ابزار را برای جاوا/JTOpen دانلود کنید
  • 6
    D3.js
    D3.js
    D3.js (یا D3 برای اسناد داده محور)
    یک کتابخانه جاوا اسکریپت است که به شما اجازه می دهد
    برای تولید داده های پویا و تعاملی
    تجسم در مرورگرهای وب با D3
    شما...
    D3.js را دانلود کنید
  • بیشتر "

دستورات لینوکس

Ad