احسان
4 سال پیش توسط احسان مطرح شد
6 پاسخ

مشکل شورتکات و خواندن تصاویر از storage در public روی هاست اشتراکی

با سلام
من در پروژه‌ی لاراول در مسیر زیر پوشه‌ای به نام uploads دارم که تصاویرم در اونجا آپلود می‌شوند:

storage > app > public > uploads

روی لوکال برای اینکه بتونم در پروژه و پنل ادمینم تصاویر رو نمایش بدم از دستور زیر استفاده کردم:

php artisan storage:link

و یک شورتکات در مسیر زیر ایجاد و مشکل برطرف شد:

public > storage > uploads

اما روی هاست اشتراکی به دلیل محدودیت‌های زیاد، از راهکارهای مختلفی که در فروم راکت و وبسایت‌های دیگه بود استفاده کردم و جواب نگرفتم.

ممنون می‌شم دوستان راهکار مناسب و عملی رو ارائه بکنند تا بتونم مشکلم رو برطرف کنم و لطفاً موارد را کمی واضح بفرمایند، چون بنده در کار با لاراول تازه‌کار هستم.

پیشاپیش سپاسگزارم


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
2

دستور storage:link در واقع از تابع symlink در PHP استفاده میکنه که خودت هم میتونی استفاده کنی

اگر روی لوکال از storage:link استفاده کردی، مراحل زیر رو طی کن

  • شرتکات storage که در public_html یا پوشه public ساخته شده رو پاک کن
  • یه فایل PHP توی public_html بساز.. مثلا mylink.php
  • کدهای زیر رو به mylink.php اضافه کن
$targetFolder = $_SERVER['DOCUMENT_ROOT'].'/storage/app/public';
$linkFolder = $_SERVER['DOCUMENT_ROOT'].'/public/storage';
symlink($targetFolder,$linkFolder);
echo 'Symlink completed';

احسان
تخصص : توسعه دهنده وب
@ehsan99 4 سال پیش مطرح شد
0

@ali.bayat
ممنون از راهنماییتون. چقدر ساده و خوب توضیح دادید. من انجام دادم. ولی نتیجه همانطور که در پیام مشخص است، محدودیت از طرف سرویس دهنده را نمایش می‌دهد.

Warning: symlink() has been disabled for security reasons in /home/***/public_html/mylink.php on line 4
Symlink completed

آیا راهکار دیگری وجود دارد که بتوان جایگزین کرد؟
آیا طبق تجربه‌ی شما، سرویس‌دهنده معمولاً قبول می‌کند که این قابلیت را برای یک هاست اشتراکی فعال کند؟

با سپاس


فرهاد علاقه بند
تخصص : توسعه دهنده وبسایت
@farhadswh 4 سال پیش مطرح شد
1

سلام برای اینکار باید فایل تنظیمات config\filesystems.php را باز کنید و قسمت public رو بصورت زیر تغییر بدین

        'public' => [
            'driver' => 'local',
            'root' => public_path('uploads'),
            'url' => env('APP_URL').'/uploads',
            'visibility' => 'public',
        ],

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

شاید این قابلیت رو فعال نکند. اما میتونی تیکت بزنی و بگی که خودشون این کار رو برات انجام بدند. البته اگر قبول کنند


احسان
تخصص : توسعه دهنده وب
@ehsan99 4 سال پیش مطرح شد
0

@farhadswh
ممنون از پاسخ و زمانی که گذاشتید. متأسفانه با این مورد هم حل نشد.


amir dabaghi
تخصص : Full-Stack Web Developer Freel...
@amir463 3 سال پیش مطرح شد
0

با سلام
متاسفانه مشکل بنده هم همین است . هر راهی تو نت یافتم امتحان کردم به پاسخی نرسیدم .
هزینه های سرور مجازی که برای لاراولی ها خوبه خیلی زیاده سرورهای اشتراکی هم خیلی محدودیت دارن.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام