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

کارنکردن سمبلیک لینک در لاراول بعد از آپلود در هاست اشتراکی

سلام و وقتتون بخیر.
برنامه ایی که با لاراول نوشتم رو در هاست اشتراکی آپلود کرد به این صورت که محتویات پوشه Public رو داخل Publichtml قراردادم و یه سطح بالاتر سایر محتویات رو.
برنامه به درستی عمل میکنه و یک فرم که وظیفه آپلود عکس را دارد، آپلود را به درستی در مسیر storage/app/public/images انجام میده. در سرور لوکال دستور storage:link انجام شده و محتویات داخل مسیر گفته شده به درستی در public/storage/images قابل مشاهده و استفاده هستند اما در هاست اشتراکی هیج داده ایی در مسیر storage/images وجود ندارد.
آیا مشکل از سمبلیک لینک هست؟
دستور زیر با توجه به محدودیت های هاست اشتراکی انجام نمی شود:

Route::get('foo', function(){
    Artisan::call('storage:link', []);
    return 'success';
});

راه حلتون برای رفع این مشکل چیه؟!
ممنونم.
@hosseinshirinegad98
@hesammousavi
@ali.bayat


ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 4 سال پیش آپدیت شد
1

حقیقتش زیاد با هاست اشتراکی کار نکردم و برای لاراول پیشنهاد هم نمیشه. ولی در هر صورت بعنوان یک راهکار جایگزین برای دستور storage:link لاراول، می‌تونید از دستور symlink خود PHP هم استفاده کنید. پارامتر اول فایل هدف و پارامتر دوم مقصدی هست که باید داخل اون symlink ایجاد بشه. فکر میکنم اینجوری دستتون باز تر باشه و بتونید متناسب با ساختار پوشه های پروژه خودتون ایجاد کنید:

Route::get('create_symlink', function(){

   symlink(storage_path('app/public'), public_path('storage'));

    return 'success';

});

محسن قاسمی
@mghasemi 4 سال پیش مطرح شد
0

سلام؛ متشکرم که وقت گذاشتید و پاسخ دادید.
متاسفانه در هاست های اشتراکی این دستورات غیرفعال شدند.

symlink() has been disabled for security reasons

بازم متشکرم.


عرفان همتی
تخصص : Backend Developer
@erfanhemmati 4 سال پیش مطرح شد
1

@mghasemi
فکر می‌کنم اگه به هاست پرووایدرتون بگین، براتون باز می‌کنن. 🤨


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

@mghasemi سلام
از تابع symlink در یک فایل php استفاده کنید.
به این صورت: ابتدا یک فایل php بسازید داخلش از این تابع استفاده کنید و طبق ورودی های تابع مسیرهای لاراول و public_html رو بهش بدید.
بعد از طریق آدرس سایت این فایل رو اجرا کنید.
من خودم با این روش امتحان کردم و الان سایتم بدون اشکال داره کار میکنه.

اگر بازهم خطا میداد تیکت بزنید بگید واستون انجام بدند یا اینکه می تونید هاست رو عوض کنید(اگر واستون مقدور هست) هاست خوب میشناسم، اگر کارتون راه نیوفتاد همینجا اطلاع رسانی کنید.


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 4 سال پیش مطرح شد
1

@mghasemi
همون طوری که دوستان اشاره کردند اگر مطمئنید که غیرفعالش کردن (قبلا اینطور نبود...) به احتمال زیاد اگر بهشون تیکت بزنید و نیازتون رو بگید خودشون انجام بدن .


محسن قاسمی
@mghasemi 4 سال پیش مطرح شد
0

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


محمدحسن بختیاری فر
@313ava 4 سال پیش مطرح شد
0

اگر این مشکل برای کسی بوجود اومد و پشتیبانی براش لینک درست نکرد از این روش هم میتونید مشکل رو حل کنید:
https://roocket.ir/discuss/7063#subject-30828


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

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