Cara Install Nginx + PHP-FPM di Ubuntu
Tutorial sebelumnya sudah dibahas mengenai instalasi dan konfigurasi dasar Nginx di Ubuntu tapi belum mendukung file PHP. Tutorial selanjutnya menambahkan PHP-fpm. Nginx tidak memiliki native PHP seperti pada Apache, jadi membutuhkan PHP-fpm (fastCGI process manager).
Tutorial ini menggunakan Ubuntu 14.04 LTS dan masih menggunakan PHP5.
Install Nginx di Ubuntu
Baca tutorialnya di sini
Install PHP-fpm di Ubuntu
1 | sudo apt-get install php5-fpm php5-mysql -y |
Edit file konfigurasi PHP
1 | sudo nano /etc/php5/fpm/php.ini |
Cari baris kode cgi.fix_pathinfo, lepas tanda titik koma (;), dan isi nilainya dengan 0. Hal ini dilakukan karena alasan keamanan.
1 | cgi.fix_pathinfo = 0 |
Selanjutnya konfigurasi Nginx agar menggunakan PHP processor.
1 | sudo nano /etc/nginx/sites-available/default |
File konfigurasinya menjad seperti di bawah ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; server_name nama_domain; location / { try_files $uri $uri/ =404; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } |
Restart PHP-fpm dan nginx
1 2 | sudo service nginx restart sudo php5-fpm restart |
Buat file info.php untuk menguji apakah Nginx sudah terhubung dengan PHP-fpm.
1 | sudo nano /usr/share/nginx/html/info.php |
Isi filenya
1 | <?php phpinfo(); ?> |
Kemudian akses http://nama_domain_atau_IP/info.php
URL Rewrite di Nginx
Pada Apache untuk mengaktifkan fitur URL Rewrite menggunakan mod_rewrite dan file .htaccess, namun untuk Nginx cukup menambahkan baris kode konfigurasi.
Edit file /etc/nginx/sites-available/default.
1 | sudo nano /etc/nginx/sites-available/default |
Jika file web berada dalam folder root, cukup tambahkan /index.php pada location /
1 2 3 | location / { try_files $uri $uri/ /index.php; } |
Jika file file web berada dalam sub-folder misalnya /wordpress, tambahkan blok konfigurasi untuk sub-folder tersebut.
1 2 3 | location /wordpress/ { try_files $uri $uri/ /wordpress/index.php; } |
selamat mencoba 🙂
Assalamualaikum Pak Musa
Saya mengikuti tutorial anda mulai dari install NGINX juga Install PHP-FPM ini
Dari artikel install NGINX terlihat konfigurasinya untuk beberapa web server, ini artinya Pak Musa Install NGINX Block Web Server ya…..?
Apakah nantinya untuk PHP-nya juga harus di konfigurasi beberapa block/Web Server ?
Waalaikum salam
block web server adalah konfigurasi untuk setiap domain yang dihost di server. kalau di Apache istilahnya virtualhost.
Jika ber-kenan mohon tutorialnya jika Nginx + PHP-FPM di Install di-Centos7
cek di sini https://musaamin.web.id/cara-install-lemp-stack-nginx-mariadb-php-di-centos-7/