اگر قصد دارید PHP را روی Linux نصب کنید، باید بدانید که روش نصب PHP در تمام توزیعهای لینوکس یکسان نیست.
توزیعهایی مانند Ubuntu و Debian معمولاً از APT استفاده میکنند، در حالی که توزیعهای مبتنی بر RHEL مانند AlmaLinux و Rocky Linux از Package Managerهای متفاوتی استفاده میکنند.
به همین دلیل در این آموزش، بهجای تمرکز روی یک توزیع خاص، ساختار کلی نصب PHP در Linux را بررسی میکنیم و سپس روش نصب در خانوادههای مختلف Linux را توضیح میدهیم.
در این مقاله یاد میگیرید:
- چگونه توزیع Linux خود را شناسایی کنید
- چگونه نسخه PHP مورد نیاز را انتخاب کنید
- چگونه PHP را نصب کنید
- چگونه PHP CLI را بررسی کنید
- چگونه Extensionهای PHP را نصب کنید
- PHP-FPM چیست و چگونه نصب میشود
- چگونه PHP را با Web Server اجرا کنیم
- چگونه Configuration PHP را بررسی کنیم
- چگونه نسخه PHP را مدیریت کنیم
- هنگام نصب PHP روی Linux به چه نکاتی توجه کنیم
اگر فقط از Ubuntu استفاده میکنید، پیشنهاد میکنیم آموزش اختصاصی زیر را نیز مطالعه کنید:
> آموزش نصب PHP در Ubuntu
# PHP چیست و چرا روی Linux نصب میشود؟
PHP یک زبان برنامهنویسی سمت سرور است که برای ساخت و اجرای برنامههای وب استفاده میشود.
بسیاری از پروژههای PHP روی سرورهای Linux اجرا میشوند.
برای مثال:
- WordPress
- Laravel
- WooCommerce
- CMSهای اختصاصی
- REST API
- سیستمهای مدیریت محتوا
- فروشگاههای اینترنتی
- پنلهای مدیریتی
میتوانند روی یک سرور Linux همراه با PHP اجرا شوند.
یک معماری رایج برای اجرای پروژه PHP میتواند به شکل زیر باشد:
Internet
↓
Web Server
↓
PHP / PHP-FPM
↓
Application
↓
Database
# قبل از نصب PHP در Linux چه چیزهایی باید بدانیم؟
مهمترین نکته این است که ابتدا باید بدانید از چه توزیع Linux استفاده میکنید.
برای مشاهده اطلاعات سیستم میتوانید دستور زیر را اجرا کنید:
cat /etc/os-release
خروجی معمولاً اطلاعاتی مانند:
NAME
VERSION
ID
VERSION_ID
را نمایش میدهد.
برای مثال ممکن است سیستم شما یکی از این توزیعها باشد:
Ubuntu
Debian
AlmaLinux
Rocky Linux
Fedora
روش نصب PHP بر اساس همین اطلاعات مشخص میشود.
# Package Manager چیست؟
در Linux نرمافزارها معمولاً از طریق Package Manager نصب و مدیریت میشوند.
برای مثال:
| خانواده Linux | Package Manager |
|---|---|
| Ubuntu | APT |
| Debian | APT |
| Linux Mint | APT |
| Fedora | DNF |
| AlmaLinux | DNF |
| Rocky Linux | DNF |
بنابراین قبل از نصب PHP باید بدانید سیستم شما از چه Package Managerی استفاده میکند.
# نصب PHP در Ubuntu و Debian
Ubuntu و Debian از خانواده Debian هستند و معمولاً از apt برای نصب Packageها استفاده میکنند.
ابتدا فهرست Packageها را بهروزرسانی کنید:
sudo apt update
سپس PHP را نصب کنید:
sudo apt install php
پس از نصب:
php -v
را اجرا کنید.
اگر نسخه PHP نمایش داده شد، PHP CLI با موفقیت نصب شده است.
# نصب Extensionهای PHP در Ubuntu و Debian
بسته به پروژه ممکن است Extensionهای مختلفی نیاز داشته باشید.
برای مثال:
sudo apt install php-mysql php-curl php-mbstring php-xml php-zip php-gd
برای بررسی Extensionهای فعال:
php -m
استفاده کنید.
اگر پروژه Laravel دارید، بهتر است Extensionها را بر اساس نیاز نسخه Laravel و پروژه نصب کنید و از نصب تعداد زیادی Extension غیرضروری خودداری کنید.
# نصب PHP در AlmaLinux و Rocky Linux
AlmaLinux و Rocky Linux از توزیعهای سازگار با خانواده RHEL هستند.
در نسخههای جدید این توزیعها معمولاً از dnf برای مدیریت Packageها استفاده میشود.
ابتدا میتوانید Packageهای سیستم را بررسی و در صورت نیاز بهروزرسانی کنید.
برای جستجوی PHP:
sudo dnf search php
سپس Packageهای مورد نیاز PHP را نصب کنید.
برای مثال:
sudo dnf install php
بعد نسخه را بررسی کنید:
php -v
روش دقیق نصب نسخههای خاص PHP میتواند بر اساس نسخه توزیع و Repositoryهای فعال متفاوت باشد.
# نصب Extensionهای PHP در AlmaLinux و Rocky Linux
نام Packageها در خانواده RHEL ممکن است با Debian/Ubuntu متفاوت باشد.
برای مثال:
sudo dnf install php-mysqlnd php-curl php-mbstring php-xml php-zip php-gd
پس از نصب:
php -m
را اجرا کنید.
اگر Extension مورد نظر در فهرست نمایش داده شود، PHP آن را شناسایی کرده است.
# نصب PHP در Fedora
Fedora نیز از خانواده توزیعهایی است که از DNF استفاده میکند.
برای جستجوی Packageهای PHP:
sudo dnf search php
و برای نصب PHP:
sudo dnf install php
پس از نصب:
php -v
را اجرا کنید.
# تفاوت نصب PHP در توزیعهای مختلف Linux
اگرچه هدف تمام این دستورات نصب PHP است، اما روش مدیریت Packageها متفاوت است.
مثلاً:
Debian / Ubuntu
sudo apt update
sudo apt install php
AlmaLinux / Rocky Linux / Fedora
sudo dnf install php
بنابراین نمیتوان یک دستور واحد را برای تمام توزیعهای Linux استفاده کرد.
# PHP CLI چیست؟
PHP CLI نسخهای از PHP است که از طریق Command Line اجرا میشود.
برای مثال:
php -v
یا:
php script.php
از CLI استفاده میکنند.
PHP CLI برای توسعهدهندگان بسیار مهم است؛ زیرا ابزارهایی مانند:
- Composer
- Laravel Artisan
- PHPStan
- PHPUnit
از محیط Command Line استفاده میکنند.
# بررسی نسخه PHP در Linux
بعد از نصب PHP، اولین دستور پیشنهادی:
php -v
است.
برای بررسی مسیر PHP نیز میتوانید:
which php
را اجرا کنید.
در بعضی سیستمها:
command -v php
نیز مفید است.
این دستورات به شما کمک میکنند بدانید PHP از چه مسیری اجرا میشود.
# بررسی Packageهای نصبشده PHP
در سیستمهای Debian/Ubuntu میتوانید از:
dpkg -l | grep php
استفاده کنید.
در سیستمهای مبتنی بر RHEL نیز:
rpm -qa | grep php
میتواند Packageهای PHP را نمایش دهد.
این دستورات هنگام عیبیابی بسیار کاربردی هستند.
# php.ini چیست؟
فایل:
php.ini
فایل اصلی Configuration PHP است.
در این فایل میتوان تنظیماتی مانند موارد زیر را مدیریت کرد:
- Memory Limit
- Upload Limit
- Timezone
- Error Reporting
- Execution Time
- Session Settings
- برخی تنظیمات Extensionها
برای مشاهده Configuration مربوط به PHP CLI:
php --ini
را اجرا کنید.
# چگونه Configuration فعال PHP را ببینیم؟
برای مشاهده اطلاعات کامل:
php -i
استفاده کنید.
اگر فقط دنبال یک تنظیم خاص هستید، میتوانید خروجی را با grep فیلتر کنید.
مثلاً:
php -i | grep memory_limit
یا:
php -i | grep upload_max_filesize
این روش در سرورهای Linux بسیار کاربردی است.
# PHP-FPM چیست؟
در پروژههای Web معمولاً PHP باید با یک Web Server ارتباط داشته باشد.
یکی از روشهای رایج استفاده از:
PHP-FPM
است.
PHP-FPM مخفف:
PHP FastCGI Process Manager
است.
معماری ساده آن میتواند به شکل زیر باشد:
Browser
↓
Nginx
↓
PHP-FPM
↓
PHP Application
PHP-FPM برای اجرای برنامههای PHP در محیطهای وب کاربرد زیادی دارد.
# نصب PHP-FPM در Linux
در سیستمهای Debian/Ubuntu معمولاً میتوانید Package مربوط به FPM را نصب کنید:
sudo apt install php-fpm
در سیستمهای مبتنی بر RHEL:
sudo dnf install php-fpm
بعد از نصب باید Service مربوط به PHP-FPM را بررسی کنید.
نام دقیق Service به نسخه PHP بستگی دارد.
مثلاً:
systemctl list-units --type=service | grep php
# بررسی وضعیت PHP-FPM
برای بررسی وضعیت سرویس PHP-FPM میتوانید از:
sudo systemctl status php-fpm
استفاده کنید.
در بعضی توزیعها ممکن است نام سرویس شامل نسخه PHP باشد.
مثلاً:
sudo systemctl status php8.3-fpm
بنابراین اگر دستور اول Service را پیدا نکرد، نام سرویس نصبشده را بررسی کنید.
# فعال کردن PHP-FPM هنگام Boot
اگر PHP-FPM را برای اجرای وبسایت استفاده میکنید، معمولاً لازم است Service هنگام Boot سیستم اجرا شود.
برای مثال:
sudo systemctl enable php-fpm
و سپس:
sudo systemctl start php-fpm
در نسخههایی که Service نام متفاوتی دارد، باید همان نام واقعی Service را استفاده کنید.
# اجرای PHP بدون Web Server
برای اجرای یک فایل PHP لزوماً به Nginx یا Apache نیاز ندارید.
یک فایل بسازید:
nano test.php
داخل آن:
<?php
echo "PHP is working!";
سپس:
php test.php
اگر خروجی زیر را مشاهده کردید:
PHP is working!
PHP CLI بهدرستی کار میکند.
# اجرای PHP با Web Server داخلی
PHP برای محیط Development یک Web Server داخلی نیز دارد.
یک پوشه پروژه ایجاد کنید:
mkdir ~/php-project
cd ~/php-project
سپس:
nano index.php
و:
<?php
echo "Hello Linux!";
را قرار دهید.
حالا:
php -S 127.0.0.1:8000
را اجرا کنید.
PHP روی پورت 8000 شروع به Listen کردن میکند.
برای آزمایش:
curl http://127.0.0.1:8000
را اجرا کنید.
# آیا PHP Development Server برای Production مناسب است؟
خیر.
دستور:
php -S
برای Development و Testing طراحی شده است.
برای Production باید معماری مناسب Web Server و PHP را پیادهسازی کنید.
برای مثال:
Nginx
↓
PHP-FPM
↓
Laravel
یا بر اساس زیرساخت:
OpenLiteSpeed
↓
PHP
↓
Application
# نصب PHP برای Laravel در Linux
اگر هدف شما اجرای Laravel است، نصب PHP بهتنهایی کافی نیست.
معمولاً به موارد زیر نیاز خواهید داشت:
PHP
PHP CLI
PHP Extensions
Composer
Database
Web Server
PHP-FPM
البته نیازمندی دقیق بر اساس نسخه Laravel و ساختار پروژه تعیین میشود.
برای بررسی نسخه PHP:
php -v
و برای بررسی Composer:
composer --version
استفاده کنید.
# نصب Composer در Linux
Composer ابزار مدیریت Dependencyهای PHP است.
پس از نصب PHP، نصب Composer یکی از مراحل مهم برای پروژههای مدرن PHP است.
پس از نصب میتوانید:
composer --version
را اجرا کنید.
اگر قصد یادگیری Laravel دارید، Composer یکی از ابزارهایی است که باید بهخوبی با آن آشنا شوید.
> مقاله مرتبط: Composer چیست و چه کاربردی دارد؟
# PHP و MySQL در Linux
اگر پروژه شما از MySQL استفاده میکند، باید Extension مناسب PHP را نیز نصب کنید.
در Ubuntu/Debian:
sudo apt install php-mysql
در خانواده RHEL ممکن است از Package مشابهی مانند:
sudo dnf install php-mysqlnd
استفاده شود.
بعد از نصب میتوانید بررسی کنید:
php -m | grep mysql
# PHP و PostgreSQL در Linux
برای پروژههایی که از PostgreSQL استفاده میکنند، Extension مربوط به PostgreSQL مورد نیاز است.
در Ubuntu/Debian:
sudo apt install php-pgsql
سپس:
php -m | grep pgsql
را اجرا کنید.
این Extension برای بسیاری از پروژههای Laravel که با PostgreSQL کار میکنند ضروری است.
# تنظیم Timezone در PHP
Timezone در برنامههای PHP اهمیت زیادی دارد.
برای مشاهده Timezone فعلی:
php -r "echo date_default_timezone_get();"
یا:
php -i | grep "Default timezone"
را اجرا کنید.
برای تغییر آن باید فایل Configuration مربوط به محیط مورد نظر را ویرایش کنید.
برای مثال:
date.timezone = Europe/Berlin
توجه داشته باشید که Timezone مناسب را بر اساس نیاز پروژه انتخاب کنید.
# تنظیم Memory Limit در PHP
برای مشاهده مقدار Memory Limit:
php -i | grep memory_limit
استفاده کنید.
مثلاً:
memory_limit => 128M
مقدار مناسب به پروژه بستگی دارد.
اگر یک برنامه PHP حافظه بیشتری نیاز داشته باشد، ممکن است لازم باشد مقدار memory_limit افزایش پیدا کند؛ اما افزایش بیدلیل آن جایگزین بهینهسازی کد یا بررسی مصرف واقعی منابع نیست.
# تنظیم Upload Limit در PHP
در پروژههایی که فایل Upload میکنند، تنظیمات زیر مهم هستند:
upload_max_filesize
post_max_size
برای بررسی:
php -i | grep upload_max_filesize
و:
php -i | grep post_max_size
استفاده کنید.
# چگونه بفهمیم Extension خاصی نصب شده است؟
فرض کنید میخواهید بررسی کنید mbstring نصب است یا خیر:
php -m | grep mbstring
یا برای cURL:
php -m | grep curl
یا برای PDO MySQL:
php -m | grep pdo_mysql
این روش یکی از سادهترین روشهای بررسی Extensionهای فعال PHP در Linux است.
# مدیریت چند نسخه PHP در Linux
در برخی پروژهها ممکن است به نسخههای مختلف PHP نیاز داشته باشید.
مثلاً:
PHP 8.2
PHP 8.3
PHP 8.4
این وضعیت در سرورهای توسعه و سرورهایی که چند پروژه مختلف دارند، رایج است.
اما نصب چند نسخه PHP بهتنهایی کافی نیست.
باید مشخص کنید:
- کدام نسخه PHP CLI است
- کدام نسخه PHP-FPM است
- Web Server از کدام PHP استفاده میکند
- Composer از کدام PHP استفاده میکند
- پروژه با کدام نسخه سازگار است
# چرا PHP CLI و PHP-FPM ممکن است نسخه متفاوت داشته باشند؟
فرض کنید:
php -v
نسخه 8.3 را نشان میدهد.
اما Web Server ممکن است درخواستها را به PHP-FPM نسخه دیگری ارسال کند.
در این حالت ممکن است:
CLI → PHP 8.3
Web → PHP 8.2
باشد.
این موضوع میتواند باعث مشکلاتی شود که در Terminal قابل مشاهده نیستند اما در سایت اتفاق میافتند.
بنابراین هنگام عیبیابی باید هر دو محیط را بررسی کنید.
# چگونه مسیر PHP را پیدا کنیم؟
برای پیدا کردن PHP فعال:
which php
یا:
command -v php
استفاده کنید.
برای مشاهده نسخه:
php -v
و برای بررسی Configuration:
php --ini
این سه دستور برای عیبیابی PHP بسیار کاربردی هستند.
# خطای Command Not Found هنگام نصب PHP
اگر بعد از نصب PHP با:
php: command not found
مواجه شدید، ابتدا بررسی کنید Package PHP نصب شده باشد.
در Debian/Ubuntu:
dpkg -l | grep php
و در سیستمهای RHEL:
rpm -qa | grep php
سپس:
which php
را اجرا کنید.
# خطای Unable to Locate Package
در Ubuntu/Debian اگر خطایی مانند:
Unable to locate package php
مشاهده کردید، ابتدا:
sudo apt update
را اجرا کنید.
سپس دوباره:
sudo apt install php
را امتحان کنید.
اگر همچنان خطا وجود داشت، باید Repositoryهای سیستم و نسخه توزیع Linux را بررسی کنید.
# چرا Extension PHP در پروژه کار نمیکند؟
اگر Extension را نصب کردهاید اما پروژه هنوز خطا میدهد، ممکن است چند دلیل وجود داشته باشد:
- Extension در PHP CLI فعال است اما در PHP-FPM فعال نیست.
- نسخه دیگری از PHP در Web Server استفاده میشود.
- Service مربوط به PHP-FPM Restart نشده است.
- Configuration اشتباهی ویرایش شده است.
- Extension برای نسخه دیگری از PHP نصب شده است.
برای شروع:
php -m
و:
php --ini
را بررسی کنید.
سپس Configuration مربوط به PHP-FPM را نیز بررسی کنید.
# بعد از تغییر php.ini چه کنیم؟
اگر Configuration مربوط به PHP-FPM را تغییر دادهاید، معمولاً باید سرویس PHP-FPM را Reload یا Restart کنید.
مثلاً:
sudo systemctl restart php8.3-fpm
نام سرویس را باید مطابق نسخه نصبشده روی سیستم خود تغییر دهید.
برای PHP CLI نیازی به Restart کردن Service وجود ندارد؛ زیرا هر بار که دستور php را اجرا میکنید، Configuration مربوطه خوانده میشود.
# نصب PHP در Linux برای سرور Production
اگر قصد دارید یک پروژه واقعی را روی Linux اجرا کنید، صرفاً نصب PHP کافی نیست.
یک سرور Production معمولاً به اجزای بیشتری نیاز دارد:
Linux
│
├── Web Server
│
├── PHP / PHP-FPM
│
├── Database
│
├── SSL/TLS
│
├── Firewall
│
├── Backup
│
├── Monitoring
│
└── Application
برای مثال یک Laravel Application ممکن است معماری زیر را داشته باشد:
Internet
↓
Nginx
↓
PHP-FPM
↓
Laravel
↓
MySQL / PostgreSQL
بنابراین نصب PHP تنها یکی از مراحل آمادهسازی سرور است.
# نکات امنیتی بعد از نصب PHP
اگر PHP را روی یک سرور عمومی نصب میکنید، امنیت باید از همان ابتدا در نظر گرفته شود.
چند نکته مهم:
- PHP را از Repository معتبر نصب کنید.
- نسخه PHP را بهروز نگه دارید.
- Extensionهای غیرضروری را نصب نکنید.
- دسترسیهای فایل را صحیح تنظیم کنید.
- اطلاعات حساس را داخل کد قرار ندهید.
- رمزهای Database را داخل Repository عمومی قرار ندهید.
- PHP-FPM و Web Server را بهدرستی پیکربندی کنید.
- SSL/TLS را برای سایت فعال کنید.
- Backup منظم داشته باشید.
- Logها را بررسی کنید.
# آیا نصب PHP روی Linux بهتر از Windows است؟
نمیتوان گفت همیشه یک سیستمعامل بهتر است؛ انتخاب به نوع کار شما بستگی دارد.
برای یادگیری PHP، Windows میتواند کاملاً مناسب باشد.
اما Linux در محیط Server بسیار رایج است و اگر قصد دارید برنامه PHP یا Laravel را روی VPS یا سرور اجرا کنید، آشنایی با Linux یک مهارت مهم برای توسعهدهنده Backend محسوب میشود.
به همین دلیل پیشنهاد میشود در کنار PHP، کار با Terminal و دستورات پایه Linux را نیز یاد بگیرید.
# چکلیست نصب PHP در Linux
برای نصب PHP روی یک سیستم Linux میتوانید این چکلیست را دنبال کنید:
☐ تشخیص توزیع Linux
☐ بررسی نسخه سیستمعامل
☐ شناسایی Package Manager
☐ بهروزرسانی Repository
☐ نصب PHP
☐ بررسی php -v
☐ بررسی which php
☐ بررسی php --ini
☐ نصب Extensionهای مورد نیاز
☐ بررسی php -m
☐ نصب PHP-FPM در صورت نیاز
☐ بررسی Service
☐ نصب Composer
☐ تنظیم Web Server
☐ تنظیم Database
☐ تست پروژه
# جمعبندی
در این آموزش با نحوه نصب PHP در Linux آشنا شدیم.
مهمترین نکته این است که روش نصب PHP به توزیع Linux بستگی دارد.
در خانواده Debian مانند Ubuntu و Debian معمولاً از:
apt
استفاده میشود و در توزیعهایی مانند AlmaLinux، Rocky Linux و Fedora معمولاً با:
dnf
کار میکنیم.
بعد از نصب PHP نیز باید نسخه PHP، Extensionها، Configuration و در پروژههای Web، PHP-FPM را بررسی کنیم.
اگر هدف شما اجرای Laravel، WordPress یا یک CMS اختصاصی روی Linux است، نصب PHP تنها بخشی از فرآیند آمادهسازی سرور خواهد بود.
# سوالات متداول
چگونه PHP را در Linux نصب کنیم؟
ابتدا توزیع Linux خود را با cat /etc/os-release شناسایی کنید. در Ubuntu و Debian معمولاً از apt و در توزیعهای مبتنی بر RHEL مانند AlmaLinux و Rocky Linux از dnf برای نصب PHP استفاده میشود.
چگونه نسخه PHP در Linux را ببینیم؟
دستور زیر را اجرا کنید:
php -v
چگونه PHP نصبشده را پیدا کنیم؟
میتوانید از دستور زیر استفاده کنید:
which php
چگونه Extensionهای PHP را ببینیم؟
دستور زیر Extensionهای فعال PHP را نمایش میدهد:
php -m
PHP-FPM چیست؟
PHP-FPM یک Process Manager برای اجرای PHP از طریق FastCGI است و در معماریهای Web Server مانند Nginx و PHP-FPM کاربرد زیادی دارد.
آیا برای نصب PHP به Web Server نیاز داریم؟
خیر. برای اجرای PHP از طریق CLI نیازی به Web Server ندارید. اما برای اجرای یک وبسایت PHP باید PHP را در کنار Web Server مناسب پیکربندی کنید.
آیا میتوان چند نسخه PHP در Linux نصب کرد؟
بله، امکان استفاده از چند نسخه PHP وجود دارد؛ اما باید نسخه CLI، PHP-FPM، Web Server و Dependencyهای پروژه را بهدرستی مدیریت کنید.
آیا نصب PHP در Ubuntu با سایر Linuxها متفاوت است؟
بله. Ubuntu و Debian معمولاً از APT استفاده میکنند، در حالی که توزیعهای مبتنی بر RHEL مانند AlmaLinux و Rocky Linux از DNF استفاده میکنند.
برای Laravel روی Linux چه چیزهایی لازم است؟
بسته به نسخه Laravel، معمولاً PHP، Extensionهای مورد نیاز، Composer، Database و Web Server لازم است. در محیطهای رایج Server ممکن است PHP-FPM نیز استفاده شود.
آیا PHP Development Server برای Production مناسب است؟
خیر. Development Server داخلی PHP برای توسعه و آزمایش مناسب است و برای اجرای Production یک وبسایت بهتر است از معماری مناسب Web Server و PHP-FPM یا روش متناسب با زیرساخت استفاده شود.
# مقالات مرتبط
برای ادامه مسیر یادگیری PHP در CMS نویس:
- PHP چیست و چه کاربردی دارد؟
- آموزش PHP از صفر
- نصب PHP در ویندوز
- نصب PHP در Ubuntu
- نصب PHP با XAMPP
- نصب PHP با Laragon
- ساختار Syntax در PHP
- متغیرها در PHP
- انواع داده در PHP
- شرطها در PHP
- حلقهها در PHP
- توابع در PHP
- آرایهها در PHP
- Composer چیست؟
- OOP در PHP
- PHP و MySQL
- Laravel چیست؟





