แก้ Laravel permission denied Storage Directory

Error in exception handler: The stream or file "/var/www/laravel/app/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/laravel/bootstrap/compiled.php:8423

เจอเออเร่อหน้าตาประมาณว่าเฮ้ยนายอ่ะเข้าใช้งานโฟลเดอร์นี้ไม่ได้นะมัน เราไม่ให้นายอ่านเขียนไฟล์ลงในนี้ นายไม่มีสิทธิ์ โอเคงั้น ต้องทำไง นายก็ไปขออนุญาตแอดมินก่อนสิ ใครเป็นแอดมิน ก็นายไง โอเคเริ่ม

ข้อควรระวังคือ

Never set a directory to 777.

ให้สิทธิ์คนที่ล็อกอินเข้าถึงโฟลเดอร์เหล่านี้ก่อน

sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache

จากนั้นเพิ่มสิทธิ์ 775 เข้าไปที่โฟลเดอร์นั้น

chmod -R 775 storage
chmod -R 775 bootstrap/cache

Update:

สำหรับใครที่อยากรู้ว่า user ที่ล็อกอินอยู่ใช้งานในกรุ๊ปไหนให้ใช้คำสั่งด้านล่างเช็ค

สำหรับใครที่ใช้ nginx:

ps aux|grep nginx|grep -v grep

สำหรับคนที่ใช้ apache:

ps aux | egrep '(apache|httpd)'

ที่มา : https://stackoverflow.com/a/45673457

Leave a Reply

Your email address will not be published. Required fields are marked *