Note, I'm not addressing the original answer because it doesn't sound like it can be done. This is an alternate solution.
Solution
In your config/filesystems.php
file, you'll see the following code (or something similar).
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
],
],
To link your public disk to a public directory without using OS symlinks, change the disks['public']['path']
to the public path of your choosing. For example,
'disks' => [
/** -- skipped code **/
'public' => [
'driver' => 'local',
'root' => __DIR__ . '../public/images/`,
'url' => env('APP_URL').'/images',
'visibility' => 'public',
],
/** -- skipped code **/
],
Another Solution
You can totally use the S3 storage as well. That will connect you with an AWS bucket that you can use.
Personal Anecdote
Shared hosting can be tricky with Laravel. I would transition away as soon as I could. I use Laravel Forge to deploy servers and Digital Ocean or AWS for hosting.
chown -R www-data:www-data /var/www/project/
give permission to storage – Nazmus Sakib