ฉันไม่กระตือรือร้นที่จะเปลี่ยนการอนุญาตของโฟลเดอร์เป็น 777 นี่คือวิธีที่ฉันแก้ไขปัญหานี้
ก่อนอื่นฉันเปลี่ยนผู้ใช้ที่ใช้งานเว็บเซิร์ฟเวอร์บนเครื่องของฉัน (ฉันเรียกใช้ nginx แต่ใช้หลักการได้ทุกที่):
$> sudo vim /etc/nginx/nginx.conf
user <my_user> #inside nginx.conf
service nginx reload
หลังจากนั้นฉันสร้างindex.php
ไฟล์อื่นภายใต้public/
โฟลเดอร์เพื่อค้นหาว่าใครกำลังใช้งานเวอร์ชัน php-fpm ของฉันและฉันจะไปเปลี่ยนอะไร:
<?php
phpinfo();
?>
โหลดหน้านี้www-data
ซ้ำฉันพบว่าเป็นผู้ใช้ (ภายใต้ส่วนสภาพแวดล้อม) ฉันพบว่าฉันใช้งาน php 7.1 อยู่ ฉันเปลี่ยนผู้ใช้ต่อไป:
$> sudo vim /etc/php/7.0/fpm/pool.d/www.conf
#Look for www-data or the following variables: user, group, listen.user, listen.group.
ในที่สุดฉันให้สิทธิ์ต่อไปนี้กับโฟลเดอร์:
sudo chmod -R 775 ./storage/
ตอนนี้ฉันทำให้แน่ใจว่าฉันเป็นเจ้าของโฟลเดอร์โดยใช้วิ:
ls -al
หากคุณตั้งค่าผู้ใช้เซิร์ฟเวอร์และผู้ใช้ php-fpm ให้กับตัวเองและโฟลเดอร์เป็นของ root เช่นคุณจะต้องเจอกับปัญหานี้ สิ่งนี้สามารถเกิดขึ้นได้หากคุณทำsudo laravel new <project>
ตามรูท ในกรณีนั้นตรวจสอบให้แน่ใจว่าคุณใช้chown
คำสั่งซ้ำในโครงการของคุณเพื่อเปลี่ยนการuser:group
ตั้งค่า ในกรณีเริ่มต้นส่วนใหญ่www-data
คือการตั้งค่าหลักสำหรับเซิร์ฟเวอร์และ php ในกรณีนั้นมันเป็นเรื่องของการทำให้แน่ใจว่าโฟลเดอร์ไม่www-data
สามารถเข้าถึงได้
โครงการของฉันถูกตั้งค่าในไดเรกทอรีบ้านของฉัน บน Ubuntu 16.04 และ Laravel 5.5