Published 7 months ago by se2B
I'm stuck on a trouble to access images stored on my personnal server www.sebastienbourda.fr.
Server Config tree:
/ pepiniere app ... storage ... www ....
I tried to create symlink in www to point in storage/ folder but it don''t work.
When i tried to display the page
i've a permission error: Forbidden You don't have permission to access /storage/images/palmier-pepiniere-des-sables-agen-arbuste.jpg on this server.
Best regards guys.
I use shared host with ver 5.5 no problems, see this guide: http://novate.co.uk/deploy-laravel-5-on-shared-hosting-from-heart-internet/
And structure like https://imgur.com/Oo6k4Fp
As suggested earlier, do not use your storage directory for this. Because as soon as this is going to work I am able to view all of the content of your storage directory if I know the path and because you use Laravel it is not that hard to guess a few path's. That will give me for example the opportunity to read your application logs in
/storage/logs/laravel.log which could contain private/sensitive data.
It would be better if you could use your public directory for this. Or if this is somehow not possible at least do not open your full storage directory but only one specific directory.
If i understand, i need to use storage/app/public (with a symlink).
My question is: "how to access the picture i stock in storage/app/public/images/... since the view?"
It works on the local project but not on the hosted project.
If i need to use a folder in my /www folder, how can i store images in /www/images folder. When i try, i've an error of path.
sorry but it's my first deployment project.
Thanks a lot.
php artisan storage:link, it creates a symlink between
/public/storage. So when you upload files, they get physically stored in /storage/app/public, but accessed by yoursite.com/storage/filename. This is secure and won't allow someone to read anything else from storage that isn't in the /storage/app/public dir, so no one would be able to read log files or anything else. This is actually the way laravel sets up some of their other projects, like Laravel Spark. It's secure.
Remember, if you are using the local driver, all files that should be publicly accessible should be placed in the storage/app/public directory. Furthermore, you should create a symbolic link at public/storage which points to the storage/app/public directory.
Why you use this, I do not see something usefull in this method.
you usually create a symlink from
in my case i have an folder
storage/app/public/pictures which i link to
www in your case) already is the webserver root - you can access the file with /pictures/[your-file]
also check permissions on the folder -
0755 seems a bit high, but should work, especially on shared hosting
without a index document (index.html, index.php) you may not have access to view the folder contents - so make sure you are accessing an existing file during your tests
Ok. I tried something different. I want to store file directly in a folder www/images but when i sepcify in my controller $path = $request->file('picture1')->storeAs('../www/images' . $id_post, "picture1.jpeg"); i've an error "Path is outside of the defined root, path: [../www/images/picture1.jpeg]".
Can you tell me if it's possible and how to do that?
For the "storage folder solution", i don't understand the problem.I've all the permission on folder and create symlink but it doesn't work.