Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Tutorial Linux: Instalasi Nginx Dengan PHP5, MySQL di Ubuntu 17.04 LTS

Posted on May 10, 2014

nginx1Nginx (dibaca engine x) adalah HTTP server free, opensource dan dikhususkan untuk server performa tinggi. Nginx dikenal akan stabilitas, kekayaan fitur, kesederhanaan konfigurasi dan rendahnya konsumsi daya yang dibutuhkan. Tutorial ini akan memandu anda menginstall Nginx, PHP5, dan MySQL (LEMP) di Ubuntu 14.04 LTS.

Setidaknya anda sudah mempunyai satu komputer yang telah terpasang Ubuntu 14.04 LTS, baik mesin VM maupun fisik, serta akses ke repository Ubuntu 14.04 LTS, baik jaringan internet maupun repo lokal. Untuk tutorial kali ini, hostname yang dicontohkan adalah nginx.emka.web.id dengan IP address 192.168.0.100. Silakan sesuaikan dengan kebutuhan anda. Semua perintah akan dijalankan sebagai root atau selevel dengan itu (silakan lakukan perintah sudo su dan masukkan password anda).

1. Instalasi MySQL

Ubuntu 14.04 LTS masih menyediakan MySQL produksi Oracle alih-alih menggunakan MariaDB dari MariaDB Foundation seperti kebanyakan distro lain. Silakan pasang MySQL dengan perintah:

[sourcecode language=”bash”]
apt-get install mysql-server mysql-client
[/sourcecode]

pada saat instalasi anda akan ditanya password bagi MySQL server, silakan tuliskan password anda dua kali dan konfirmasi dengan tombol OK.

2. Instalasi NGINX

Nginx sendiri tersedia secara resmi sebagai paket Ubuntu 14.04 LTS dan dapat kita pasang, meskipun Apache2 kadang sudah terpasang secara default (khususnya bagi Ubuntu Server). Silakan hilangkan dulu Apache dengan perintah:
[sourcecode language=”bash”]
service apache2 stop
update-rc.d -f apache2 remove
apt-get remove apache2
[/sourcecode]

kemudian install Nginx:
[sourcecode language=”bash”]
apt-get install nginx
[/sourcecode]

Jalankan service Nginx dengan perintah:
[sourcecode language=”bash”]
service nginx start
[/sourcecode]

Kemudian pada browser anda, silakan buka alamat server dengan alamat http://192.168.0.100 (atau sesuai alamat server anda). Seharusnya terlihat halaman Welcome to Nginx!

nginx-welcome-to

halaman tersebut terletak di /usr/share/nginx/html. Silakan ubah jika anda memerlukannya.

3. Install PHP5 dan PHP-FPM

Secara default PHP5 memang tidak bisa berjalan di lingkungan Nginx, namun kita masih bisa mengakalinya dengan menggunakan PHP-FPM (PHP FastCGI Process Manager) sebagai alternatif implementasi CGI di PHP yang masih terbatas itu. Silakan install dengan perintah:
[sourcecode]
apt-get install php5-fpm
[/sourcecode]

PHP-FPM sendiri adalah sebuah proses daemon dengan script init php5-fpm, dimana prosesnya akan menjalankan server FastCGI pada socket /var/run/php5-fpm.sock.

4. Konfigurasi Nginx

Konfigurasi Nginx sebenarnya sangat sederhana, namun sangat berbeda dari Apache. Silakan baca disini: http://wiki.nginx.org/NginxFullExample jika anda membutuhkan contoh lengkapnya.

Anda bisa membuka konfigurasinya dengan vi atau editor lainnya:
[sourcecode]
vi /etc/nginx/nginx.conf
[/sourcecode]

ubah value worker_processes ke 4; dan keepalive_timeout menjadi 2; contoh:

[...]
worker_processes  4;
[...]
    keepalive_timeout   2;
[...]

selain konfigurasi utama dari Nginx diatas, kita juga harus memodifikasi konfigurasi Vhost Nginx kita.
[sourcecode]
vi /etc/nginx/sites-available/default
[/sourcecode]

ubah konfigurasinya kira-kira menjadi seperti ini:

[...]
server {
        #comment 2 baris berikut jika secara default Nginx ingin menggunakan port 80 untuk ipv4 maupun ipv6
        listen 80;
        listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        nginx.emka.web.id; #sesuaikan

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ /index.html;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }

        location /doc/ {
                alias /usr/share/doc/;
                autoindex on;
                allow 127.0.0.1;
                allow ::1;
                deny all;
        }

        # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
        #location /RequestDenied {
        #       proxy_pass http://127.0.0.1:8080;
        #}

        #error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/html;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

                # With php5-cgi alone:
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
                deny all;
        }
}
[...]

Jika anda memiliki directory aktif berbeda misalnya /var/www/, /srv/www ataupun /home/namauser/public_html, silakan sesuaikan variabel root /usr/share/nginx/html.

Jika sudah yakin, silakan reload service Nginx dengan perintah:
[sourcecode]
service nginx reload
[/sourcecode]

Langkah selanjutnya adalah mengkonfigurasi PHP, di file php.ini. Letaknya ada di: /etc/php5/fpm/php.ini.

[sourcecode]
vi /etc/php5/fpm/php.ini
[/sourcecode]

set penetapan path CGI keposisi disable (value 0).

[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=0
[...]

Kemudian reload PHP-FPM:
[sourcecode]
service php5-fpm reload
[/sourcecode]

Untuk memastikan PHP berjalan semestinya, silakan buat halaman phpinfo() di direktori aktif.
[sourcecode]
vi /usr/share/nginx/html/info.php
[/sourcecode]

tulis:
[sourcecode language=”php”]
<?php
phpinfo();
?>
[/sourcecode]

dan akses via web browser, contoh: http://192.168.0.100/info.php (atau sesuai alamat web anda).

php-info

5. Install PHP MySQL Suppport

Secara default PHP tidak memasukkan dukungan MySQL jika dipasang sendiri. Kita harus menginstall ekstension-ekstension PHP yang kebanyakan dibutuhkan oleh web-web modern. Silakan ikuti perintah berikut:
[sourcecode]
apt-cache search php5
#contoh
apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php-apc
[/sourcecode]

kemudian reload php5-fpm:
[sourcecode]
service php5-fpm reload
[/sourcecode]

Setelah semua langkah ini selesai, silakan upload web-apps anda ke direktori aktif anda.

Terbaru

  • Investasi Bitnest Janjikan Profit Stabil, Yakin Aman? Cek Dulu Faktanya Sebelum Nyesel!
  • Cara Mengatasi Masalah Klik Mouse Tidak Berfungsi di Windows
  • Apple Dikabarkan Bikin iPhone Layar Lengkung 4 Sisi, Niru Xiaomi?
  • Inikah HP Samsung Terawet? Samsung Diam-diam Uji Baterai 20.000 mAh
  • Ini Deretan HP Murah RAM 12 GB yang Bisa Bikin Multitasking Ngebut!
  • Ini Trik Rahasia Dapat Candy Blossom di Grow a Garden, Nggak Cuma dari Event!
  • Siap-siap Boros! Ini Bocoran Skin Starlight Januari 2026 dan Update Seru M7
  • Moto X70 Air Pro Bakal Punya Kamera Periskop Canggih!
  • Ternyata Nggak Semua Aplikasi Bisa QRIS CPM di Alfamart, Ini Penjelasannya!
  • Lagi Order Tiba-tiba Gojek Error? Jangan Panik Dulu, Coba Langkah Praktis Ini!
  • Belum Tahu? Inilah Cara Melihat Kode Verifikasi Email Saya 6 Digit yang Sering Bikin Bingung!
  • Belum Tahu? Ini Cara Dapat Akses Premium Viu & Vidio Gratis Pakai Axis!
  • Belum Tahu? Inilah Fakta Kamera 0,5 di Samsung Galaxy A05s, Jangan Salah Beli!
  • Nggak Perlu Panik! Ini Trik Jitu Mengatasi Preview Pane PDF yang Hilang di Windows 10 & 11
  • Ini Video Cikgu Nisa Viral di TikTok? Awas Jangan Asal Klik Link Nonton!
  • Kok Menu Undang Teman di Melolo Hilang? Gini Cara Mengembalikannya!
  • Apa Itu Putlocker? Ini Pengertian dan Deretan Alternatif Penggantinya
  • Apa Itu Extend Volume? Ini Cara Memperluas Drive C di Windows 11
  • Ini Trik AFK Fish It Roblox Pakai LDCloud, Auto Panen Ikan Tanpa Bikin HP Panas!
  • Apa itu Game Zenless Zone Zero (ZZZ) HoYoVerse? Ini Cara Mainnya
  • Cuma Kurang 1 Rupiah! Misteri Lucky Draw Akulaku Rp300 Ribu, Bisa Cair Nggak Sih?
  • Video Melolo Cuma Layar Hitam? Ini Trik Ampuh Mengatasinya, Pasti Berhasil!
  • Mau Simpan Video Twitter dan TikTok Tanpa Aplikasi? Begini Cara Praktis Pakai VidsSave!
  • Mau Gaji Dolar? Gini Caranya Tembus Kerja di Australia, Jangan Sampai Salah Visa!
  • Belum Tahu? Inilah Fakta MigoReels, Katanya Nonton Drama Bisa Dapat Rp700 Ribu!
  • Apa Itu Event Invite Friends CapCut? Ini Pengertian dan Cara Kerjanya Biar Cuan
  • Apa Itu MJ di FF? Ini Pengertian, Asal-Usul, dan Risiko di Balik Istilah Tersebut
  • Apa Itu Pengertian Penonaktifan SPayLater? Ini Durasi Blokir Akibat Telat Bayar
  • Apa Itu Rasio Gambar Ukuran 1:1 di Canva? Ini Pengertian dan Cara Buatnya
  • Pengiriman Shopee Express Hemat itu Berapa Lama? Ini Pengertian dan Estimasi Sampainya
  • Apa itu Cosmic Desktop: Pengertian dan Cara Pasangnya di Ubuntu 26.04?
  • Apa Itu Auvidea X242? Pengertian Carrier Board Jetson T5000 dengan Dual 10Gbe
  • Elementary OS 8.1 Resmi Rilis: Kini Pakai Wayland Secara Standar!
  • Apa Itu Raspberry Pi Imager? Pengertian dan Pembaruan Versi 2.0.3 yang Wajib Kalian Tahu
  • Performa Maksimal! Ini Cara Manual Update Ubuntu ke Linux Kernel 6.18 LTS
  • Begini Cara Buat Generator Stiker WhatsApp Otomatis Menggunakan Python dan OpenAI GPT-Image-1
  • Inilah Cara Kerja AI Instagram Deteksi Konten Berbahaya dan Spam Secara Otomatis
  • Prompt AI Tahun Baruan di Bundaran HI
  • Prompt AI Pamer iPhone 17 Pro Max Orange
  • Apa itu GPT 5.2 di Microsoft Copilot? Ini Pengertian dan Keunggulannya
  • Apa Itu Kerentanan XSS N8N? Ini Pengertian dan Definisi Bahaya XSS yang Mengintai
  • Lagi Rame! Siapa Sebenarnya Cikgu Nisa? Awas Jangan Asal Klik Link Video Viral Ini
  • Apa Itu Paket WhatsApp API Palsu di NPM? Ini Pengertian dan Bahayanya
  • Apa Itu Serangan Spear-Phishing Microsoft 365? Ini Pengertian dan Modusnya
  • Apa Itu Ploutus? Mengenal Ransomware P0ADUS yang Baru Saja Ditindak DOJ
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV

©2026 emka.web.id | Design: Newspaperly WordPress Theme