Installasi NGINX DENGAN PHP5, MYSQL DI UBUNTU 14.04 LTS

blogger templates
Nginx (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:
1
apt-get install mysql-server mysql-client
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:
1
2
3
service apache2 stop
update-rc.d -f apache2 remove
apt-get remove apache2
kemudian install Nginx:
1
apt-get install nginx
Jalankan service Nginx dengan perintah:
1
service nginx start
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:
1
apt-get install php5-fpm
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:
1
vi /etc/nginx/nginx.conf
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.
1
vi /etc/nginx/sites-available/default
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:
1
service nginx reload
Langkah selanjutnya adalah mengkonfigurasi PHP, di file php.ini. Letaknya ada di: /etc/php5/fpm/php.ini.
1
vi /etc/php5/fpm/php.ini
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:
1
service php5-fpm reload
Untuk memastikan PHP berjalan semestinya, silakan buat halaman phpinfo() di direktori aktif.
1
vi /usr/share/nginx/html/info.php
tulis:
1
2
3
<?php
phpinfo();
?>
dan akses via web browser, contoh: http://192.168.0.100/info.php (atau sesuai alamat web anda).


Source : http://emka.web.id/linux/2014/tutorial-linux-instalasi-nginx-dengan-php5-mysql-di-ubuntu-14-04-lts/

0 Response to "Installasi NGINX DENGAN PHP5, MYSQL DI UBUNTU 14.04 LTS"

Post a Comment