मैं अपने फ़ोल्डर अनुमतियों को 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 उपयोगकर्ताओं को अपने आप को सेट करते हैं और फ़ोल्डर उदाहरण के लिए रूट के स्वामित्व में हैं, तो आप इस समस्या का सामना करते रहेंगे। यह हो सकता है यदि आपने एक sudo laravel new <project>रूट के रूप में किया । उस स्थिति में, सुनिश्चित करें कि आप सेटिंग्स chownबदलने के लिए अपने प्रोजेक्ट पर एक पुनरावर्ती आदेश का उपयोग करते user:groupहैं। अधिकांश डिफ़ॉल्ट मामलों में, www-dataसर्वर और php के लिए मुख्य सेटिंग है, उस स्थिति में यह सुनिश्चित करने की बात है कि फ़ोल्डर www-dataपहुंच से बाहर नहीं है ।
मेरा प्रोजेक्ट मेरे होम डायरेक्टरी में सेटअप है। उबंटू 16.04 और लारवेल 5.5 पर।