PHP-FPM [FastCGI Process Manager] adalah implementasi FastCGI alternatif untuk bahasa PHP. PHP-FPM adalah interpreter PHP terpisah dari aplikasi server web. Setiap permintaan skrip PHP yang masuk ke web server akan diteruskan ke FastCGI melalui soket atau koneksi TCP/IP. Pada artikel kali ini akan dibahas langkah-langkah dalam membangun web server dengan PHP-FPM
Sebelum mengikuti langkah-langkah membangun web server dengan PHP-FPM pada artikel ini, Anda perlu menginstall web server Apache terlebih dahulu. Anda dapat mengikuti langkah-langkah yang telah saya tulis di artikel berikut
Instalasi Apache Web Server di Ubuntu 16. 04
Apache adalah salah satu server web yang paling banyak digunakan di masa lalu. Meskipun telah banyak…
sedang. com
1. Instalasi PHP-FPMLangkah pertama adalah menginstal
$ sudo systemctl restart apache2.service
_0 dan modul fastcgi apache dengan perintah$ sudo apt update
$ sudo apt install php-fpm libapache2-mod-fastcgi
_Aktifkan modul
$ sudo systemctl restart apache2.service
1, $ sudo systemctl restart apache2.service
2, $ sudo systemctl restart apache2.service
3 dan $ sudo systemctl restart apache2.service
4 dengan perintah$ sudo a2enmod actions fastcgi cgid alias
_kemudian tambahkan skrip pada Gambar 1 ke file
$ sudo systemctl restart apache2.service
5 server Anda, misalnya di file $ sudo systemctl restart apache2.service
6. Jika Anda memiliki beberapa $ sudo systemctl restart apache2.service
5 maka skrip pada Gambar 1 perlu ditambahkan ke semua $ sudo systemctl restart apache2.service
5 yang Anda gunakanGambar 1. Konfigurasi PHP-FPM di VirtualHostMulai ulang layanan Apache untuk mengaktifkan konfigurasi dengan perintah
$ sudo systemctl restart apache2.service
Untuk memeriksa apakah konfigurasi berhasil, buat file PHP yang berisi
di direktori root [misalnya
$ sudo systemctl restart apache2.service
9]. Kemudian akses menggunakan web browser, misalnya dengan mengakses 0 atau
1
Gambar 2. Keluaran phpinfo[] PHP-FPM
Perhatikan nilai
_2 pada Gambar 2. Jika nilainya
_3, maka berarti proses instalasi PHP-FPM sudah berhasil
Konfigurasi
_4 pada Gambar 1 menggunakan socket untuk menghubungkan Apache dengan PHP-FPM yang berada dalam satu server yang sama. Ketika Apache dengan PHP-FPM berada di server terpisah maka Anda harus menggunakan koneksi TCP/IP, tetapi metode tersebut tidak dibahas dalam artikel ini
2. Modifikasi Konfigurasi PHP
Tanpa langkah-langkah berikut sebenarnya penginstalan PHP sudah bisa digunakan, namun terkadang kita perlu melakukan beberapa modifikasi untuk menyesuaikan dengan kebutuhan program PHP yang nantinya akan kita buat
modifikasi cgi. fix_pathinfo
Modifikasi bagian
_5 sangat penting untuk alasan keamanan. Yang perlu kita lakukan hanyalah membuka file
6 dan mengubahnya
;cgi.fix_pathinfo=1
menjadi
cgi.fix_pathinfo=0
kemudian restart layanan PHP-FPM dengan perintah
$ sudo systemctl restart php7.0-fpm.service
Modifikasi ini sangat penting untuk mencegah PHP mengeksekusi file dengan nama yang paling mirip ketika file dengan nama yang sama persis tidak ditemukan
Instalasi modul MySQL
Ketika Anda ingin menggunakan PHP untuk memproses RDBMS MySQL atau MariaDB, maka Anda perlu mengaktifkan modul PHP MySQL dengan menjalankan perintah
$ sudo apt install php-mysql
maka Anda perlu me-restart layanan PHP-FPM dengan perintah
$ sudo systemctl restart php7.0-fpm.service
Untuk memastikan modul
_7 aktif, buat file di direktori root server, misalnya
8 dengan isinya
kemudian akses file tersebut menggunakan web browser, misalnya dengan mengakses
9 atau
;cgi.fix_pathinfo=1
0. Jangan lupa, Anda perlu mengganti ;cgi.fix_pathinfo=1
1, ;cgi.fix_pathinfo=1
2, dan ;cgi.fix_pathinfo=1
3 dalam skrip agar sesuai dengan konfigurasi server Anda. Ketika output dari skrip adalahConnection success.
maka instalasi anda berhasil, namun jika tidak maka berarti ada masalah pada proses instalasi yang anda lakukan
Pencarian dan Pemasangan Berbagai Modul PHP
Untuk meningkatkan fungsionalitas PHP, Anda dapat menambahkan beberapa modul tambahan ke PHP. Untuk menemukan modul yang tersedia di repositori, gunakan perintah
$ sudo a2enmod actions fastcgi cgid alias
_0Bila ingin pencarian yang lebih spesifik, gabungkan dengan perintah grep, misalnya ingin mencari modul PHP yang berhubungan dengan zip, maka bisa menggunakan perintah
$ sudo a2enmod actions fastcgi cgid alias
_1Contoh output dari perintah tersebut adalah
$ sudo a2enmod actions fastcgi cgid alias
_2Ketika Anda telah memutuskan modul apa yang perlu Anda instal, misalnya
;cgi.fix_pathinfo=1
4, maka gunakan perintah ;cgi.fix_pathinfo=1
5 untuk menginstal modul PHP. Berikut adalah contoh perintah untuk memasang modul ;cgi.fix_pathinfo=1
4$ sudo a2enmod actions fastcgi cgid alias
_3Kemudian restart layanan PHP-FPM dengan perintah
$ sudo systemctl restart php7.0-fpm.service
Menyembunyikan Versi PHP di HTTP Header
Jika Anda tidak ingin versi PHP Anda muncul di HTTP Header, misalnya untuk alasan keamanan, maka Anda dapat memodifikasi file
6 dan
;cgi.fix_pathinfo=1
8. Pastikan variabel ;cgi.fix_pathinfo=1
9 di kedua file adalah cgi.fix_pathinfo=0
0 seperti ini$ sudo a2enmod actions fastcgi cgid alias
_5Kemudian restart layanan PHP-FPM dengan perintah
$ sudo systemctl restart php7.0-fpm.service
Mengganti Indeks Direktori Default
Ketika Anda memiliki dua file indeks, misalnya
cgi.fix_pathinfo=0
1 dan cgi.fix_pathinfo=0
2, di direktori yang sama, maka yang dijalankan Apache adalah file cgi.fix_pathinfo=0
1. Jika Anda ingin mengubah urutan prioritas indeks file, maka Anda dapat mengaturnya melalui file cgi.fix_pathinfo=0
4