Jaringan

​Cara Membangun Web Server (NginX, PHP, MySQL, phpMyAdmin) di CentOS 6

Diterbitkan tanggal 19 April 2016 oleh michael

NginX atau biasa disebut dengan EngineX adalah aplikasi web server yang menjadi salah satu alternatif, bahkan menjadi prioritas sebagai solusi untuk membangun server daripada Apache. Kelebihan NginX dibandingkan Apache yang merupakan web server terpopuler, adalah optimalisasi penggunaan resource yang jauh lebih kecil hingga 50% dari penggunaannya.

Kami akan membantu memberikan uraian singkat mengenai membangun web server menggunakan paket LEMP (NginX, PHP, MySQL, phpMyAdmin) yang berjalan di atas CentOS 6. Anda juga bisa baca panduan membangun server menggunakan Apache di tautan berikut ini.

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 ini di dalam mesin Anda, ubah lagi “mymachine” menjadi nama hostname.

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, Anda harus menambahkan repository EPEL dengan cara seperti di bawah ini:

# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Jika web ingin disimpan dan diatur oleh user-user, maka silakan buat user dengan perintah:

# useradd user

# passwd userpassword


INSTALLASI PHP dan NGINX

Saat ini Anda berada di tahap siap untuk menginstall NginX sebagai mesin penggerak utama, dan PHP yang akan mendukungnya. Gunakan perintah ini untuk memasang:

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

Pertama-tama, buatlah direktori untuk mengakses situs Anda beserta lognya

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


Kemudian, buat juga direktorinya di virtualhost

mkdir /etc/nginx/sites-available

mkdir /etc/nginx/sites-enabled

Buka file /etc/nginx/nginx.conf, lalu hilangkan tanda pagar ‘#’ dari tiap-tiap baris yang tertulis di dalam file konfigurasi tersebut:

# 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;
# }

Cari dan ubah baris yang diawali oleh perintah “fastcgi_param” menjadi:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

Bagi Anda yang menginginkan tunneling fastcgi/php-fpm melalui socket, optimizing berikut ini bertujuan untuk menghindari TCP overhead pada web server dengan concurrent yang cukup tinggi, tambahkan baris fastcgi_pass menjadi fastcgi_pass unix:/tmp/php-fpm.sock;

Kemudian tulis baris berikut untuk mengaktifkan virtualhost:

include /etc/nginx/sites-enabled/*;


Apabila tunneling dilakukan via socket, jangan lupa untuk mengubah listen = 127.0.0.1:9000 pada /etc/php-fpm.d/www.conf menjadi listen=/tmp/php-fpm.sock

Setelah selesai, Anda tinggal jalankan service NginX, ikut langkah kami berikut ini:

service nginx start
service php-fpm start


Untuk menjadikan NginX & PHP-FPM berjalan sendiri (autorun), aktifkan dengan menjalankan perintah:

chkconfig --levels 235 nginx on
chkconfig --levels 235 php-fpm on


INSTALLASI MySQL

MySQL merupakan aplikasi yang biasa digunakan untuk manajemen basis data (database). Aplikasi database ini terhubung erat dengan web server yang digunakan. Umumnya pengguna web hosting Indonesia pemula cenderung melupakan atau melewatkan langkah ini, namun sebenarnya database merupakan hal yang sangat penting. Untuk memasang MySQL cukup dengan perintah:

yum install mysql mysql-server


Lalu 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 di bawah. Kecuali ada sesuatu yang perlu diubah, jawab setiap dialog pertanyaan sesuai default atau dengan menekan enter. Setelahnya silakan asukkan kata sandi 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

PhpMyAdmin adalah aplikasi open-source untuk mengakses basis data yang terorganisir oleh MySQL. Untuk mengaksesnya, harap lakukan installasi phpMyAdmin dengan menjalankan perintah:

yum install phpmyadmin


Konfigurasi virtualhost untuk phpMyAdmin. Saatnya tambahkan file di /etc/nginx/sites-available/phpMyAdmin dengan perintah:

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;
}

Lalu buat symlink ke virtualhost

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/example.com

Jika sudah, silakan restart NginX dan MySQL Anda menggunakan perintah:

Service nginx restart
Service mysqld restart

Sekian cara untuk membuat web server secara singkat menggunakan paket NginX-PhpMyAdmin-MySQL dalam CentOS. Semoga metode ini bisa menjadi alternatif operasional web server Anda menjadi lebih baik, jika ingin menggunakan membangun web server dengan Apache, silakan merujuk pada halaman berikut ini.

Tags: lemp, webserver, centos6