Cara menggunakan what is nginx php?

PHP-FPM (FastCGI Process Manager) adalah implementasi FastCGI alternatif untuk bahasa PHP. PHP-FPM merupakan interpreter PHP yang terpisah dari aplikasi web server. Setiap request atas script PHP yang masuk ke web serverakan diteruskan (forward) ke FastCGI melalui socket atau koneksi TCP/IP. Pada artikel ini kita akan membahas langkah-langkah dalam membangun web server dengan PHP-FPM.

Sebelum mengikuti langkah-langkah dalam membangun web server dengan PHP-FPM dalam artikel ini, anda perlu melakukan instalasi web server NGINX terlebih dahulu. Anda dapat mengikuti langkah yang telah saya tuliskan dalam artikel berikut

1. Instalasi PHP-FPM

Langkah pertama adalah dengan melakukan instalasi php-fpm dan modul fastcgi apache dengan perintah:

$ sudo apt update
$ sudo apt install php-fpm

Setelah php-fpm ter-install, kita perlu memodifikasi beberapa konfigurasi dalam file /etc/nginx/sites-available/default, yaitu pada blok server berikut

...
server {
listen 80 default_server;
listen [::]:80 default_server;
...

Yang perlu kita lakukan adalah menambah index.php pada bagian index yang semula

index index.html index.htm index.nginx-debian.html;

menjadi

index index.php index.html index.htm index.nginx-debian.html;

Kemudian kita perlu mengubah bagian location yang semula

...#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#}
...#location ~ /\.ht {
# deny all;
#}
...

menjadi

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}

Setelah perubahan konfigurasi tersebut disimpan, anda perlu me-restart service NGINX dengan perintah

$ sudo systemctl restart nginx.service

Untuk mengecek apakah konfigurasi tersebut berhasil, buatlah sebuah file PHP berisi

<?php
phpinfo();
?>

dalam root directory (misalnya /var/www/html/info.php). Kemudian akseslah menggunakan web browser, misalnya dengan mengakses http://<domain server anda>/info.php atau http://<alamat IP server anda>/info.php.

Gambar 1. Output phpinfo() PHP-FPM

Perhatikan nilai Server API pada Gambar 2. Bila nilainya adalah FPM/FastCGI, maka artinya proses instalasi PHP -FPM telah berhasil.

2. Modifikasi Konfigurasi PHP

Tanpa langkah berikut, sebenarnya instalasi PHP tersebut telah dapat digunakan, namun kadang kita perlu melakukan beberapa modifikasi untuk meningkatkan keamanan sekaligus menyesuaikan dengan kebutuhan program PHP yang nantinya kita buat.

Modifikasi cgi.fix_pathinfo

Modifikasi bagian cgi.fix_pathinfo sangat penting dilakukan demi alasan keamanan. Yang perlu kita lakukan adalah membuka file /etc/php/7.0/fpm/php.ini dan mengubah

;cgi.fix_pathinfo=1

menjadi

cgi.fix_pathinfo=0

kemudian me-restart service PHP-FPM dengan perintah

$ sudo systemctl restart php7.0-fpm.service

Modifikasi ini sangat penting dilakukan untuk mencegah PHP mengeksekusi file dengan nama yang paling mirip bila file dengan nama yang sama persis tidak ditemukan.

Instalasi MySQL module

Bila anda ingin menggunakan PHP untuk mengolah RDBMS MySQL atau MariaDB, maka anda perlu mengaktifkan PHP MySQL module dengan cara menjalankan perintah

$ sudo apt install php-mysql

kemudian anda perlu me-restart service PHP-FPM dengan perintah

$ sudo systemctl restart php7.0-fpm.service

Untuk memastikan bahwa modul php-mysql telah aktif, buatlah sebuah file di root directory server, misalnya /var/www/html/mysql.php dengan isi

kemudian akses file tersebut menggunakan web browser, misalnya dengan mengakses http://<domain server anda>/mysql.php atau http://<alamat IP server anda>/mysql.php. Jangan lupa, anda perlu mengganti $servername, $username, dan $password pada script untuk disesuaikan dengan konfigurasi server anda. Bila output script tersebut adalah

Connection success.

maka instalasi anda berhasil, namun bila tidak maka berarti ada masalah dengan proses instalasi yang anda lakukan.

Pencarian dan Instalasi Berbagai Modul PHP

Untuk meningkatkan fungsionalitas dari PHP, anda dapat menambahkan beberapa modul tambahan ke dalam PHP. Untuk mencari modul-modul yang tersedia dalam repository, gunakanlah perintah

$ sudo apt-cache search php-

Bila anda ingin pencarian yang lebih spesifik, kombinasikan dengan perintah grep, misalnya anda ingin mencari modul PHP yang berkaitan dengan zip, maka anda dapat menggunakan perintah

$ sudo apt-cache search php- | grep zip

Contoh output dari perintah tersebut adalah

libphp-pclzip - transitional dummy package
php-bz2 - bzip2 module for PHP [default]
php-pclzip - ZIP archive manager class for PHP
php-zip - Zip module for PHP [default]
php-zipstreamer - Stream zip files without i/o overhead
php7.0-bz2 - bzip2 module for PHP
php7.0-zip - Zip module for PHP

Bila anda sudah memutuskan modul apa yang perlu anda install, misalnya php-zip, maka gunakan perintah apt install untuk melakukan instalasi PHP modul tersebut. Berikut adalah contoh perintah untuk melakukan instalasi modul php-zip

$ sudo apt install php-zip

Kemudian restart service PHP-FPM dengan perintah

$ sudo systemctl restart php7.0-fpm.service

Menyembunyikan Versi PHP pada HTTP Header

Bila anda tidak menginginkan versi PHP anda tampil pada HTTP Header, demi alasan keamanan misalnya, maka anda dapat memodifikasi file /etc/php/7.0/fpm/php.ini dan /etc/php/7.0/cli/php.ini. Pastikan variable expose_php pada kedua file tersebut bernilai Off seperti ini.

expose_php = Off

Kemudian restart service PHP-FPM dengan perintah

$ sudo systemctl restart php7.0-fpm.service

Demikianlah cara melakukan instalasi PHP-FPM dalam NGINX pada Ubuntu 16.04. Selamat mencoba.