Membangun Web Server dengan NginX, PHP, dan MySQL di Linux

NginX, atau sering disebut “EngineX,” makin populer sebagai web server karena efisiensinya yang top-notch. Bayangin aja, resource yang dipakai bisa 50% lebih hemat dibanding Apache. Jadi, buat server yang kapasitasnya terbatas tapi butuh performa tinggi, NginX adalah pilihan yang nggak salah.

Di artikel ini, kita bakal setting server dengan NginX, PHP, dan MySQL di Linux, langkah demi langkah. Contohnya pakai CentOS 6.x 64-bit, tapi ini bisa diadaptasi untuk distro lain juga.


Mulai dari Dasar: Konfigurasi Hostname

Sebelum instalasi, pastikan hostname server udah di-set dengan benar. Masuk ke file /etc/hosts dan atur Fully Qualified Domain Name (FQDN) serta hostname kamu.

127.0.0.1      localhost.localdomain     localhost
192.168.1.1    mymachine.com             mymachine

Lalu, tambahkan hostname ke file konfigurasi network dan update nama host-nya:

echo "HOSTNAME=mymachine" >> /etc/sysconfig/network
echo "mymachine" > /etc/hostname
hostname -F /etc/hostname

Cek perubahan nama host dengan perintah ini:

hostname
hostname -f

Tambah Repositori EPEL dan REMI

Supaya bisa instal PHP-FPM, kita perlu nambahin repositori EPEL dan REMI dulu karena nggak ada di repositori default CentOS.

rpm --import https://fedoraproject.org/static/0608B895.txt
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Kasih priority ke repositori ini dengan menambahkan priority=10 ke file konfigurasi EPEL dan REMI. Misalnya di /etc/yum.repos.d/epel.repo:

[epel]
name=Extra Packages for Enterprise Linux 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

Instalasi NginX dan PHP

Begitu repositori udah siap, update sistem dulu:

yum update

Lalu, install NginX dan PHP-FPM dengan berbagai ekstensi yang penting:

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

Konfigurasi PHP

Setelah PHP terinstall, ada beberapa konfigurasi kecil. Edit file /etc/php.ini:

vi /etc/php.ini

Cari baris ini dan set supaya nggak ada masalah keamanan dengan cgi.fix_pathinfo:

cgi.fix_pathinfo = 0

Setting NginX agar Bisa Eksekusi PHP

Sekarang, kita setting NginX supaya bisa eksekusi skrip PHP. Masuk ke file konfigurasi NginX:

vi /etc/nginx/nginx.conf

Cari bagian yang menangani PHP dan buka komentar (#) di beberapa baris berikut:

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

Kalau mau pakai socket buat komunikasi lebih cepat, ganti fastcgi_pass dengan:

fastcgi_pass   unix:/tmp/php-fpm.sock;

Selanjutnya, buka file konfigurasi php-fpm dan sesuaikan listen di sini:

vi /etc/php-fpm.d/www.conf

Ganti listen supaya sesuai:

listen = /tmp/php-fpm.sock

Jalankan NginX dan PHP-FPM

Sekarang waktunya mengaktifkan NginX dan PHP-FPM:

service nginx start
service php-fpm start

Agar keduanya otomatis berjalan saat server dinyalakan, aktifkan autorun:

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

Instalasi MySQL

Selanjutnya kita instal MySQL sebagai sistem manajemen database:

yum install mysql mysql-server

Setelah instalasi selesai, jalankan MySQL:

service mysqld start

Set otomatis nyala saat server di-reboot:

chkconfig --levels 235 mysqld on

Jalankan konfigurasi awal:

mysql_secure_installation

Buat database dan pengguna yang bakal mengaksesnya:

mysql -u root -p
create database namadatabase;
grant all on namadatabase.* to 'namauser' identified by 'passworduser';
quit

Instalasi phpMyAdmin

Agar lebih mudah mengelola database, install phpMyAdmin:

yum install phpmyadmin

Tambahkan konfigurasi berikut di file NginX kamu untuk akses phpMyAdmin:

location ^~ /phpMyAdmin {
    root /usr/share;
    fastcgi_pass   127.0.0.1:9000; # ganti jika pakai socket
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

Terakhir, restart NginX:

service nginx restart

Selamat mencoba, dan kalau penasaran dengan pengaturan lebih lanjut, bisa eksperimen lebih jauh buat optimisasi, keamanan, atau skalabilitas server NginX kamu!

Kamu mungkin juga menyukai

3 Komentar

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *