Sharing seputar Dunia Tkj dan Blogging ^^

Showing posts with label Nginx. Show all posts
Showing posts with label Nginx. Show all posts

Thursday, July 6, 2017

Cara Mengetahui Di Mana Letak Konfigurasi Apache, MySQL, Nginx dan PHP


Dalam GNU/Linux untuk mengatur suatu aplikasi sangatlah mudah yakni kita hanya perlu merubahnya dari berkas konfigurasi (configuration file). Namun, perbedaan distribusi GNU/Linux, menyebabkan berbeda pula di mana diletakan berkas tersebut. Dengan kata lain, jika kita ingin merubahan konfigurasi aplikasi A, kita harus menyesuaikan dengan distro A tersebut, tidak boleh menggunakan dari distro B, meskipun nama aplikasinya sama. Cukup merepotkan memang. Contoh sederhanannya dalam eperti Apache dan Nginx tiap distro berbeda di mana letaknya.
Tulisan kali ini, penulis mencoba memberikan tips bagaimana cara mengetahui letak berkas konfigurasi dari Apache, MySQL/Mariadb, Nginx dan PHP.

Berikut ini cara bagaimana kita dapat mengetahui letak konfigurasi mereka dengan memanfaatkan perintah-perintah sederhana berikut:

Apache

Untuk Apache beberapa distro GNU/Linux berbeda dalam penamaannya Anda bisa melakukan salah satu dari tiga perintah di bawah ini:
$ apachectl -V | grep -E "HTTPD_ROOT|SERVER_CONFIG_FILE
atau
$ httpd -V | grep -E "HTTPD_ROOT|SERVER_CONFIG_FILE"
atau
$ apache2ctl -V | grep -E "HTTPD_ROOT|SERVER_CONFIG_FILE"
Kita akan melihat hasilnya seperti berikut:
Dari gambar di atas tertera nilai dari HTTPD_ROOT="/etc/httpd" dan SERVER_CONFIG_FILE="conf/httpd.conf" itu artinya konfigurasi Apache terletak pada: /etc/httpd/conf/httpd.conf

MySQL/Mariadb

Kemudian untuk MySQL atau Mariadb sama halnya seperti apache kita dapat melakukan salah satu perintah berikut:
$ mysqladmin --help | grep my.cnf | head -1
atau
$ mysql --help | grep my.cnf | head -1
Dilihat dari hasil gambar di atas terdapat 3 berkas konfigurasi. Untuk berkas /etc/my.cnf dan /etc/mysql/my.conf merupakan konfigurasi secara default atau global konfigurasi, sedangkan ~/.my.conf merupakan konfigurasi tiap-tiap user.

Nginx

Kemudian nginx caranya cukup mudah, kita hanya perlu melakukan perintah berikut:
$ nginx -V


Dilihat dari gambar di atas dapat disimpulkan bahwa berkas konfigurasi Nginx terletak pada /etc/nginx/nginx.conf.

PHP

Terakhir PHP kita hanya perlu mencari berkas bernama php.ini.
$ php -i | grep php.ini

Mudah bukan? Dengan begini kita tidak perlu repot lagi mencari di mana letak konfigurasi mereka.

Semoga bermanfaat.

Sunday, July 2, 2017

Cara Mudah Membatasi IP dengan Nginx


Salah satu upaya untuk penanganan masalah keamanan server adalah dengan membatasi IP tertentu mana saja yang boleh diakses dan IP mana saja yang tidak boleh.

Sebagai contoh misalnya kita mau membatasi siapa-siapa saja yang boleh mengakses phpMyadmin atau halaman administrasi dari suatu web yang terlah kita bangun.

Pada tulisan kali ini, penulis mencoba memberikan sedikit tips dan trik bagaimana membatasi IP tertentu dengan menggunakan Nginx di GNU/Linux.

Persiapan

Asumsi tulisan ini adalah Anda sudah memasang Nginx dan sudah menerapkannya pada server Anda. Jika belum, bisa mencari artikel terkait pemasangan Nginx di linuxku.com

Cara Pengunaan

Untuk menggunakannya kita hanya perlu merubah konfigurasi Nginx. Adapun untuk berkas konfigurasi Nginx, umumnya terletak pada:
/etc/nginx/nginx.conf
Atau jika Anda menggunakan server block pada GNU/Linux distribusi Debian, Ubuntu serta derivatifnya, ia terletak pada:
/etc/nginx/sites-availables/default
Di sini kita menggunakan dua metode yakni Blacklist dan Whitelist. Perbedaan antara keduanya adalah blacklist hanya memblokir IP terdaftar, sedangkan whitelist membuka dari IP terdaftar, dengan kata lain blok semua kecuali yang terdaftar.

Kedua metode tersebut bebas mau gunakan mana yang menurut Anda terbaik, yang jelas dalam tulisan ini penulis hanya memberikan sedikit contoh sederhana.

Metode Blacklist

server {
    ...
   location /admin {
      allow all;
      deny 10.0.0.0/8;
      deny 192.168.0.1;
      ...
   }
   ...
}

Metode Whitelist

server {
    ...
   location /admin {
      allow 10.0.0.0/8;
      allow 123.168.0.1;
      deny all;
      ...
   }
   ...
}
Langkah terakhir yakni kita restart Nginx nya dengan cara berikut:
$ sudo service nginx restart
Atau bagi Anda pengguna Systemd
$ sudo systemctl restart nginx

Saturday, March 18, 2017

Memasang Let's Encrypt dan Nginx di Ubuntu 16.04


Artikel sebelumnya sebetulnya di sini sudah pernah membahas cara pemasangan Let's Encrypt. Penulis menuliskan kembali karena ada perbedaan cara pemasangan Let's Encrypt tersebut khusus pada versi Ubuntu 16.04 LTS. Di versi tersebut Let's Encrypt telah masuk dalam repositori resmi Ubuntu. Sehingga kita tidak perlu lagi meng-clone atau pull dari GitHub Let's Encrypt pada saat pemasangannya.
Langsung saja kita mulai. Sebelum memulai pastikan Anda sudah memasang Nginx.
$ sudo apt-get update
$ sudo apt-get install nginx-full
Kemudian baru kita pasang Let's Encryptnya:
$ sudo apt-get install letsencrypt
Jika sudah semua terpasang. Langkah selanjutnya kita sunting pengaturan default Nginx atau virtualhost kita. Jika Anda menggunakan semacam server-block pada beberapa domain, Anda tinggal ganti saja sesuai virtualhost Anda tersebut. Pada contoh tulisan ini, kita gunakan penganturan default saja.
$ sudo nano /etc/nginx/sites-available/default
Lalu tambahkan:
location ~ /.well-known {
                allow all;
  }
Secara default, direktori Nginx terletak di /var/www/html. Ini artinya nanti pada saat meng-generated let's encrypt, ia akan menciptakan direktor .well-known di /var/www/html, menjadi /var/www/html/.well-known.

Jika sudah keluar dari nano, dan kita cek dahulu, apakah pengaturan yang kita sunting sudah benar atau belum, caranya:
$ sudo nginx -t 
Jika kita tidak menemukan kalimat galat (error), langsung saja kita restart Nginx-nya.
$ sudo systemctl restart nginx
Kemudian kita buat sertifikatnya:

$ sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html -d linuxku.com -d www.linuxku.com
Setelah itu Anda akan diminatai memasukan alamat surel (email).
Jika sudah tekan tombol TAB, dan OK. Sampai keluar konfirmasi seperti gambar di bawah ini:
Jika sudah selesai dan sukses, kita akan menerima pesan seperti gambar di bawah ini:
Untuk mengatifkan SSLnya kita perlu menambahkan kode berikut, di /etc/nginx/sites-available/default:
$ sudo nano /etc/nginx/sites-available/default 
listen 443 ssl;
ssl on;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;

ssl_certificate /etc/letsencrypt/live/linuxku.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/linuxku.com/privkey.pem;
Keluar dari nano, dan lakukan pengecekan Nginx kembali, untuk memastikan kode kita sudah valid atau belum.
$ sudo nginx -t 
Jika kita tidak menemukan kalimat galat (error), langsung saja kita restart Nginx-nya.
$ sudo systemctl restart nginx
Coba sekarang kita tes:

Selesai sekarang kita sudah dapat menggunakan HTTPS dengan sertifikat Let's Encrypt.

Semoga bermanfaat :D

Tuesday, November 22, 2016

Install Memcached Menerapakannya di PHP7 + Nginx di Ubuntu 16.04


Tutorial kali ini kita akan membahas mengenai bagaimana cara memasang memcache yang kita terapkan pada PHP versi 7 tentu dengan php-fpm di web server Nginx di server berbasis Ubuntu 16.04.

Memcached memiliki tujuan tujuan penggunaan teknologi ini yakni untuk turbo meningkatkan kinerja situs Anda serta mengurangi beban server berat dengan menghindari request yang sering ke database. Memcached adalah proses yang me-listen secara default pada port 11211.

Tidak berpanjang lebar langsung saja kita praktek. Asumsi tulisan ini Anda susah memasang Nginx, PHP7 dan php-fpm serta Nginx sudah dapat mengeksekusi PHP7.

Sebelum memulai ada baiknya kita singkronisasikan terlebih dahulu database pada repository dalam sistem.
$ sudo apt-get update -y
Kemudian baru kita pasang memcached tersebut:
$ sudo apt install memcached php-memcached
Kemudian kita aktifkan memcached tersebut
$ sudo phpenmod memcached 
Jika sudah coba kita cek apakah Memcache sudah di load oleh PHP atau belum dengan cara:
$ php -i | grep memcache

Atau kita buatkan skrip php nya:
$ sudo nano /var/www/html/info.php
Lalu masukan skrip berikut:
<?php
phpinfo();

Kita tes dengan skrip PHP dengan nama misalnya tes.php. Langsung kita buat di:
$ sudo nano /var/www/html/tes.php
Dan isikan skrip seperti di bawah ini:
<?php
$mem = new Memcached();
$mem->addServer("127.0.0.1", 11211);
 
$result = $mem->get("blah");
 
if ($result) {
    echo $result;
} else {
    echo "Tidak ada key, coba Anda refresh browser Anda";
    $mem->set("blah", "Berhasil tersimpan di Memcached") or die("Tidak dapat menyimpan apapun di memcached...");
}

Jika berhasil ia akan menampilkan pesan berhasil. Mudah bukan? Semoga bermanfaat :)

Saturday, November 19, 2016

Install OpenCart di Nginx


OpenCart adalah aplikasi e-Commerce berbasis PHP dengan sistem CMS (content management system), yang mana ia cukup banyak digunakan untuk pembuatan situs pembelanjaan online.

Tulisan kali ini penulis akan memberikan cara tentang bagaimana pemasangan OpenCart di web server yang menggunakan Nginx. Kita akan belajar memasang OpenCart tersebut secara manual dengan bermodalkan CLI (command line interface) saja.
Langsung saja kita mulai praktek, Anda login server Anda via SSH. Pertama-tama kita pasang git terlebih dahulu.
$ sudo apt-get install git
Kemudian pastikan Anda sudah memasang paket php Curl dan Mcrypt, cara pemasangannya ada sebagai berikut:
$ sudo apt-get install php5-curl php5-mcrypt
$ sudo php5enmod mcrypt
$ sudo service php5-fpm restart
Jika Anda pengguna Ubuntu 16.04 ganti kata php5 dengan php7.0.
Kemudian kita buat directory di /srv/http/:
$ sudo mkdir -p /srv
$ sudo mkdir -p /srv/http
Lalu kita clone OpenCart dari GitHub:
$ cd /srv/http
$ sudo git clone https://github.com/opencart/opencart.git
$ cd opencart
Kemudian kita ubah ownernya pada directory upload:
Jika Anda pengguna Debian, Ubuntu dan derivatifnya:
$ sudo chown www-data:www-data -R upload
Jika Anda pengguna Centos, Fedora, RHEL dan derivatifnya:
$ sudo chown nginx:nginx -R upload
Kemudian kita buat virtualhost. Penulis menyarankan gunakan pemetaan virtualhost seperti Debian, Anda bisa mencontohnya pada artikel linuxku.com sebelumnya yakni:

http://www.linuxku.com/2016/05/menerapkan-virtualhost-untuk-keperluan.html

Kita buat virtualhost berikut:
$ sudo nano /etc/nginx/sites-available/opencart
Isi seperti skrip di bawah ini:
server {
 listen 80;

# Jika Anda ingin menggunakan https uncomment di bawah ini
# listen 443;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
#
# ssl_session_timeout 5m;
#
# ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
# ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
# ssl_prefer_server_ciphers on;
 
 root /srv/http/opencart/upload;
 index index.php index.html index.htm
 server_name opencart.local;

 location / {
          try_files $uri $uri/ /index.php?$args;
 }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_intercept_errors on;

        # Hilangkan tanda pagar di samping bagi Anda Pengguna Ubuntu 16.04
 # fastcgi_pass unix:/run/php/php7.0-fpm.sock;
 # Bagi Anda pengguna Ubuntu 14.04
 fastcgi_pass unix:/var/run/php5-fpm.sock;
 
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

   location ~ /\.ht {
 deny all;
   }
}
Perhatian skrip di atas hanya khusus pengguna Ubuntu 14.04 atau 16.04 jika Anda ingin menggunakan skrip di atas untuk distro lainnya harap ubah pada bagian fastcgi disesuai dengan distro Anda.

Kemudian kita aktifkan virtualhostnya:
$ sudo ln -s /etc/nginx/sites-available/opencart /etc/nginx/sites-enabled/
Lalu kita restart Nginx:
$ sudo service nginx retart
Sekarang kita beranjak ke database, kita buat database beserta usernamenya.
$ mysql -u root -p'Password Anda'
Kemudian lakukan perintah seperti di bawah ini:
mysql> create database opencart_db;
mysql> create user opencart_db_user@localhost identified by 'Password Anda';
mysql> grant all privileges on opencart_db.* to opencart_db_user@localhost;
mysql> flush privileges;
mysql> \q
Lalu kemudian kita buat config opencartnya.
$ cd /srv/http/opencart/upload
$ sudo cp config-dist.php config.php
$ sudo cp admin/config-dist.php admin/config.php
$ sudo chown www-data:www-data -R *
Jika sudah langsung saja Anda akses, dicontoh tutorial ini penulis menggunakan domain opencart.local, jadi kita bisa langsung akses ke tautan http://opencart.local/

Pastikan pengaturan Anda sudah seperti gambar di bawah ini:
Langsung saja klik Continue, dan isikan username, password beserta database yang telah kita buat sebelumnya:

Kemudian kita buat username, password dan email untuk login.
Klik continue, dan OpenCart telah berhasil kita pasang.

Langkah terkahir yakni kita menghapus direktori install:
$ sudo rm -rf /srv/http/opencart/install
Selesai sudah OpenCart kini telah terpasang di server Anda, semoga bermanfaat :)

Tuesday, November 8, 2016

Menyembunyikan Versi Nginx dari Public


Memperbaharui suatu aplikasi adalah hal yang cukup penting demi mendapatkan fitur baru dan juga demi menambal kerentanan, bugs atau masalah pada versi sebelumnya. Akan tetapi memperbaharui aplikasi terkadang juga malah menimbulkan masalah baru, oleh karenanya terkadang kita juga tetap membiarkannya sampai benar-benar stabil.

Menjaga atau melindungi web server seperti Nginx adalah penting dilakukan, dan salah satu cara melindunginya yakni kita update secara berkala. Juga salah satu melindungi Nginx adalah menyembunyikan versinya ketika terjadi error dari suatu website, Nginx menampilkan versinya secara public. Hal ini perlu kita sembunyikan, mengapa? Karena dengan menampilkan versinya, hingga orang lebih mudah meretas kerentanan Nginx, tinggal liat versinya saja dan mencari tahu kelemahan dari versi tersebut.

Tutorial kali ini, penulis akan membahas tentang bagaimana cara menyembunyikan versi Nginx dari public. Perlu diketahui, tutorial ini dapat digunakan oleh distro manapun, akan tetapi penulis mempraktekan tutorial ini di Ubuntu Server 14.04.

Langsung saja kita mulai praktek, pertama-tama Anda login SSH Anda dan masuk kepengaturan Nginx.

Secara umum pengaturan Nginx seperti berikut:
$ nano /etc/nginx/nginx.conf
Jika Anda pengguna Ubuntu atau Debian gunakan nano sebagai editornya, jika Anda pengguna distro lain, gunakan vi atau vim.

Jika sudah langsung Anda cari kata " server_tokens " (tanpa petik dua), ubah menjadi " off " (tanpa petik dua).
server_tokens off; 
Lihat seperti gambar di bawah ini:
Jika sudah, langsung tutup nano atau vi atau vim Anda dan simpan. Lalu kita restart Nginx kita dengan cara berikut:
$ sudo service nginx restart
Khusus Anda pengguna Systemd
$ sudo systemctl restart nginx
Jika sudah langsung saja Anda tes dengan browser dan masukan direktori sembarang sampai Nginx error, maka hasilnya akan seperti gambar di bawah ini:

Mudah bukan? Semoga bermanfaat :)

Tuesday, November 1, 2016

Implementasi uWSGI dan Nginx Sebagai Server Python Apps di Ubuntu


Sebelumnya kita telah membahas tentang Nginx sebagai webserver yang menjalankan skrip PHP.

Pada tulisan kali ini kita akan membahas tentang bagaimana cara menjalankan skrip python di web server dengan menggunakan Nginx. Saya tidak membahas tentang teori, fokus pada tulisan ini hanyalah praktek.
Langsung saja kita mulai praktek. Pertama-tama kita pasang dahulu Python dan Nginx di Ubuntu.
$ sudo apt-get update
$ sudo apt-get install python-dev python-pip nginx
Lalu kita pasang virtualenv dengan pip.
$ sudo pip install virtualenv
$ sudo pip install uwsgi
Sebagai contoh kita buat direktori di /home dengan nama mypy:
$ mkdir ~/mypy/
$ cd ~/mypy
Kemudian kita buat virtualenv.
$ virtualenv myapp
Lalu buat skrip python sederhana
$ nano ~/mypy/wsgi.py
Dan isikan skrip python itu seperti di bawah ini:

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return ["<h1 style='color:blue'>Halo Linuxku.com!</h1>"]
Lalu coba kita jalankan:
$ uwsgi --socket 0.0.0.0:8080 --protocol=http -w wsgi
Jika sudah seperti gambar di bawah ini, berarti kita susah sukses memasang uWSGI.
Langkah selanjutnya kita buat uWSGI tersebut jalan di deamon. Berikut ini saya sediakan hanya skrip untuk Ubuntu 14.04 yang mana menggunakan Upstart.

Buat berkas myapp.ini
$ nano ~/mypy/myapp.ini
Lalu isikan seperti berikut:
[uwsgi]
module = wsgi:application

master = true
processes = 5

socket = myapp.sock
chmod-socket = 664
vacuum = true

die-on-term = true
Dan kita buat skrip untuk Upstart:
$ sudo nano /etc/init/myapp.conf 
Masukan skrip berikut:

description "uWSGI instance to serve myapp"

start on runlevel [2345]
stop on runlevel [!2345]

setuid ali
setgid www-data

script
    cd /home/ali/mypy
    . myapp/bin/activate
    uwsgi --ini myapp.ini
end script
Dan coba kita jalankan
$ sudo start myapp
Jika sudah seperti gambar di bawah ini:
Berati sudah sukses. Lalu kemudian coba kita implentasikan di Nginx:
$ sudo nano /etc/nginx/sites-available/default
Kemudian isikan seperti berikut:
server {
    listen 80;
    server_name server_domain_or_IP;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/home/ali/mypy/myapp.sock;
    }
}
Pastikan konfigurasi Nginx berjalan dengan sempurna, coba kita cek terlebih dahulu dengan:
$ sudo nginx -t
Jika sudah beres langsung saja kita restart Nginx
$ sudo service nginx retart
Sekarang Anda bisa langsung akses skrip python Anda di browser seperti gambar berikut:

Semoga bermanfaat :)

Saturday, October 29, 2016

Memasang phpMyAdmin pada Nginx + PHP-fpm di Ubuntu


PhpMyAdmin adalah aplikasi yang digunakan untuk mengatur database server Mariadb/MySQL secara GUI berbasis web yang cukup populer digunakan oleh para web developer. Apalagi phpMyAdmin ini sudah terintegrasi dengan Cpanel sehingga kehadirannya menjadikan ia semakin dikenal.

Tutorial kali ini penulis akan memberikan bagaimana cara memasang phpMyAdmin di server yang mana menggunakan Nginx pada Ubuntu. Jika Anda pengguna Apache, memasang phpMyAdmin tidaklah terlalu rumit, lain hal untuk Nginx, perlu ada sedikit konfigurasi, oleh karena itu tulisan ini hadir yang mana mudah-mudahan menjadikan suatu referensi untuk menyelesaikan masalah kerumitan tersebut.


Sesuai judul kita memasang phpMyAdmin pada Nginx + php-fpm pastikan sebelumnya Anda sudah memasangnya. Jika belum Anda bisa memasang Nginx dan php-fpm, juga mariadb/mysql dengan mengikuti tutorial sebelumnya di linuxku.com yakni:
  1. http://www.linuxku.com/2016/10/memasang-nginx-dan-php-fpm-di-ubuntu.html
  2. http://www.linuxku.com/2016/05/menjalankan-php-menggunakan-nginx.html
  3. http://www.linuxku.com/2016/05/menginstall-mysql-server-untuk.html
  4. http://www.linuxku.com/2016/06/install-mariadb-sebagai-penganti-mysql.html
Jika sudah ada, Anda bisa langsung memasang phpMyAdmin dengan perintah:
$ sudo apt-get install phpmyadmin
Jika ada pilihan seperti gambar di bawah ini:
Langsung saja kita lewatkan (jangan memilih kedua web server di atas), tekan tombol <TAB>, sampai ke <Ok>.
Lalu

Dan masukan root user:

Kemudian masukan password dari root tersebut:
Masukan password untuk phpMyAdmin:

Jika Anda mendapatkan galat seperti gambar di bawah ini
Langsung saja klik <ok>, kemudian pilih <ignore>, dan lakukan perbaikan seperti link di bawah ini:

http://www.linuxku.com/2016/10/mengatasi-access-denied-for-user.html 

Jika sudah langsung kita konfigurasi ulang dengan perintah di bawah ini:
$ sudo dpkg-reconfigure phpmyadmin

Pilih Unix Socket
Lalu masukan root user:
Dan masukan root password Anda:
Masukan nama table database yang digunakan oleh phpMyAdmin:
Lalu kita buat symbolic link, ke directory root dari Nginx, agar Nginx dapat mengakses directory phpMyAdmin secara lansung.
$ sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html/

Langsung saja Anda akses phpMyAdmin:
Mudah bukan? Ada sedikit tips agar phpMyAdmin Anda lebih aman gunakan password authentication, bisa baca artikel: http://www.linuxku.com/2016/08/mengaktifkan-password-authentication.html

Semoga bermanfaat :)

Thursday, October 27, 2016

Memasang Nginx dan PHP-Fpm di Ubuntu 14.04/16.04 LTS


Nginx (baca: engine x) adalah server HTTP dan Proxy dengan kode sumber terbuka (source code) Nginx dapat pula berfungsi sebagai proxy IMAP/POP3 (Wikipedia).

Salah satu keunggulan Nginx dibandingkan dengan Apache yakni terletak pada ringannya serta memiliki konfigurasi yang simpel lagi mudah. Meskipun hingga saat ini pengguna terbanyak web server adalah Apache, bukan berarti Nginx tidak banyak, justru Nginx termasuk pengguna terbanyak pula setelah Apache.

Pada tutorial kali ini penulis akan menampilkan tentang bagaimana cara memasang Nginx sebagai web server, disertai php-fpm yang mana berguna untuk membaca skrip php. Jika sebelumnya Anda pengguna Apache, tidaklah asing bagi Anda tentang php-apache, ya, Apache memiliki module tersendiri untuk membaca skrip PHP, lain hal dengan Nginx, kita perlu php-fpm untuk menjalankan skrip PHP tersebut dengan sebagaimana mestinya.
Langsung saja kita mulai praktek. Pertama-tama masuk ke Server Anda dengan ssh. Sebelum beranjak ke pemasangan Nginx dan php-fpm, ada baiknya kita sinkronisasikan terlebih dahulu database repository lokal dengan pusat, untuk memastikan seluruh paket sudah terbaru.
$ sudo apt-get update
Lalu kita pasangan Nginx:
$ sudo apt-get install nginx nginx-common nginx-core
Anda bisa menggunakan nginx-full untuk mendapatkan beberapa tambahan dari Nginx, akan tetapi hemat saya cukup untuk nginx-core dan nginx-common saja.

Kemudian kita pasang php-fpm:
--- Untuk pengguna Ubuntu 14.04 ---
$ sudo apt-get install php5-fpm php5 php5-gd php5-common
--- Untuk pengguna Ubuntu 16.04 ---
$ sudo apt-get install php7.0-fpm php7.0 php7.0-gd php7.0-common
Anda sudah bisa langsung mengakses Nginx Anda di browser:
Dan dapat menambahkan hanya file html di /usr/share/nginx/html/. Secara default Nginx tidak membaca file PHP, jadi jika Anda meletakan file PHP di sana ia akan membaca sebagaimana file.

berikut ini contohnya:
Ketika kita mengakses ver.php di browser dikenali sebagai file, sehingga memunculkan popup download atau save file. Oleh karena itu kita perlu mengatur konfigurasi Nginx dengan memanfaatkan php-fpm. Caranya adalah sebagai berikut:

Kita buka pengaturan default situs di /etc/nginx/sites-available/default:
$ cd /etc/nginx/sites-available
$ sudo mv default default.bak
$ sudo nano default
Buat pengaturan seperti di bawah ini:
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 localhost;

        location / {
         try_files $uri $uri/ /index.php?$args;
        }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_intercept_errors on;

        # Hilangkan tanda pagar di samping bagi Anda Pengguna Ubuntu 16.04
        # fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        # Bagi Anda pengguna Ubuntu 14.04
        fastcgi_pass unix:/var/run/php5-fpm.sock;

        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

   location ~ /\.ht {
        deny all;
   }
}
Lalu kemudian kita edit php.ini, pasti Anda sudah mengatahui di mana letak php.ini. Cara termudah untuk mengetahuinya yakni:
$ php -i | grep php.ini
Jika sudah seperti gambar di atas langsung saja kita edit dengan nano:
$ sudo nano /etc/php5/cli/php.ini
Cari kata cgi.fix_pathinfo= dengan cara menekat tombol CTRL+W
Hapus tanda titik koma (semicolon) dan ganti cgi.fix_pathinfo=0 seperti gambar di bawah ini:
Kemudian langsung kita restart Nginx:
$ sudo service nginx restart
Untuk memastikan apakah Nginx sudah dapat menjalan skrip php atau belum kita bisa membuat skrip percobaan yakni:
$ sudo nano /usr/share/nginx/html/ver.php
Dan isikan skrip seperti berikut:
<?php
phpinfo();
 

Dan langsung saja kita coba di browser:
Jika seperti gambar di atas artinya Anda telah sukses memasang Nginx dan php-fpm. Semoga bermanfaat :)