Optimasi server melalui setting php.ini
php.ini adalah file konfigurasi utama untuk PHP. File ini biasanya digunakan untuk mengatur bagaimana PHP bekerja dan berperilaku ketika dijalankan di server, misalnya mengatur batas memori, ukuran upload file, timezone, error reporting, ekstensi apa saja yang digunakan dan fungsi-fungsi yang lain.
Pada kesempatan ini, kami ingin berbagi sedikit tips untuk optimasi server untuk hosting website melalui setting php.ini, langsung saja sobat ku, Berikut ini tipe dan panduan optimasi server lewat pengaturan php.ini agar PHP lebih cepat, stabil, dan efisien. Saya sertakan rekomendasi yang umum dipakai di production, plus penjelasannya.
✅ 1. Optimasi Performa Dasar
✔ Aktifkan dan optimalkan OPcache
OPcache adalah cara paling efektif meningkatkan performa PHP.
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.revalidate_freq=0
opcache.fast_shutdown=1
Catatan:
validate_timestamps=0cocok untuk production (harus restart PHP-FPM setelah update).- Untuk development, set:
opcache.validate_timestamps=1 opcache.revalidate_freq=1
✅ 2. Optimasi PHP-FPM (Jika pakai Nginx / PHP-FPM)
Konfig di php.ini:
; Kurangi overhead
realpath_cache_size=4096K
realpath_cache_ttl=600
Sangat membantu untuk CMS seperti WordPress, WooCommerce, Laravel atau CMS lain.
✅ 3. Memory & Resource Limits
memory_limit=512M
max_execution_time=60
max_input_vars=3000
post_max_size=32M
upload_max_filesize=32M
Sesuaikan dengan kebutuhan aplikasi anda, misalnya:
- hosting kecil:
memory_limit=256M - WordPress/WooCommerce:
512M – 1024M - Laravel besar:
512M – 2G
✅ 4. Error Handling (untuk Production)
display_errors=0
log_errors=1
error_log=/var/log/php_errors.log
error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT
Alasan: error tidak ditampilkan secara public ke pengunjung (aman), tapi tetap tercatat di log.
✅ 5. Session Optimasi
session.gc_maxlifetime=3600
session.use_strict_mode=1
session.cookie_httponly=1
session.cookie_secure=1
Jika memakai HTTPS, cookie_secure=1 penting untuk keamanan.
✅ 6. Disable Fungsi Berbahaya
Berguna untuk security hardening:
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source
Sesuaikan, jangan asal disable jika aplikasi membutuhkan.
✅ 7. File I/O Optimasi (opsional untuk website besar)
; Kurangi parsing di setiap request
auto_detect_line_endings=0
; Buffer optimasi
output_buffering=4096
zlib.output_compression=On
zlib.output_compression_level=6
Compression membantu mempercepat transfer HTML ke klien.
🔥 8. Contoh php.ini Production Optimized (Rekomendasi Siap Pakai)
[PHP]
memory_limit=512M
max_execution_time=60
max_input_vars=3000
post_max_size=32M
upload_max_filesize=32M
display_errors=0
log_errors=1
error_log=/var/log/php_errors.log
output_buffering=4096
[Session]
session.gc_maxlifetime=3600
session.use_strict_mode=1
session.cookie_httponly=1
session.cookie_secure=1
[OPcache]
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.revalidate_freq=0
opcache.fast_shutdown=1
[Misc]
realpath_cache_size=4096K
realpath_cache_ttl=600
zlib.output_compression=On
zlib.output_compression_level=6
Note:
Selain tips pada artikel diatas yang sudah kami bagikan, bukanlah satu-satu strategi. Namun juga perlu memperhatikan spesifikasi server yang di gunakan. Oleh sebab itu, semua harus memperhatikan beberapa komponen di bawah ini
- Jenis server
- Apache / Nginx?
- PHP-FPM atau mod_php?
- Nginx + PHP-FPM
- Apache + PHP-FPM
- Litespeed / OpenLiteSpeed
- FrankenPHP
- dan custom lainnya…
- Jenis aplikasi
- WordPress?
- Laravel?
- Custom PHP?
- Spesifikasi server
- CPU berapa core?
- RAM berapa GB?