Nginx,

Nginx, MySQL, PHP di CentOS 5.2 64 bit

Tanggal 10 Aug 2008
Kategori : Aplikasi Linux
Tag : , , , ,

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

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.

Situs ini dibuat dengan memanfaatkan Teknologi Open Source Wordpress, Nginx, 960 Grid System dan Linux CentOS.
Isi dari situs diutamakan untuk membantu Pengguna Layanan Magnet Hosting dalam memanfaatkan layanannya, disediakan tanpa jaminan, dapat dimanfaatkan, diperbanyak ataupun ditulis kembali dengan resiko masing-masing.
Copyright PT. Indonesia Digital Media © 2008-2009. (Top)