راهنمای مطالعه مقاله
درود دوستان، تو این مقاله نحوه بارگذاری سایت لاراولی رو در هاست اشتراکی توضیح خواهم داد، برای آپلود سایت روی هاست اشتراکی چند تا کار هست که باید انجام بدید. در این مقاله یک سایت لاراولی را بارگذاری و تنظیم میکنیم.
در این آموزش از هاست پارس وب سرور استفاده کردم، اگر به هاست نیاز دارید میتونید از این وبسایت هاست تهیه کنید، پشتیبانی و سرعت خوبی دارند همچنین دسترس ترمینال در این هاست وجود دارد، می تونید از طریق این لینک اقدام به خرید کنید.
آماده کردن فایل های پروژه لاراول برای آپلود در هاست
قبل از این که فایل های پروژه را روی هاست آپلود کنیم لازم است این چند تا کار رو انجام دهید:
اگر فایل جاوا اسکریپت یا scss یا .. دارید که نیاز به کامپایل توسط vite.config.js داره حتما دستور بیلد رو بزنید تا فایل ها کامپایل شوند:
npm run build
در ادامه این دستور را بزنید تا مطمن شوید تمام کتابخانه های مورد نیاز پروژه نصب شده اند:
composer install
مطمن شید متغییر APP_KEY
در فایل .env دارای مقدار باشد و اگر نیست این دستور را بزنید تا یک کلید تولید شود:
php artisan key:generate
بعد از اجرای دستور بالا باید در فایل .env همچین چیزی ببینید:
APP_KEY=base64:2TgSGjGhRofhC1HfuyFVGFTufjFhfg674Hf6=
پروژه های لاراول درخواست های http رو از پوشه public اجرا میکنند و لازمه تمام درخواست ها رو به این پوشه ارسال کنیم ، روش های مختلفی برای اینکار هست که من راحت ترین روش رو بهتون میگم.
یک فایل به نام .htaccess
در پوشه اصلی پروژه یعنی دقیقا کنار فایل composer.json ایجاد کنیدو کدهای زیر رو در اون قرار بدید:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
این فایل تمام درخواست هایی که به پوشه اصلی میاد رو به پوشه پابلیک انتقال میدهد.
حالا پروژه ما اماده است تا روی هاست آپلود شود. تمام فایل های پروژه به غیر از پوشه node_modules را زیپ کنید دقت کنید پوشه vendor هم تو زیپ قرار بدید و در پوشه public_html هاست آپلود کنید.
هماهنگ کردن نسخه PHP پنل با پروژه
دقت کنید که حتما ورژن php سی پنل با ورژن php که پروژه رو توسعه دادید یکی باشه، یعنی اگر روی لوکال از پی اچ پی 8.4 استفاده کردید روی سی پنل هم این ورژن پی اچ پی رو تنظیم کنید برای اینکار در منوی اصلی سی پنل از قسمت software گزینه Select PHP Version رو انتخاب کنید.

صفحه انتخاب نسخه PHP باز میشه که از قسمت Current PHP version نسخه مدنظرتون رو انتخاب کنید و دکمه Apply رو بزنید.

نسخه PHP سی پنل تغییر کرد و کار رو ادامه میدیم.
ایجاد دیتابیس در هاست اشتراکی برای لاراول
در ادامه نیاز به ایجاد یک دیتابیس داریم ، وارد سی پنل بشید و از بخش Databases گزینه Manage my databases را انتخاب کنید:

در این صفحه در قسمت Create new database اسم دیتابیس مد نظرتون رو وارد کنید برای مثال من blog گذاشتم توجه کنید اسم دیتابیس به صورت خودکار یک پیشوند هم میگیره و در نهایت دکمه Create Database را بزنید.

بعد از ایجاد دیتابیس، به یک یوزر برای دیتابیس هم نیاز دارید در همین صفحه Manage my databases به طرف پایین اسکرول کنید تا برسید به قسمت Add new user در قسمت username یک اسم برای کاربر دیتابیس انتخاب کنید و در قسمت password یک رمز عبور برای دسترسی به دیتابیس وارد کنید.

در نهایت بعد از ایجاد دیتابیس و یوزر لازمه که یوزر ایجاد شده رو به دیتابیس متصل کنید ، اگر کمی بیشتر به طرف پایین اسکرول کنید بعد از قسمت ایجاد یوزر، یه قسمت دیگه هست با عنوان Add user to database ، با انتخابگر اول یوزری که ایجاد کردید را انتخاب کنید و در انتخابگر دوم دیتابیسی که ایجاد کردید رو انتخاب کنید و دکمه Add رو بزنید.

در ادامه یه صفحه جدید باز میشه که از شما میخواد دسترسی های این کاربر به دیتابیس رو مشخص کنید ، گاهی وقتا نیاز دارید کاربر فقط دسترسی خواندن اطلاعات از دیتابیس رو داشته باشه و دسترسی ثبت چیزی روی دیتابیس رو نداشته باشه از این قسمت میتونید دسترسی های مد نظرتون رو مشخص کنید اما نیاز داریم کاربرمون تمام دسترسی ها رو به دیتابیس داشته باشه ، تیک ALL PRIVILEGES رو بزنید و دکمه Make Changes رو کیلیک کنید.

تا اینجای کار دیتابیس و یوزر دیتابیس را ایجاد کردیم و دسترسی های لازم رو دادیم.
تنظیمات اتصال به دیتابیس در لاراول
بعد از ایجاد دیتابیس لازمه که اطلاعات اتصال رو در فایل .env به صورت زیر وارد کنیم:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=opencoda_blog #اسم دیتابیسی که ساختیم
DB_USERNAME=root #نام کاربر دیتابیس که ایجاد کردیم
DB_PASSWORD=BRM&1234 #رمز عبوری که انتخاب کردیم برای کاربر دیتابیس
اجرای مایگریشن های لاراول در هاست اشتراکی سی پنل
در زمان آپلود پروژه لاراولی ممکنه هاست شما دسترسی ترمینال داشته باشه یا نداشته باشه که در هر دو صورت رو توضیح خواهم داد.
اجرای مایگریشن لاراول بدون دسترسی بدون ترمینال
بعد از ایجاد دیتابیس و تنظیم اطلاعات اتصال به دیتابیس، باید مایگریشن های لاراول رو اجرا کنید. بعضی از هاست ها دسترسی ترمینال ندارند که با کمک آرتیسان مایگریشن ها رو اجرا کنید. برای حل این موضوع باید دیتابیس لوکال هاست خودتون رو اکسپورت بگیرید و وارد PHPMyAdmin هاست بشید و دیتابیسی که ساختید رو انتخاب کنید در نهایت فایلی که از لوکال هاست اکسپورت کردید رو ایمپورت کنید.
اجرای مایگریشن لاراول در هاست اشتراکی با دسترسی ترمینال
اگر در هاست دسترسی ترمینال دارید از قسمت Advanced گزینه Terminal رو انتخاب کنید و با دستور زیر وارد پوشه public_html بشید:
cd public_html
و دستور اجرای مایگریشن ها رو بزنید:
php artisan migrate
اجرای دستور storage:link لاراول در هاست اشتراکی، سی پنل و دایرکت ادمین
یکی از مهم ترین کارهایی که بعد از آپلود پروژه لاراولی باید انجام بدید اجرای دستور storage:link هست. این دستور پوشه storage که محل آپلود فایل ها هست رو به پوشه public لارول متصل میکند تا فایل ها برای دانلود در دسترس باشند.
اجرای دستور storage:link بدون دسترسی ترمینال
برای اجرای دستور آرتیسان بدون دسترسی به ترمینال، از منوی اصلی سی پنل وارد File Manager بشید و برید به پوشه public_html و فایل web.php در پوشه routes پروژه تون رو ویرایش کنید و کد زیر رو آخر فایل اضافه کنید:
Route::get('/storage-link', function () {
Artisan::call('storage:link');
dd("storage linked successfully");
});
این تکه کد یه مسیر جدید ایجاد میکند، مرورگر رو باز کنید و این مسیر که میشه https://yourdomain.com/storage-link رو باز کنید. بعد از اینکه پیام storage linked successfully رو دیدید وارد File manager سی پنل بشید و به پوشه public پروژه برید باید مثل تصویر پایین پوشه storage اومده باشه.

اجرای دستور storage:link با دسترسی ترمینال
چنانچه در پنلتون دسترسی ترمینال دارید کار بسیار آسان می شود از قسمت Advanced سی پنل گزینه Terminal رو انتخاب کنید و دستورات زیر رو بزنید:
cd public_html
php artisan storage:link
و تمام پروژه شما به طور کامل نصب و آماده استفاده است.