Taufik Mulyana
Taufik Mulyana
Linux System Administrator, Interested in Linux, Cloud, Containers
February 28, 2018 4 min read

Install Nginx, MySQL, dan PHP (FEMP) di FreeBSD

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