Bagi para penyewa Dedicated Server/VPS dengan control panel WHM/cPanel, maka sudah bisa dipastikan bahwa berbagai akun website yang berada di dalamnya, masing-masing dapat menjalankan aplikasi PHP berdasarkan nama user-nya. Sebagai misal sebuah web dengan domain akuganteng.com akan mendapatkan lokasi webroot berada di /home/akugante/public_html/
. Semua file dan direktori yang berada di webroot tersebut akan memiliki nama user 'akugante'
dengan nama group 'akugante'
.
Hal ini dimungkinkan karena WHM sudah mengintegrasikan aplikasi suExec, yang bisa mengganti nama user default ‘apache’ dengan nama akun situs masing2. SuExec berfungsi untuk meningkatkan keamanan tiap-tiap akun situs, yang mana satu akun hanya dapat mengeksekusi file-file PHP dengan nama user dan group yang sama.
Bayangkan dengan keadaan default di mana nama user hanya satu yaitu 'apache' atau
, maka bilamana server tersebut dijual kembali sebagai reseller, seorang penyewa hosting yang mengerti tentang kode bisa mengunggah skrip PHP-nya ke server dan menggunakan skrip tersebut untuk mengakses direktori milik penyewa server lainnya.'wwwrun'
Pertanyaan serius: Saya nggak bisa ngedit file template WordPress via wp-admin, kenapa?
Kembali ke WHM, ternyata pada keadaan default baru diinstall WHM/cPanel, PHP dijalankan sebagai DSO (Dynamic Shared Object) dan memiliki nama user ‘nobody’. Akibatnya, beberapa fungsi yang bisa dijalankan oleh PHP yang berkaitan dengan file system akan mengalami kendala.
Seperti contoh, pada CMS WordPress, di dalam panel admin dashboard, user bisa mengedit template dan plugin yang mereka punya. Nah, jika PHP masih berjalan sebagai DSO, maka otomatis user tidak akan bisa menyimpan hasil editan mereka (tombol « Update File » tidak muncul), karena user ‘nobody’ tidak bisa mengedit file dengan ownership ‘akugante’. Ini adalah contoh dari kasus yang lumayan sering muncul dari teman-teman yang baru saja memigrasikan situs-situs mereka ke server VPS/DS yang baru.
How To Enable WHM Apache PHP SuExec
Lalu, bagaimana cara mengaktifkan SuExec agar PHP dapat berjalan sesuai nama akun?
Ketik ‘suex’ di search box kiri atas, maka menu yang bejibun di panel kiri akan otomatis terfilter yang salah satunya adalah « Configure PHP and SuExec ». Klik, lalu ganti nilai dropdown dso menjadi cgi, lalu « Save new configuration ».
Sesederhana itu ternyata. Untuk mengetes, cobalah buka WordPress admin Anda, lalu edit salah satu template. Jika tombol « Update File » muncul berarti « Voila! », Anda sakses!!