شاید برای خیلی از دوستان که تازه کار با Next js رو شروع کردن و پروژشون آماده آپلود روی هاستشون هست این سوال پیش بیاد که چطور باید پروژه Next js رو روی هاست سی پنل آپلود کنن؟ آیا با آپلود React متفاوت هست ؟ باید بگیم بله تفاوت داره.
حالا برای حل این مشکل که خودم ابتدا دنبال یک داکیومنت خوب ازش بودم و از سرچ هایی که انجام دادم نتیجه گرفتم و میخوام همینجا براتون مراحلش رو توضیح بدم
ابتدا باید به این نکته توجه کنیم که باید در هاست سی پنل خودمون سرویس node js را فعال داشته باشیم
اگر این سرویس در هاست شما فعال نیس به پشتیبانی هاست خودتون تیکت بزنید که این قابلیت رو برای شما فراهم کنند .
خب حالا کاری که باید انجام بدید این هست که در هاست خودتون در بخش Software
به قسمت Setup Node js App میرویم مانند شکل زیر:
سپس در این قسمت بر روی Create Application میزنیم
حال مانند شکل بالا ابتدا در قسمت Application root مسیر فولدر دامنه مون رو قرار میدیم
بعد در قسمت Application startup file ما app.js را مینویسیم
حال قبل از اینکه Run NPM install را بزنیم ابتدا به دایرکتوری مسیر دامنه خودمون میریم
در public_html>نام مسیر دایرکتوری و در این قسمت گزینه آپلود را میزنید بعد از پروژه اصلی خودتون
فایل های package.json ، app.js را آپلود میکنیم و بعد از آپلود این قسمت مجدد به مسیر
قبلی که داشتیم یعنی همون صفحه node js برمیگردیم وحالا Run NPM install رو میزنیم
ممکنه این قسمت یکم زمانبر باشه پس صبر کنید که تمام پکیج های شما داره نصب میشه
خب بعد از این مرحله یکبار از بالای همین صفحه refresh رو میزنیم و تمام
حالا میریم رو پروژه اصلی خودمون مثل شکل زیر:
اینجا باید بریم تو قسمت package.json بعد مثل شکل بالا رو فلش سبز که خط 8 کد هست از پروژه بیلد بگیرید چند لحظه باید صبر کنید تا عملیات بیلد گرفتن تموم بشه .بعد از تموم شدن از فولدر next در پروزه فایل زیپ تهیه میکنیم همچنین از فولدر public هم یه زیپ تهیه کنید
حالا برمیگردیم تو هاست تو فولدر public_html خودمون دایرکتوری مورد نظری که داشتیم (همونجا که فایل ها رو آپلود کردیم) مجدد روی آپلود میزنیم اینبار فولدر زیپ Next و همچنین public رو آپلود میکنیم
وقتی آپلود 100 درصد شد و تموم شد از حالت زیپ هر دو فولدر رو خارج میکنیم
فقط یه کار دیگه باید انجام بدیم و اونم این هست که یه فایل .htaccess به این قسمت که همه فایل ها قرار دارن اضافه کنیم برای اینکار میتونی یه فایل به نام .htaccess. ایجاد کنیم و موارد زیر رو داخلش پیست کنید
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION BEGIN
PassengerAppRoot "/home/frsjhtrg/public_html/نام Application root "
PassengerBaseURI "/"
PassengerNodejs "/home/frsjhtrg/nodevenv/public_html/نام Application root/12/bin/node"
PassengerAppType node
PassengerStartupFile app.js
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION END
# DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION BEGIN
<IfModule Litespeed>
</IfModule>
# DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION END
یک نکته رو حتما توجه کنید هر جا نوشته شده نام Application root شما باید همون نامی که تو پروژه خودتون ایجاد کردید همونی که تو Application root که تو node ساختیم قرار دادید رو همینجا بنویسید.
و تمام!!! امیدوارم مشکلتون حل شده باشه.?