Instalasi #
PHP adalah bahasa yang berjalan di sisi server — artinya, kamu membutuhkan interpreter PHP yang terinstal di mesin kamu sebelum bisa menjalankan satu baris kode pun. Tidak seperti JavaScript yang sudah tersedia di browser, PHP harus diinstal secara eksplisit dan dikonfigurasi agar bisa berkomunikasi dengan web server. Proses ini terdengar rumit, tapi sebenarnya punya beberapa jalur yang masing-masing sesuai dengan situasi berbeda: pakai bundle all-in-one seperti XAMPP untuk yang ingin langsung jalan, atau pakai package manager sistem operasi untuk setup yang lebih bersih dan mudah dikelola jangka panjang. Artikel ini memandu kamu melewati setiap opsi secara lengkap — mulai dari Windows, macOS, hingga Linux — beserta cara memverifikasi bahwa instalasi berjalan benar.
Cara Kerja PHP di Mesin Lokal #
Sebelum menginstal, penting untuk memahami bagaimana PHP bekerja agar kamu bisa memilih setup yang tepat.
PHP pada dasarnya adalah sebuah interpreter — program yang membaca file .php kamu, mengeksekusinya, dan menghasilkan output. Ada dua mode penggunaan utama:
flowchart TD
A[File .php] --> B{Mode Eksekusi}
B -- "Web Request" --> C[Web Server\nApache / Nginx]
B -- "Terminal" --> D[PHP CLI\nphp script.php]
C --> E[PHP Module / PHP-FPM]
E --> F[Interpreter PHP]
D --> F
F --> G[Output HTML / JSON / Teks]
G -- "Web" --> H[Browser]
G -- "CLI" --> I[Terminal]Mode web — PHP bekerja bersama web server (Apache atau Nginx). Saat browser meminta halaman .php, web server meneruskan request ke interpreter PHP, lalu mengembalikan hasilnya sebagai HTML. Inilah mode yang dipakai di produksi.
Mode CLI — PHP bisa dijalankan langsung dari terminal seperti Python atau Node.js. Berguna untuk menjalankan script, cron job, atau sekedar mencoba sintaks saat belajar.
Untuk pengembangan lokal, kamu perlu keduanya. Bundle seperti XAMPP menyediakan Apache + PHP + MySQL sekaligus. Instalasi via package manager memberi kamu lebih banyak kontrol atas masing-masing komponen.
Memilih Metode Instalasi yang Tepat #
Tidak semua setup cocok untuk semua situasi. Tabel berikut membantu kamu memilih:
| Metode | OS | Cocok Untuk | Kelebihan | Kekurangan |
|---|---|---|---|---|
| XAMPP | Windows, macOS, Linux | Pemula, prototyping cepat | Satu installer, langsung jalan | Sulit dikustomisasi, berat |
| WAMP | Windows | Pemula di Windows | GUI yang mudah | Khusus Windows |
| MAMP | macOS | Pemula di Mac | Antarmuka grafis | Versi gratis terbatas |
| Homebrew | macOS | Developer macOS | Ringan, mudah update | Butuh CLI |
| APT / DNF | Linux | Developer Linux | Native, cepat, ringan | Butuh konfigurasi manual |
| PHP Built-in Server | Semua | Testing lokal cepat | Tanpa instalasi tambahan | Tidak untuk produksi |
flowchart TD
A{Sistem Operasi?} -- Windows --> B{Pengalaman Level?}
A -- macOS --> C{Suka GUI?}
A -- Linux --> D[Gunakan APT / DNF]
B -- Pemula --> E[XAMPP]
B -- Menengah/Mahir --> F[Laragon atau WSL2 + APT]
C -- Ya --> G[MAMP]
C -- Tidak --> H[Homebrew]Jika kamu menggunakan Windows dan ingin environment yang mirip produksi Linux, pertimbangkan WSL2 (Windows Subsystem for Linux). Kamu bisa menginstal PHP via APT di dalam WSL2 dan mendapatkan pengalaman developer yang jauh lebih konsisten.
Instalasi di Windows #
Windows tidak menyertakan PHP secara default, sehingga kamu perlu menginstalnya secara manual. Ada dua opsi utama yang paling umum digunakan.
Menggunakan XAMPP #
XAMPP adalah bundle yang menyertakan Apache, MariaDB, PHP, dan Perl dalam satu installer. Ini adalah cara tercepat untuk memiliki lingkungan PHP yang berfungsi penuh di Windows.
Langkah 1 — Unduh installer:
Kunjungi apachefriends.org dan unduh versi XAMPP yang sesuai dengan versi PHP yang kamu butuhkan. Selalu pilih versi PHP 8.x untuk proyek baru.
Langkah 2 — Jalankan installer:
Jalankan file installer yang sudah diunduh. Windows mungkin menampilkan peringatan UAC — klik “Yes”. Saat muncul dialog pemilihan komponen, pastikan komponen berikut dicentang:
Components yang wajib dicentang:
✓ Apache
✓ PHP
✓ MySQL / MariaDB
✓ phpMyAdmin (opsional, tapi sangat berguna)
Komponen yang bisa diabaikan untuk pemula:
✗ FileZilla FTP Server
✗ Mercury Mail Server
✗ Tomcat
Langkah 3 — Pilih direktori instalasi:
Secara default XAMPP menginstal ke C:\xampp. Biarkan default ini kecuali ada alasan khusus — banyak tutorial dan dokumentasi mengasumsikan path ini.
Langkah 4 — Jalankan XAMPP Control Panel:
Setelah instalasi selesai, buka XAMPP Control Panel dan klik tombol Start di sebelah Apache. Jika berhasil, status Apache akan berubah menjadi hijau.
Langkah 5 — Verifikasi PHP:
Buka Command Prompt dan jalankan:
C:\xampp\php\php.exe -v
Atau jika sudah menambahkan PHP ke PATH sistem:
php -v
Output yang diharapkan:
PHP 8.3.x (cli) (built: ...)
Copyright (c) The PHP Group
Zend Engine v4.3.x
Menambahkan PHP ke PATH (Opsional tapi direkomendasikan):
Agar bisa menjalankan php dari direktori manapun di terminal, tambahkan path PHP ke environment variable sistem:
- Buka System Properties → Advanced → Environment Variables
- Di bagian System variables, cari variabel
Pathdan klik Edit - Klik New dan tambahkan
C:\xampp\php - Klik OK di semua dialog
- Buka terminal baru dan uji dengan
php -v
Menggunakan WAMP #
WAMP (Windows, Apache, MySQL, PHP) adalah alternatif XAMPP yang lebih ringan dan punya system tray icon yang praktis.
Langkah 1 — Unduh WAMP:
Kunjungi wampserver.com dan unduh versi 64-bit (kecuali sistem kamu memang 32-bit).
WAMP membutuhkan Visual C++ Redistributable tertentu. Jika instalasi gagal atau WAMP tidak mau start, unduh dan instal terlebih dahulu paket Visual C++ Redistributable 2019 dan 2022 dari situs resmi Microsoft.
Langkah 2 — Instal dan jalankan:
Jalankan installer, ikuti wizard, lalu WAMP akan menambahkan icon di system tray Windows. Klik kanan icon tersebut dan pilih Start All Services.
Langkah 3 — Verifikasi:
Buka browser dan akses http://localhost. Jika halaman welcome WAMP muncul, instalasi berhasil.
Instalasi di macOS #
macOS modern tidak lagi menyertakan PHP secara default sejak macOS Monterey. Ada dua cara menginstalnya: via Homebrew (direkomendasikan untuk developer) atau via MAMP (untuk yang lebih suka GUI).
Menggunakan Homebrew #
Homebrew adalah package manager de facto untuk macOS. Jika kamu belum memilikinya, ini adalah tools yang wajib ada di mesin developer macOS.
Langkah 1 — Instal Homebrew (jika belum ada):
Buka Terminal dan jalankan perintah berikut:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Proses ini membutuhkan koneksi internet dan akan meminta password administrator. Setelah selesai, ikuti instruksi di output untuk menambahkan Homebrew ke PATH kamu (terutama penting di Mac dengan chip Apple Silicon / M1/M2/M3).
Langkah 2 — Instal PHP:
brew install php
Homebrew akan menginstal versi PHP terbaru yang stabil beserta semua dependensinya. Jika kamu membutuhkan versi PHP spesifik (misalnya untuk proyek lama):
# Instal versi spesifik
brew install [email protected]
# Aktifkan versi yang diinginkan
brew link --overwrite --force [email protected]
Langkah 3 — Verifikasi instalasi:
php -v
Langkah 4 — Cek ekstensi yang terinstal:
php -m
Perintah ini menampilkan semua ekstensi PHP yang aktif. Untuk pengembangan web modern, pastikan ekstensi berikut tersedia:
Ekstensi penting yang harus ada:
✓ curl
✓ mbstring
✓ pdo
✓ pdo_mysql
✓ json
✓ openssl
✓ xml
Menjalankan PHP Built-in Development Server:
Setelah PHP terinstal, kamu bisa langsung menjalankan server pengembangan sederhana tanpa perlu Apache:
# Masuk ke direktori project
cd /path/to/project
# Jalankan server di port 8000
php -S localhost:8000
# Atau dengan file router khusus
php -S localhost:8000 index.php
Buka browser dan akses http://localhost:8000. PHP built-in server sangat berguna untuk pengembangan cepat, tapi tidak boleh digunakan untuk produksi.
Menggunakan MAMP #
MAMP (macOS, Apache, MySQL, PHP) menyediakan antarmuka grafis yang memudahkan pengelolaan server lokal.
Langkah 1 — Unduh MAMP:
Kunjungi mamp.info dan unduh MAMP (versi gratis sudah cukup untuk pengembangan).
Langkah 2 — Instal dan konfigurasikan:
Buka file .pkg yang diunduh dan ikuti wizard instalasi. MAMP akan terinstal di /Applications/MAMP.
Langkah 3 — Pilih versi PHP:
Buka MAMP, masuk ke Preferences → PHP dan pilih versi PHP yang ingin digunakan.
Langkah 4 — Start server:
Klik tombol Start di MAMP. Jika berhasil, icon Apache dan MySQL akan berubah hijau. Buka browser dan akses http://localhost:8888 (port default MAMP).
MAMP gratis menggunakan port 8888 untuk Apache dan 8889 untuk MySQL. MAMP Pro memungkinkan penggunaan port 80 dan 3306 (port standar). Kamu bisa mengubah port secara manual di Preferences jika menggunakan versi gratis.
Instalasi di Linux #
Linux adalah platform yang paling nyaman untuk pengembangan PHP karena package manager bawaan sistem operasi sudah menyediakan PHP secara langsung. Di sini kita bahas dua distro yang paling umum: Ubuntu/Debian dan Fedora/RHEL.
Ubuntu / Debian — Menggunakan APT #
Ubuntu adalah distro yang paling banyak digunakan untuk pengembangan web, dan APT membuatnya sangat mudah.
Langkah 1 — Update daftar paket:
sudo apt update
Langkah 2 — Instal PHP dan ekstensi esensial:
sudo apt install php php-cli php-fpm php-mysql php-curl php-mbstring php-xml php-zip php-json
Penjelasan setiap paket:
| Paket | Fungsi |
|---|---|
php | Package PHP utama dengan modul Apache |
php-cli | PHP untuk dijalankan dari command line |
php-fpm | PHP FastCGI Process Manager (untuk Nginx) |
php-mysql | Driver koneksi ke MySQL/MariaDB |
php-curl | Ekstensi untuk HTTP request |
php-mbstring | Dukungan multi-byte string (penting untuk Unicode) |
php-xml | Pemrosesan XML |
php-zip | Membuat dan mengekstrak arsip ZIP |
Langkah 3 — Verifikasi instalasi:
php -v
Langkah 4 — Cek status PHP-FPM (jika menggunakan Nginx):
sudo systemctl status php8.3-fpm
Menginstal versi PHP spesifik di Ubuntu:
Repository default Ubuntu mungkin tidak menyediakan versi PHP terbaru. Gunakan PPA dari Ondřej Surý untuk mendapatkan versi PHP terbaru:
# Tambahkan PPA
sudo add-apt-repository ppa:ondrej/php
sudo apt update
# Instal versi spesifik
sudo apt install php8.3 php8.3-cli php8.3-fpm php8.3-mysql php8.3-curl php8.3-mbstring
# Cek versi yang terinstal
php8.3 -v
Beralih antar versi PHP (jika ada beberapa versi):
# Lihat versi yang tersedia
sudo update-alternatives --list php
# Ganti versi aktif
sudo update-alternatives --set php /usr/bin/php8.3
Fedora / RHEL / CentOS — Menggunakan DNF #
Langkah 1 — Update sistem:
sudo dnf update
Langkah 2 — Instal PHP:
sudo dnf install php php-cli php-fpm php-mysqlnd php-curl php-mbstring php-xml php-zip
Langkah 3 — Aktifkan dan jalankan PHP-FPM:
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
Langkah 4 — Verifikasi:
php -v
systemctl status php-fpm
Konfigurasi SELinux untuk Apache + PHP (Fedora/RHEL):
Di sistem Fedora/RHEL, SELinux aktif secara default. Kamu mungkin perlu mengatur context yang tepat:
# Izinkan Apache menjalankan PHP
sudo setsebool -P httpd_execmem on
# Izinkan Apache membaca file di direktori home (opsional)
sudo setsebool -P httpd_enable_homedirs on
Konfigurasi php.ini #
Setelah PHP terinstal, php.ini adalah file konfigurasi utama yang mengatur perilaku interpreter. Lokasi file ini berbeda-beda tergantung OS dan cara instalasi:
# Cari lokasi php.ini yang aktif
php --ini
Output akan menampilkan sesuatu seperti:
Configuration File (php.ini) Path: /etc/php/8.3/cli
Loaded Configuration File: /etc/php/8.3/cli/php.ini
Pengaturan Penting untuk Environment Pengembangan #
Buka php.ini dengan editor teks dan sesuaikan nilai berikut untuk environment pengembangan lokal:
; ============================================================
; PENGATURAN UNTUK DEVELOPMENT (bukan untuk produksi!)
; ============================================================
; Tampilkan semua error di browser (sangat membantu saat debug)
display_errors = On
display_startup_errors = On
error_reporting = E_ALL
; Batas ukuran file yang bisa diupload
upload_max_filesize = 64M
post_max_size = 64M
; Batas memori yang bisa digunakan PHP per request
memory_limit = 256M
; Batas waktu eksekusi script (detik)
max_execution_time = 60
; Timezone default (sesuaikan dengan lokasi kamu)
date.timezone = Asia/Jakarta
; Aktifkan ekstensi yang sering dibutuhkan
extension=curl
extension=mbstring
extension=pdo_mysql
extension=openssl
Pengaturandisplay_errors = Ondanerror_reporting = E_ALLhanya untuk environment pengembangan lokal. Di server produksi, selalu setdisplay_errors = Offdan log error ke file, bukan ke layar. Menampilkan error di produksi bisa mengekspos informasi sensitif tentang struktur aplikasi kamu.
Perbedaan php.ini untuk CLI dan Web #
PHP memiliki php.ini yang terpisah untuk mode CLI dan mode web. Ini penting dipahami karena kadang perubahan di satu file tidak berpengaruh ke yang lain:
/etc/php/8.3/
├── cli/
│ └── php.ini ← dipakai saat kamu jalankan php dari terminal
├── apache2/
│ └── php.ini ← dipakai saat PHP berjalan via Apache
└── fpm/
└── php.ini ← dipakai saat PHP berjalan via PHP-FPM (Nginx)
Jika kamu mengubah setting di cli/php.ini tapi tidak terasa efeknya saat akses via browser, kemungkinan besar kamu perlu mengubah apache2/php.ini atau fpm/php.ini juga.
Verifikasi Instalasi Lengkap #
Setelah instalasi selesai, lakukan verifikasi menyeluruh untuk memastikan semua komponen bekerja dengan benar.
Verifikasi via Terminal #
# 1. Cek versi PHP
php -v
# 2. Cek semua ekstensi yang aktif
php -m
# 3. Cek konfigurasi yang dimuat
php --ini
# 4. Jalankan PHP interaktif (REPL)
php -a
Di dalam mode interaktif (php -a), coba jalankan kode sederhana:
<?php
echo "PHP berjalan dengan baik!\n";
echo "Versi: " . PHP_VERSION . "\n";
echo "OS: " . PHP_OS . "\n";
?>
Verifikasi via Browser — phpinfo() #
Cara paling komprehensif untuk melihat semua informasi tentang instalasi PHP kamu adalah dengan membuat file phpinfo.php:
<?php
// Simpan file ini sebagai phpinfo.php di root direktori web server kamu
// JANGAN tinggalkan file ini di server produksi!
phpinfo();
Akses file ini via browser (misalnya http://localhost/phpinfo.php). Halaman yang muncul menampilkan semua informasi: versi PHP, ekstensi yang aktif, nilai konfigurasi, variabel environment, dan banyak lagi.
Hapus phpinfo.php setelah selesai digunakan. File ini mengekspos informasi detail tentang konfigurasi server kamu — path file, versi software, pengaturan keamanan — yang bisa dimanfaatkan oleh penyerang. Jangan pernah biarkan file ini ada di server produksi.Verifikasi Koneksi Database #
Jika kamu menginstal MySQL/MariaDB bersama PHP, uji koneksinya:
<?php
// Test koneksi ke MySQL menggunakan PDO
$host = '127.0.0.1';
$dbname = 'test';
$username = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "✓ Koneksi database berhasil!\n";
} catch (PDOException $e) {
echo "✗ Koneksi gagal: " . $e->getMessage() . "\n";
}
Struktur Direktori Pengembangan PHP #
Setelah PHP terinstal, penting untuk memahami di mana menyimpan file proyek kamu:
XAMPP (Windows) #
C:\xampp\
├── htdocs\ ← root direktori web (simpan proyek di sini)
│ ├── index.php
│ └── my-project\
│ └── index.php
├── php\
│ └── php.ini ← konfigurasi PHP
└── apache\
└── conf\
└── httpd.conf ← konfigurasi Apache
Akses proyek di http://localhost/my-project/.
Homebrew / APT (macOS & Linux) #
/var/www/html/ ← root direktori Apache (Ubuntu)
└── my-project/
└── index.php
/etc/php/8.3/ ← konfigurasi PHP (Ubuntu)
├── cli/php.ini
└── apache2/php.ini
/usr/bin/php ← binary PHP CLI
Troubleshooting Masalah Umum #
Beberapa masalah yang sering muncul saat instalasi PHP dan cara mengatasinya:
Port 80 Sudah Dipakai (Windows) #
Apache tidak bisa start karena port 80 sudah digunakan program lain (biasanya Skype atau IIS):
# Cek program yang menggunakan port 80
netstat -ano | findstr :80
# Solusi 1: Ubah port Apache di httpd.conf
# Cari: Listen 80
# Ganti: Listen 8080
# Solusi 2: Matikan program yang menggunakan port 80
PHP Command Not Found (macOS/Linux) #
# ANTI-PATTERN: langsung panik dan reinstall
# BENAR: cek apakah PHP ada di path yang berbeda
which php # cek lokasi php
echo $PATH # cek isi PATH
# Jika PHP ada di /usr/local/bin tapi tidak ada di PATH:
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
Ekstensi Tidak Terbaca #
# Cek apakah ekstensi sudah diinstal
php -m | grep mysql
# Jika tidak muncul, instal ekstensinya
sudo apt install php8.3-mysql # Ubuntu
brew install [email protected] # Homebrew biasanya sudah include
# Lalu restart web server
sudo systemctl restart apache2
Permission Error di Linux #
# ANTI-PATTERN: chmod 777 pada semua file (sangat tidak aman)
# chmod -R 777 /var/www/html/
# BENAR: set permission yang tepat
sudo chown -R www-data:www-data /var/www/html/my-project/
sudo chmod -R 755 /var/www/html/my-project/
sudo chmod -R 644 /var/www/html/my-project/*.php
Ringkasan #
- PHP butuh interpreter — tidak bisa berjalan tanpa instalasi eksplisit. Pilih metode instalasi berdasarkan OS dan kebutuhan: XAMPP/WAMP untuk Windows, Homebrew/MAMP untuk macOS, APT/DNF untuk Linux.
- PHP built-in server (
php -S localhost:8000) berguna untuk testing cepat tanpa perlu Apache, tapi tidak untuk produksi.- php.ini terpisah untuk CLI dan web server — perubahan di satu file tidak otomatis berlaku di yang lain.
display_errors = Onhanya untuk development — selalu matikan di produksi untuk menghindari ekspos informasi sensitif.- phpinfo() adalah cara tercepat memverifikasi instalasi, tapi hapus file-nya setelah selesai digunakan.
- Kelola ekstensi secara eksplisit — instal hanya ekstensi yang dibutuhkan proyek; ekstensi yang tidak perlu hanya menambah overhead.
- Gunakan PPA Ondřej Surý di Ubuntu jika butuh versi PHP terbaru yang belum tersedia di repository resmi.
- Permission di Linux — gunakan
755untuk direktori dan644untuk file PHP, bukan777yang membuka semua akses.