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
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.
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.
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.
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!
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.
The storage
directory needs to be writable by the webserver user.