Coding

Cara Install Golang di cPanel: Panduan Lengkap untuk Pemula

6 min read
Admin Admin

Daftar Isi

Golang (atau Go) semakin populer untuk pengembangan aplikasi web dan microservices berkat performa tinggi dan kesederhanaannya. Namun, menginstal Go di hosting cPanel bisa jadi tantangan tersendiri karena cPanel tidak menyediakan instalasi Go secara default. Artikel ini akan memandu kamu cara menginstal dan menjalankan aplikasi Golang di hosting cPanel dengan langkah-langkah yang jelas.

Persyaratan

Sebelum memulai, pastikan hosting cPanel kamu memenuhi persyaratan berikut:

  • Akses SSH ke server (sangat direkomendasikan)
  • Setidaknya 512MB RAM tersedia
  • Minimal 1GB ruang disk kosong
  • Hosting yang mengizinkan proses background (untuk menjalankan aplikasi Go)

Metode 1: Instalasi Go via SSH (Direkomendasikan)

Metode ini memerlukan akses SSH ke server cPanel kamu, tapi memberikan kontrol penuh atas instalasi.

Langkah 1: Akses SSH ke Server

  1. Login ke cPanel
  2. Cari dan klik "SSH Access" atau "Terminal"
  3. Jika menggunakan SSH client eksternal (seperti PuTTY), gunakan kredensial SSH yang diberikan oleh hosting kamu
  4. Setelah terhubung, kamu akan melihat command prompt server
cPanel SSH Access

Langkah 2: Download dan Install Go

  1. Cek versi Go terbaru di golang.org/dl
  2. Download versi terbaru untuk Linux:
    wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz

    Catatan: Ganti "1.21.0" dengan versi terbaru yang tersedia

  3. Ekstrak file tar ke direktori home:
    tar -C $HOME -xzf go1.21.0.linux-amd64.tar.gz
  4. Buat direktori untuk workspace Go:
    mkdir -p $HOME/gopath

Langkah 3: Konfigurasi Environment Variables

  1. Edit file .bashrc di direktori home:
    nano ~/.bashrc
  2. Tambahkan baris berikut di akhir file:
    export GOROOT=$HOME/go
    export GOPATH=$HOME/gopath
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
  3. Simpan file dengan menekan Ctrl+O lalu Enter, dan keluar dengan Ctrl+X
  4. Muat ulang konfigurasi bash:
    source ~/.bashrc
  5. Verifikasi instalasi Go:
    go version

    Output seharusnya menampilkan versi Go yang kamu install

Perhatian

Beberapa hosting mungkin tidak mengizinkan modifikasi .bashrc atau memiliki kebijakan khusus tentang environment variables. Jika mengalami masalah, konsultasikan dengan penyedia hosting kamu.

Metode 2: Instalasi Go Tanpa SSH

Jika kamu tidak memiliki akses SSH, kamu masih bisa menggunakan Go dengan mengompilasi aplikasi di lokal dan mengunggahnya ke server.

Baca juga: Hasilkan Uang dengan HTML dan CSS! 5 Cara Mudah Menghasilkan Penghasilan Tambahan Sambil Belajar Coding

Langkah 1: Develop dan Kompilasi Aplikasi Go di Lokal

  1. Install Go di komputer lokal kamu dari golang.org/dl
  2. Buat aplikasi Go kamu (misalnya, web server sederhana):
    package main

    import (
    "fmt"
    "net/http"
    )

    func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, World from Go on cPanel!")
    })

    port := "8080" // Sesuaikan dengan port yang diizinkan hosting
    fmt.Printf("Server running at port %s\n", port)
    http.ListenAndServe(":"+port, nil)
    }
  3. Kompilasi untuk Linux (karena cPanel biasanya berjalan di Linux):
    GOOS=linux GOARCH=amd64 go build -o myapp main.go

    Ini akan menghasilkan binary "myapp" yang bisa dijalankan di server Linux

    Tertarik baca Integrasi SSO di Multiple Aplikasi Dalam 15 Menit! Begini Cara Mudahnya di sini.

Langkah 2: Upload Binary ke Server

  1. Login ke cPanel
  2. Buka File Manager
  3. Navigasi ke direktori di mana kamu ingin menyimpan aplikasi (misalnya, buat folder "goapp" di home directory)
  4. Klik "Upload" dan pilih file binary "myapp" yang sudah dikompilasi
  5. Setelah upload selesai, klik kanan pada file dan pilih "Change Permissions"
  6. Set permission ke 755 (executable) dan klik "Change Permissions"
cPanel File Permissions

Menjalankan Aplikasi Go di cPanel

Ada beberapa cara untuk menjalankan aplikasi Go di hosting cPanel:

1. Menggunakan SSH dan Screen

Ini adalah cara terbaik untuk menjalankan aplikasi Go sebagai proses background:

  1. Install screen jika belum tersedia (mungkin perlu bantuan admin server):
    yum install screen # untuk CentOS/RHEL
    apt-get install screen # untuk Ubuntu/Debian
  2. Buat sesi screen baru:
    screen -S goapp
  3. Jalankan aplikasi Go:
    cd ~/goapp
    ./myapp
  4. Lepaskan screen dengan menekan Ctrl+A lalu D
  5. Untuk kembali ke sesi screen:
    screen -r goapp

2. Menggunakan cPanel Cron Jobs

Jika hosting tidak mengizinkan proses background, kamu bisa menggunakan cron job:

  1. Login ke cPanel
  2. Cari dan klik "Cron Jobs"
  3. Di bagian "Add New Cron Job", atur:
    • Common Settings: @reboot (jika didukung) atau setiap 5 menit
    • Command: cd ~/goapp && ./myapp > ~/goapp/app.log 2>&1 & echo $! > ~/goapp/app.pid
  4. Klik "Add New Cron Job"
cPanel Cron Jobs

Tips

Untuk mencegah duplikasi proses, buat script bash sederhana yang memeriksa apakah aplikasi sudah berjalan sebelum memulai instance baru.

3. Menggunakan Supervisor (Jika Tersedia)

Beberapa hosting menyediakan Supervisor untuk mengelola proses:

Artikel terkait: Belajar React Native dari Nol! Cara Membuat Aplikasi Mobile yang Bisa Dipakai di Android & iOS
  1. Buat file konfigurasi supervisor di ~/.config/supervisor/goapp.conf:
    [program:goapp]
    command=/home/username/goapp/myapp
    directory=/home/username/goapp
    autostart=true
    autorestart=true
    stderr_logfile=/home/username/goapp/error.log
    stdout_logfile=/home/username/goapp/output.log
  2. Muat ulang konfigurasi supervisor:
    supervisorctl reread
    supervisorctl update

Konfigurasi Reverse Proxy

Aplikasi Go biasanya berjalan pada port tertentu (misalnya 8080), tapi pengunjung website mengakses melalui port 80/443. Kamu perlu mengatur reverse proxy:

Menggunakan .htaccess

  1. Buat atau edit file .htaccess di direktori public_html:
    RewriteEngine On
    RewriteRule ^(.*)$ http://127.0.0.1:8080/$1 [P,L]
  2. Pastikan mod_proxy dan mod_rewrite diaktifkan di server (biasanya sudah aktif di cPanel)

Menggunakan Subdomain

Alternatif lain adalah membuat subdomain khusus untuk aplikasi Go:

  1. Buat subdomain baru di cPanel (misalnya go.domain.com)
  2. Konfigurasi proxy di level server (mungkin perlu bantuan admin hosting)

Troubleshooting

1. Aplikasi Tidak Berjalan

  • Periksa log error di file yang kamu tentukan
  • Pastikan binary memiliki permission executable (755)
  • Cek apakah port yang digunakan tidak diblokir oleh firewall
  • Verifikasi bahwa aplikasi dikompilasi untuk arsitektur yang benar

2. Proxy Error

  • Pastikan aplikasi Go berjalan dan mendengarkan pada port yang benar
  • Verifikasi konfigurasi .htaccess
  • Cek apakah mod_proxy diaktifkan di server

3. Aplikasi Berhenti Setelah Logout SSH

  • Gunakan screen, nohup, atau supervisor seperti dijelaskan di atas
  • Alternatif: Gunakan cron job untuk memastikan aplikasi tetap berjalan

Penting!

Beberapa hosting shared mungkin memiliki kebijakan yang melarang proses background berjalan lama. Pastikan untuk memeriksa Terms of Service hosting kamu sebelum menjalankan aplikasi Go.

Praktik Terbaik

  1. Gunakan flag port dinamis - Buat aplikasi Go kamu menerima port dari environment variable:
    port := os.Getenv("PORT")
    if port == "" {
    port = "8080" // default port
    }
    http.ListenAndServe(":"+port, nil)
  2. Implementasikan graceful shutdown - Tangani sinyal SIGTERM untuk shutdown yang bersih
  3. Gunakan logging yang baik - Catat error dan informasi penting ke file log
  4. Kompilasi statik - Gunakan flag -ldflags="-s -w" untuk mengurangi ukuran binary
  5. Pertimbangkan deployment alternatif - Untuk aplikasi Go yang lebih kompleks, VPS atau layanan cloud mungkin lebih sesuai

Kesimpulan

Menginstal dan menjalankan Golang di cPanel memang membutuhkan beberapa langkah teknis, tapi sangat mungkin dilakukan dengan pendekatan yang tepat. Metode terbaik tergantung pada level akses yang kamu miliki ke server hosting dan kebutuhan spesifik aplikasi.

Untuk aplikasi Go yang lebih kompleks atau yang membutuhkan performa tinggi, pertimbangkan untuk menggunakan VPS atau layanan cloud yang lebih fleksibel dibanding shared hosting cPanel.

Dengan mengikuti panduan ini, kamu bisa menjalankan aplikasi Go di hosting cPanel dan memanfaatkan kecepatan serta efisiensi yang ditawarkan oleh bahasa pemrograman Go.