آموزش نصب php در ویندوز سرور

رامونا امیری ۱۸ دی ۱۳۹۹ ۰ دیدگاه

PHP همچنان گسترده‌ترین و محبوب‌ترین زبان برنامه نویسی وب سمت سرور است. این برنامه در اکثر سیستم‌های میزبانی وب نصب شده است، یادگیری آن ساده است و ارتباط نزدیکی با دیتابیس MySQL دارد و دارای مجموعه‌ی کاملی از کتابخانه‌ها جهت کاهش زمان توسعه اپلیکیشن است. PHP شاید یک زبان کاملی نباشد، اما مطمئناً می‌توان آن را یک گزینه بسیار مناسب برای وب اپلیکیشن در نظر گرفت. Yahoo و Facebook همچنان با موفقیت از آن استفاده می‌کنند. در این مقاله مراحل نصب php در ویندوز سرور را به‌طور کامل شرح می‌دهیم.

آموزش نصب php در ویندوز سرور

چرا باید نصب php به صورت لوکال انجام شود؟

نصب php در کامپیوتر خود به شما این امکان را می‌دهد بدون تاثیرگذاری بر داده‌های آنلاین یا وب سایت‌های فعال خود، با خیال راحت وب اپلیکیشن خود را توسعه دهید و سپس آن را تست کنید. در این مقاله به نصب php به‌عنوان یک ماژول در نسخه تحت ویندوز Apache 2.2 می‌پردازیم. کاربران Mac و Linux احتمالاً آن را از قبل به‌صورت نصب شده در اختیار دارند.

بسته های All-in-One

نحوه نصب php روی IIS

توزیع‌های بسیار متنوع و عالی پکیج‌های All-in-One تحت ویندوز وجود دارد که عمدتاً شامل Apache، PHP، MySQL و سایر برنامه‌ها است و به‌صورت یک فایل جامع قابل نصب هستند. به‌عنوان مثال می‌توان به XAMPP (که دارای یک نسخه برای سیستم عامل Mac نیز است)، WampServer و Web.Developer اشاره کرد. 

هیچ مشکلی جهت استفاده از این بسته‌ها وجود ندارد، اگرچه نصب Apache و PHP به‌صورت دستی به شما کمک می‌کند تا درباره سیستم و تنظیمات آن اطلاعات بیشتری کسب کنید.

PHP Installer

اگرچه یک فایل نصب از php.net در دسترس است، اما در صورتی که از قبل یک وب سرور فعال را تنظیم کرده اید، نصب دستی آن را توصیه می‌کنیم.

نصب PHP روی IIS

دلایل اجرای PHP در IIS

در بیشتر موارد برنامه‌های php در وب سرورهای Apache یا Nginx اجرا می‌شوند، اما دلایل معتبری برای انتخاب و ترجیح IIS به گزینه‌های دیگر وجود دارد:

نصب و کانفیگ php روی IIS
  • مهندسان شما تجربه بیشتری در زمینه کار با IIS دارند.
  • شما یک قرارداد پشتیبانی بسیار خوب با مایکروسافت دارید.
  • شما باید برنامه‌های تحت NET. یا ASP کلاسیک را هم در IIS اجرا کنید.
  • چنانچه شما در حال توسعه نرم‌افزارهای ویندوزی به صورت لوکال بر روی IIS هستید و همچنین به‌دنبال توسعه اپلیکیشن تحت PHP هستید، IIS برای شما مناسب است.
  • شما به دنبال ادغام و یکپارچه سازی با سایر سرویس‌های تحت ویندوز مانند Active Directory، Windows file shares یا Microsoft Exchange هستید.

IIS فقط بر روی ویندوز اجرا می‌شود، اما به خاطر داشته باشید که اجرای PHP بر روی IIS با اجرای PHP بر روی ویندوز یکسان نیست. راه حل‌های متنوعی مانند XAMPP یا WampServer برای اجرای PHP در ویندوز وجود دارد. با این حال، این دو راه حل چند انتخاب دیگر نیز برای شما در پی خواهد داشت. هر دو آنها از Apache به‌عنوان وب سرور و از MySQL یا MariaDB به‌عنوان یک سرور دیتابیس استفاده می‌کنند.

این حالت ممکن است کاملاً متناسب با نیازهای شما نباشد. اگر از قبل وب سایت‌هایی بر روی IIS اجرا می‌کردید، بهتر است وب سایت‌های PHP خود را نیز در آنجا اجرا کنید. به این ترتیب، همه آنها را یکجا و در کنار هم خواهید داشت. شاید حتی تمایل دارید از یک دیتابیس دیگر استفاده کنید. در ادامه به بررسی نصب php روی IIS خواهیم پرداخت و خواهید دید که کار پیچیده‌ ای نیست.

نحوه نصب php روی IIS

نصب IIS

اگر IIS هنوز در سیستم شما اجرا نمی‌شود، باید آن را فعال کنید. نحوه انجام این کار نیز به نسخه ای از ویندوز که در حال استفاده از آن هستید، بستگی دارد. در نسخه‌های غیر سروری ویندوز، این کار معمولاً در بخش “Turn Windows features on or off” انجام می‌شود. ساده‌ترین راه برای دسترسی به این بخش (در ویندوز ۸ و بالاتر) باز کردن منوی Start و جستجوی “windows features” است. در پنجره باز شده قادر به باز کردن این بخش خواهید بود. پس از باز شدن آن، با انتخاب گزینه‌های “Internet Information Services” و “CGI” آنها را فعال کنید.

نصب php

در ویندوز سرور، این کار مستلزم طی کردن مراحل بیشتری است. ابتدا برنامه Server Manager را باز کرده و سپس با استفاده از “Add Roles and Features” در صفحه Server Roles، گزینه “Web Server (IIS)” را انتخاب کنید:

نصب php

وقتی از شما خواسته می‌شود  server roles را انتخاب کنید، حتما CGI را نیز فعال کنید:

نصب PHP روی IIS

پس از نصب IIS، با باز کردن آدرس http://localhost باید قادر به مشاهده صفحه پیش فرض IIS باشید:

نصب php

CGI/FastCGI چیست؟

CGI مخفف Common Gateway Interface است که یک پروتکل استاندارد برای وب سرورها جهت اجرای برنامه‌ها بر روی یک سرور است. فعال کردن CGI در محیط IIS بسیار مهم است. در مورد این آموزش، این بدان معنی است که IIS درخواست‌های ورودی وب را دریافت می‌کند و سپس آن را به موتور PHP ارسال می‌کند. سپس موتور PHP خروجی را که IIS باید به کلاینت نمایش دهد، به آن برمی‌گرداند.

CGI پس از هر درخواست برنامه را شروع و متوقف می‌کند. اگر درخواست‌های زیادی دریافت کنید، این فرایند از نظر عملکردی بسیار پرهزینه خواهد بود. CGI قادر به کنترل ارتباطات با پایگاه داده یا کش درون حافظه نیست. FastCGI نسخه جدیدتر و ارتقاء یافته CGI است که در اواسط دهه ۹۰ برای رفع این مشکلات معرفی شد. FastCGI می‌تواند فرایندها را طی چندین درخواست فعال نگه دارد و قادر است ضمن استفاده مجدد از منابع دیگر، جایگزین سریع‌تر و مدرن‌تری برای CGI “کلاسیک” باشد.

وقتی CGI را برای IIS فعال می‌کنید، به‌طور پیش فرض شامل FastCGI نیز خواهد بود. سپس IIS به صورت پیش فرض PHP را از طریق FastCGI اجرا می‌کند.

نصب PHP روی IIS با استفاده از Web PI

ساده‌ترین راه برای نصب php در IIS استفاده از Web Platform Installer است. Web PI یک ابزار رایگان مدیریت بسته برای نصب ابزارهای توسعه وب غیر تجاری و ملزومات آنها است. هنگامی که این ابزار را اجرا می‌کنید، می توانید آخرین نسخه PHP را در بخش Frameworks قسمت Products انتخاب کنید:

نصب php

Web PI چندین مورد را به لیست نصب اضافه می‌کند (در مورد این آموزش سه مورد)، سپس بر روی دگمه بزرگ Install در پایین صفحه کلیک کنید. در مرحله بعد باید لایسنس اجزاء مختلف را بپذیرید. اگر هر یک از اجزاء با موفقیت نصب نشود، ممکن است مجبور شوید آنها را به‌صورت دستی نصب کنید. در صورتی که تمایل به کنترل بیشتر دارید، امکان نصب دستی PHP نیز وجود دارد.

نصب PHP روی IIS به صورت دستی

به‌هنگام نصب php روی IIS از طریق Web PI، این زبان در آدرس پیش فرض “C:\Program Files” نصب می‌شود. ممکن است تمایل داشته باشید کنترل بیشتری در این مورد داشته باشید، که کاملاً امکان‌پذیر است و چندان دشوارهم نیست.

ابتدا PHP را از وب سایت آن دانلود کنید و دقت داشته باشید که حتماً نسخه non-thread safe را دانلود کنید. برای PHP نیازی به بررسی thread-safety نیست، زیرا FastCGI یک محیط single-threaded را تضمین می‌کند. حذف این چک‌ها عملکرد را بهبود می‌بخشد.

فایل‌ها را در فولدر مورد نظر خود extract کنید، به‌عنوان مثال “C:\PHP” . همچنین این فولدر را به مسیر Path System variable اضافه کنید. سپس صفحه Handler Mappings را در IIS Manager باز کنید:

نصب php

در نوار Actions، می‌توانید “Add Module Mapping” را انتخاب کنید. جزئیات لازم را وارد کنید تا برای IIS مشخص شود که فایل‌های *.php باید توسط php-cgi.exe و از طریق FastCGI اجرا شوند:

نصب php

اکنون در نوار Connection سرور خود را در IIS Manager انتخاب کرده و گزینه “Default Document.” را انتخاب کنید. در بخش اقدامات بعدی روی “Add…” کلیک کنید و “index.php” را اضافه کنید. همچنین می‌توانید فایل‌های دیگری مانند “Default.php” را اضافه کنید. این به IIS می‌گوید اگر هیچ فایلی در URL مشخص نشده باشد، به‌طور پیش فرض به‌دنبال چنین فایلی بگردد.

در پایان به فولدر PHP خود بروید (به‌عنوان مثال “C:\PHP”) و سپس بسته به محیط خود فایل “php.ini-development” یا “php.ini-production” را به “php.ini” تغییر نام دهید.

تنظیم php روی IIS

اگر با استفاده از Web PI در سیستم خود PHP را روی IIS نصب کرده باشید، مقادیر پیش فرض به خوبی عمل خواهند کرد، اما یک چک و بررسی نیز خالی از لطف نیست. اگر PHP را به‌صورت دستی نصب کرده اید، آنگاه حتماً لازم است تنظیمات را یک بررسی اجمالی کنید. اگر با تنظیمات PHP آشنا هستید، می‌توانید فایل “php.ini” را باز کرده و آن را ویرایش کنید. همچنین می‌توانید PHP Manager را در IIS Manager باز کنید. اگر تا کنون این کار را انجام نداده اید، می‌توانید PHP Manager برای IIS را نصب کنید. سپس آن را در IIS Manager مشاهده خواهید کرد:

نصب php

وقتی آن را باز می‌کنید، بلافاصله با یک اخطار در مورد فایل php.ini خود مواجه خواهید شد. کلیک بر روی لینک “View recommendations” راه حل ساده ای برای رفع هرگونه مشکل به شما ارائه می‌دهد:

نصب php

WinCache و extention ها

PHP امکان نصب و فعال‌سازی extention های جانبی را نیز فراهم می‌کند. در نصب پیش فرض این آموزش، بیش از ۴۰ افزونه به‌صورت پیش فرض نصب شده است. می‌توانید PHP extensions را در فولدر “ext” در زیر فولدر installation PHP نصب کنید. همچنین می‌توانید آنها را از طریق PHP Manager نیز نصب کنید. به همین ترتیب، می‌توانید extension ها را با ویرایش فایل php.ini یا با استفاده از PHP Manager فعال و غیرفعال کنید. به‌عنوان مثال، WinCache یک افزونه محبوب برای بهبود سرعت PHP در سیستم‌های تحت ویندوز است. این افزونه شامل مکانیزم‌های ذخیره‌ سازی و کشینگ مانند user data cache, session cache file ,system cache و path cache مرتبط با آنها است.

اگر PHP را با استفاده از Web PI نصب کرده اید، دیگر در این بخش نیازی به انجام کاری ندارید. اگر PHP را به صورت دستی نصب کرده اید، نسخه صحیح آن را از SourceForge دانلود کرده و در یک فولدر موقت ذخیره کنید. مطمئن شوید که حتماً آن را از فولدر development دانلود می‌کنید، زیرا سایر فایل‌ها مربوط به نسخه Web PI WinCache است. فایل “exe” را اجرا کرده و سپس فایل “php_wincache.dll” را در فولدر “ext” در فولدر installation PHP خود کپی کنید. سپس در PHP Manager، می‌توانید روی لینک “enable or disable an extension” کلیک کرده و WinCache را فعال کنید:

نصب php

گزینه دیگر نیز این است که “extension = php_wincache.dll” را به انتهای فایل “php.ini” خود اضافه کنید. دقت داشته باشید که حتماً نسخه WinCache منطبق با نسخه PHP خود را دانلود کنید. در فروم‌های WinCache می‌توانید مشاهده کنید که پشتیبانی از نسخه ۷.۳ در دست تحقیق و توسعه است، و همچنان نیاز به برخی بازبینی‌ها وجود دارد.

تست فرایند نصب PHP

اکنون که php را روی IIS نصب کردیم، می‌توانیم به راحتی آن را تست کنیم. یک فایل جدید در ویرایشگر متن مورد علاقه خود ایجاد کنید و فقط خط زیر را به آن اضافه کنید:

<? ;php phpinfo()?>

این فایل را در مسیر C:\inetpub\wwwroot ذخیره کنید. این آدرس در واقع همان مسیری است که IIS میزبان وب سایت‌های شما خواهد بود. حتماً ویرایشگر خود را در حالت administrator اجرا کنید، در غیر اینصورت نمی‌توانید فایل را در آن فولدر ذخیره کنید.

سپس در مرورگر خود به آدرس http://localhost/phpinfo.php بروید، و در این صفحه باید قادر باشید نمای کلی از تمام تنظیمات فعلی PHP را مشاهده کنید:

نصب php

این یعنی همه چیز به خوبی کار می‌کند. به خاطر داشته باشید که قرار دادن فایل phpinfo.php در وب سایت عمومی یک خطای فاحش امنیتی است که باعث می‌شود اطلاعات سرور شما افشا شود و هکرها می‌توانند برای حمله به شما از آن استفاده کنند.

ترکیب قدرت php و IIS

بر اساس تخمین‌ها، تقریبا ۸۰% وب سایت‌ها در اینترنت از PHP استفاده می‌کنند. این آزمایش همچنین به خوبی از عهده تست زمان نیز بر آمده است. همچنین شامل برخی از محصولات موفق مانند وردپرس و دروپال نیز است. IIS در بازار وب سرور‌ها سهم قابل توجهی را در اختیار ندارد، اما پشتیبانی و تعهد مایکروسافت را به‌دنبال خود دارد، به این معنی که توسعه و پشتیبانی آن برای مدت طولانی ادامه خواهد داشت. اگر از قبل وب سایت‌هایی بر روی IIS اجرا می‌کنید، اکنون می‌توانید سایت‌های PHP خود را به آن اضافه کرده و همه چیز را به‌صورت یکجا و در یک مکان نگه دارید.

در مثال فوق، ما وب سایت PHP (یک فایل کوچک و یک خطی) خود را به فولدر wwwroot اضافه کردیم. که “Default Web Site” در IIS  را نمایش می‌دهد. با این حال، هیچ چیز مانع استفاده شما از امکانات IIS و قرار دادن وب سایت‌های خود در فولدر‌های دیگر و سپس اجرای آنها در برنامه‌های جدا نمی‌شود. که این بهترین کار است. به‌عنوان مثال، من فایل‌های دروپال را بر روی دستگاه لوکال خود extract کرده و IIS را نیز بر روی آن فولدر تنظیم کرده‌ام.

نصب php

توجه: این احتمال وجود دارد که این روش برای شما عمل نکند. در این مقاله مجبور شدیم کارهای اضافی انجام دهیم زیرا فایل web.config پیش فرض تولید شده توسط IIS شامل یک قسمت بازنویسی است که ابتدا کار نمی‌کرد که یا باید آن را حذف می‌کردیم یا اینکه ماژول بازنویسی را برای IIS نصب می‌کردیم.

در اینجا می‌توانید تنظیمات دروپال که بر روی IIS لوکال اجرا می‌شود را مشاهده کنید:

نصب php

این دروپال و PHP است که با کمک IIS 10 در ویندوز ۱۰ در حال اجرا است.

نصب و کانفیگ php روی IIS

افراد کمی از قابلیت IIS برای اجرای برنامه‌های PHP و سهولت راه اندازی آن آگاهند. با استفاده از Web PI می‌توانید فقط با چند کلیک از عهده نصب php بر‌آیید. نصب آن به‌صورت دستی خیلی هم سخت نیست و به شما امکان کنترل بیشتری می‌دهد.

شاید تصور کنید Linux و Apache یا Nginx گزینه‌های پیش فرض برای نصب php هستند، اما صرفاً در چند مرحله می‌توانید برنامه‌های PHP خود را بر روی وب سرور IIS خود اجرا کنید. اگر به هر دلیلی گزینه‌های Apache یا Nginx را در اختیار ندارید و احساس می‌کنید مجبور به استفاده از IIS هستید، یا فقط IIS را ترجیح می‌دهید، این مساله نباید شما را از استفاده از زبان قدرتمند PHP که هنوز هم محبوب‌ترین زبان برنامه نویسی در اینترنت است، منصرف کند.

فناوران شبکه سینداد (آهنگ نوآوری)

سینداد یعنی هدیه‌ی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.