Install dan Memaksimalkan Kinerja Nginx dan PHP-FPM di CentOS

Informasi Seputar PHP Web Server

Melanjutkan artikel sebelumnya yang membahas bagaimana cara install Nginx, sekarang dilanjutkan dengan install PHP-FPM yang akan dikombinasikan dengan Nginx Web Server. PHP-FPM sendiri adalah kependekan dari PHP FastCGI Process Manager yang merupakan sebuah alternatif implementasi FastCGI PHP dengan beberapa fitur tambahan yang berguna untuk situs dari berbagai ukuran, terutama situs sibuk. Dapat digunakan bersama nanoweb, lighttpd, apache, ataupun web server lainnya yang mendukung implementasi fastcgi melalui koneksi tcp-ip/unix socket untuk meningkatkan performansi script php. (Sumber dari sini http://id-php.org/Sumber_daya).

Install dan Konfigurasi PHP-FPM bersama Nginx

Dengan PHP-FPM, proses kerja dari script PHP akan lebih efektif jika dibandingkan dengan menggunakan PHP konvensional. Dan tentunya akan lebih hemat resource. Jika anda kurang yakin pernyataan ini, silahkan anda coba sendiri di website yang anda kelola.

Berikut ini step by step install, konfigurasi dan optimasi dari PHP-FPM yang dikombinasikan dengan Nginx web server.

1) Aktifkan REMI Repository di VPS anda. (Sumber referensi dari http://wiki.centos.org/AdditionalResources/Repositories)

Karena secara default PHP-FPM bukan bagian dari package dari CentOS maka kita harus menggunkan REMI Repository agar bisa install PHP-FPM secara langsung. Untuk mendapatkan dan menginstallnya, gunakan cara di bawah ini dan sesuaikan dengan veris CentOS yang anda gunakan. Pada contoh ini saya menggunakan CentOS 5.x

#wget wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
#rpm -Uvh epel-release-5-4.noarch.rpm
#wget http://rpms.famillecollet.com/enterprise/5/remi/i386/remi-release-5-8.el5.remi.noarch.rpm
#rpm -Uvh remi-release-5-8.el5.remi.noarch.rpm
#yum update

Keterangan:

  • Pertama, kita harus aktikfkan Extra Packages for Enterprise Linux agar repository baru bisa aktif.
  • Untuk mendapatkan REMI repository, kunjungi halaman ini http://rpms.famillecollet.com/enterprise/5/remi/i386/repoview/remi-release.html
  • Jika repository sudah didapatkan, update CentOS anda dengan perintah yum update. Jika ingin lebih jelas, lihat gambar di bawah ini (Klik gambar untuk memperbesar ukuran gambar).
    Remi Repository untuk CentOS

2) Install dan Konfigurasi PHP-FPM

Setelah REMI sudah aktif di VPS anda, lanjutkan dengan install PHP-FPM dan paket lain yang biasa diperlukan untuk website:

#yum --enablerepo=remi install php-fpm php-mysql php-gd php-pear php-mbstring php-common php-pdo php-xml php-cli php-mcrypt
#rpm -qa | grep -i php
#service php-fpm start

Keterangan;

  • Baris pertama adalah perintah untuk menginstall paket PHP-FPM bersama teman-temanya. Lihatlah gambar di bawah ini dan klik untuk memperbesar ukurang gambar.
    Enable REMI ketika install paket PHP
  • Ketik huruf Y untuk melanjutkan proses install.
  • Baris kedua adalah perintah untuk megecek apa yang sudah kita install.
    Cak paket PHP yang sudah terinstall di VPS
  • Testing PHP-PFM dengan cara mengaktifkannya di service dengan mengetikkan perintah service php-fpm start.

3) Konfigurasikan PHP-FPM agar sinkron dengan server Nginx.

Untuk melakukan konfigurasi ini, kita harus mengedit file konfigurasi PHP-FPM yang berada di /etc/php-fpm.d/www.conf

#nano /etc/php-fpm.d/www.conf

Contoh file konfigurasi dari php-fpm (Yang tentunya disingkronkan dengan konfigurasi Nginx yang sudah kita install sebelumnya. Lihat artikel Cara Mudah Intall dan Konfigurasi Nginx Web Server untuk lebih jelas) yang bisa anda gunakan:

listen = 127.0.0.1:9000
listen.owner = nginx
listen.group = nginx
listen.mode = 0666
user = nginx
group = nginx
pm = dynamic
pm.max_children = 16
pm.start_servers = 4
pm.min_spare_servers = 4
pm.max_spare_servers = 8
pm.max_requests = 512

Untuk yang lain biarkan default saja. Sekarang coba anda test konfigurasi yang sudah anda lakukan dengan cara merestart service PHP-FPM dengan preintah service php-fpm restart. Kalau tidak ada pesan error berarti settingan anda tidak bermasalah. Jika ada yang error coba periksa satu per satu.

4) Test Konfigurasi Agar Bisa Membaca File dan Script PHP

Kalau PHP-FPM sudah bisa berjalan, sekarang saatnya untuk mengombinasikan antara Nginx dan PHP-FPM sehingga request yang ditujukan untuk web server bisa mengeksekusi file PHP. Untuk keperluan ini kita menggunakan file khusus untuk konfigurasi domain yang akan ditempatkan di folder /etc/nginx/conf.d/

Untuk keperluan ini saya menggunakan contoh subdomain diskusi.cintagadget.com, maka konfigurasi dari file konfigurasi bisa kita beri nama diskusi.cintagadget.conf  dengan full path /etc/nginx/conf.d/diskusi.cintagadget.conf dengan isi file sebagai berikut.

server {
    ## Nama website anda
    server_name diskusi.cintagadget.com www.diskusi.cintagadget.com;

    ## PATH dari root directory website
    root /home/siskusi/diskusi.cintagadget.com;
    listen 80;

    ## File yang akan dibaca sebagai indeks dari file konfigurasi (Diload oleh Nginx)
    index index.html index.php;

    ## Jangan perbolehkan akses ke file hidden
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }

    location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }
    # Baca file PHP
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:9000;
    }
}

Setelah konfigurasi selesai, jangan lupa restart nginx web server dan php-fpm anda. Jika proses restart berjalan tanpa ada pesan error, sekarang coba buat file /var/www/html/info.php dengan isi file:

<?php
info();
?>

Kemudian coba akses url dengan alamat http://diskusi.cintagadget.com/phpinfo.php. Jika tampilan website anda seperti ini gambar di bawah ini (Klik gambar untuk ukuran besar), maka dipastikan konfigurasi Nginx dan PHP-FPM anda sudah benar. Jika belum, coba cari lagi mana yang kurang dan ulangi sekali lagi dengan merestart Nginx dan PHP-FPM.

Informasi Seputar PHP Web Server

5) Beberapa Tambahan Konfigurasi.

Berikut ini beberapa tambahan konfigurasi yang mungkin bisa anda gunakan agar proses eksekusi script lebih cepat.

Pertama, edit file /etc/php.ini dan rubah beberapa bagian menjadi seperti ini.

short_open_tag = On
memory_limit = 128M
cgi.fix_pathinfo = 0
upload_max_filesize = 2M

Bagi yang belum terbiasa setting seperti ini mungkin akan membingungkan. Tetapi jika anda membiasakan diri dan terus belajar, lama kelamaan akan terbiasa dan tidak akan bingung lagi. Jika ada pertanyaan seputar implementasi Nginx dan PHP-FPM, jangan ragu untuk bertanya dengan meninggalkan komentar di bawah ini. Jika kami memang bisa, kami akan membantu anda dengan senang hati.

About Ahmad Sukses 84 Articles
Seorang blogger baru yang mendedikasikan dirinya untuk fokus pada penyusunan artikel dengan tema teknologi, yang juga memiliki beberapa blog pribadi. Tujuan hidupnya adalah bisa memberikan manfaat bagi orang lain, terutama orang yang dicintai dan dikasihi. Motto hidupnya adalah 'Everyday try to make better in my life!'.

5 Comments

  1. Om tanya…

    Saya gagal di proses restart nginx…

    Keterangan error $args; pada line 20

    try_files $uri $uri/ /index.php?q=$uri&$args;

    Setelah saya hapus menjadi:

    try_files $uri $uri/ /index.php?q=$uri;

    Nginx sukses. Dan php fpm juga sukses.

    Tapi pas mau mencoba file php-nya ketika di akses menggunakan sub domain. Sub punya ane vps.tergila.com = TIDAK BISA.

    Kenapa ya?

    Padahal konfigurasi sudah saya lakukan sesuai petunjuk. Hanya saja pada line 6,

    root /home/siskusi/diskusi.cintagadget.com;

    saya ganti menjadi

    root /home/vps/vps.tergila.com;

    Mohon bantuannya.

    Apa mungkin saya salah atur domain ya? Maksudnya masalah DNS dan A Recordnya

    • @Mas Jamal: Bisa jadi salah A Record-nya. A Record-nya sudah diarahkan ke IP address dari VPS kan?

      Untuk versi CentOS, versi 5 dan 6 sama saja, tergantung kebiasaan masing-masing orang saja.

Leave a Reply

Your email address will not be published.


*