راکت
احسان
احسان
توسط احسان مطرح شد
6 پاسخ

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

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

storage > app > public > uploads

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

php artisan storage:link

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

public > storage > uploads

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

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

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


ثبت پرسش جدید
علی بیات
علی بیات
تخصص :توسعه دهنده ارشد وب
@ali.bayat5 سال پیشمطرح شد
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';

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

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

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

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

با سپاس


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

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

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

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

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


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

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


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

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


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

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