Cara Membaca PHP Info untuk Audit Server dan Debugging

Cara membaca phpinfo() adalah langkah esensial bagi pengembang web dan administrator server untuk memeriksa konfigurasi PHP yang sedang berjalan, mendiagnosis masalah kompatibilitas, serta memverifikasi modul dan ekstensi yang aktif. Fungsi phpinfo() menghasilkan laporan komprehensif berbasis HTML yang merinci seluruh aspek lingkungan PHP pada peladen web Anda.

Untuk mengaksesnya, Anda cukup membuat file PHP sederhana (misalnya info.php) di direktori root server dengan baris kode <?php phpinfo(); ?>, lalu membukanya melalui peramban web di alamat http://namadomain.com/info.php. Setelah halaman terbuka, Anda akan dihadapkan pada tabel-tabel data masif yang dikelompokkan ke dalam beberapa bagian utama.

Bagian Utama dalam Halaman phpinfo()

Halaman phpinfo terbagi menjadi beberapa blok informasi penting yang wajib Anda pahami saat melakukan audit atau pemecahan masalah sistem:

Bagian / Blok Fungsi dan Informasi Utama Contoh Parameter Kritis
PHP Version Menunjukkan nomor versi PHP yang aktif beserta build sistem operasi. PHP Version 8.2.14, Apache/2.4.58
System Informasi OS server, arsitektur, tanggal, dan waktu sistem. Linux server 5.15.0 x86_64
Build Date Tanggal dan waktu kompilasi binary PHP. Dec 18 2023 15:20:10
Configuration File (php.ini) Path Lokasi direktori tempat file konfigurasi utama php.ini disimpan. /etc/php/8.2/apache2/php.ini
Loaded Configuration File File php.ini spesifik yang sedang dibaca dan dieksekusi oleh server. /etc/php/8.2/apache2/php.ini
Directive / Core Pengaturan inti PHP seperti batas memori, ukuran unggahan, dan eksekusi skrip. memory_limit, post_max_size, max_execution_time
Registered Stream Handlers Daftar protokol dan filter aliran data yang didukung oleh PHP. http, https, ftp, file, zlib, zip

Parameter Penting yang Sering Dicari

Saat melakukan debugging atau migrasi skrip seperti WordPress, Laravel, atau CodeIgniter, ada beberapa parameter spesifik yang wajib Anda periksa melalui fungsi pencarian peramban (Ctrl+F):

  • memory_limit: Menentukan jumlah maksimum memori RAM yang diizinkan untuk digunakan oleh sebuah skrip PHP. Jika aplikasi sering mengalami error "Allowed memory size exhausted", nilai ini harus ditingkatkan di dalam file php.ini.
  • upload_max_filesize: Batas ukuran maksimum file tunggal yang diizinkan untuk diunggah melalui form PHP.
  • post_max_size: Ukuran maksimum total data POST yang dapat dikirimkan melalui HTTP. Nilai ini wajib lebih besar atau minimal sama dengan upload_max_filesize.
  • max_execution_time: Batas waktu maksimum (dalam detik) sebuah skrip PHP diperbolehkan berjalan sebelum dihentikan secara paksa oleh server.
  • Loaded Extensions: Daftar modul tambahan yang aktif, seperti MySQLi, PDO, cURL, GD, OpenSSL, dan Mbstring. Pastikan ekstensi yang dibutuhkan oleh framework atau CMS Anda telah aktif di bagian ini.

Perbedaan Nilai Local Value dan Master Value

Di dalam tabel konfigurasi phpinfo, Anda akan melihat dua kolom nilai yang sering membingungkan, yaitu Master Value dan Local Value:

  • Master Value: Nilai konfigurasi global yang didefinisikan secara langsung di dalam file utama php.ini server. Nilai ini berlaku untuk seluruh direktori kecuali ditimpa oleh konfigurasi lokal.
  • Local Value: Nilai konfigurasi yang sedang aktif dan berlaku pada direktori tempat skrip phpinfo tersebut dieksekusi. Nilai ini bisa berubah jika terdapat konfigurasi tambahan melalui file .htaccess, direktori virtual host, atau fungsi ini_set() di dalam kode.

Jika terjadi perbedaan antara kedua kolom tersebut pada parameter tertentu, periksa kembali apakah ada aturan tambahan di tingkat direktori aplikasi Anda.

Langkah Keamanan Penting Setelah Penggunaan

File phpinfo() memaparkan informasi sensitif mengenai arsitektur server, versi perangkat lunak, path direktori, hingga modul yang terpasang. Data ini sangat berharga bagi pihak tak bertanggung jawab untuk memetakan celah keamanan (vulnerability mapping).

Oleh karena itu, terapkan prosedur keamanan berikut setelah selesai membaca dan menganalisis phpinfo:

  1. Segera hapus file info.php atau phpinfo.php dari direktori publik server Anda.
  2. Jika file tersebut harus tetap ada untuk keperluan monitoring internal, pastikan Anda melindunginya dengan autentikasi kata sandi melalui konfigurasi web server (seperti .htpasswd pada Apache atau pembatasan alamat IP pada Nginx).
  3. Jangan pernah membiarkan file phpinfo dapat diakses secara publik pada lingkungan produksi (production server).