Praktik langsung: menginstall PHP 8.5 di Windows (XAMPP/Laragon), macOS (Homebrew), dan Linux (apt), lalu menulis file PHP pertama, menjalankannya lewat CLI dan built-in web server, serta memverifikasi modul dan konfigurasi php.ini yang dibutuhkan sepanjang series.

Setelah memahami teori arsitektur di episode 2, saatnya tangan di keyboard. Episode ini adalah episode hands-on pertama: kalian akan menginstall PHP 8.5 di sistem kalian, menulis file PHP pertama, lalu menjalankannya lewat dua jalur — CLI dan built-in web server. Dua jalur ini adalah dua sisi kehidupan PHP: skrip otomasi di server vs aplikasi web yang melayani request.
Mengapa episode instalasi ini penting? Karena kesalahan paling umum di awal belajar PHP justru bukan di sintaks, melainkan di environment: versi PHP yang salah, modul yang belum aktif, atau php yang dijalankan bukan dari lokasi yang kalian kira. Kalian harus bisa memverifikasi environment dengan percaya diri sejak sekarang.
Untuk Windows, cara termudah adalah bundle: Laragon (ringan, modern) atau XAMPP (klasik, lengkap dengan Apache + MySQL). Keduanya membawa PHP, MySQL, dan tool pendukung dalam satu paket.
php ke PATH agar perintah php bisa dipakai di terminal mana pun.php -v di Command Prompt/PowerShell.brew install php
php -vHomebrew secara otomatis mengelola PATH dan menaruh php.ini di lokasi yang dicetak oleh php --ini.
sudo apt update
sudo apt install php-cli php-fpm php-mysql php-sqlite3 php-mbstring php-curl php-xml php-zip
php -vPaket php-cli memberikan binary php; php-fpm memberikan SAPI produksi; paket lainnya adalah ekstensi yang kita pakai di episode-episode berikutnya.
php -vNote
Jika distro kalian masih menyediakan PHP 8.3 ke bawah, jangan khawatir — hampir semua kode di episode 4-8 berjalan di PHP 8.1+. Fitur PHP 8.5 (pipe operator, array_first()) kita bahas khusus di episode 16. Untuk pengalaman terbaik, tetap targetkan 8.5.
Buat file pertama di lab kalian:
<?php
echo "Hello, World!";Jalankan lewat CLI:
php hello.phpOutput yang diharapkan: Hello, World!. Perhatikan hal-hal berikut:
<?php membuka PHP mode; file harus dimulai dengan tag ini agar interpreter tahu ini PHP.echo adalah konstruksi bahasa untuk mencetak output.; mengakhiri statement — wajib, dan penyebab paling umum parse error.?> boleh dihilangkan di file PHP murni (best practice: jangan menutupnya untuk menghindari whitespace yang ikut terkirim).PHP CLI punya web server built-in yang praktis untuk development. Di folder lab:
php -S localhost:8000Buka http://localhost:8000/hello.php di browser — kalian akan melihat halaman yang merender output PHP. Bedanya dengan CLI: kini kode dieksekusi per request HTTP, persis alur yang kita bahas di episode 2.
Uji juga bahwa PHP merender HTML dengan benar:
<?php $nama = "Devvnull"; ?>
<h1>Halo, <?= $nama ?>!</h1>
<p>Sekarang pukul <?= date("H:i") ?></p><?= $nama ?> adalah kependekan dari <?php echo $nama; ?> — sintaks yang sangat sering dipakai untuk menyisipkan nilai ke HTML.
Coba hapus titik koma pada echo dan muat ulang — kalian akan melihat Parse error. Ini bukan hal yang perlu ditakutkan; PHP selalu memberitahu lokasi error dengan tepat:
PHP Parse error: syntax error, unexpected end of file
in hello.php on line 3Biasakan membaca pesan error sampai ke baris terakhir. Di episode 8 kita pelajari exception handling, dan di episode 10 kita pasang debugger sungguhan.
Warning
Untuk development, aktifkan display_errors=On di php.ini agar error terlihat jelas. Untuk produksi, wajib display_errors=Off dan log error ke file — jangan sampai stack trace bocor ke pengguna. Kita bahas hardening ini di episode 17.
Sejak awal, biasakan struktur yang rapi — ini fondasi PSR-4 di episode 8-9:
php-lab/
hello.php
hello-html.phpInti yang harus dibawa pulang:
brew install php (macOS), apt install php-cli php-fpm ... (Linux).php -v, php -m, dan php --ini adalah trio verifikasi environment.<?php echo ... ?> dan <?= ... ?> adalah cara menyisipkan PHP ke HTML.php -S localhost:8000 cukup untuk development; produksi nanti pakai PHP-FPM + Nginx (episode 19).Di episode 4 selanjutnya kita masuk ke inti bahasa: sintaks dasar — variabel, konstanta, dan tipe data — dari $nama, dynamic typing dengan strict_types, konstanta define()/const, hingga int, float, string, bool, null, array, object, dan operator. Pastikan hello.php kalian berjalan, karena materi berikutnya akan bertumpuk di atasnya!