Laravel 4: Failed to open stream: Permission denied

前端 未结 6 1787
南笙
南笙 2020-12-02 09:37

I\'m having problem in setting up Laravel 4. I\'m having this error when opening the index page:

file_put_contents(/Users/laravel/app/storage/meta/ser

相关标签:
6条回答
  • 2020-12-02 09:47

    I think chmod -777 is a bad practice.

    To solve permissions issue on Laravel, I've done this (with root user):

    cd app/

    chown -R www-data:www-data storage

    cd storage/

    find . -type d -exec chmod 775 {} \; && find . -type f -exec chmod 664 {} \;

    And always in app/storage directory :

    chown your_user:user_group .gitignore cache/.gitignore logs/.gitignore meta/.gitignore sessions/.gitignore views/.gitignore

    Now, exit the root user, and it's ok.

    EDIT : this was for Laravel4. This doesn't works for Laravel5 because of a different structure.

    0 讨论(0)
  • 2020-12-02 09:49

    Just ran into this problem on centos 7. The blocker wasn't folder permissions, rather it was selinux policy blocking nginx/php to access /var/www. So, if the above doesn't work, try disabling selinux as a test to see if you can re-run composer without any permission issues.

    0 讨论(0)
  • 2020-12-02 09:50

    It's better that you do not change the permissions, you should just change the owner:group of the storage folder to that of the owner:group of apache by using chown, this is more complicated but is more secure and you'll get used to this soon, you can find this in the httpd.conf

    MAMP:

    /Applications/MAMP/conf/apache/httpd.conf
    

    XAMMP:

    /Applications/XAMPP/xamppfiles/etc/httpd.conf
    

    Open the httpd.conf with your preferred editor then search for User/Group. After searching you will see these lines below that highlighted line you searched:

    User someuser
    Group somegroup
    

    Once you already know the User and Group, cd to your laravel directory then, do the chown:

    chown -R someuser:somegroup app/storage
    

    P.S: If you get permission something error upon doing chown, try this:

    sudo chown -R someuser:somegroup app/storage
    

    It will then ask for your password so input it then done.

    0 讨论(0)
  • 2020-12-02 09:59

    In my case this error was thrown:

    fopen(php://stdout): failed to open stream: operation failed

    i am using a virtual host in Wamp. therefor i added this line to my <VirtualHost> -> <Directory> block in httpd-vhosts.conf file:

    Require all granted
    

    and my block is:

    <VirtualHost *:80>
        ServerName laravel
        DocumentRoot d:/wamp/www
        <Directory  "d:/wamp/www/">
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    

    then problem solved!

    0 讨论(0)
  • 2020-12-02 10:02

    If you are using Apache on Ubuntu, storage and bootstrap/cache folders need to be writable by web server user.

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

    This will allow write permissions to these folders for web server users.

    0 讨论(0)
  • 2020-12-02 10:03

    The storage directory needs to be writable by the webserver user.

    0 讨论(0)
提交回复
热议问题