اجرای PHP در iis ویندوز

چاپ

بهترین راهکار برای اجرای PHP در IIS ویندوز

Wiki

تا قبل از آشنایی با امکانات IIS 7 به نظر می رسید که بهترین جا برای میزبانی یک وب سایت PHP فقط و فقط یک سرور Linux می تواند باشد، چون IIS 6 خیلی خوب PHP را اجرا نمی کند و خبری از URL rewriting هم در IIS 6 نیست، اما تغییر زاویه حرکت مایکروسافت در جهتِ گرفتن بیشتر سهم بازار باعث شده امکانات جالبی به IIS7 اضافه بشود و امروز می شود گفت ویندوز به خوبی لینوکس می تواند یک وب سایت PHP را میزبانی کند.

سه دلیل اصلی که ویندوز می تواند میزبان خوبی برای PHP باشد:

و حالا یک نکته مهم: تمام Performance خوبی که تا اینجا ازش صحبت شد در گرو خوب Config کردن IIS 7 برای اجرای PHP هست.

در گذشته 2 راه برای اجرای PHP در IIS وجود داشت، یعنی PHP را می شد در دو Mode مختلف روی IIS ویندوز اجرا کرد:

  1. CGI Application
  2. ISAPI Managed Handler

اما هر کدام از این دو راه حل، خوبی ها و مشکلات فراوانی را به همراه داشت.


ورود Fast CGI و پایان مشکلات

Wiki

مشکلات PHP در CGI و ISAPI موجب به وجود آمدن Fast CGI شد. از اسمش هم معلومه که با چه هدفی ایجاد شده. هدف Fast CGI کنار هم آوردن سرعت ISAPI و کارایی CGI هست. در واقع روش کار Fast CGI مثل روش کار CGI هست. اما با تفاوتی کوچک اما کلیدی که سرعت بالایی بهش میده.

Fast CGI برای انجام هر پردازشی یک Process جدید ایجاد نمی کنه. بلکه یک Process بعد از ایجاد باز می مونه و تعدادی پردازش رو انجام میده و بعد بسته میشه. همین تغییر کوچک موجب پایین اومدن باور نکردنی مصرف منابع سیستم توسط PHP میشه.

با این حال Config کردن Fast CGI کمی سخت تر از CGI و ISAPI هست. اما بعد از اون مثل بنز کار می کنه.

خوب پس بهترین راه کار برای اجرای PHP در IIS مشخص شد:

1. قبل از همه مطمئن شوید كه CGI روی IISتون نصب هست، این رو می‌تونید از اینجا چك كنید:

Control Panel -> Programs and Features -> Turn Windows features on or off

2. نسخه غیرنصبی PHP رو دانلود كنید و در مسیر دلخواه (مثلاً C:\PHP) كپی كنید.

3. فایل php.ini-recommended رو به php.ini تغییر نام بدید و این تغییرات رو در اون ایجاد كنید:

حالا این فایل رو Save كنید و برای تست صحت نصب در اعلان داس (Command Prompt) دستور C:\PHP>php –info رو اجرا كنید، اگه اطلاعاتی رو در مورد php نشون داد، یعنی كار تا اینجا خوب پیش رفته.

4. نوبت به تنظیمات در IIS می‌رسه. ابتدا IIS Manager رو اجرا كنید. سرور اصلی رو از لیست Connections سمت چپ انتخاب كنید و از قسمت میانی گزینه Handler Mapping رو دوبار كلیك كنید. این هم عكس:

از ستون سمت راست گزینه Add Module Mapping رو انتخاب كنید و اون رو مثل عكس زیر پر كنید و OK كه یه پنجره دیگه بعدش باز می‌شه اون رو هم Yes كنید:

6. كار تمومه اما برای تست تو پوشه c:\inetpub\wwwroot یه فایل به نام phpinfo.php بسازید با این محتوا:

<?php
echo 'Hello';
؟>

و آن را با این آدرس باز كنید: http://localhost/phpinfo.php


برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.