Cara Paling Aman Untuk Mengatasi Error "File Permission" di Laravel

Laravel

Biasanya saat menggunakan Apache atau Nginx di Linux, projek Laravel kita diminta untuk memberikan akses terhadap folder laravel. Bagaimanakah cara teraman untuk berkaitan dengan akses folder ini?

Hanya untuk memperjelas bagi siapa pun yang mengalami permasalahan ini, walaupun terdengar remeh tapi cukup menjengkelkan bagi pemula.

jika Anda memberikan izin salah satu folder Anda  dengan kode 777, Anda artinya telah mengizinkan siapapun untuk membaca, menulis, dan mengeksekusi file apa pun di direktori itu.

Apa artinya? Anda berikan siapapun (peretas atau orang jahat di seluruh dunia) untuk mengunggah file, virus atau file lainnya, dan kemudian menjalankan file tersebut. SEREM banget ya!

Pada dasarnya ada dua cara untuk mengatur kepemilikan dan izin suatu file atau folder. Entah Anda memberi diri Anda kepemilikan atau Anda menjadikan server web sebagai pemilik semua file.

Server web sebagai pemilik adalah cara yang digunakan kebanyakan orang dan juga cara yang di jelaskan dalam dokumentasi resmi Laravel. Dengan asumsi www-data (bisa jadi yang lain) adalah pengguna server web Anda, bisa dengan menggunakan script berikut:

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory

Jika Anda melakukannya, server web memiliki semua file, dan juga grup, dan Anda akan mengalami beberapa masalah dalam mengunggah file atau bekerja dengan file melalui FTP karena klien FTP Anda akan masuk bukan bukan server web Anda, jadi tambahkan pengguna Anda ke grup pengguna server web:

sudo usermod -a -G www-data ubuntu

Script diatas mengasumsikan bahwa server web Anda berjalan sebagai www-data (default Homestead), dan pengguna Anda adalah ubuntu (silahkan disesuaikan dengan data yang sebenarnya).

Kemudian silahkan lanjutakan dengan mengatur semua direktori Anda ke 755 dan file Anda ke 644.

Untuk mengatur permission dari file gunakan -type f

sudo find /path/to/your/laravel/root/directory -type f -exec chmod 644 {} \;

Untuk mengatur permission dari tipe folder/direktory gunakan -type d

sudo find /path/to/your/laravel/root/directory -type d -exec chmod 755 {} \;

Saya menyarankan semua direktori dan file (itu membuat bekerja dengan semuanya lebih mudah), jadi, buka direktori root laravel Anda:

cd /var/www/html/laravel >> assuming this is your current root directory
sudo chown -R $USER:www-data .
sudo find . -type f -exec chmod 664 {} \;   
sudo find . -type d -exec chmod 775 {} \;

Kemudian berikan server web akses untuk membaca dan menulis ke penyimpanan dan cache

Apa pun cara Anda mengaturnya, maka Anda perlu memberikan izin baca dan tulis ke server web untuk penyimpanan, cache, dan direktori lain apa pun yang perlu diunggah atau ditulis oleh server web (tergantung pada situasi Anda), jadi jalankan perintah dari bash di atas:

sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache

Sekarang, Anda aman dan situs web Anda berfungsi dan dapat bekerja dengan file dengan sangat mudah


Artikel Terkait