Membangun Web Server (NginX PHP MySQL)

Minggu, 03 Februari 20130 komentar


NginX atau biasa disebut dengan EngineX adalah aplikasi web server baru yang saat ini mulai banyak digunakan. Kelebihan NginX dibandingkan Apache (aplikasi web server yang paling banyak dipakai dunia saat ini) adalah optimalisasi penggunaan resource yang jauh lebih kecil bahkan sampai hanya 50% dari penggunaan resource yang digunakan oleh Apache. Note: OS yang digunakan adalah Centos 6.X 64bit.

*Note: untuk anda yang tidak terbiasa dengan vi, bisa menggunakan mcedit (shell text editor yg lebih mudah). Untuk menginstall mcedit, jalankan perintah yum install mc
KONFIGURASI HOSTNAME
Edit file /etc/hosts dengan text editor, ubah mymachine.com menjadi FQDN (Full Qualified Domain Name) anda, dan mymachine dengan hostname anda.
127.0.0.1 localhost.localdomain localhost
192.168.1.1 mymachine.com mymachine
Berikutnya jalankan perintah berikut didalam mesin anda, ubah mymachine menjadi nama hostname anda.
echo "HOSTNAME=mymachine" >> /etc/sysconfig/network
echo "mymachine" > /etc/hostname
hostname -F /etc/hostname
Untuk mengetahui apakah sudah berubah atau belum bisa dilakukan dengan menjalankan perintah berikut:
hostname
hostname -f
PERSIAPAN AWAL
Karena PHP-FPM tidak ada di repository default Centos, kita harus menambahkan repository EPEL dan REMI dengan cara dibawah:
rpm --import https://fedoraproject.org/static/0608B895.txt
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Tambahkan “priority=10” kedalam konfigurasi repositori EPEL dan REMI. Contoh isi/etc/yum.repos.d/epel.repo:
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[...]
INSTALLASI NGINX DAN PHP
Untuk mempermudah pengerjaan anda, disini kita akan menginstall dan mengkonfigurasi NginX dan PHP sekaligus baru dilanjutkan dengan MySQL.
Install NginX dan PHP:
yum update
yum install nginx php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy
Edit dan tambahkan konfigurasi berikut pada fie konfigurasi php anda di /etc/php.ini
cgi.fix_pathinfo = 0
Edit file konfigurasi nginX
vi /etc/nginx/nginx.conf
Untuk menghindari error kesalahan Timezone isi kolom date.timezone:
date.timezone = Asia/Jakarta
Hilangkan ‘#’ pada baris yang ada di dalam file konfigurasi tersebut di baris-baris berikut:
#location ~ \.php$ {
#    root           html;
#    fastcgi_pass   127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#    include        fastcgi_params;
#}
Ubah baris fastcgi_param menjadi
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Untuk yang menginginkan tunneling fastcgi/php-fpm melalui socket, optimizing ini bertujuan untuk menghindari TCP overhead pada webserver dengan concurrent yang cukup tinggi, ganti baris fastcgi_pass menjadi
fastcgi_pass unix:/tmp/php-fpm.sock;
Jangan lupa apabila tunneling dilakukan via socket ubah listen = 127.0.0.1:9000 pada/etc/php-fpm.d/www.conf menjadi listen = /tmp/php-fpm.sock
Setelah selesai, tinggal jalankan service nginx.
service nginx start
service php-fpm start
Untuk menjadikan NginX & PHP-FPM autorun, aktifkan dengan menjalankan perintah berikut
chkconfig --levels 235 nginx on
chkconfig --levels 235 php-fpm on
INSTALLASI MySQL
Umumnya pada saat menggunakan Cloud Server sebagai Web Server, walaupun ada namun jarang sekali pengguna hanya menginstall Webserver tanpa di sertai database saja, itulah alasan biasanya disebut dalam nama paket yaitu LAMP (Linux Apache, MySQL, PHP) atau LEMP (Linux, NginX, MySQL, PHP) apabila aplikasi web server yang digunakan adalah EngineX atau NginX.
Install MySQL dengan perintah:
yum install mysql mysql-server
Jalankan MySQL untuk pertama kali:
service mysqld start
Untuk menjadikan MySQL otomatis dipanggil pada saat server restart
chkconfig --levels 235 mysqld on
Setelah MySQL aktif, lakukan konfigurasi awal dengan perintah dibawah dan jawab setiap pertanyaan, jawab sesuai default atau dengan menekan enter kecuali ada sesuatu yang ingin anda ubah. Masukkan password baru apabila diminta.
mysql_secure_installation
Setelah melakukan konfigurasi awal, lanjutkan dengan mengakses MySQL dengan
mysql -u root -p
Buat database dan user yang akan menggunakan database tersebut dengan perintah:
create database namadatabase;
grant all on namadatabase.* to 'namauser' identified by 'passworduser';
Jalankan perintah quit untuk mengakhiri, database sudah siap digunakan untuk kebutuhan web server dan server-side scripting.
INSTALLASI phpMyAdmin
Install phpMyAdmin dengan perintah:
yum install phpmyadmin
Tambahkan baris berikut didalam file konfigurasi NginX
location ^~ /phpMyAdmin {
root /usr/share;
fastcgi_pass   127.0.0.1:9000; # ganti apabila menggunakan socket
fastcgi_index  index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include        fastcgi_params;
}

Restart service nginx anda. Selamat menggunakan Web Server EngineX alias NginX anda.
Share this article :

Posting Komentar

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. Teguh PP - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger