Eksekusi CGI di server hosting bisa dijalankan oleh user biasa (user UNIX yang dimiliki oleh semua member hosting) yang biasanya dalam format txxx, dan user khusus CGI yang biasanya dalam format cgi-txxx. Member hosting bisa memilih untuk menjalankan CGI menggunakan user biasa ataupun user CGI.

Table of Contents

Permasalahan

Terkadang beberapa file dan direktori di bawah www/ tidak dapat dihapus dengan pesan ‘Permission denied’ jika member hosting melakukan penggantian user yang menjalankan CGI. Secara default, PHP di server hosting berjalan sebagai user CGI sehingga file/direktori dari aplikasi web dimiliki sebagai user CGI bukan sebagai user biasa. Dan perubahan user yang menjalankan CGI tidak serta merta mengubah kepemilikan file-file tersebut.

Solusi

Berikut cara untuk menghapus file/direktori di bawah www/ (misal: sites/$NAMASITE/www/data/) secara rekursif, yang tidak dapat terhapus dengan perintah rm -rf biasa.

Mengubah permission file

Login lewat SSH, dan masuklah ke direktori sites/$NAMASITE/www/. Bisa juga melakukan SSH menggunakan public-key.

$ cd ../sites/$NAMASITE/www/

Buatlah file chmod.php yang kedudukannya berada setingkat dg direktori data/. Skripnya seperti ini:

<? system("chmod -vR g+w data") ?>

Perintah berikut bisa ditiru untuk mempercepat pembuatan skrip ini:

$ echo "<? system(\"chmod -vR g+w data\") ?>" > chmod.php

Menghapus file

Eksekusilah skrip tadi dengan perintah:

$ php chmod.php

Langkah di atas akan mengubah pemission file/direktori agar bisa diedit oleh grup pemilik file yang bersangkutan. Setelah sukses, proses penghapusan dg perintah rm -rf bisa dilakukan.