Install Nginx, MySQL, dan PHP (FEMP) di FreeBSD, untuk membangun sebuah web server yang utuh kita tidak hanya membutuhkan nginx/apache namun kita juga membutuhkan komponen yang lain seperti mysql/mariadb dan juga php, untuk php bisa di sesuaikan sesuai web yang dibuat ditulis dalam bahasa apa, sebagian besar menggunakan php, dan pada tutorial ini saya akan membahas mengenai cara instalasi nginx, mysql dan juga apache di FreeBSD yang bisa di sebut dengan FEMP Stack.
disini kita akan mencoba memasang komponen biner dari repositori tidak melalui ports, tujuannya agar lebih cepat dan tidak perlu melakukan kompilasi
Installasi Komponen yang dibutuhkan
install nginx, mysql dan php menggunakan perintah dibawah
user $ sudo pkg install nginx mysql56-server php56 php56-mysql
dengan perintah di atas akan mengunduh dan memasang komponen nginx, mysql dan juga php
Aktifkan semua Layanan ( Service )
untuk menjalankan layanan yang telah dipasang tadi dan membuatnya berjalan ketika boot, ubah file /etc/rc.conf
user $ sudo vi /etc/rc.conf
tambahkan konfigurasi dibawah
mysql_enable="YES" nginx_enable="YES" php_fpm_enable="YES"
Konfigurasi PHP
selanjutnya, kita akan mengkonfigurasi PHP-FPM
ubah file php-fpm.conf menggunakan perintah dibawah
user $ sudo vi /usr/local/etc/php-fpm.conf
disini kita akan menggunakan unix socket, silahkan ubah bagian
listen = 127.0.0.1:9000
menjadi
listen = /var/run/php-fpm.sock
lalu konfigurasi owner, grup, dan hak akses untuk socket yang akan dibuat, cari konfigurasi dibawah
;listen.owner = www ;listen.group = www ;listen.mode = 0660
hapus tanda ;
listen.owner = www listen.group = www listen.mode = 0660
jalankan layanan PHP-FPM
user $ sudo service php-fpm start
Konfigurasi Mysql
untuk mengkonfigurasi mysql, jalankan terlebih dahulu layanan mysql menggunakan perintah dibawah
user $ sudo service mysql-server start
gunakan perintah dibawah untuk mengkonfigurasi mysql
user $ sudo mysql_secure_installation
Enter current password for root (enter for none): [Enter] Set root password? [Y/n] Y
Silahkan anda sesuaikan dengan kebutuhan anda
jalankan kembali layanan mysql
user $ sudo service mysql start
Konfigurasi Nginx
untuk mengkonfigurasi nginx kita perlu menambahkan konfigurasi di nginx.conf, silahkan gunakan perintah dibawah untuk mengkonfigurasi
user $ sudo vi /usr/local/etc/nginx/nginx.conf
pada user silahkan gunakan www
user www;
pada worker_processes di sesuaikan dengan jumlah core cpu anda
worker_processes 4;
lalu kita akan mengeset lokasi log error
error_log /var/log/nginx/error.log;
dan set lokasi log akses
access_log /var/log/nginx/access.log;
pada server_name di sesuaikan dengan nama domain atau host anda, semisal localhost atau nothinux.id
server_name nothinux.id;
dan tambahkan konfigurasi untuk php-fpm
location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; }
berikut konfigurasi yang saya gunakan
user www; worker_processes 4; error_log /var/log/nginx/error.log info; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; sendfile on; keepalive_timeout 65; server { listen 80; server_name nothinux.id www.nothinux.id; root /usr/local/www/nginx; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } } }
lalu kita buat direktori untuk menyimpan log
user $ sudo mkdir -p /var/log/nginx
buat berkas log
user $ sudo touch /var/log/nginx/access.log
user $ sudo touch /var/log/nginx/error.log
cek konfigurasi nginx pastikan tidak ada galat
user $ sudo nginx -t
jika tidak terdapat galat silahkan jalankan kembali nginx
user $ sudo service nginx restart
Tes Femp Stack
untuk mengetesnya silahkan buka peramban dan akses pranala berikut
http://ip-address-namadomain