Masalah folder does not appear to be writable pada PHP, Codeigniter

Langkah 1 – Mengganti permission file dan folder melalui command line pada windows / Terminal pada mac os

Contoh Masalah :
"

folder does not appear to be writable

"
Ketika upload poto pada aplikasi web yang dibuat pada server local, penyelesaiannya adalah dengan masuk ke directory file penyimpanan file disini "assets"  lalu ketik "sudo chmod -R 777 assets" klik enter




Penjelasan:

chmod – Perintah ini digunakan untuk mengganti permission dari sebuah file/folder. Pada dasarnya, setiap file dapat diakses oleh 3 jenis pengguna yaitu:

Type

Explanation

owner

Pengguna yang membuat dan memiliki file / direktori.

group

Semua pengguna yang merupakan anggota dalam grup yang sama.

others

Semua pengguna lainnya dalam sistem yang bukan owner atau member dari sebuah grup..

Perintah ls -l, bisa digunakan untuk melihat permission pada file dan ownernya. Sebagai contoh, ls -l file1.txt akan menampilkan:

-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt

  • “-rwxr–rw-“ – Bagian ini akan menampilkan permission. Ada 3 huruf yang mungkin akan sering Anda lihat: r, w, x, d.
    d artinya tipe file adalah direktori (folder). Dalam contoh kita tersebut, huruf d tidak ada (seharusnya berada di urutan pertama, namun pada contoh tidak ada/diwakili oleh simbol “-” yang artinya “tidak”). Huruf x artinya permission untuk mengeksekusi file/folder (kita sering membutuhkan permission ini untuk masuk ke dalam folder).
    Huruf w artinya permision untuk menulis file/folder (edit, hapus, dll). Terakhir, huruf r artinya adalah read. Jika kita memiliki permission untuk membacara, kita bisa membaca isi dari file, namun hanya itu saja. Kita tidak bisa meng-edit atau mengeksekusi file tersebut.
  • 1 – Jumlah hard links. Biasanya hard link merupakan nama tambahan untuk sebuah file.
  • user user – Menampilkan pemilik (owner) dan group owner dari file.
  • – Menampilkan ukuran file.
  • Jan 19 12:59 – Menampilkan kapan terakhir kali file dimodifikasi.
  • file1.txt – Nama file/folder

Kembali ke perintah chmod. Perintah ini akan memungkinkan kita untuk menggati permission dari file/folder. Kita akan belajar bagaimana cara melakukannya hanya dengan menyertakan nomor-nomor secara bersamaan. Setiap tipe permission memiliki nomornya masing-masing:

  • (read) – 4
  • w (write) – 2
  • (execute) – 1

Jadi, contohnya, jika Anda ingin mengatur permission file1.txt menjadi:

-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt

Maka perintah yang kita gunakan adalah:

chmod 746 file1.txt

Pada dasarnya, setiap nomor dalam perintah ini merepresentasikan permission untuk salah satu tipe user (owner, group owner, dll).

Jadi, angka pertama adalah 7. Berdasarkan penjelasan arti angka di atas, satu-satunya cara kita bisa mendapatkan angka 7 adalah dengan menambahkan angka 4, 2 dan 1, bentuknya: 4+2+1=7. Artinya SEMUA permission (read, write dan execute – rwx). Angka pertama ini akan membuat permission untuk owner dari file tersebut.

Angka ke-2 adalah 4. Artinya adalah permission r (read), angka ini memberikan permission ke group owner.

Angka ke-3 adalah 6, berdasarkan arti angka di atas, cara mendapatkan angka ini adalah dengan menambahkan 4 dan 2, jadinya 4+2=6. Sehingga kita memberikan others sebuah permission untuk read (4) dan write (2) pada file.

Bagian ke-3 pada perintah (file1.txt) adalah nama file, kita tulis nama file yang ingin kita atur permissionnya.

Contoh lainnnya: chmod 777 file2. txt, perinta ini akan memberikan SEMUA permission ke semua jenis user (owner, group dan other).

Berikut ini adalah list yang paling sering digunakan untuk file:

ValueNumeric ValueExplanation
-rw——-600Pemilik bisa membaca dan menulis.
-rw-r–r–644Pemilik bisa membaca dan menulis, group dan orang lain bisa membaca.
-rw-rw-rw-666Pemilik, kelompok dan others bisa membaca dan menulis.
-rwx——700Pemilik bisa membaca, menulis dan mengeksekusi, group dan yang lainnya tidak bisa melakukan apapun dengan file tersebut.
-rwx–x–x711Pemilik bisa membaca, menulis dan mengeksekusi, kelompok dan orang lain bisa mengeksekusi.
-rwxr-xr-x755Pemilik bisa membaca, menulis dan mengeksekusi, kelompok dan orang lain bisa membaca dan mengeksekusi.
-rwxrwxrwx
777
Pemilik, kelompok dan orang lain bisa membaca, menulis dan melaksanakan.

Permission yang umum digunakan untuk direktori:

ValueNumeric ValueExplanation
drwx——700Hanya pemilik yang bisa membaca dan menulis di direktori ini.
drwxr-xr-x755Pemilik, kelompok dan lain-lain bisa membaca direktori, tapi pemiliknya hanya bisa mengubah isinya.

Ada cara lain untuk mengubah permission dengan menggunakan perintah chmod, namun kami merekomendasikan Anda untuk mempelajari salah satunya dan menggunakannya setiap saat (penggunaan angka seperti di atas). Jika Anda ingin mempelajari cara lain untuk mengubah permission, Anda bisa membacanya disini.

Langkah 2 – Mengganti owner file dan folder melalui command line

chown – Perintah ini digunakan untuk mengganti owners dari file/folder. Perintah dasarnya adalah:

chown [owner/group owner] [nama file]

Pada dasarnya, jika kita memiliki file “demo.txt” dan kita ingin membuat owner file ini menjadi “bambang” dan group owner menjadi “clients”, maka perinta yang akan kita gunakan adalah:

chown bambang:clients demo.txt

Jadi, seperti yang Anda lihat, kita memisahkan owner dan group owner dengan simbol “:” (titik dua). Jika kita hanya ingin mengubah owner file, kita bisa menggunakan:

chown bambang demo.txt

Kita menghilangkan group owner dan hanya mengetikan owner file yang baru, dalam kondisi seperti itu, group owner akan tetap tidak berubah. Contoh lain yang serupa adalah jika kita ingin mengubah group owner dari sebuah file, maka perintahnya akan menjadi seperti berikut:

`chown :clients demo.txt`

Dalam kondisi seperti ini, hanya group owner yang akan berganti menjadi clients (owner tetap tidak berubah).

Langkah 3 – Menggunakan opsi tambahan dengan perintah chmod dan chown

Salah satu opsi utama yang bisa bekerja dengan kedua perintah tersebut adalah -R, yang artinya rekursif. Opsi ini memungkinkan Anda untuk mengganti permission/owner dalm folder dan SEMUA file dan sub folder di dalamnya.

  • “-f” – Akan memaksa eksekusi dan tidak memunculkan banyak pesan error.
  • “-v” – Memberikan Anda diagnosa setiap file yang dipengaruhi oleh perintah.
  • “-c” – Sama seperti -v, namun hanya akan menyediakan informasi bila perubahan sudah benar-benar terjadi.

Terkait masalah ini, ada 2 cara yang dapat kamu lakukan untuk mengatasi masalah ini :

  • Ubah mod direktory menjadi 777.
  • Ubah own direktory menjadi www-data.

Dari dua cara diatas saya lebih prefere menggunakan cara yang kedua, mengubah own menjadi www-data. Karena untuk mengubah mod menjadi 777 itu sangatlah beresiko, biasanya untuk mod itu paling mentok cuma sampe 755.

Untuk keputusan cara mana yang mau pakai, sisanya saya serahkan kembali kepada kamu, tidak ada yang melarang juga toh hehe

MOD 777
Untuk mengatur mod menjadi 777 sangatlah mudah, kamu cukup ketikan perintah seperti ini pada terminal :

sudo chmod -R 777 lokasi_direktorynya


Sumber: https://www.kang-cahya.com/2017/12/cara-mengatasi-masalah-folder-does-not.html
https://www.hostinger.co.id/tutorial/pengertian-chmod-dan-chown-untuk-ganti-permission-di-linux/

Komentar

Postingan populer dari blog ini

UAS Audit Teknologi Informasi Menggunakan ACL

Web Service

Cara menjalankan kode Python dari dalam Visual Studio Code