Nginx, dibaca Engine – X merupakan High Performance HTTP Server dan Reverse Proxy serta IMAP/POP3 Proxy Server yang bersifat opensource dan gratis. Dikembangkan oleh Igor Sysoe pada tahun 2005 Nginx dengan cepat menjadi populer karena kestabilan, kekayaan fitur dan konsumsi resources yang sangat rendah meskipun masih dalam status beta, diambil dari wiki Nginx.
Engine-X, MySQL, PHP
Artikel ini akan memandu anda melakukan instalasi Nginx HTTP Server, MySQL Server dan PHP (fast-cgi) dengan menggunakan php-fpm Fats CGI Proccess Manager di mesin CentOS 5.2 64 bit dengan studi kasus VPS (Virtual Private Server) yang disediakan oleh Magnet dan menggunakan base install template.
Fasilitas komentar untuk artikel ini dimatikan, feedback dan error yang anda dapatkan saat menjalankan langkah-langkah yang diuraikan disini silahkan diutarakan melalui Forum Magnet http://forum.magnet-id.com/.
Instalasi MySQL
yum install -y mysql-server mysql-devel service mysqld start mysql_secure_installation Enter current password for root (enter for none): Enter Set root password? [Y/n] Y New password: rootpasssql Re-enter new password: rootpasssql Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Instalasi Paket yang dibutuhkan
yum install -y wget patch gcc libtool libmcrypt-devel libxml2-devel flex bison make pcre-devel zlib-devel openssl-devel gd-devel
Kompilasi PHP dan PHP-FPM patch
Kita akan melakukan kompilasi PHP 5.2.6 dari source bersama dengan patch PHP-FPM, download PHP 5.2.6 source file dan patch php-fpm;
cd /usr/local/src wget http://www.magnet-id.com/download/php/php-5.2.6.tar.gz wget http://www.magnet-id.com/download/php/php-5.2.6-fpm-0.5.8.diff.gz
Apply patch PHP-FPM dan install PHP, sesuaikan parameter konfigurasi dengan kebutuhan anda, apabila berbeda dari contoh berikut maka ada kemungkinan anda harus melakukan instalasi library yang terkait melalui yum.
tar xzvf php-5.2.6.tar.gz gzip -cd php-5.2.6-fpm-0.5.8.diff.gz | patch -d php-5.2.6 -p1 cd php-5.2.6 ./configure \ --enable-fastcgi \ --enable-fpm \ --enable-cli \ --with-mcrypt \ --with-zlib \ --enable-mbstring \ --with-openssl \ --with-mysql \ --with-mysql-sock \ --with-gd \ --with-jpeg-dir=/usr/lib64 \ --enable-gd-native-ttf \ --without-sqlite \ --disable-pdo \ --disable-reflection \ --with-libdir=lib64 \ --with-xpm-dir=/usr/lib64 \ --enable-gd-jis-conv \ --with-freetype-dir=/usr/include/freetype2 \ --with-ttf=/usr/include/freetype2 \ --enable-shared make all install strip /usr/local/bin/php-cgi
Modifikasi konfigurasi PHP-FPM pada baris 63 dan 65, hilangkan simbol komentar (<!– dan –>) dan rubah username dan group yang menjalankan PHP-FPM, dalam hal ini kita menggunakan nobody (default).
vi /usr/local/etc/php-fpm.conf
Modifikasi baris 63 dan 65 menjadi;
Unix user of processes <value name="user">nobody</value> Unix group of processes <value name="group">nobody</value>
Install XCache, opcode PHP Cacher;
cd /usr/local/src wget http://www.magnet-id.com/download/php/xcache-1.2.2.tar.gz tar xzvf xcache-1.2.2.tar.gz cd xcache-1.2.2 phpize ./configure --with-php-config=/usr/local/bin/php-config --enable-xcache make install
Masukkan konfigurasi XCache dan load ekstension melalui file konfigurasi PHP – php.ini (yang saat ini baru akan kita buat) di /usr/local/lib/php.ini ;
vi /usr/local/lib/php.ini
Masukkan konfigurasi berikut, file php.ini ini yang nantinya akan diload secara default, silahkan masukkan konfigurasi php lainnya di file ini apabila ada.
magic_quotes_gpc=0 [xcache-common] zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20060613/xcache.so [xcache] xcache.shm_scheme = "mmap" xcache.size = 64M
Periksa instalasi PHP anda;
php -v PHP 5.2.6 (cli) (built: Aug 10 2008 18:18:48) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies with XCache v1.2.2, Copyright (c) 2005-2007, by mOo
Init Script untuk PHP-FPM
Buat init script untuk PHP-FPM dan masukkan di rc.local agar diload secara otomatis ketika mesin anda di reboot;
cd /etc/init.d/ ln -s /usr/local/sbin/php-fpm php-fpm ## add this line to /etc/rc.local ## /etc/init.d/php-fpm start
Instalasi Nginx
Kemudian kita akan melakukan instalasi Nginx, versi stabil saat ini adalah 0.6.32, silahkan periksa situs terkait untuk versi stabil yang lebih baru;
cd /usr/local/src wget http://www.magnet-id.com/download/nginx/nginx-0.6.32.tar.gz tar xfz nginx-0.6.32.tar.gz cd nginx-0.6.32 ./configure --pid-path=/usr/local/nginx/logs/nginx.pid --sbin-path=/usr/local/sbin/nginx --with-md5=/usr/lib --with-sha1=/usr/lib --with-http_ssl_module --with-http_dav_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module make make install
Daemon Nginx untuk CentOS
Kita akan mengambil init script nginx daemon untuk CentOS yang dibuat oleh http://notrocketsurgery.com/, dan memasukkan ke dalam daftar service yang di start up otomatis ketika mesin anda di reboot;
wget http://www.magnet-id.com/download/nginx/nginx-daemon -O /etc/init.d/nginx chmod 750 /etc/init.d/nginx
Install start-stop-daemon
cd /usr/local/src wget http://www.magnet-id.com/download/nginx/apps-sys-utils-start-stop-daemon-IR1_9_18-1.tar.gz tar zxvf apps-sys-utils-start-stop-daemon-IR1_9_18-1.tar.gz cd apps/sys-utils/start-stop-daemon-IR1_9_18-1/ gcc start-stop-daemon.c -o start-stop-daemon cp start-stop-daemon /usr/sbin chkconfig --add nginx chkconfig --level 345 nginx on
Konfigurasi Nginx untuk PHP dan PHP-FPM Fast CGI
File konfigurasi Nginx yang kita install sebelumnya dapat ditemui di direktori /usr/local/nginx/conf/; tambahkan terlebih dahulu parameter di fastcgi_params;
vi /usr/local/nginx/conf/fastcgi_params
Tambahkan baris berikut di bagian akhir;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Sesuaikan konfigurasi Nginx
vi /usr/local/nginx/conf/nginx.conf
Ubah, tambahkan keterangan berikut;
user nobody; worker_processes 5; error_log /var/log/nginx/error.log; events { worker_connections 768; }
Buat direktori untuk keperluan logs nginx (tidak menggunakan default);
mkdir /var/log/nginx
Modifikasi konfigurasi di dalam http { }; perhatikan bahwa dalam tahap ini kita menghapus access log, silahkan ditambahkan pada konfigurasi virtual host nginx pada panduan berikutnya;
include mime.types; default_type application/octet-stream; sendfile on; tcp_nodelay on; keepalive_timeout 10 10; gzip on; gzip_comp_level 1; gzip_proxied any; gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
Di dalam http { server { } }; edit/ tambahkan konfigurasi berikut; Di dalam contoh berikut, domain yang ingin kita layani menggunakan nginx adalah deploy.magnet-id.com, pastikan bahwa domain tersebut sudah dapat diresolve dari mesin bersangkutan, karena kalau tidak nginx tidak mau / gagal start-up.
listen 80; server_name deploy.magnet-id.com; index index.php index.html index.html; root html; location / { error_page 404 = //index.php?q=$uri; } location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /usr/local/nginx/conf/fastcgi_params; }
Di konfigurasi server {} dapat kita lihat bahwa root web direktori adalah html, dalam hal ini adalah /usr/local/nginx/html, anda dapat merubah path root web direktori sesuai dengan selera anda selama modifikasi konfigurasi disesuaikan.
Start Nginx dan PHP-FPM;
service nginx start /etc/init.d/php-fpm start
Buat sebuah file php untuk menjalankan phpinfo() di /usr/local/nginx/html dan panggil file tersebut untuk memastikan bahwa PHP-FPM dan Nginx sudah berhasil di install dan dikonfigurasi dengan baik.