فهرست محتوا
در دومین بخش از آموزش PHP با من همراه هستید. در این بخش به آموزش نصب PHP خواهیم پرداخت. در این بخش یاد میگیریم چطور محیطی ایجاد کنیم تا در اون بتونیم کدهای PHP رو اجرا کنیم.
بهترین روش ها استفاده از این نرم افزار هاست:
- WAMP برای ویندوز
- LAMP برای لینوکس
- MAMP برای مک
- SAMP برای سولاریس
- FAMP برای FreeBSD
- XAMPP: دارای نسخه های ویندوز، مک و لینوکس : پیشنهادی
در ادامه لینک دانلود هر کدام از موارد فوق رو می نویسیم:
انتخاب من نرم افزار XAMPP و آموزش رو با این نرم افزار ادامه میدیم. از طرفی سیستم عامل کامپیوتر من هم ویندوزه، پس نسخه ویندوزی زمپ رو استفاده خواهیم کرد.
آموزش نصب PHP با آموزش نصب XAMPP روی ویندوز
در ادامه مرحله به مرحله نصب نرم افزار زمپ رو آموزش خواهم داد.
مرحله اول: اول ازهمه با کلیک بر روی لینک بالا (یا کلیک روی این لینک)، زمپ رو دانلود کنید.

در این مثال ما نسخه 8.1.17 رو دانلود می کنیم که نسخه 8.1.17 PHP رو پشتیبانی میکنه. معمولا نسخه های آخر پایدار نیستن. پس نسخه یکی مونده به آخر رو دانلود کنید.
مرحله دوم: بعد از دانلود روی فایل دانلودی دابل کلیک کنید. در اولین مرحله بر روی دکمه Next کلیک کنید.

مرحله 3: حالا کامپوننت هایی که نیاز دارید رو تیک بزنید. بهتره تیک همه موارد رو بزنید شاید بعدا نیازتون شد. بعد روی Next کلیک کنید.

مرحله 4: محل نصب برنامه رو انتخاب کنید. ترجیحا نام پوشه نهایی رو به جای xampp، نام زمپ و نسخه رو بنویسید. برای مثال xampp8117 یا هر حالتی که مشخص کند کدام نسخه زمپ در این پوشه است.
دلیل این کار اینه که ممکنه بخواید چندین نسخه از زمپ رو روی سیستم نصب کنید. بعد تعیین محل نصب، بر روی Next کلیک کنید.

مرحله 5: دراین مرحله تیک گزینه Learn more about Bitnami for XAMPP رو بردارید. یعنی تیک رو غیرفعال کنید. بعد روی گزینه Next کلیک کنید.

مرحله 6: حالا، زمپ آماده نصبه! روی Next کلیک کند تا نصب شروع بشه.

مرحله 7: بعد انجام نصب (بسته به سیستم تون مدتی طول میکشه)، تصویری مثل زیر نشون داده میشه. اگر تیک فعال باشه، و روی Finish بزنید، Control Panel زمپ اجرا میشه. بزارید تیک باقی بمونه و روی Finish کلیک کنید.

مرحله 8: قبل از اجرای control panel، اول باید زبان XAMPP رو بین دو گزینه انگلیسی و آلمانی انتخاب کنید. طبیعتا روی پرچم آمریکا کلیک می کنیم.

مرحله 9: XAMPP آماده استفاده است. سرور آپاچی و MySQL رو راه اندازی کنید و برنامه php رو روی لوکال هاست اجرا کنید.
برای این کار بر روی دو دکمه ی Start در مقابل Apache و MySQL کلیک کنید.

مرحله 10: اگر مشکلی وجود نداشته باشد، رنگ هر دو ماژول سبز شده و Port و PID هر دو ماژول تعیین میشود.

خوب تمام شد! اگر هر دو ماژول سبز شدن، که هیچ! یعنی کار تمومه و آموزش این بخش همین جا تمامه و میتونید برید به قسمت بعدی! در غیر اینصورت، بخش های زیر رو برای رفع خطا بخونید!
رفع مشکل XAMPP
اگر هر دو یا یکی از ماژول های بالا سبز نشد، یعنی مشکلی وجود داره و باید رفع بشه. در ادامه دلایل مختلفی که این مشکلات رو ایجاد می کنم رو معرفی می کنم و راه حل شون رو هم خواهم گفت.
سبز نشدن ماژول Apache بخاطر اشغال بودن پورت 80 یا 443
محتمل ترین خطا همین گزینه است. زمپ به صورت پیش فرض از پورت های 80 و 443 استفاده میکنه. اما ممکنه این پورت ها توسط نرم افزار دیگه ای قبلا پر شده باشن. پس راه حل اینه پورت پیش فرض زمپ رو تغییر بدیم.
در چنین مواقعی خطایی مثل این رو میبینید: Apache Shutdown Unexpectedly

راه حل سبز نشدن آپاچی با تغییر پورت 80 و 443
اول از همه پورت 80 رو تغییر میدیم
در مقابل ماژول Apache روی دکمه config کلیک کنید و سپس فایل Apache(httpd.conf) رو باز کنید.
این فایل به صورت پیش فرض C:\xampp\apache\conf در مسیر قرار داره.

در فایل باز شده، روی دکمه ترکیبی ctrl+f کیبورد کلیک کنید یا کلید ctrl+R رو بزنید تا ابتدا به دنبال عبارت 80 بگردید. 3 جا استفاده شده. همه جا اون رو به 8080 تغییر بدید و بعد فایل رو ذخیره کنید.

توجه داشته باشید که آدرس لوکال هاست شما از localhost به localhost:8080 تغییر میکنه
تغییر پورت 443
برای تغییر پورت 443 میتونید به مسیر C:\xampp\apache\conf\extra (به صورت پیش فرض)، و فایل httpd-ssl.conf رو باز کنید.
یا میتونید در مقابل Apache روی Config کلیک کنید و فایل httpd-ssl.conf رو باز کنید.
بعد از انجام دو مرحله بالا، یکبار هر دو ماژول Apache و MySQL رو Stop کنید. زمپ رو کامل ببندید (حواستون باشه از Task Manager هم ببندید).
بهتره اول هر دو ماژول رو Stop کنید، بعد روی منوی Taskbar کلیک راست کرده و گزینه Task Manager رو باز کنید. فایل Xampp رو پیدا کنید و روی End Task بزنید. این روش صحیح بستن Xammp.
بعد مجددا کنترل پنل رو اجرا کنید. هر دو ماژول رو Start کنید. اگر مشکل رفع شد و هر دو ماژول سبز شدن، یعنی دیگه مشکلی نیست و میتونید با زمپ کار کنید. درغیر اینصورت ادامه مقاله رو بخونید.
حل مشکل سبز نشدن MySQL به دلیل وجود خطای پایگاه داده
اگر ماژول MySQL سبز نشد، ممکنه به دو دلیل باشه:
- پورت 3306 توسط نرم افزار دیگه ای اشغال شده
- خطای Aria recovery failed وجود داره
در ادامه راه حل رفع این مورد رو آموزش خواهم داد.
حل مشکل سبز نشدن MySQL با تغییر پورت 3306
برای تغییر پورت 3306 باید فایل php.ini رو دستکاری کنید. میتونید به مسیر پیش فرض C:\xampp\php برید، یا در مقابل ماژول Apache روی Config کلیک کنید و فایل php.ini رو باز کنید.

به دنبال عبارت 3306 بگردید. دو جا این مقدار قرار داره و باید هر دو رو به 3307 تغییر بدید.

در مرحله بعد در مقابل ماژول MySQL، روی Config کلیک کنید و فایل my.ini را باز کنید. این فایل به صورت پیش فرض در مسیر C:\xampp\MySQL\bin قرار داره.
درون این فایل هم به دنبال 3306 باشید. در 5 جا این مقدار وجود داره که باید به 3307 تغییر کنه.
بعد از انجام دو مرحله بالا، یکبار هر دو ماژول Apache و MySQL رو Stop کنید. زمپ رو کامل ببندید (حواستون باشه از Task Manager هم ببندید).
بهتره اول هر دو ماژول رو Stop کنید، بعد روی منوی Taskbar کلیک راست کرده و گزینه Task Manager رو باز کنید. فایل Xampp رو پیدا کنید و روی End Task بزنید. این روش صحیح بستن Xammp.
بعد مجددا کنترل پنل رو اجرا کنید. هر دو ماژول رو Start کنید. اگر مشکل رفع شد و هر دو ماژول سبز شدن، یعنی دیگه مشکلی نیست و میتونید با زمپ کار کنید. درغیر اینصورت ادامه مقاله رو بخونید.
حل سبز نشدن MySQL با تغییر پوشه data
اگر با تغییر پورت، مشکل اجرا نشدن زمپ رفع نشد، احتمالا مشکل در پوشه های دیتابیس یا data وجود داره.
برای رفع مشکل باید یکم تغییرات در فایل هاتون داشته باشید. نگران نباشید و تمام مراحل زیر رو با دقت و بدون اشتباه انجام بدید.
- اول زمپ رو کامل ببند.
- ابتدا به مسیر C:\xampp\mysql برید. یک پوشه به اسم data وجود داره.
- نام پوشه data رو به data_old تغییر بدید و یک پوشه جدید و خالی ایجاد کنید و اسم data رو روی اون بگذارید.
- در همین مسیر یک پوشه دیگه به اسم backup وجود داره. هر چی داخل این پوشه هست رو کپی کنید و درون پوشه data (پوشه خالیه) بریزید. حواست باشه کپی کنی و کات نکنی.
- درون پوشه data_old یک سری پوشه وجود داره. به جز پوشه های mysql, performance_schema و phpmyadmin، بقیه پوشه ها رو کپی و درون پوشه data پیست کنید. کاری با بقیه فایل های درون data_old نداشته باش. فقط پوشه ها (به جز اون 3 تا که گفتم) رو بریز تو data.
- درون data_old یه فایل (گفتم فایل، نه پوشه)، به نام ibdata1 هست. این فایل رو کپی و درون data بریز.
- حالا سیستمت رو یکبار ری استارت کن (البته حتما لازم نیست این کار رو بکنی، اما بهتره ری استارت کنی)، بعد که سیستم بالا اومد، مجددا کنترل پنل رو استارت کن و روی دوتا ماژول Start کن. مشکل رفع شده.
یکی از دلایل مهمی که خطای بالا ممکنه به وجود بیاد اینه بدون Stop کردن ماژول ها و بستن کامل زمپ، اقدام به خاموش کردن سیستم میکنید.
بهتره اول هر دو ماژول رو Stop کنید، بعد روی منوی Taskbar کلیک راست کرده و گزینه Task Manager رو باز کنید. فایل Xampp رو پیدا کنید و روی End Task بزنید. این روش صحیح بستن Xammp.
این بخش از آموزش هم به اتمام رسید. اگر بخش قبلی آموزش PHPرو نخوندید روی لینک زیر کلیک کنید.
اگر آموزش رو خوندید، روی لینک بعدی آموزش کلیک کنید.