چطور یک پروژه لاراولی رو روی یک ساب فولدر در سرور واقعی بارگذاری کنیم؟

خوب... حدود یک ماهی هست که وقت و حوصله اجازه داده که برم سمت فریمورک محبوب لاراول و بعد از حدود دو سال کش و قوس بالاخره شروع کردم باهاش کد زدن و مثل همه اونایی که از فریمورک فرار میکردن من هم فهمیدم که نصف عمرم بر فنا بوده تا حالا و چه وقتهایی رو که الکی الکی تلف نکردم!

توی این مطلب نمیخوام از مزایا و اینکه لاراول چقدر فریمورک عالی و خفنی برای پی اچ پی هست بگم و از این به بعد قصد دارم مسائلی که درگیرش میشم توی پروژه های مختلف این فریمورک و اینکه چطوری حلش کردم رو اینجا منتشر کنم و امیدوارم مفید واقع بشه.

اولین مطلب و تجربه امروز که ساعتها وقتم و گرفت و آموزش و مطلب درست درمونی نه انگلیسی و نه فارسی در موردش نبود، اینه که چطوری من سایتم که یه پروژه لاراولی هست رو روی یک subFolder روی یک هاست اشتراکی (shared host) بارگذاری یا اصطلاحا deploy کنم.

فرض کنید آدرس سایت اینه www.MySite.com و میخواید پروژتون توی فولدر laravel-site و به این آدرس در دسترس کاربرها قرار بگیره. mysite.com/laravel-site/.

دیپلوی کردن روی روت سرور (که حتما آموزشش رو میذارم آینده همینجا) خیلی خیلی راحته و در حد کپی پیست فایلها و ملزومات لاراوله؛ ولی با ساب فولدر یه خورده قضیه فرق میکنه و یه سری دستکاریها نیاز داریم.

شروع...

برای اینکار باید و یا بهتره که توی کل پروژمون موقع لینک دادنها، از هلپر فانکشن url() توی آدرس دهی ها استفاده بشه. مثلا اگه میخواین به صفحه رجیستر لینک بدید نباید بنویسد <a href="register"> و به جاش باید بنویسید <a href="{{ url('register')}}> و این قضیه برای کل یو آرالها باید انجام بشه.

نامگذاری مسیرها - Routes

برای مسیرها، مثلا توی کنترلر اسم مسیری که صفحه ثبت نام کاربر بعد از کلیک نشون داده میشه رو بذارید show_register_form و اونجایی که لینک میدید از هلپر route به این شکل route('show_register_form') استفاده کنید تا بعد از اینکه سایت هوست شد لینکها خراب نشن؛ چون یک ساب فولدر باید اضافه بشه به همه لینکا و هلپر فانکشن ها این کار رو خودشون اتوماتیک هندل میکنن.

آدرس به فایلهای سی اس اس و جاوا اسکریپت

برای این موارد هم از هلپر asset استفاده کنید تا بعد فایلها به درستی و خیلی عالی لود بشن و رنگ لعاب سایت به هم نریزه.

و مورد آخر هم اینکه، باید توی پوشه ای که پروژه لاراول قرار میگیره یه فایل .htaccess بسازید و رهنمودهای زیر رو داخلش کپی کنید و سیو کنید تا کار تموم بشه و سایت مثل بنز کار کنه!

RewriteEngine on
RewriteBase /laravel-site
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

موفق باشید.