سلام و وقتتون بخیر.
برنامه ایی که با لاراول نوشتم رو در هاست اشتراکی آپلود کرد به این صورت که محتویات پوشه 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
حقیقتش زیاد با هاست اشتراکی کار نکردم و برای لاراول پیشنهاد هم نمیشه. ولی در هر صورت بعنوان یک راهکار جایگزین برای دستور storage:link لاراول، میتونید از دستور symlink خود PHP هم استفاده کنید. پارامتر اول فایل هدف و پارامتر دوم مقصدی هست که باید داخل اون symlink ایجاد بشه. فکر میکنم اینجوری دستتون باز تر باشه و بتونید متناسب با ساختار پوشه های پروژه خودتون ایجاد کنید:
Route::get('create_symlink', function(){
symlink(storage_path('app/public'), public_path('storage'));
return 'success';
});
سلام؛ متشکرم که وقت گذاشتید و پاسخ دادید.
متاسفانه در هاست های اشتراکی این دستورات غیرفعال شدند.
symlink() has been disabled for security reasons
بازم متشکرم.
@mghasemi سلام
از تابع symlink در یک فایل php استفاده کنید.
به این صورت: ابتدا یک فایل php بسازید داخلش از این تابع استفاده کنید و طبق ورودی های تابع مسیرهای لاراول و public_html رو بهش بدید.
بعد از طریق آدرس سایت این فایل رو اجرا کنید.
من خودم با این روش امتحان کردم و الان سایتم بدون اشکال داره کار میکنه.
اگر بازهم خطا میداد تیکت بزنید بگید واستون انجام بدند یا اینکه می تونید هاست رو عوض کنید(اگر واستون مقدور هست) هاست خوب میشناسم، اگر کارتون راه نیوفتاد همینجا اطلاع رسانی کنید.
@mghasemi
همون طوری که دوستان اشاره کردند اگر مطمئنید که غیرفعالش کردن (قبلا اینطور نبود...) به احتمال زیاد اگر بهشون تیکت بزنید و نیازتون رو بگید خودشون انجام بدن .
سلام به همه دوستان، همونطور که گفتید یه تیکت براشون گذاشتم و لینک رو برای من ایجاد کردند.
متشکرم از همتون که پاسخ دادید.
اگر این مشکل برای کسی بوجود اومد و پشتیبانی براش لینک درست نکرد از این روش هم میتونید مشکل رو حل کنید:
https://roocket.ir/discuss/7063#subject-30828
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟