BAB 1: Memperbaiki Error 404 phpMyAdmin (Konflik Nginx & Cloudflare Path)
Akar Masalah
Saat Anda membuat aturan Path Routing di Cloudflare (misalnya hosting.domain.com/phpmyadmin/ yang diarahkan ke Port 80), seringkali muncul error 404 Not Found. Hal ini terjadi karena sistem Nginx milik Control Panel HestiaCP (di Port 8083) mengira request tersebut mencari file di dalam sistem internal panel, bukan di web server.
Solusi Permanen (Tanpa Path Routing Cloudflare)
Daripada pusing mengatur Path di Cloudflare, lebih baik kita membuat "pintu rahasia" langsung di konfigurasi Nginx milik panel HestiaCP (Port 8083).
- Login ke server menggunakan SSH sebagai
root. - Buka dan edit file konfigurasi Nginx panel HestiaCP:
nano /usr/local/hestia/nginx/conf/nginx.conf - Cari bagian konfigurasi
server { listen 8083 ssl; ... }. - Tambahkan blok proxy ini dengan level prioritas mutlak (
^~) agar ia mencegat semua akses ke/phpmyadmin/:location ^~ /phpmyadmin/ { proxy_pass http://127.0.0.1:80/phpmyadmin/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } - Simpan file tersebut, lalu restart layanan HestiaCP:
systemctl restart hestia
Sekarang, jika Anda mengklik tombol phpMyAdmin di Control Panel, sistem otomatis mengambil tampilan dari web server tanpa error. Aturan Path di Cloudflare pun sudah tidak dibutuhkan lagi.
BAB 2: Membuka Akses SSH untuk User Standar (Mengatasi Auto-Close)
Akar Masalah
Secara default (bawaan keamanan pabrik), saat Anda membuat user standar di HestiaCP, user tersebut dikunci dan tidak diizinkan masuk via SSH. Izin shell mereka di dalam /etc/passwd di-set menjadi /usr/sbin/nologin. Akibatnya, saat user mengetikkan password dengan benar, terminal akan langsung tertutup otomatis.
Cara Membuka Akses SSH
Cara via Control Panel:
- Login sebagai
admindi HestiaCP. - Edit profil user yang bersangkutan.
- Pada opsi SSH Access, ubah dari
nologinmenjadibash.
Cara via Command Line (CLI):
Gunakan perintah internal HestiaCP berikut (ganti namauser dengan nama user Anda):
/usr/local/hestia/bin/v-change-user-shell namauser bash
BAB 3: Mengizinkan Root Login dengan Password di Balik Cloudflare Tunnel
Akar Masalah
Demi keamanan global, sistem Linux modern secara otomatis melarang user root untuk login menggunakan password biasa (standarnya adalah prohibit-password). Namun, jika Anda sudah membungkus server Anda dengan rapat menggunakan Cloudflare Tunnel, risiko peretasan dari luar sangat minim.
Cara Mengaktifkan Password Root
- Login sebagai
rootatau pakaisudo. - Edit file konfigurasi utama SSH:
nano /etc/ssh/sshd_config - Cari baris yang bertuliskan
#PermitRootLogin prohibit-password - Hapus tanda pagarnya (
#) dan ubah menjadi:PermitRootLogin yes - Simpan file, dan restart layanan SSH:
systemctl restart sshd
BAB 4: Duplikasi Passwordless Login (SSH Key) ke Berbagai User
Akar Masalah
Saat Anda menempelkan/memasukkan Public Key (Gembok) melalui fitur "Manage SSH Key" di HestiaCP, kunci tersebut hanya disimpan di dalam "kamar" milik akun panel tersebut. Jika Anda punya akun OS lain (misalnya user bawaan OS seperti ubuntu atau sarbaini), mereka akan tetap meminta password.
Cara Menyalin Kunci SSH secara Manual
Untuk menanamkan kunci ke user lain (sarbaini dalam contoh ini), gunakan 4 langkah sakti ini dengan user root:
- Buat folder penyimpan kunci untuk user target:
mkdir -p /home/sarbaini/.ssh - Suntikkan (copy) teks kunci dari user yang sudah memilikinya (misal dari user
omben):cat /home/omben/.ssh/authorized_keys >> /home/sarbaini/.ssh/authorized_keys - Tegaskan status hak milik (Sangat Penting!):
chown -R sarbaini:sarbaini /home/sarbaini/.ssh - Kunci rapat-rapat permission foldernya sesuai standar keamanan ketat SSH:
chmod 700 /home/sarbaini/.ssh chmod 600 /home/sarbaini/.ssh/authorized_keys
BAB 5: Menginstal Composer Secara Global untuk Semua User
Akar Masalah
Dalam lingkungan Shared Hosting (seperti HestiaCP), user biasa tidak memiliki izin sudo. Jika ada banyak user yang ingin mendevelop web berbasis PHP/Laravel, menyuruh mereka menginstal Composer sendiri-sendiri secara lokal sangatlah merepotkan dan boros ruang disk.
Solusi: Instalasi Global oleh Admin
Sebagai administrator server (root), Anda bisa menyediakan Composer untuk seluruh penghuni server dengan perintah ini:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Setelah perintah di atas sukses, user mana pun di dalam server bisa langsung memanggil perintah composer di terminal mereka secara instan.
Tidak ada komentar:
Posting Komentar