Macam - macam coretan hasil belajar yang semoga bermanfaat bagi banyak orang.

Rabu, 14 Februari 2018

Konfigurasi Upload File di Laravel dengan Akses SSH non Root

Tidak semua penyedia hosting bahkan yang telah memberi akses SSH dapat menggunakan fitur filesystem di web base Laravel. Pengalaman pribadi setelah mencoba salah satu webhost kenamaan yang pada awalnya menjadi favorit karena pertimbangan penyimpanan file yang unlimited (dengan batas per single file tentunya). Alasan pembatasannya karena keamanan sehingga command di shell pun dibatasi (sedih -_-). Contoh sederhananya, ketika ingin membuat symlink agar file hasil transaksi tersimpan di direktori storage berjalan dengan baik, yakni dengan :

php artisan storage:link

Malah muncul pesan error seperti berikut :





Dan, lebih parahnya karena kita bukan user root, symlink manual pun tidak diizinkan alias Permission Denied.

Lalu bagaimana cara mengatasinya ? Framework Laravel memberi keleluasaan kita untuk mengatur path penyimpanan di file config/filesytems.php. Kita bisa mengubah value dari array local, public, dll sesuka kita. Misal kita ingin menggunakan disk public, secara default akan berisi :

'public' = [
    'root' => storage_path() . "/app/public",
    ...
]

Pada umumnya, Web App Laravel yang diupload di Shared Hosting akan terstruktur seperti berikut :

public_html
laravel
- app
- config
- public
- storage
- ...

Jika menggunakan setting default dan tanpa symlink, maka file akan tersimpan di folder laravel/storage. Dengan mengubah konfigurasi root path di filesystems.php kita tetap bisa mengarahkan transaksi upload, dll ke folder public_html. Berikut contohnya :

'public' = [
    'root' => base_path() . '/../public_html'/uploads,
    ...
]

Tidak ada komentar:

Posting Komentar