[tutorial] Install XAMPP untuk Local Server pada Windows

Pada kesempatan ini kita akan melakukan instalasi web server dan database server mysql yang di bundling dalam XAMPP. berikut langkah-langkahnya

  1. Download XAMPP dari https://www.apachefriends.org
  2. Install XAMPP
  3. Konfigurasi XAMPP

Mari kita jabarkan tiap poinnya

1. Download XAMPP

Silahkan pilih versi yang akan di download. Pastikan bahwa versi yang dipilih mendukung aplikasi yang akan kita bangun. Selain itu sesuaikan juga OS yang digunakan. Dalam tutorial ini kita install di OS windows. Kali ini kita pilih download versi 7.2.17

 

tunggu sampai download selesai. Jika sudah jalankan file tersebut untuk mulai proses instalasi.

2. Instalasi XAMPP

Jalankan file tersebut dengan doublie klik atau tekan enter.

 

Pilih lokasi directory tempat file-file akan di install. Misal kita pilih D:\xampp
klik next > next > finish. Selanjutnya jalankan file

3. Konfigurasi

Konfigurasi ini tergantung keperluan

 

tes12

[tutorial] Analisa simple Log HaProxy dengan halog

haproxy load balancer server

How To Analyze HaProxy Logs

HALog adalah tool simple namun powerful untuk menganalisa HaProxy log. yuk lets try…

  1. Instalasi

    cd /usr/src
    wget http://haproxy.1wt.eu/download/1.5/src/devel/haproxy-1.5-dev11.tar.gz
    tar xzf haproxy-1.5-dev11.tar.gz
    cd haproxy-1.5-dev11/contrib/halog
    make
    cp halog /usr/bin/
  2. Get number of requests treated by the server (columns “tot_req”)

    cat /var/log/haproxy.log | halog -srv -H -q |awk 'NR==1; NR > 1 {print $0 | "sort -n -r -k 9"}' |column -t
  3. List servers by response time in milisecond (columns “avg_rt”)

    cat /var/log/haproxy.log | halog -srv -H -q |awk 'NR==1; NR > 1 {print $0 | "sort -n -r -k 12"}' |column -t
    
  4. List servers by application errors: HTTP status code 5xx (column “5xx”)

    cat /var/log/haproxy.log |halog -srv -H -q | awk 'NR==1; NR > 1 {print $0 | "sort -n -r -k 6"}' | column -t
    
  5. List servers errors related by application (prefixed by the backend name)

    cat /var/log/haproxy.log |halog -srv -H -q | awk 'NR==1; NR > 1 {print $0 | "sort -n -r -k 5"}' | column -t
    
  6. List URLs by server computation time in milliseconds (column “okavg”)

    cat /var/log/haproxy.log | halog -ut -H -q | column -t
    
  7. List URLs by errors (column “err”)

    cat /var/log/haproxy.log | halog -ue -H -q | column -t
    
  8. List URLs by missing files: HTTP status code 404 (column “req”)

    cat /var/log/haproxy.log | halog -u -H -q -hs 404 | column -t
    
  9. List URLs by number of request(column “req”)

    cat /var/log/haproxy.log | halog -u -H -q | awk 'NR==1; NR > 1 {print $0 | "sort -n -r -k 1"}' | column -t
    

Jangan lupa sesuaikan path log haproxy nya.
untuk cara install dan setting haproxy sendiri ada disini

referensi : https://haproxy-log-analyzer.readthedocs.io/

[tutorial] bagaimana melakukan redirect di nginx

redirect di nginx

Kapan kita melakukan redirect?

Ketika anda punya broken link yang ingin supaya link nya dapat dipakai lagi, semisal karena sudah terindex oleh google. Bisa juga karena web anda sedang maintenance sementara sehingga redirect kehalaman maintenance agar pengunjung dapat info.
Okey… disini saya anggap temen2 sudah tau apa itu file htaccess, karena kita akan langsung kepada intinya. Bagi yang belum mengetahui tentang htaccess bisa baca-baca disini.

Bagaimana caranya?

untuk melakukan redirect di nginx bisa kita lakukan dengan meng-edit file konfigurasi di nginx atau di konfigurasi domain nginx.

  1. pake return (example : return 301 https://example.com$request_uri;)
    server {
        listen 80;
        listen [::]:80;
        hostname example.com www.example.com;
        return 301 https://example.com$request_uri;
    }
  2. pake regex (example : rewrite ^/foo/(bar)/(.*)$ https://$server_name/$1/$2 permanent; )
    server {
        listen 80;
        listen [::]:80;
        hostname example.com www.example.com;
        root /var/www/example.com/public;
        rewrite ^/foo/(bar)/(.*)$ $scheme://$server_name/$1/$2 permanent;
    }
  3. pake map
    include redirect-map.conf;
    server {
        […]
        if ( $redirect_uri ) {
            return 301 $redirect_uri;
        }
    }

    redirect-map.conf isinya …

    map $request_uri $redirect_uri {
        /home.html          /beranda;
        /usman.html         /cakep;
        /ribuantoro.html    /ganteng;
    }
  4. HTTP to HTTPS
    return 301 https://$host$request_uri;
  5. non-www to www
    if ( $host !~ ^www\. ) {
        return 301 $scheme://www.$host$request_uri;
    }
  6. www to non-www
    if ( $host ~ ^www\.(?<domain>.+)$ ) {
        return 301 $scheme://$domain$request_uri;
    }

     

Selain redirect di nginx bisa juga redirect dengan file htaccess namun menggunakan webserver apache. berikut caranya disini
Semoga bermanfaat.

referensi :
nginx official

[Free Ebook] Artificial Intelligence with Python – Prateek Joshi

 

Artificial Intelligence with Python

Artificial Intelligence with Python

Free ebook Artificial Intelligence with Python ebook
Prateek Joshi – Jan 2017

446 pages

What will you learn

  • Step into the amazing world of intelligent apps using this comprehensive guide
  • Enter the world of Artificial Intelligence, explore it, and create your own applications
  • Work through simple yet insightful examples that will get you up and running with Artificial Intelligence in no time

Read free subscribe trial here

read more article about technology here

DevOps Expert | Haproxy – Instalasi & Konfigurasi pada VPS Ubuntu 18.04

haproxy load balancer server

Pada bab sebelumnya kita sudah mengetahui tentang apa, mengapa dan bagaimana cara kerja haproxy. Jika Anda belum mengetahui konsep dan alasan di balik haproxy sebaiknya Anda membacanya terlebih dahulu disini.

Haproxy Installation

Pertama kita create vps terlebih dahulu, bisa dengan digital ocean atau vultr atau yang lain nya. Jika belum mengetahui cara deploy (membuat) VPS dan instalasinya silahkan ikuti step by step disini. Selain VPS bisa juga menggunakan VM (virtual machine) atau bahkan dedicated computer.

Sediakan 3 VPS. Saya asumsikan sudah terinstall ubuntu server 18.04 atau keluarga debian, karena kurang lebih caranya sama kalau sesama keluarga linux debian. beda-beda dikit paling.
Pada VPS 1 (Hostname haproxy.qodrbee.com) lakukan

  1. Setting IP private
    edit file konfigurasi ip address

    root@haproxy:~# nano /etc/netplan/01-netcfg.yaml

    akan muncul isi file seperti ini lalu edit ip address menjadi 192.168.1.1/24

    network:
      version: 2
      renderer: networkd
      ethernets:
        ens3:
          dhcp4: yes
        ens7:
          addresses: [192.168.1.1/24]
          dhcp4: no
          dhcp6: no
          optional: true
          nameservers:
            addresses: [8.8.8.8,8.8.4.4]
    

    ens3 adalah ethernet yg terhubung ke public dan
    ens7 adalah yang terhubung ke private atau ke web server kita nantinya.
    Angka 3 dan 7 pada ens bisa berbeda untuk vps lain. Silahkan disesuaikan
    jika sudah simpan dengan ctrl+x lalu apply settingan tersebut dengan perintah

    root@haproxy:~# netplan apply

    cek ip address ens7 apakah sudah berubah

    root@haproxy:~# ifconfig
    ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.20.30.40  netmask 255.255.254.0  broadcast 10.20.30.255
            inet6 fe80::5400:1ff:fef4:c42e  prefixlen 64  scopeid 0x20<link>
            ether 56:00:01:f4:c4:ce  txqueuelen 1000  (Ethernet)
            RX packets 2008493  bytes 468728324 (468.7 MB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 1952526  bytes 1666990785 (1.6 GB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    ens7: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.1  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::5800:1ff:fef4:c48e  prefixlen 64  scopeid 0x20<link>
            ether 5a:00:01:f4:c4:ce  txqueuelen 1000  (Ethernet)
            RX packets 8122671  bytes 2208780819 (2.2 GB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 14258789  bytes 1377041568 (1.3 GB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 104578  bytes 9203032 (9.2 MB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 104578  bytes 9203032 (9.2 MB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
  2. Install haproxy
    update repo

    root@haproxy:~# apt update

    install haproxy

    root@haproxy:~# apt install haproxy

    Setelah terinstall, maka edit default config aplikasi haproxynya untuk mengarahkan settingan load balancernya, di /etc/default/haproxy , hilangkan tanda # di awal tulisan CONFIG dan ubah ENABLED menjadi 1.

    root@haproxy:~# nano /etc/default/haproxy
    # Defaults file for HAProxy
    #
    # This is sourced by both, the initscript and the systemd unit file, so do not
    # treat it as a shell script fragment.
    
    # Change the config file location if needed
    CONFIG="/etc/haproxy/haproxy.cfg"
    
    # Add extra flags here, see haproxy(1) for a few options
    #EXTRAOPTS="-de -m 16"
    ENABLED=1

    okey sekarang installasi haproxy sudah selesai, nanti kita lanjutkan untuk konfigurasinya.

Kemudian pada VPS 2 dan 3 (web1.qodrbee.com dan web2.qodrbee.com) kita lakukan

 

Haproxy Configuration

buka file konfigurasi haproxy

root@haproxy:~# nano /etc/haproxy/haproxy.cfg
global
    log 127.0.0.1 local0 notice   # menyimpan log pada 
                                  # syslog server (localhost)
    maxconn 2000          # max koneksi yang ditangani secara bersamaan
    user haproxy          # user yg menangani haproxy (jgn diganti)
    group haproxy         # group yg menangani haproxy (jgn diganti)

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    retries 3             # jml percobaan ketika timeout sebelum failure
    option redispatch     # meng-enable session redistribution 
                          # jika connection fail
    timeout connect  5s   # lama max sampai terhubung ke server 
                          # hingga berhasil
    timeout client  10s   # lama proses pengiriman data client/server
    timeout server  10s   # lama proses pengiriman data client/server

    listen web-load-balanced 0.0.0.0:80 # listen agar dapat di akses 
                                        # dari manapun
    mode http
    balance roundrobin    # algoritma metode load balancing
                          # ada pilihan algoritma roundrobin/static-rr/
                          # leastconn/source/uri/url_param
    option httpclose
    option forwardfor
    server web1 192.168.1.2:80 check # server backend, health check untuk 
    server web2 192.168.1.3:80 check # mengetahui status server backend

Oke konfigurasi standar haproxy sudah selasai. Selanjutnya kita uji coba. Start dulu haproxynya

root@haproxy:~# service haproxy start

buka komputer lain di luar VPS untuk melakukan request ke server load balancer sebut saja komputer user. Misal kita kasih IP address nya 192.168.1.111
kita lakukan dengan browser atau curl. Untuk uji coba kali ini kita pakai curl.
buat script php sebagai berikut untuk mengetahui IP server dan Client dari request.
simpan di /var/www/html/cek_loadbalance.php di server web1 dan web2

<?php
header('Content-Type: text/plain');
echo "Server IP: ".$_SERVER['SERVER_ADDR'];
echo "\nClient IP: ".$_SERVER['REMOTE_ADDR'];
echo "\nX-Forwarded-for: ".$_SERVER['HTTP_X_FORWARDED_FOR'];
?>

lalu dari komputer user lakukan

root@user:~# curl cek_loadbalance.php

seharusnya akan muncul hasil seperti ini

root@user:~$ curl http://192.168.1.1/cek_loadbalance.php
Server IP: 192.168.1.2
Client IP: 192.168.1.1
X-Forwarded-for: 192.168.1.111
root@user:~$ curl http://192.168.1.1/cek_loadbalance.php
Server IP: 192.168.1.3
Client IP: 192.168.1.1
X-Forwarded-for: 192.168.1.111

perhatikan server IP… dia berganti ganti karena kita memakai algoritma round robin. Request yang datang ke load balancer di arahkan bergantian ke 192.168.1.2 (web1) dan 192.168.1.3(web2)

X-Forwarded-for adalah IP komputer user

[solved] composer Content-Length mismatch

composer Content Length mismatch

 How to solve composer Content-Length mismatch error

Content-Length mismatch, received 573177 bytes out of the expected 761373
https://repo.packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of date
Your requirements could not be resolved to an installable set of packages.

Just change the composer default repo url:

composer config -g repo.packagist composer https://packagist.org
composer config -g github-protocols https ssh

It changes or sets the packagist repo to be used by https only.

see other post @ qodrbee

[tutorial] Cara Mengirim Isi Form ke Whatsapp

Selama ini kita sudah ketahui bersama bahwa mengirim pesan WA dapat lewat web atau lewat URL. Lebih tepat nya lewat http://api.whatsapp.com/send?phone=628975835238&text=Assalamualaikum%20mas%20usman .
Namun cara ini punya banyak keterbatasan, diantaranya…

  1. hanya bisa jalan jika menggunakan google chrome
  2. bagaimana kalo yang dikirim text nya dari suatu form
  3. loading yang cukup lama ketika mau mengirim pesan di api.whatsapp.com

Nah kali ini saya akan membeberkan rahasia dahsyat cara mengirim pesan whatsapp lewat form secara instan tanpa coding… serius tanpa coding. Saya jamin tanpa coding… kalau sampai coding Anda boleh datengi rumah saya (sambil bawa oleh2) untuk komplain… haha

oke kembali ke laptop… jadi ceritanya kita punya form lalu ingin agar auto sent ke WA isi form tersebut. Caranya cukup mudah… anda hanya perlu :

  1. install plugin wordpress woowa dari http://woo-wa.com
  2. buat form
  3. setting plugin
  4. submit form

oke kita jabarkan

1. Install plugin woowa

pastikan web anda menggunakan wordpress jika bukan maka skip sampe bawah lalu klik share. kemudian kunjungi https://woo-wa.com untuk mendapatkan plugin woowa. Anda juga dapat mencoba berbagai demo disana.

woowa whtasapp gateway notifier api

Setelah mendaftar dan dapat akun sebagai member. Login masuk ke member area dan klik menu DOWNLOAD & UPDATE dan klik download.zip

woowa download page

Setelah di download install plugin tersebut di menu plugins > Add New klik Upload Plugin lalu Browse

Setelah itu active plugin itu di menu installed plugins dengan cara klik active. Oke sekarang plugin sudah berhasil active. selanjutnya kita perlu untuk setting konfigurasi agar dapat kita gunakan.

untuk selanjutnya akan kita setting plugin ini pada step 3. sebelum itu kita bikin dulu form yang akan kita gunakan untuk kirim ke WA.

2. Membuat Form

untuk membuat form dapat dilakukan dengan berbagai macam cara. Diantaranya dengan memakai plugin Contact Form 7 (CF7), elementor atau caldera Form dan lain nya. Kita coba dengan CF7. pertama install lewat plugins > add new . Search plugin Contact Form 7 lalu install dan activate.

contact form 7 install plugin

lalu klik menu Contact > add new dan buat form sesukamu.

PENTING!! jangan lupa tambahkan field no telp atau semisalnya agar di kirim ke nomor tujuan dan tombol submit tentunya. Kalau sudah klik save maka akan muncul shortcode. Contoh nya seperti ini
[contacts-form-7 id="296" title="Test Send WA via Woowa" html_id="contact-form-1234"] lalu copas. o iya saya tambahkan html_id="contact-form-1234" (khusus cf7) agar form nya ada id nya. karena id ini wajib ada untuk deteksi di plugin woowa. Bagi yang memakai selain cf 7 silahkan disesuaikan.

paste shortcode tadi di page. Klik pages > Add New lalu paste di textarea dan kasih judul form. Jika sudah maka save.

Lalu untuk lihat hasil nya klik View Page . Berikut contoh form yang berhasil dibuat dengan url yang terbentuk adalah http://qodrbee.com/online/test-form-send-wa-via-woowa/. Url ini akan kita pakai ketika setting nanti.

Oke form sudah jadi maka kita lanjutkan agar form ini terintegrasi dengan woowa, sehingga ketika di submit pesan akan terkirim ke Whatsapp.

3.Setting Plugin

Setelah mendapat license dari woo-wa.com masuk ke dashboard my.woo-wa.com untuk link WA Anda ke woo-wa sehingga terkoneksi. Setelah berhasil login di dashboard my.woo-wa.com klik add domain untuk menambah domain anda dan kli link WA untuk mengkoneksikan WA anda dengan woowa.

ketika link akan muncul popup untuk scan qr code, tunggu sampai qr code ter-load. setelah itu scan qr code menggunakan hp Anda yg terinstall whatsapp. klik pojok kanan atas pada aplikasi whatsapp pilih web whatsapp. jika masih bingung lihat video yg ada di samping qrcode pada popup.

Jika sudah scan qr code pastikan bahwa status link WA anda authenticated caranya klik more pilih check dan tunggu sampai statusnya keluar.

ada juga fungsi lain di pilihan more yg bisa anda coba-coba. seperti screnshot untuk melihat layar status WA Anda. Oke selanjutnya setting pada plugin woowa pada wordpress.

Pertama pastikan plugin woowa sudah terinstall. Jika belum lihat step 1
lalu klik menu Woowa Premium > woocommerce klik tab license lalu masukan license yang di dapat dari woo-wa.com

setelah activated license maka anda bisa menggunakan plugin ini. Untuk keperluan send form to WA pilih menu Custom Form lalu klik Add Custom Form masukan judul/ title form nya, terserah saja. Lalu klik Add Form, akan muncul accordion template form, pada sebelah kanan switch on untuk mengaktifkan template.

selanjutnya masukan url form yang tadi (step 2) sudah kita bikin. Url tadi misalnya http://qodrbee.com/online/test-form-send-wa-via-woowa/ lalu klik scan

setelah scan form by url akan di dapat data-data field name dan id. Masukkan form id dan phone number field seperti gambar. Anda juga bisa menyusun kalimat yang dirangkai dengan memakai field yang tersedia. Jika sudah klik save.

4. Submit Form

buka form dan isi field nya lalu submit

Setelah di submit cek WA seharusnya ada yang masuk seperti ini

selamat anda telah berhasil mengirim pesan dari form ke Whatsapp secara instan.

5. Ringkasan

untuk mengirim WA ini diperlukan

  • form yang ada id, field no telp dan tombol submit
  • form dapat dibuat dengan apa saja yang penting syarat di atas terpenuhi
  • form tidak di generate oleh ajax/javascript tp murni html css
  • scan url form dengan plugin woowa untuk mendapatkan id dan name field
  • buat template sesuai kebutuhan dan isi form id dan field name no hp
  • pastikan whatsapp Anda sudah terkoneksi dengan woowa.com

 

6. Demo

Demo : http://qodrbee.com/online/test-form-send-wa-via-woowa/

7. Konsultasi

Feel free to ask me at ztoro.code@gmail.com
or WA 08975835238
or Telegram @ztorocode