یکی از مشهورترین پلتفرم های وب PHP است. بیشتر برنامه نویسان کدهای PHP خود را در لینوکس و وب سرور Apache اجرا می کنند در حالیکه در این پست یاد می گیریم چطور آن را در ویندوز سرور 2008 و روی IIS7 اجرا کنیم.
پیکر بندی PHP
برای انیکه بتوانیم PHP را روی ویندوز اجرا کنیم، لازم است فایل های باینری PHP در کامپیوتر کپی شود، هیچ فرایند نصبی وجود ندارد. با چند تنظیم ساده این کار امکان پذیر است. اولین قدم دانلود PHP Windows Binaries است. برای IIS7 فایل non thread safe binaries باید دانلود شود.
فایل ‘php.ini-production’ را از فایلی که دانلود کردید کپی کنید و آنرا در Windows directory قرار دهید و در Windows directory اسم آن را به ‘php.ini’ تغییر دهید.
‘php.ini’ را با NotePad باز کرده و طبق توضیحات تنظیم کنید:
cgi.force_redirect را از حالت کامنت خارج کرده و مقدار آن را 0 قرار دهید. (cgi.force_redirect = 0)
fastcgi.impersonate را از حالت کامنت خارج کرده و مقدار آن را 0 قرار دهید. (fastcgi.impersonate = 1)
extension_dir را از حالت کامنت خارج کرده و به فولدر ‘ext’ که در فایل PHP قرار دارد، ست کنید (مثلاً ‘C:PHPext’)
date.timezone را به time Zone ویندوز سرور ست کنید . (مثلاً "date.timezone = "US/Central)
در این نقطه، ویندوز شما می تواند اسکریپت های PHP را توسط command line بوسیله ‘php.exe’ اجرا کند.
پیکر بندی IIS7 برای اجرای FastCGI
IIS7، فریم ورک FastCGI را در خود دارد. برای اطمیان از فعال بودن آن به مسیر Server Manager > Roles > Web Server بروید.
مطمئن شوید که “CGI” در قسمت “Application Development” نصب شده است. اگر فعال نیست آن را فعال کرده و IIS7 را به روز کنید.
وقتی پیکر بندی IIS به اتمام شد، IIS 7 Administration Pack را نصب کنید. اگر از نصب از نوع“Typical” استفاده می کنید مطمئن شوید که گزینه “FastCGI” را نیز انتخاب کرده باشید. این پکیج FastCGI را در داخل IIS Manager نصب می کند.
پیکر بندی IIS برای اجرای PHP بوسیله FastCGI
وقتی IIS7 با همه feature های مورد نیاز نصب شد، لازم است تا آن را برای اجرای PHP پیکر بندی کنیم. اول، FastCGI را از قسمت “FastCGI Settings” تنظیم می کنیم.
در FastCGI Settings لینک Add Application را کلیک کنید.
مسیر را به محل ‘php-cgi.exe’ که در فولدر دانلود شده قرار دارد، ست کنید. “InstanceMaxRequests” را به مقداری بیشتر از مقدار پیش فرض تغییر دهید (مثلاً 5000) و در قسمت “EnvironmentVariables” دکمه مقابل آن را کلیک کنید.
متغیری را به نام “PHP_MAX_REQUESTS” اضافه کنید و مقدار آن را با مقداری که به “InstanceMaxRequests” دادید، ست کنید.
همه تنظیمات را Apply کنید تا زمانی که به صفحه اصلی IIS Manager برگردید.
سپس، باید مپ کنیم (map) که اسکریپت های PHP قابل اجرا توسط IIS باشد که این تنظیمات در قسمت Handler Mappings” قرار دارد.
در Handler Mappings یک module mapping جدید ایجاد کنید.
request path آن را به فایل های PHP (*.php) و module را به “FastCgiModule” ست کنید و executable را به همان فایلی که در FastCGI settings ست شد، تنظیم کنید و اسمی را درName بنویسید (مانند PHP) و سپس OK کنید.
در ادامه نیز "Yes" را کلیک کتید.
همه تغییرات را Apply کنید. IIS را بسته و ریست کنید. مطمئن شوید که تغییرات جدید اعمال شده است.
وقتی این اعمال را انجام دادید، Microsoft hotfix (X86 یا X64) را می توانید دانلود کنید و با استفاده از آن ایرادهای احتمالی را در PHP یی که در IIS7 اجرا می شود، مشاهده کنید به عبارت دیگر این ابزار در وب سرور نصب می شود و به شما این قابلیت را می دهید تا از صحت عملکرد PHP بوسیله FastCGI مطمئن شوید.
تست PHP
در این مرحله سرور آماده استفاده است. فقط کافی است از نصب PHP در IIS مطمئن شویم. یک فایل متنی (text file) در دایرکتوری ‘C:Inetpubwwwroot’ به نام ‘phpinfo.php’ ایجاد کنید و دستور زیر را در آن بنویسید:
در نهایت آدرس‘http://localhost/phpinfo.php’ را در مرورگر خود بنویسید. اگر با صفحه ای مانند زیر مواجه شدید بعنی روند با موفقیت اجرا شده است و PHP در کامپیوتر شما در حال اجراست.