CGI، FastCGI چیست؟
بازگشت به سحر وب سایت جهانی وب سرور اول ارائه صفحات حاوی کد HTML قبل از نوشته شده است. این محتوا را نمیتوان تغییر داد، مگر اینکه برنامهنویس آن فایل html را اصلاح نکرده باشد. محتویات وب مورد استفاده قرار گرفتند و کدهای صفحه وب موجود از سرور وب به مرورگر منتقل شدند.
اما با استفاده از تکنولوژی CGI، وب سرور با یک فایل HTML موجود پاسخ نمی دهد، اما یک برنامه را اجرا می کند که در آن داده های درخواست HTTP را انتقال می دهد. پس از آن برنامه سپس آرگومان ها را پذیرفته و پردازش می کند، زیرا اطلاعات خروجی را به سرور وب باز می گرداند. فقط پس از آن، سرور در هنگام ارسال کد HTML تولید شده پاسخی را به درخواست پاسخ می دهد.
دایرکتوری cgi-bin
به طور معمول صفحات وب، فایل ها و تمام اسناد که از سرور وب به مرورگر منتقل می شوند در یک دایرکتوری عمومی خاص مانند home / user / public_html ذخیره می شوند. وقتی مرورگر محتوای خاصی را درخواست می کند، سرور این پوشه را چک می کند و فایل مورد نیاز را به مرورگر می فرستد.
اگر CGI بر روی سرور نصب شده باشد، پوشه خاص cgi-bin نیز وجود دارد، مثلا home / user / public_html / cgi-bin. اسکریپت CGI در این پوشه ذخیره می شود. هر فایل در دایرکتوری به عنوان یک برنامه اجرایی محسوب می شود. هنگام دسترسی به یک اسکریپت از دایرکتوری، سرور به جای ارسال محتوای فایل به مرورگر، درخواستی را برای برنامه ای که مسئول این اسکریپت است، ارسال می کند. پس از پردازش اطلاعات ورودی تکمیل شده، برنامه داده های خروجی را به سرور وب ارسال می کند که اطلاعات را به سرویس گیرنده HTTP منتقل می کند.
به عنوان مثال، زمانی که اسکریپت CGI http://mysitename.com/ cgi-bin / file.pl قابل دسترسی است، سرور برنامه Perl مناسب را از طریق CGI اجرا می کند. داده ها تولید شده از اجرای اسکریپت توسط برنامه به سرور وب ارسال می شود. از طرف دیگر سرور از داده ها به مرورگر انتقال می یابد. اگر سرور CGI نداشته باشد، مرورگر فایل خود را به صورت .pl نشان می دهد.
سرور می تواند پیکربندی شود تا نه تنها اسکریپت های CGI را در پوشه cgi-bin شناسایی کند، بلکه یک فرمت فایل خاص به عنوان یک اسکریپت CG نیز می باشد. به عنوان مثال، تمام فایل های با پسوند php می توانند به عنوان اسکریپت CGI رفتار شوند. در این مورد آنها نباید لزوما در دایرکتوری cgi-bin ذخیره شوند. در تنظیمات وب سرور شما می توانید نرم افزار مورد استفاده را انتخاب کنید زمانی که یک فایل با پسوند php در دسترس است.
FastCGI
FastCGI فناوری وب جدیدتر است، نسخهی بهبود یافته CGI همانطور که عملکرد اصلی باقی میماند.
نیاز به توسعه FastCGI این است که وب بوسیله توسعه سریع و پیچیدگی برنامه ها و نیز نقص های مقیاس پذیری در تکنولوژی CGI بوجود آمده است. برای رسیدن به این شرایط بازاریابی FastCGI را معرفی کرد – یک نسخه با کارایی بالا از تکنولوژی CGI با قابلیت های بیشتر.
ما برخی از تفاوت های بین دو تکنولوژی وب را مشخص کردیم تا جزئیات ویژگی های FastCGI را شرح دهیم.
PHP و Apache HTTP Server
دو روش معمول وجود دارد که در آن یک وب سرور آپاچی میتواند از PHP استفاده کند.
۱٫ با استفاده از CGI یا FastCGI ، سرور یک باینری اجرایی را اجرا می کند که مترجم پی اچ پی است. این یک فرایند جداگانه است که خارج از فرایند وب سرور انجام می شود.
پس از تغییرات در تنظیمات پی اچ پی (در فایل php.ini)، یک فرآیند پی اچ پی به تنهایی می تواند بدون آن که تحت تأثیر سرور وب قرار می گیرد، راه اندازی مجدد شود.
۲٫ با استفاده از PHP به عنوان یک ماژول در سرور آپاچی (mod_php) ، مترجم پی اچ پی در کد وب سرور است. فرآیند پی اچ پی بخشی از فرایند وب سرور است.
اگر تغییراتی در تنظیمات PHP وجود داشته باشد، سرور مجبور به راهاندازی مجدد شود تا بتواند اثر کند. دستورات PHP (php_flag، php_value …) را می توان در فایل .htaccess سرور قرار داد.