FCGIWRAP(8) System Manager's Manual FCGIWRAP(8)

fcgiwrap - اجرای برنامه‌های CGI بر بستر FastCGI

fcgiwrap [OPTIONS]

fcgiwrap یک سرور ساده برای اجرای برنامه‌های CGI بر بستر FastCGI است. این برنامه با هدف ارائه پشتیبانی تر و تمیز از CGI برای Nginx (و سایر سرورهای وبی که ممکن است به آن نیاز داشته باشند) توسعه یافته است.

تعداد فرآیندهای fcgiwrap که باید از پیش ایجاد (prefork) شوند.
تغییر مسیر خروجی خطای استاندارد (STDERR) از CGI اجرا شده از طریق FastCGI تا در گزارش خطاهای (error log) وب‌سرور نمایش داده شود. در غیر این صورت، این خروجی روی STDERR خودِ fcgiwrap برگردانده می‌شود که می‌توان مسیر آن را تغییر داد. در صورت اجرا از طریق spawn-fcgi، خروجی STDERR مربوط به fcgiwrap به /dev/null ارسال می‌شود؛ بنابراین این گزینه راهکاری برای بازگرداندن و دریافت آن خروجی فراهم می‌کند.
یک آدرس URL برای سوکت شنود (listen socket) جهت اتصال (bind). به‌طور پیش‌فرض، fcgiwrap انتظار دارد که سوکت شنود بر روی توصیف‌کننده فایل ۰ (file descriptor 0) ارسال شود که مطابق با استاندارد FastCGI است. روش توصیه‌شده برای استقرار fcgiwrap، اجرای آن تحت یک مدیر فرآیند (process manager) است که وظیفه باز کردن سوکت را بر عهده می‌گیرد. با این حال، برای پیکربندی‌های ساده و آزمایش‌های موردی می‌توان از این گزینه استفاده کرد. مقادیر معتبر برای socket_url شامل unix:/path/to/unix/socket، tcp:dot.ted.qu.ad:port و tcp6:[ipv6_addr]:port است.
نمایش پیام راهنما و خروج.

هنگام اجرا، fcgiwrap این متغیرهای محیطی را که توسط وب‌سرورِ فراخواننده fcgi-script تنظیم شده‌اند، ارزیابی می‌کند. متغیرهای DOCUMENT_ROOT و SCRIPT_NAME به یکدیگر الحاق می‌شوند و فایل اجرایی حاصل به‌عنوان اسکریپت CGI در قالب FastCGI اجرا می‌شود؛ همچنین باقی‌مانده مسیر پس از نام اسکریپت در قالب PATH_INFO در دسترس خواهد بود. برای غیرفعال کردن دستکاری PATH_INFO، وب‌سرور خود را طوری پیکربندی کنید که SCRIPT_FILENAME را ارسال کند که باید حاوی مسیر کامل به اسکریپت باشد. در این صورت PATH_INFO تغییر نخواهد کرد.

DOCUMENT_ROOT

دایرکتوری‌ای که اسکریپت در آن قرار دارد
SCRIPT_NAME
فایل اجرایی واقعی
SCRIPT_FILENAME
مسیر کامل به اسکریپت CGI. در صورت تنظیم، اولویت بیشتری نسبت به DOCUMENT_ROOT و SCRIPT_NAME دارد

سریع‌ترین راه برای مشاهده عملکرد fcgiwrap، اجرای آن در خط فرمان به شکل زیر است:
fcgiwrap -s unix:/var/run/fcgiwrap.sock
صرف‌نظر از مشکلات احتمالی دسترسی‌ها و غیره، برنامه باید آماده پذیرش درخواست‌های FastCGI و اجرای اسکریپت‌های CGI باشد.

به احتمال زیاد مایل خواهید بود fcgiwrap را توسط spawn-fcgi با استفاده از پیکربندی‌ای مانند زیر راه‌اندازی کنید:

FCGI_SOCKET=/var/run/fcgiwrap.sock
FCGI_PROGRAM=/usr/sbin/fcgiwrap
FCGI_USER=nginx
FCGI_GROUP=www
FCGI_EXTRA_OPTIONS="-M 0700";
ALLOWED_ENV="PATH"

Nginx را می‌توان برای اجرای اسکریپت دلخواه CGI مانند cgit به‌صورت FastCGI به شیوه زیر پیکربندی کرد:

location / {
fastcgi_param DOCUMENT_ROOT /var/www/localhost/htdocs/cgit/;
fastcgi_param SCRIPT_NAME cgit;
fastcgi_pass unix:/var/run/fastcgi.sock;
}

برنامه fcgiwrap توسط Grzegorz Nosek <root@localdomain.pl> با مشارکت W-Mark Kubacki <wmark@hurrikane.de> نوشته شده است.

این صفحه راهنما توسط Jordi Mallach <jordi@debian.org> (با مشارکت Grzegorz Nosek) برای پروژه دبیان نوشته شده است (و ممکن است توسط دیگران نیز استفاده شود).

June 3, 2010