Wednesday, May 7, 2014

Membangun Web Server (NginX, PHP, MySQL, phpMyAdmin) CentOS 6 - Komputekid

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.
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
hostname
hostname -f
PERSIAPAN AWAL
Karena PHP-FPM tidak ada di repository default Centos, kita harus menambahkan repository EPEL dengan cara dibawah:
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Jika ingin menyimpan web kita dipisahkan oleh user-user, maka buatlah user dahulu.
# useradd user
# passwd userpassword
INSTALLASI PHP dan NGINX
yum install nginx php php-fpm php-common
Edit dan tambahkan konfigurasi berikut pada fie konfigurasi php anda di
File
/etc/php.ini
cgi.fix_pathinfo = 0
KONFIGURASI NGINX
Buat directory untuk website dan log anda.
mkdir -p /home/user/www/example.com/public_html
mkdir /home/user/www/example.com/logs
chown -R nginx:nginx /home/user/www/example.com
Buat directory VirtualHost
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
File
/etc/nginx/nginx.conf
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;
Tambahkan baris berikut untuk mengaktifkan VirtualHost
include /etc/nginx/sites-enabled/*;
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
MySQL merupakan aplikasi yang biasa digunakan untuk database. Aplikasi database ini berhubungan dengan web server yang akan digunakan. Biasanya ketika menginstall wes server, sering dilupakan dalam installasi aplikasi database ini. Jadi menjalankan webserver tanpa disertai database.
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 USER 'namauser'@'localhost' IDENTIFIED BY 'passworduser';
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
yum install phpmyadmin
Konfigurasi VirtualHost untuk phpMyAdmin
Tambahkan file di /etc/nginx/sites-available/phpMyAdmin
Server {
listen 80;
server_name devweb.atisicloud.com;
access_log /var/log/nginx/phpmyadmin/access.log;
error_log /var/log/nginx/phpmyadmin/error.log;
root /usr/share/phpMyAdmin;
location / {
index index.php index.html index.htm
}
location ~ /.ht {
allow all
}
location ~ /(libraries|setup/frames|setup/libs) {
allow all;
return 404;
}
location ^~ .php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$fastcgi_script_name;
}
}
Buat symlink ke VirtualHost
cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/example.com
Restart service nginx, mysql
Service nginx restart
Service mysqld restart


EmoticonEmoticon