Konteks Masalah: Domain sub-webmail (webmail.domain.com) yang sebelumnya lancar tiba-tiba mengalami 500 Internal Server Error, Blank Screen, atau Not Secure (SSL Failure) setelah adanya proses rebuild, renewal SSL, atau pembaruan konfigurasi dari panel.
🛑 Kenapa Bisa Begini?
Pada HestiaCP, service Roundcube memiliki arsitektur tersendiri yang terpisah dari user web standar:
- SSL / Nginx Bypass: SSL Let’s Encrypt kadang gagal atau hilang jika
webmail.domain.comdibuat sebagai Web Domain biasa tanpa symlink yang presisi ke aplikasi Roundcube. - Strict
open_basedirIsolation: Ketika HestiaCP me-rebuild domain, file pool PHP-FPM di-reset ke template default. Akibatnya,open_basedirmengunci PHP hanya di folder/home/user/, sehingga PHP diblokir (Permission Denied) saat mencoba mengakses direktori inti Roundcube (/var/lib/roundcube,/etc/roundcube, dan/usr/share/roundcube). - Ownership Mismatch: Layanan webmail memerlukan user/group
hestiamail:www-datauntuk fungsi direktoritempdanlogs.
🛠️ Step-by-Step Resolution Guide
Jalankan seluruh langkah di bawah ini menggunakan akses root melalui terminal SSH.
Langkah 1: Fix SSL & Rebuild Domain via Hestia CLI
Langkah pertama adalah memastikan virtual host Nginx dan sertifikat SSL terpasang dengan benar untuk domain webmail.Bash
# Rebuild konfigurasi domain via CLI HestiaCP
v-rebuild-web-domain hestiauser webmail.domainmu.com
# Re-issue / Force Renewal SSL Let's Encrypt
v-add-web-domain-ssl-force hestiauser webmail.domainmu.com
Penjelasan: Perintah ini memaksa HestiaCP memperbarui file vhost Nginx/Apache dan menerbitkan sertifikat Let’s Encrypt tanpa harus lewat GUI dashboard.
Langkah 2: Hubungkan public_html ke Core Roundcube (Symlink)
Ganti folder public_html kosong milik user dengan symbolic link yang mengarah langsung ke sistem instalasi Roundcube.Bash
# 1. Hapus folder public_html bawaan jika masih berupa direktori biasa
rm -rf /home/hestiauser/web/webmail.domainmu.com/public_html
# 2. Buat Symlink ke sistem Roundcube
ln -s /var/lib/roundcube /home/hestiauser/web/webmail.domainmu.com/public_html
Penjelasan: Mengarahkan document root Nginx/Apache langsung ke direktori aplikasi Roundcube yang valid.
Langkah 3: Amankan Permission & Ownership Folder Temp / Logs
Roundcube membutuhkan akses tulis (write access) ke direktori penyimpanan sementara dan log agar tidak crash (Error 500/Blank Screen).Bash
# 1. Pastikan kepemilikan diatur ke hestiamail:www-data
chown -R hestiamail:www-data /var/lib/roundcube/temp
chown -R hestiamail:www-data /var/lib/roundcube/logs
# 2. Berikan hak akses Read, Write, Execute untuk Owner & Group (775)
chmod -R 775 /var/lib/roundcube/temp
chmod -R 775 /var/lib/roundcube/logs
Penjelasan:
hestiamailadalah pemilik sistem webmail, sedangkanwww-dataadalah group yang digunakan oleh web server / PHP-FPM untuk membaca dan menulis file.
Langkah 4: Inject Path Roundcube ke open_basedir PHP-FPM
Edit file konfigurasi pool PHP-FPM domain untuk mengizinkan skrip PHP mengakses folder-folder di luar /home/user/.
- Buka file konfigurasi pool PHP-FPM domain:
- Bash
nano /etc/php/8.3/fpm/pool.d/webmail.domainmu.com.conf(Sesuaikan8.3dengan versi PHP yang aktif digunakan oleh domain).
- Bash
- Cari baris
php_admin_value[open_basedir]:- Ubah baris tersebut dari:Ini, TOML
php_admin_value[open_basedir] = /home/hestiauser/.composer:/home/hestiauser/web/webmail.domainmu.com/public_html: ... - Menjadi (tambahkan path sistem Roundcube di bagian depan/tengah, dipisahkan titik dua
:):Ini, TOMLphp_admin_value[open_basedir] = /var/lib/roundcube:/etc/roundcube:/usr/share/roundcube:/home/hestiauser/.composer:/home/hestiauser/web/webmail.domainmu.com/public_html:/tmp
- Ubah baris tersebut dari:Ini, TOML
- Simpan file (
Ctrl + O, laluEnter, laluCtrl + X).
Langkah 5: Restart Service PHP-FPM & Test
Terapkan perubahan konfigurasi PHP dengan melakukan restart pada service PHP-FPM.Bash
# Restart PHP-FPM
systemctl restart php8.3-fpm
# Tes tulisan sementara (opsional) untuk memastikan permission berjalan
sudo -u www-data touch /var/lib/roundcube/temp/test.tmp && rm /var/lib/roundcube/temp/test.tmp
–
🔍 Checklist Verifikasi Akhir
| No | Item Pengujian | Ekspektasi Hasil |
| 1 | Akses URL [https://webmail.domain.com] | Gembok SSL Active / Valid (Hijau/Secure). |
| 2 | Tampilan Webmail | Halaman login Roundcube muncul sempurna (Tanpa HTTP 500 / Blank). |
| 3 | Login & Attachment | Pengguna dapat masuk dan melampirkan file tanpa pesan error permission. |
Catatan Penting untuk Admin:
Jika di kemudian hari HestiaCP melakukan rebuild domain otomatis (misal saat perpanjangan sertifikat SSL berkala), Langkah 4 dapat ter-reset ke bawaan template. Jika terjadi error 500 kembali, cukup ulangi Langkah 4 & 5.
Ok, sudah cukup clear kan? Problem’s solved!