دوره‌ها / آموزش جامع PHP (از صفر تا استادی) / نصب و راه‌اندازی (PHP Install)

نصب و راه‌اندازی (PHP Install)

30 دقیقه Article

نصب و راه‌اندازی: آماده‌سازی آزمایشگاهِ محلی 🛠️🔬

برای شروعِ کدنویسی، کامپیوتر شما باید نقشِ یک سرور را بازی کند. سه راهِ اصلی برای این کار وجود دارد:

۱. بسته‌هایِ آماده (XAMPP / WAMP)

محبوب‌ترین راه برایِ مبتدیان. این بسته‌ها شامل PHP، وب‌سرور Apache و پایگاه‌داده MySQL هستند که با یک کلیک نصب و اجرا می‌شوند.

۲. داکر (Docker) - انتخاب حرفه‌ای‌ها 🐳

در پروژه‌هایِ واقعی، ما از Containerها استفاده می‌کنیم تا محیطِ توسعه دقیقاً مشابه سرورِ نهایی باشد. این کار از مشکلِ مشهورِ "روی کامپیوترِ من کار می‌کرد!" جلوگیری می‌کند.

۳. نصبِ دستی

اگر از لینوکس استفاده می‌کنید، نصبِ جداگانه‌یِ پکیج‌های php, apache2 و mysql-server تسلطِ بیشتری به شما می‌دهد.

تستِ نصب: بعد از نصب، یک فایل به نام info.php بسازید و کد زیر را در آن قرار دهید. اگر با باز کردن آن در مرورگر، جدول مشخصات جاوا را دیدید، همه چیز درست است: {code_block('phpinfo();')}
ویرایشگرِ کد (IDE): برایِ بهترین تجربه، از VS Code با افزونه‌هایِ PHP یا IDE تخصصیِ PhpStorm استفاده کنید.

پیکربندی فایل php.ini ⚙️

فایل php.ini قلبِ تنظیماتِ PHP است. در اینجا می‌توانید محدودیتِ آپلود فایل، نمایش خطاها و تنظیمات حافظه را تغییر دهید.

<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: کالبدشکافی زبان PHP و موتور Zend 🐘⚙️

درکِ عمیقِ PHP نیازمند آشنایی با آن چیزی است که در پشتِ صحنه اتفاق می‌افتد. PHP یک زبانِ تفسیری (Interpreted) است که توسط موتور قدرتمند Zend Engine اجرا می‌شود.

۱. چرخه عمر درخواست (Request Lifecycle)

در هر بار لود شدنِ صفحه، PHP مراحلِ زیر را طی می‌کند:

  • Lexing/Scanning: تبدیلِ کدها به توکن‌هایِ معنادار.
  • Parsing: ساختِ یک ساختارِ درختی از کدها (AST).
  • Compilation: تبدیلِ درختِ کد به OpCodes (دستورالعمل‌هایِ سطحِ پایین).
  • Execution: اجرایِ OpCodeها توسط مفسرِ Zend.

۲. مدیریت حافظه (Zend Memory Manager)

PHP برخلافِ زبان‌هایی مثل C، مدیریتِ حافظه را به صورتِ خودکار انجام می‌دهد. با استفاده از تکنیکِ Reference Counting و یک Garbage Collector هوشمند، اشیاء و متغیرهایی که دیگر استفاده نمی‌شوند را از حافظه پاک می‌کند تا سرور دچارِ کراش نشود.

۳. سیستمِ تایپِ پویا (Dynamic Typing)

در PHP، متغیرها نوعِ ثابتی ندارند. این انعطاف‌پذیری به لطفِ ساختارِ داده‌ای به نام zval (Zend Value) ممکن شده است که در هر لحظه می‌تواند اطلاعاتی درباره نوع و مقدارِ داده را در خود نگه دارد.

نکته مهندسی: برایِ افزایشِ چشمگیرِ سرعتِ برنامه‌هایِ PHP، همیشه از OPcache استفاده کنید. این قابلیت باعث می‌شود کدهایِ کامپایل شده (OpCodes) در RAM ذخیره شوند و در درخواست‌های بعدی نیاز به کامپایلِ مجدد نباشد.

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

چک کردن ورژن PHP Easy
سوال تمرین

تابعی در PHP وجود دارد که تمام اطلاعاتِ سیستم و ورژن را نشان می‌دهد. نام این تابع را بنویسید (داخل تگ PHP).

پاسخ تمرین
PHP
<?php
phpinfo();
?>

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.