Script yang menyerupai cara kerja provision pada laravel homestead.
Script ini membutuhkan paket yq untuk membaca file YAML. Dokumentasi paket dapat dilihat pada yq documentation.
- Unduh Linux XAMPP pada website https://www.apachefriends.org/download.html.
- Install Linux XAMPP pada direktori /opt menggunakan mode root.
- Buat symlink command 'php', 'composer', 'mysql' ke direktori /usr/local/bin, dengan perintah
$ sudo ln -s /opt/lampp/bin/php /usr/local/bin/php ...dst untuk command lain
Unduh composer terlebih dahulu.
- Edit file httpd.conf pada direktori /opt/lampp/etc dengan mengubah
- User dan Group ke username sistem
- DocumentRoot ke path pilihan anda. Saya menggunakan Direktori Templates untuk pengembangan aplikasi.
- Aktifkan modul VirtualHost
- Tambahkan pattern # Mulai Aliases pada baris paling akhir.
- Edit file httpd-vhosts.conf pada direktori /opt/lampp/etc/extra dengan menambahkan pada baris terakhir pattern # Mulai Vhosts.
Linux XAMPP memerlukan nettools untuk dapat beroperasi. Install dengan cara mengetik
$ sudo apt install net-tools
YQ diperlukan untuk membaca file YAML yang dijadikan sebagai tempat konfigurasi project kita. Install dengan mengetik
$ sudo add-apt-repository ppa:rmescandon/yq
$ sudo apt update
$ sudo install yq -y
Pada versi 4.*, command yq r sudah dihapus sehingga menyebabkan beberapa error pada script. Sementara jangan gunakan dulu repository di atas sampai perbaikan script berikutnya. Agar dapat menjalankan script silahkan unduh yq pada tautan berikut
Clone repository ini kedalam folder Public.
Untuk bisa mengakses script dari direktori apapun buat fungsi berikut di dalam file .bashrc
function manarang() {
export PGSQLPATH=/opt/lampp/postgresql
cd ~/Public/Manarang
command="$1"
if [ "$command" = "edit" ]; then
# Sesuaikan dengan editor anda
nano manarang.yaml
elif [ "$command" = "provision" ]; then
bash manarang.sh
elif [ "$command" = "up" ]; then
(sudo /opt/lampp/lampp start && bash $PGSQLPATH/postgresql.sh start)
elif [ "$command" = "halt" ]; then
(sudo /opt/lampp/lampp stop && bash $PGSQLPATH/postgresql.sh stop)
else
(sudo /opt/lampp/lampp restart && bash $PGSQLPATH/postgresql.sh restart)
fi
cd -
}
dnsmasq diperlukan sebagai forwarding domain pada server lokal (.test) agar dapat diakses browser.
-
Install dnsmasq dengan mengetik
$ sudo apt install dnsmasq
-
Jika terjadi error port 53 lakukan troubleshoot berikut. Ketik pada terminal
$ sudo systemctl stop systemd-resolved
Kemudian edit file systemd-resolve dengan mengetik
$ sudo nano /etc/systemd/resolved.conf
Ikuti konfigurasi berikut :
DNS=127.0.0.1 FallbackDNS= MulticastDNS=no DNSSEC=no DNSOverTLS=no DNSStubListener=no
Simpan, kemudian buat symlink dengan mengetik perintah
$ sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Jalankan kembali service systemd-resolve dengan cara
$ sudo systemctl start systemd-resolved
-
Kemudian edit file dnsmasq.conf pada direktori /etc lalu tambahkan pada baris paling akhir konfigurasi berikut.
domain-needed bogus-priv # define local domain part # this will allow you to have domains with .test extension, # so make sure all your development apps are using .test as extension, # e.g. somedomain.test, myapp.test local=/test/ domain=test # listen on both local machine and private network listen-address=127.0.0.1 # read domain mapping from this file as well as /etc/hosts # isikan dengan path file hosts dalam folder Manarang addn-hosts=/home/ipulmisaja/Public/Manarang/hosts expand-hosts
-
Restart dnsmasq dengan mengetik
$ sudo systemctl restart dnsmasq
-
Untuk penggunaan permanen ketik
$ sudo systemctl enable dnsmasq