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!
3 Komentar
nyobain om
install nginx lemp server ubuntu
Mantaapp.. Thanks for sharing