---
title: "Cara Menjalankan Banyak Versi PHP di Satu Server"
description: "Pasang beberapa versi PHP-FPM berdampingan di Ubuntu atau Debian, lalu atur tiap website di Nginx memakai versi PHP yang berbeda tanpa saling ganggu."
url: "https://nivelva.com/insight/cara-menjalankan-banyak-versi-php-satu-server"
category: "Server \u0026 Infrastruktur"
tags: ["php","php-fpm","nginx","ubuntu","debian"]
author: "Theresia Candiawan"
published: "2026-11-07T06:24:00+07:00"
updated: "2026-11-07T06:24:00+07:00"
language: "id"
publisher: "Nivelva (https://nivelva.com)"
---

# Cara Menjalankan Banyak Versi PHP di Satu Server

> **Jawaban singkat:** Satu server bisa menjalankan beberapa versi PHP sekaligus dengan PHP-FPM. Setiap versi berjalan sebagai layanan terpisah dengan socket sendiri, lalu tiap website di Nginx diarahkan ke socket versi yang dibutuhkannya.

Bisa. Satu server Linux bisa menjalankan PHP 8.2, 8.3, dan 8.4 sekaligus, dan setiap website memakai versi yang cocok untuknya. Kuncinya adalah **PHP-FPM**: setiap versi berjalan sebagai layanan sendiri dengan socket sendiri, lalu web server tinggal diarahkan ke socket yang tepat.

Kenapa ini penting? Karena aplikasi jarang bergerak serempak. Toko online lama mungkin belum siap pindah dari PHP 8.2, sementara aplikasi Laravel baru justru meminta PHP 8.3 ke atas. Tanpa banyak versi, kamu terpaksa memilih: menyewa server kedua, atau memaksa aplikasi lama naik versi sebelum siap.

## Kenapa satu server perlu lebih dari satu versi PHP?

Alasan paling umum adalah masa transisi. Setiap cabang PHP punya umur dukungan yang jelas. Per 6 November 2026, halaman resmi php.net mencatat cabang yang masih didukung:

| Versi | Rilis awal | Dukungan keamanan sampai |
|:--|:--|:--|
| PHP 8.2 | 8 Desember 2022 | 31 Desember 2026 |
| PHP 8.3 | 23 November 2023 | 31 Desember 2027 |
| PHP 8.4 | 21 November 2024 | 31 Desember 2028 |
| PHP 8.5 | 20 November 2025 | 31 Desember 2029 |

Artinya, website yang masih di PHP 8.2 perlu dipindah sebelum akhir 2026. Dengan banyak versi di satu server, kamu bisa memasang PHP 8.4 di samping 8.2, menguji salinan website di versi baru, lalu memindahkannya hanya dengan mengubah satu baris konfigurasi. Kalau ada yang rusak, kembali ke versi lama juga semudah itu.

Alasan lain:

- **Beberapa klien di satu VPS**, masing-masing dengan aplikasi berbeda umur.
- **Plugin atau modul lama** yang belum mendukung versi terbaru.
- **Uji kompatibilitas** sebelum upgrade besar.

## Dari mana mendapatkan banyak versi PHP?

Repositori bawaan Ubuntu dan Debian hanya menyediakan satu versi PHP per rilis OS. Ubuntu 24.04 misalnya membawa PHP 8.3. Untuk versi lain, sumber yang paling banyak dipakai adalah paket dari Ondřej Surý, pengelola paket PHP di Debian:

- **Ubuntu:** PPA `ppa:ondrej/php` di Launchpad.
- **Debian:** repositori `packages.sury.org`, petunjuknya ada di deb.sury.org.

Paket dari sumber ini diberi nama per versi (`php8.2-fpm`, `php8.4-fpm`, dan seterusnya), sehingga bisa dipasang berdampingan tanpa bentrok.

## Langkah memasang beberapa versi PHP-FPM di Ubuntu

Contoh berikut untuk Ubuntu 24.04 dengan Nginx yang sudah terpasang. Kalau belum, ikuti dulu panduan [memasang Nginx, MariaDB, dan PHP di Ubuntu 24.04](https://nivelva.com/insight/cara-pasang-nginx-mariadb-php-ubuntu-24-04).

1. Tambahkan PPA: `sudo apt install software-properties-common` lalu `sudo add-apt-repository ppa:ondrej/php` dan `sudo apt update`.
2. Pasang versi yang dibutuhkan beserta ekstensinya, misalnya `sudo apt install php8.2-fpm php8.2-mysql php8.2-mbstring php8.2-xml php8.2-curl`.
3. Ulangi untuk versi lain: `sudo apt install php8.4-fpm php8.4-mysql php8.4-mbstring php8.4-xml php8.4-curl`.
4. Pastikan semua layanan aktif: `systemctl status php8.2-fpm php8.3-fpm php8.4-fpm`.
5. Cek socket yang tersedia: `ls /run/php/`. Kamu akan melihat file seperti `php8.2-fpm.sock` dan `php8.4-fpm.sock`.

Di Debian, langkahnya sama setelah repositori `packages.sury.org` ditambahkan sesuai petunjuk resmi di deb.sury.org. Jangan memakai PPA Ubuntu di Debian.

## Bagaimana mengarahkan tiap website ke versi PHP tertentu?

Di Nginx, versi PHP ditentukan oleh baris `fastcgi_pass` di server block masing-masing website. Contoh website lama yang tetap di PHP 8.2:

```nginx
server {
    listen 80;
    server_name toko-lama.example;
    root /var/www/toko-lama;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }
}
```

Website lain cukup memakai `unix:/run/php/php8.4-fpm.sock`. Setelah mengubah konfigurasi, jalankan `sudo nginx -t` untuk memeriksa sintaks, lalu `sudo systemctl reload nginx`. Kalau kamu belum terbiasa memisahkan konfigurasi per domain, baca panduan [server block Nginx untuk banyak domain](https://nivelva.com/insight/cara-menyiapkan-server-block-nginx-banyak-domain).

Untuk Apache, prinsipnya sama: pakai PHP-FPM lewat `mod_proxy_fcgi`, lalu di VirtualHost arahkan `SetHandler` ke socket versi yang diinginkan, misalnya `"proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"`.

> **Pisahkan pool per website:**
>
> Untuk keamanan, buat pool PHP-FPM sendiri per website di `/etc/php/8.x/fpm/pool.d/`, dengan user Linux dan socket berbeda. Kalau satu website dibobol, penyerang tidak otomatis bisa membaca file website lain.

## Bagaimana dengan PHP di terminal (CLI)?

Perintah `php` di terminal hanya menunjuk ke satu versi. Ini yang sering membingungkan: website sudah PHP 8.4, tapi `composer` atau cron masih jalan di versi lain.

Ada dua cara mengatasinya:

- **Panggil versi secara langsung**, misalnya `php8.4 artisan migrate` atau `php8.2 /usr/local/bin/composer install`. Cara ini paling aman untuk cron karena tidak bergantung pada pengaturan global.
- **Ganti versi bawaan** dengan `sudo update-alternatives --config php`, lalu pilih versi dari daftar. Perubahan ini berlaku untuk seluruh server.

Cek hasilnya dengan `php -v`. Ingat juga bahwa setiap versi punya `php.ini` sendiri, untuk FPM di `/etc/php/8.x/fpm/php.ini` dan untuk CLI di `/etc/php/8.x/cli/php.ini`. Mengubah `upload_max_filesize` di satu versi tidak berpengaruh ke versi lain.

## Apa yang sering terlewat?

Beberapa hal kecil yang biasanya baru ketahuan saat website error:

- **Ekstensi harus dipasang per versi.** `php8.2-gd` tidak berlaku untuk PHP 8.4. Bandingkan dengan `php8.2 -m` dan `php8.4 -m`.
- **RAM bertambah.** Setiap layanan FPM menyimpan proses sendiri. Di VPS kecil, atur `pm = ondemand` di pool yang jarang dipakai, dan hentikan versi yang tidak lagi dipakai dengan `sudo systemctl disable --now php8.x-fpm`.
- **Pembaruan keamanan.** Paket dari PPA ikut diperbarui lewat `apt upgrade`, tapi versi yang sudah lewat masa dukungannya di php.net tidak lagi mendapat perbaikan dari pengembang PHP. Jadikan multi versi sebagai jembatan, bukan tempat tinggal permanen.
- **Panel hosting.** Kalau kamu memakai cPanel atau panel lain, pemilihan versi biasanya sudah tersedia per domain. Caranya dibahas di [cara mengganti versi PHP di hosting dengan aman](https://nivelva.com/insight/cara-mengganti-versi-php-hosting-aman).

## Pertanyaan yang sering diajukan

### Apakah menjalankan banyak versi PHP membuat server lambat?

Tidak secara langsung. Yang bertambah adalah pemakaian RAM karena tiap versi FPM punya proses sendiri. Website tetap dilayani oleh satu versi saja.

### Bisakah dua website memakai versi PHP yang sama tapi pengaturan berbeda?

Bisa. Buat dua pool FPM terpisah di versi yang sama, masing-masing dengan socket dan nilai `php_admin_value` sendiri.

### Bagaimana memastikan website benar memakai versi yang dimaksud?

Buat file sementara berisi `<?php echo PHP_VERSION;` di folder website, buka di browser, lalu hapus file itu setelah dicek.

## Sumber

- <https://www.php.net/supported-versions.php>
- <https://launchpad.net/~ondrej/+archive/ubuntu/php>
- <https://deb.sury.org/>

---

Diterbitkan oleh Nivelva Insight (https://nivelva.com/insight/). Artikel ini: https://nivelva.com/insight/cara-menjalankan-banyak-versi-php-satu-server
Kontak Nivelva: WhatsApp https://wa.me/6285111245007, email hello@nivelva.com
