نصب PHP و PHP-FPM در اوبونتو

https://negarnovin.com/docs/how-to-install-php-and-php-fpm-on-ubuntu/ · آخرین به‌روزرسانی: · نویسنده: نگارنوین · سایت: نگارنوین · 13 دقیقه مطالعه

📌 خلاصه (TL;DR)

نصب PHP و PHP-FPM در اوبونتو How to Install PHP and PHP-FPM on Ubuntu چگونه PHP و PHP-FPM را در اوبونتو

📊 حقایق کلیدی

URLhttps://negarnovin.com/docs/how-to-install-php-and-php-fpm-on-ubuntu/
تاریخ انتشار2025-09-09
آخرین به‌روزرسانی2025-09-09
نویسندهنگارنوین
ناشرنگارنوین
زبانفارسی (fa-IR)
تعداد کلمات2572
نوع صفحهبرگه

🛒 محصول و قیمت

نام محصولنحوه نصب PHP و PHP-FPM در اوبونتو 24.04
قیمت29508 USD
موجودیInStock
برندنگارنوین
دسته‌بندیserver
SKUVPS-29507

📄 محتوای کامل

نحوه نصب PHP و PHP-FPM در اوبونتو ۲۴.۰۴ یاد بگیرید که چگونه PHP و PHP-FPM را در اوبونتو ۲۴.۰۴ نصب کنید تا یک محیط برنامه وب پویا راه‌اندازی شود.

مقدمه

PHP (پیش‌پردازنده فرامتن) یک زبان برنامه‌نویسی سمت سرور محبوب است که امکان توسعه برنامه‌های وب پویا را فراهم می‌کند. PHP-FPM (مدیر فرآیند FastCGI) ویژگی‌های اضافی و عملکرد بهبود یافته‌ای را نسبت به روش‌های سنتی مبتنی بر CGI ارائه می‌دهد تا امکان اتصال PHP با سایر برنامه‌ها مانند سرورهای وب را برای پردازش درخواست‌های برنامه‌های وب پویا فراهم کند.

این مقاله نحوه نصب PHP و PHP-FPM را در اوبونتو ۲۴.۰۴ و راه‌اندازی یک محیط PHP کارآمد برای ایجاد برنامه‌های وب پویا روی سرور توضیح می‌دهد.

پیش‌ نیازها

قبل از شروع:

  • یک سرور مجازی ubuntu
  • دسترسی SSH به سرور
  • دسترسی یوزر اصلی root
  • بروز رسانی سرور

نصب پی اچ پی

PHP در مخازن پیش‌فرض APT در اوبونتو ۲۴.۰۴ به همراه آخرین اطلاعات بسته موجود است. برای به‌روزرسانی بسته‌های سرور و نصب آخرین نسخه PHP روی سرور خود، مراحل زیر را دنبال کنید.

  1. فهرست بسته‌های سرور را به‌روزرسانی کنید. کنسولکپی
    $ sudo apt update
  2. پی اچ پی را نصب کنید. کنسولکپی
    $ sudo apt install php -y
  3. نسخه PHP نصب شده روی سرور خود را مشاهده کنید. کنسولکپی
    $ php -v

    خروجی شما باید مشابه تصویر زیر باشد:

    PHP 8.3.6 (cli) (built: Apr 15 2024 19:21:47) (NTS)
    Copyright (c) The PHP Group
    Zend Engine v4.3.6, Copyright (c) Zend Technologies
        with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies

نصب افزونه‌های PHP

افزونه‌های PHP قابلیت‌های اضافی PHP مانند ادغام پایگاه داده، فرمت‌های فایل اضافی و رمزگذاری مورد نیاز اکثر برنامه‌ها و چارچوب‌های PHP را روی سرور شما فعال می‌کنند. برای نصب افزونه‌های رایج PHP و فعال کردن قابلیت‌های پردازش اضافی روی سرور خود، مراحل زیر را دنبال کنید.

  1. افزونه‌های رایج PHP را نصب کنید. کنسولکپی
    $ sudo apt install -y  php-mysql php-mbstring php-bcmath php-zip php-gd php-curl php-xml

    دستور بالا افزونه‌های PHP زیر را نصب می‌کند:

    • php-mysql : برنامه‌های PHP را قادر می‌سازد تا به پایگاه‌های داده MySQL متصل شده و با آنها تعامل داشته باشند.
    • php-mbstring : فرمت‌های متنی UTF8 را فعال می‌کند.
    • php-bcmath : قابلیت‌های ریاضی با دقت دلخواه را فعال می‌کند.
    • php-zip : پشتیبانی از آرشیوهای ZIP را در برنامه‌های PHP فعال می‌کند.
    • php-gd : قابلیت‌های پردازش تصویر PHP را فعال می‌کند.
    • php-curl : انتقال URL و همگام‌سازی با برنامه‌های PHP را امکان‌پذیر می‌کند.
    • php-xml : پشتیبانی از XML را در برنامه‌های PHP فعال می‌کند.
    • دستور زیر را اجرا کنید تا تمام افزونه‌های PHP که می‌توانید بر اساس نسخه PHP سرور خود نصب کنید، فهرست شوند.
    کنسولکپی
    $ sudo apt-cache search php | grep "^php8.3"
  2. مشاهده تمام افزونه‌های PHP نصب شده روی سرور شما. کنسولکپی
    $ php -m

    خروجی شما باید مانند تصویر زیر باشد:

    [PHP Modules]
    bcmath
    calendar
    Core
    ctype
    curl
    date
    dom
    exif
    FFI
    .....
    
    [Zend Modules]
    Zend OPcache

نصب و پیکربندی PHP-FPM

PHP-FPM در مخازن پیش‌فرض APT موجود است و با آخرین نسخه بسته PHP نصب شده روی سرور شما مطابقت دارد. برای نصب PHP-FPM و فعال کردن سرویس برای شروع خودکار در زمان بوت، مراحل زیر را دنبال کنید.

  1. PHP-FPM را نصب کنید. کنسولکپی
    $ sudo apt install php-fpm -y
  2. بسته به نسخه PHP خود، نسخه PHP-FPM نصب شده روی سرور خود را مشاهده کنید. به عنوان مثال، PHP 8.3. کنسولکپی
    $ php-fpm8.3 -v

    خروجی:

    PHP 8.3.6 (fpm-fcgi) (built: Apr 15 2024 19:21:47)
    Copyright (c) The PHP Group
    Zend Engine v4.3.6, Copyright (c) Zend Technologies
        with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies
  3. /etc/php/8.3بسته به نسخه PHP نصب شده، تمام فایل‌های موجود در دایرکتوری را فهرست کنید . سپس، تأیید کنید که fpmدایرکتوری در دسترس است. کنسولکپی
    $ ls /etc/php/8.3/

    خروجی:

    apache2  cli  fpm  mods-available

    بر اساس خروجی فوق، PHP-FPM fpmو پیکربندی‌های لازم که نحوه پردازش درخواست‌ها توسط PHP را روی سرور شما کنترل می‌کنند، در دسترس هستند.

  4. به دایرکتوری پیکربندی‌های استخر PHP-FPM بروید /etc/php/8.3/fpm/pool.d/. کنسولکپی
    $ cd /etc/php/8.3/fpm/pool.d/
  5. پیکربندی پیش‌فرض PHP-FPM pool را /etc/php/8.3/fpm/pool.d/www.confبا استفاده از یک ویرایشگر متن مانند Nano باز کنید. کنسولکپی
    $ sudo nano www.conf
    • [www]گزینه‌ای برای تأیید نام استخر PHP-FPM خود پیدا کنید .
    اینیکپی
    [www]
    • userگزینه‌های و groupرا برای تأیید اینکه PHP-FPM به عنوان کاربر اجرا می‌شود، پیدا کنید . هنگام استفاده از یک وب سرور، تأیید کنید که PHP-FPM به عنوان www-dataکاربر اجرا می‌شود.
    اینیکپی
    user = www-data
    group = www-data
    • دستورالعمل را پیدا کنید listenو مسیر سوکت را برای دسترسی به سرویس PHP-FPM روی سرور خود تأیید کنید.
    اینیکپی
    listen = /run/php/php8.3-fpm.sock
    • پیکربندی زیر را برای مطابقت با نیازهای پردازش PHP-FPM خود در سرور تغییر دهید.
    اینیکپی
    pm = dynamic
    pm.max_children = 5
    pm.start_servers = 2
    pm.min_spare_servers = 1
    pm.max_spare_servers = 3
    • pm: مدیر فرآیند PHP-FPM را با هر یک از گزینه‌های زیر فعال می‌کند:
      • static: با استفاده از تعداد ثابتی از فرآیندهای کارگر را تنظیم می‌کند pm.max_children.
      • dynamic: تعداد متغیری از فرآیندهای کارگر را بر اساس تقاضا فعال می‌کند.
      • ondemandفعال کردن فعال‌سازی فرآیندهای کارگر فقط در صورت نیاز و غیرفعال کردن شروع خودکار.
    • pm.max_childrenحداکثر تعداد فرآیندهای فرزندی که باید هنگام شروع کنترل استفاده از حافظه سرور توسط PHP-FPM ایجاد شوند را تنظیم می‌کند.
    • pm.start_serversتعداد فرآیندهای فرزندی که هنگام شروع PHP-FPM ایجاد می‌شوند را تنظیم می‌کند.
    • pm.min_spare_servers: حداقل تعداد فرآیندهای غیرفعال مجاز روی سرور را تنظیم می‌کند.
    • pm.max_spare_servers: حداکثر تعداد فرآیندهای غیرفعال (idle processes) برای اجرا روی سرور را تنظیم می‌کند.
    • pm.process_idle_timeout: حداکثر تعداد ثانیه‌ها پس از انتظار و توقف فرآیندهای غیرفعال را تنظیم می‌کند.
    • access.logثبت تمام درخواست‌های اتصال به استخر PHP-FPM را فعال می‌کند.
    • slowlog: مسیر ثبت درخواست‌های کند را تنظیم می‌کند.
    • request_slowlog_timeout: حداکثر زمان انتظار برای یک درخواست را قبل از اینکه به عنوان کند علامت گذاری شود، تنظیم می‌کند.

    فایل را ذخیره کنید و ببندید.

  6. برای اعمال تغییرات پیکربندی، PHP-FPM را مجدداً راه‌اندازی کنید. کنسولکپی
    $ sudo systemctl restart php8.3-fpm

تست PHP و PHP-FPM

PHP محتوای برنامه‌های وب پویا را پردازش می‌کند در حالی که PHP-FPM اتصال به PHP را با منابع لازم مدیریت می‌کند تا پردازش سریع درخواست‌ها روی سرور شما امکان‌پذیر شود. مراحل زیر را برای آزمایش PHP و PHP-FPM با ایجاد یک برنامه PHP نمونه برای ارائه با استفاده از وب سرور Nginx دنبال کنید.

  1. به دایرکتوری خانگی کاربر خود بروید. کنسولکپی
    $ cd
  2. یک فایل نمونه برنامه PHP جدید ایجاد کنید sample.php. کنسولکپی
    $ nano sample.php
  3. محتویات زیر را به فایل اضافه کنید. پی اچ پیکپی
    <?php
    
    echo "Greetings from Negarnovin! PHP is working correctly on this server";
    
    ?>

    فایل را ذخیره کنید و ببندید.

  4. برنامه را با استفاده از ابزار PHP CLI اجرا کنید. کنسولکپی
    $ php sample.php

    خروجی:

    Greetings from Negarnovin! PHP is working correctly on this server

    بر اساس خروجی فوق، PHP فایل‌های برنامه وب پویا را روی سرور شما به درستی پردازش می‌کند.

  5. برای آزمایش دسترسی به سرویس PHP-FPM، برنامه وب سرور Nginx را نصب کنید. کنسولکپی
    $ sudo apt install nginx -y
  6. از پیکربندی پیش‌فرض میزبان مجازی Nginx نسخه پشتیبان تهیه کنید. کنسولکپی
    $ sudo mv /etc/nginx/sites-available/default  /etc/nginx/sites-available/default.BAK
  7. یک فایل پیکربندی جدید defaultNginx ایجاد کنید. کنسولکپی
    $ sudo nano /etc/nginx/sites-available/default
  8. تنظیمات زیر را به فایل اضافه کنید. انجینکسکپی
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
    
        root  /var/www/html/;
        index index.html index.php index.nginx-debian.html;
    
        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/run/php/php-fpm.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
    }

    فایل را ذخیره کنید و ببندید.

    پیکربندی Nginx در بالا با استفاده از تمام آدرس‌های IP سرور روی پورت پیش‌فرض HTTP به درخواست‌های اتصال گوش می‌دهد 80و فایل‌ها را از /var/www/htmlدایرکتوری ریشه وب تحویل می‌دهد. Nginx تمام درخواست‌هایی را که با .phpپسوند فایل مطابقت دارند، به مسیر سوکت PHP-FPM /run/php/php-fpm.sockبرای پردازش با استفاده از FastCGI ارسال می‌کند تا به سرویس نسخه پیش‌فرض PHP-FPM متصل شود.

  9. پیکربندی Nginx را برای خطاها آزمایش کنید. کنسولکپی
    $ sudo nginx -t

    خروجی:

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
  10. یک فایل نمونه برنامه PHP جدید test.phpدر دایرکتوری ریشه وب /var/www/htmlمشخص شده در پیکربندی Nginx خود ایجاد کنید. کنسولکپی
    $ sudo nano /var/www/html/test.php
  11. محتویات زیر را به فایل اضافه کنید. پی اچ پیکپی
    <?php 
    
    phpinfo();
    
    ?>

    فایل را ذخیره کنید و ببندید.

    برنامه PHP فوق، اطلاعات نسخه PHP موجود روی سرور شما را هنگام دسترسی در یک مرورگر وب نمایش می‌دهد.

  12. سرویسی را که از قبل با PHP نصب شده است، متوقف کنید apache2تا پورت HTTP را از حالت اتصال خارج کنید 80. کنسولکپی
    $ sudo systemctl stop apache2
  13. 80از طریق ابزار پیش‌فرض فایروال UFW، اتصال به پورت HTTP را مجاز کنید . کنسولکپی
    $ sudo ufw allow 80
  14. برای اعمال تغییرات پیکربندی، Nginx را مجدداً راه‌اندازی کنید. کنسولکپی
    $ sudo systemctl restart nginx
  15. با استفاده از یک مرورگر وب مانند کروم، به آدرس IP سرور خود دسترسی پیدا کنید و /test.phpمسیر URL را برای دسترسی به برنامه PHP خود بارگذاری کنید.
    http://SERVER-IP/test.php

نصب چندین نسخه PHP

پروژه‌های چندگانه بسته به نیاز شما به نسخه‌های خاص PHP نیاز دارند. PHP از چندین نسخه نصب شده پشتیبانی می‌کند که می‌توانید به آنها مراجعه کرده و با نسخه PHP-FPM مرتبط از آنها استفاده کنید. با این حال، مخازن پیش‌فرض اوبونتو ۲۴.۰۴ شامل نسخه‌های محدودی از PHP هستند. یک مخزن انجمن قابل اعتماد مانند مخزن ppa:ondrej/phpنصب نسخه‌های قدیمی‌تر یا جدیدتر PHP را روی سرور خود اضافه کنید، زیرا PHP 7.4ممکن است در مخازن پیش‌فرض موجود نباشد. در مراحل زیر، ppa:ondrej/phpمنبع بسته را به مخازن APT خود اضافه کنید و چندین نسخه PHP را روی سرور خود نصب کنید.

  1. ppa:ondrej/phpPPA را به مخازن APT خود اضافه کنید . کنسولکپی
    $ sudo add-apt-repository -y ppa:ondrej/php
  2. یک نسخه خاص PHP و PHP-FPM را روی سرور خود نصب کنید. برای مثال، PHP 7.4. کنسولکپی
    $ sudo apt install -y php7.4 php7.4-fpm
  3. اطلاعات نسخه PHP نصب شده روی سرور خود را مشاهده کنید. کنسولکپی
    $ php7.4 -v

    خروجی:

    PHP 7.4.33 (cli) (built: Jun  6 2024 16:49:34) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v3.4.0, Copyright (c) Zend Technologies
        with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
  4. وضعیت سرویس PHP-FPM نسخه PHP را مشاهده کنید و تأیید کنید که در حال اجرا است. برای مثال، php7.4-fpm. کنسولکپی
    $ sudo systemctl status php7.4-fpm

    خروجی:

    ● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
         Loaded: loaded (/usr/lib/systemd/system/php7.4-fpm.service; enabled; preset: enabled)
         Active: active (running) since Sun 2024-06-30 00:20:23 UTC; 11min ago
           Docs: man:php-fpm7.4(8)
        Process: 23012 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=exited, status=0/SUC>
       Main PID: 23008 (php-fpm7.4)
         Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
          Tasks: 3 (limit: 2269)
         Memory: 7.0M (peak: 8.0M)
            CPU: 104ms
         CGroup: /system.slice/php7.4-fpm.service
                 ├─23008 "php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)"
                 ├─23009 "php-fpm: pool www"
                 └─23011 "php-fpm: pool www"
  5. یک دایرکتوری ریشه وب جدید برای ذخیره فایل‌های مختلف برنامه PHP ایجاد کنید. به عنوان مثال، /var/www/php74-site. کنسولکپی
    $ sudo mkdir -p /var/www/php74-site
  6. test.phpفایل برنامه PHP که قبلاً ایجاد کرده‌اید را در دایرکتوری با نام index.php. کپی کنید . کنسولکپی
    $ sudo cp /var/www/html/test.php /var/www/php74-site/index.php
  7. برای آزمایش دسترسی به نسخه PHP-FPM نصب شده، یک پیکربندی میزبان مجازی Nginx جدید ایجاد کنید. به عنوان مثال، php74-site.conf. کنسولکپی
    $ sudo nano /etc/nginx/sites-available/php74-site.conf
  8. تنظیمات زیر را به فایل اضافه کنید. انجینکسکپی
    server {
        listen 9000;
        listen [::]:9000;
    
        root  /var/www/php74-site;
    
        index index.php index.html;
    
        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
    }

    فایل را ذخیره کنید و ببندید.

    پیکربندی Nginx فوق، اتصالات ورودی را روی پورت TCP سفارشی گوش می‌دهد 9000و فایل‌ها را از دایرکتوری ریشه وب شما تحویل می‌دهد /var/www/php74-site. این indexدستورالعمل، فایل‌های پیش‌فرض برنامه وب را برای ارائه به همه درخواست‌ها به طور پیش‌فرض مشخص می‌کند. سپس، Nginx تمام درخواست‌های فایل PHP را با استفاده از مسیر سوکت پیش‌فرض pool برای پردازش، .phpبه سرویس PHP-FPM نسخه PHP شما ارسال می‌کند.php7.4-fpm/run/php/php7.4-fpm.sock

  9. فایل پیکربندی Nginx را به /etc/nginx/sites-enabledفعال کردن میزبان مجازی جدید پیوند دهید. کنسولکپی
    $ sudo ln -s /etc/nginx/sites-available/php74-site.conf /etc/nginx/sites-enabled/
  10. پیکربندی Nginx را برای خطاها آزمایش کنید. کنسولکپی
    $ sudo nginx -t

    خروجی:

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
  11. 9000اتصالات شبکه را از طریق فایروال به پورت TCP میزبان مجازی مجاز کنید . کنسولکپی
    $ sudo ufw allow 9000/tcp
  12. برای اعمال تغییرات، قوانین فایروال را مجدداً بارگذاری کنید. کنسولکپی
    $ sudo ufw reload
  13. برای اعمال تغییرات پیکربندی، Nginx را مجدداً راه‌اندازی کنید. کنسولکپی
    $ sudo systemctl restart nginx
  14. برای باز کردن فایل برنامه وب 9000خود، در یک پنجره مرورگر وب جدید، به IP سرور خود در پورت مربوطه دسترسی پیدا کنید .index.php
    http://SERVER-IP:9000

    تأیید کنید که اطلاعات نسخه PHP ۷.۴ و ماژول‌های شما در مرورگر وب شما نمایش داده می‌شوند.

    • /test.phpبا استفاده از IP سرور خود در یک تب جدید مرورگر وب، به مسیر URL دسترسی پیدا کنید تا تأیید کنید که 8.3نسخه پیش‌فرض PHP شما درخواست‌ها را بر اساس پیکربندی Nginx شما به طور جداگانه پردازش می‌کند.

نتیجه‌ گیری

شما PHP و PHP-FPM را روی سرور اوبونتو ۲۴.۰۴ خود نصب کرده‌اید. سپس، چندین نسخه PHP را برای اجرای پروژه‌های مختلف برنامه‌های وب بسته به ویژگی‌ها و نیازهای نسخه خاص خود نصب کرده‌اید. می‌توانید PHP و PHP-FPM را با چندین برنامه مانند Nginx ادغام کنید تا درخواست‌های برنامه‌های وب پویا را به طور ایمن روی سرور خود پردازش کنید. برای اطلاعات بیشتر، به مستندات رسمی PHP مراجعه کنید .

🖼️ تصاویر

🏷️ کلمات کلیدی

نصب PHP و PHP-FPM در اوبونتو، نحوه نصب PHP و PHP-FPM در اوبونتو 24.04، مقدمه، پیش‌ نیازها، خرید نصب PHP و PHP-FPM در اوبونتو، قیمت نصب PHP و PHP-FPM در اوبونتو، بهترین نصب PHP و PHP-FPM در اوبونتو

🧩 JSON-LD

{"@context":"https://schema.org","@type":"WebPage","headline":"نصب PHP و PHP-FPM در اوبونتو","url":"https://negarnovin.com/docs/how-to-install-php-and-php-fpm-on-ubuntu/","datePublished":"2025-09-09T10:44:36+03:30","dateModified":"2025-09-09T10:47:32+03:30","author":{"@type":"Person","name":"نگارنوین"},"publisher":{"@type":"Organization","name":"نگارنوین"},"inLanguage":"fa-IR","description":"نصب PHP و PHP-FPM در اوبونتو How to Install PHP and PHP-FPM on Ubuntu چگونه PHP و PHP-FPM را در اوبونتو"}