آموزش نصب PHP روی Windows Server
در این مقاله میخوانید
همانطور که احتمالا میدانید، PHP زبان برنامه نویسی ساده، محبوب و انعطافپذیر است که هزاران سایت و اپلیکیشن با آن ساخته شدهاند. نصب PHP روی Windows Server در نگاه اول شاید کاری پیچیده بهنظر برسد، اما واقعیت این است که با رعایت چند نکته مهم و انجام صحیح تنظیمات، به راحتی میتوان محیطی پایدار و مناسب برای اجرای برنامههای PHP ساخت. در این مطلب از بخش آموزش سرور در بلاگ پارسپک، روش نصب و پیکربندی PHP روی Windows Server، تنظیمات رایج در IIS، مشکلات معمول پس از نصب و راهکارهای بهینهسازی آن را توضیح میدهیم پس با ما همراه شوید.
PHP چیست؟
PHP یا همان Hypertext Preprocessor، یک زبان برنامهنویسی که بهطور ویژه برای توسعه وب طراحی شده است. این زبان به توسعهدهندگان این امکان را میدهد که وبسایتها و اپلیکیشنهای داینامیک ایجاد کنند. PHP بهطور گستردهای در سیستمهای مدیریت محتوا مانند وردپرس استفاده میشود و امکان ایجاد صفحات وب پیچیده با منطق و تعاملات پیشرفته را فراهم میکند. این زبان به دلیل سادگی در یادگیری و قابلیت انعطافپذیری بالا، هم برای مبتدیان و هم برای برنامهنویسان حرفهای مناسب است و به راحتی میتوان آن را با دیگر فناوریهای وب ترکیب کرد.
دلیل استفاده از PHP در ویندوز سرور
اجرای PHP روی ویندوز سرور به سازمانهایی که زیرساخت مایکروسافتی دارند اجازه میدهد از همان محیط و ابزارهای مدیریتی (مثل IIS و PowerShell) استفاده کنند، از قابلیتهای Active Directory و ابزارهای مانیتورینگ ویندوز بهرهمند شوند و بدون نیاز به لینوکس، اپلیکیشنهای PHP را در شبکه داخلی و اینترنت میزبانی کنند. همچنین امکان یکپارچگی با سرویسهای مایکروسافت و استفاده از امکانات امنیتی سازمانی یکی دیگر از دلایل اصلی است.
برای کسب اطلاعات بیشتر میتوانید مقاله زیر را بخوانید:
پیشنیازهای نصب PHP روی ویندوز سرور
برای نصب PHP روی ویندوز سرور، به پیشنیازهای زیر نیاز دارید:
- نصب ویندوز سرور
ابتدا نیاز دارید که ویندوز سرور بر روی سیستم شما نصب شده باشد.
- انتخاب وب سرور (IIS یا Apache)
برای استفاده از PHP، به یک وب سرور نیاز دارید. میتوانید از IIS که بهطور پیشفرض در ویندوز سرور نصب میشود، استفاده کنید. همچنین میتوانید Apache را نصب کنید که انتخاب رایجتری برای توسعهدهندگان PHP است.
- دانلود و نصب PHP
نسخه مناسب PHP را از سایت رسمی PHP دانلود کنید.
نکته:
برای وب سرور IIS نسخه «Thread Safe» و برای Apache نسخه «Non-Thread Safe» پیشنهاد میشود.
- پیکربندی PHP در وب سرور
اگر از IIS استفاده میکنید، باید PHP را از طریق PHP Manager for IIS به IIS اضافه کنید.
در صورتی که از Apache استفاده میکنید، باید فایل تنظیمات آن را ویرایش کرده و مسیر PHP را در آن تعریف کنید.
- نصب پایگاه داده (اختیاری)
اگر پروژه شما نیاز به پایگاه داده دارد، میتوانید MySQL یا MariaDB را نصب کنید.
- اضافه کردن PHP به متغیرهای محیطی (PATH)
برای دسترسی آسان به PHP از هر پوشهای در سیستم، باید مسیر نصب PHP را تعریف کنید.
سرور پرسرعت پارسپک
برای خرید سرور، شرکت پارسپک انتخابی بینظیر است. با پشتیبانی شبانهروزی و تضمین امنیت و عملکرد عالی، با خیال راحت میتوانید از این سرویسها استفاده کنید. برای مشاهده قیمت و تعرفهها روی لینک زیر کلیک نمایید:
نصب PHP روی ویندوز سرور به روش دستی
مراحل نصب دستی به صورت گامبهگام در ادامه آورده شده است:
۱. دانلود PHP
از سایت رسمی windows.php.net نسخه مناسب را دانلود کنید. توجه کنید معماری (x86/x64) با ویندوز و نیازهای اپلیکیشن مطابقت داشته باشد.

۲. نصب Visual C++ Redistributable
بسته مناسب VC++ را از مایکروسافت نصب کنید (نسخهای که برای بیلد PHP لازم است). برای مثال، ممکن است برای نصب php 8.4 به نسخه 17 نیاز باشد. با جستوجوی عنوان و نسخه، در لینک رسمی مایکروسافت، آن را دانلود و نصب کنید.

۳. استخراج فایلها
فایل ZIP دانلود شده PHP را در C:\PHP استخراج کنید.

۴. ایجاد php.ini
از فایلهای نمونه php.ini-production یا php.ini-development یکی را کپی کرده و به php.ini تغییر نام دهید.

سپس میتوانید پارامترهای پایه را ویرایش کنید:
- extension_dir = ext
- فعالسازی افزونههای مورد نیاز مانند extension=mysqli, extension=pdo_mysql, extension=gd و غیره (با حذف ; از ابتدای خط).
- تنظیم date.timezone = Asia/Tehran یا منطقه مناسب.
۵. افزودن به PATH
مسیر C:\PHP را به متغیر محیطی PATH اضافه کنید (System Properties > Advanced > Environment Variables) تا php.exe از خط فرمان قابل دسترسی باشد.

۶. پیکربندی IIS برای FastCGI
در Server Manager یا IIS Manager:
- بخش Roles & Features: مطمئن شوید CGI فعال است.
- در IIS Manager > FastCGI Settings > Add Application: مسیر C:\PHP\php-cgi.exe را اضافه کنید.

Handler Mappings: *.php را به ماژول FastCGI map کنید (Add Module Mapping):
- Request path: *.php
- Module: FastCgiModule
- Executable: C:\PHP\php-cgi.exe
- Name: PHPFastCGI

۷. تنظیمات دسترسی و مجوزها
مجوز خواندن برای حسابی که IIS از آن استفاده میکند (IIS_IUSRS) بر روی پوشه PHP و وبسایت تنظیم شود.

۸. راهاندازی مجدد IIS
در PowerShell یا iisreset با دستور CMD میتوانید IIS را مجددا راهاندازی کنید.
۹. بررسی صحت نصب php
فایل info.php را در دایرکتوری سایت قرار داده و مرورگر را باز کنید تا خروجی phpinfo نمایش داده شود.

نکات تکمیلی:
برای مدیریت چند نسخه PHP میتوانید پوشههای جداگانه (مثلاً C:\PHP\7.4\, C:\PHP\8.1\) داشته باشید و چند FastCGI application تعریف کنید و برای هر سایت handler mapping جدا تنظیم کنید.
از PHP Manager for IIS (در دسترس) میتوان برای سوییچ نسخهها و تنظیمات استفاده کرد، اما نسخههای جدیدتر ممکن است این افزونه را نداشته باشند.
نصب PHP با Web Platform Installer
Web Platform Installer یا به اختصار Web PI یک ابزار رسمی مایکروسافت بود. اما متاسفانه این ابزار از ۳۱ دسامبر ۲۰۲۲ توسط مایکروسافت بازنشسته شده است و دیگر بهروزرسانی یا پشتیبانی نمیشود. بنابراین در صورتیکه WebPI در دسترس نباشد، بهتر است از روش نصب دستی یا نصب از طریق IIS Extensions و PowerShell استفاده کنید. جزئیات بیشتر در وبسایت رسمی IIS منتشر شده است: اعلام پایان پشتیبانی WebPI.
مشکلات رایج پس از نصب PHP
در هنگام راهاندازی و نصب PHP روی سرور ویندوز، ممکن است با مشکلات مختلفی مواجه شوید که عملکرد صحیح وبسایت یا اپلیکیشن شما را تحت تأثیر قرار دهند. در ادامه به برخی از رایجترین مشکلات پس از نصب PHP و راهکارهای پیشنهادی برای رفع آنها اشاره میکنیم:
صفحه خالی یا خطای HTTP 500
علت این ارور آن است که خطاهای PHP نمایش داده نمیشود یا display_errors خاموش است. در نتیجه باید به بررسی php_error.log و فعالسازی لاگها بپردازید.
خطای 502 Bad Gateway یا FastCGI Error
دلیل اصلی بهوجود آمدن آن، استفاده از نسخه نادرست معماری 32 یا 64 بیتی یا پیکربندی نادرست FastCGI است. در این شرایط بررسی مسیر php-cgi.exe و نصب Visual C++ ضروری است.
کار نکردن افزونهها
اگر میبینید که مثلا افزونههای mysqli یا pdo_mysql کار نمیکنند، احتمالا افزونهها فعال نشدهاند یا extension_dir نادرست است. برای رفع آن هم باید مسیر ext را در php.ini تنظیم کنید و مطمئن شوید فایلهای DLL مربوطه در پوشه ext وجود دارند.
خطای دسترسی
در صورت بروز خطای Permission denied به حساب IIS مراجعه کرده و به آن مجوزهای خواندن و اجرا را بدهید.
زمان اجرای اسکریپتها طولانی
به این خطا Timeouts هم گفته میشود. علت آن تنظیمات نادرست FastCGI یا IIS timeout است. برای برطرف کردن آن در تنظیمات FastCGI مقدار Activity Timeout و Request Timeout را افزایش دهید یا اپلیکیشن را آپدیت کنید.
خطای Missing Visual C++ Runtime
در صورت بروز این خطا، نیاز به نصب VC++ Redistributable دارید.
بهینهسازی عملکرد PHP در ویندوز سرور
برای دستیابی به عملکرد بهتر و بهرهوری بیشتر از PHP در محیط ویندوز سرور، رعایت مجموعهای از تنظیمات و راهکارهای بهینهسازی ضروری است. این اقدامات نهتنها سرعت اجرای اسکریپتها را افزایش میدهند، بلکه پایداری و مقیاسپذیری سرویس شما را نیز تضمین میکنند. در ادامه مهمترین توصیهها و تنظیمات جهت بهینهسازی عملکرد PHP در ویندوز سرور آورده شده است:
۱. فعالسازی OPcache
ابتدا در php.ini این تنظیمات را انجام دهید:
- opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
OPcache کامپایلهای تکراری را در حافظه نگه میدارد و سرعت اجرای اسکریپتها را بهطور چشمگیری افزایش میدهد.
۲. تنظیم FastCGI
در تنظیمات FastCGI برای هر application pool باید سه مرحله زیر را انجام دهید:
- Instance MaxRequests را مناسب قرار دهید (مثلا 5000).
- MaxInstances را بر اساس CPU و حافظه تعیین کنید.
- ActivityTimeout و RequestTimeout را متناسب با بار افزایش دهید.
۳. غیرفعال کردن Xdebug در محیط پروداکشن
Xdebug برای توسعه مفید است اما در پروداکشن باید غیرفعال شود تا بار اجرا کاهش یابد.
۴. استفاده از کشینگ سطح وب IIS و CDN
صفحات یا پاسخهای ثابت را کش کنید تا بار PHP کاهش یابد.
۵. تنظیمات PHP memory_limit و realpath_cache_size
- افزایش realpath_cache_size
- تنظیم memory_limit مناسب برای اپلیکیشنهای بزرگ
۶. مانیتورینگ و لاگینگ
از لاگها و ابزارهای مانیتورینگ ویندوز برای شناسایی نقاط گلوگاه، یعنی بخشهایی از سیستم که باعث کندی یا افت کارایی کل فرایند میشوند، استفاده کنید.
جمعبندی
برای نصب PHP روی ویندوز سرور، شما میتوانید اپلیکیشنهای PHP را در یک محیط مایکروسافتی اجرا کنید. برای این کار، ابتدا باید پیشنیازهایی مثل IIS با CGI و VC++ Redistributable را نصب کنید. سپس میتوانید از روش نصب Web PI استفاده کنید، یا اگر این ابزار در دسترس نیست، نصب دستی PHP را انجام دهید. در این مقاله همه این مراحل را برایتان شرح دادهایم.
سوالات متداول
۱. چگونه بین نسخههای مختلف PHP سوئیچ کنم؟
هر نسخه PHP را در پوشه جدا نصب کنید (مثلاً C:\PHP\8.1\, C:\PHP\7.4\) و در IIS برای هر سایت یا Application Pool یک FastCGI Application جدید بسازید که به php-cgi.exe آن نسخه اشاره کند؛ سپس در Handler Mappings آن سایت mapping را به همین FastCGI تنظیم کنید.
۲. خطای 502 بعد از نصب چرا ظاهر میشود و چگونه رفعش کنم؟
معمولا بهخاطر mismatch بین x86/x64 یا نبودن Visual C++ Redistributable است. بررسی کنید php-cgi.exe قابل اجرا باشد، معماریها سازگار باشند و VC++ مناسب نصب شده باشد. همچنین لاگهای FastCGI و Event Viewer را برای جزئیات خطا چک کنید.
۳. بهترین روش برای بهبود سرعت اپلیکیشن PHP روی IIS چیست؟
فعالسازی OPcache، پیکربندی معقول FastCGI maxInstances، timeouts، غیرفعالکردن ماژولهای توسعهای مثل Xdebug در تولید، استفاده از caching سطح وب (IIS Output Cache) و CDN، و نظارت مستمر روی لاگها و منابع سیستم. این ترکیب معمولاً بیشترین تاثیر را در بهبود کارایی دارد.