سلام دوستان عزیز برنامه نویس
موضوع : deploy next.js project in centos7
هدفم از این نوشته اینه دوستانی که رسیدن به این قسمت که پروژه باید دیپلوی و یا پابلیش بشه روی سرور راهنماییشون کنم.
شاید دوستان بگن کار ابتدایی هست ولی دوستانی که با سرور آشنایی کمی دارن شاید نتونن درست حسابی از پسش بر بیان و نمیدونن چی سرچ کنند تا به نتیجه برسن . از طرفی شرکت های ارائه دهنده سرور این کارارو انجام نمیدن چون زمان بره براشون و هم هزینه برای شما داره هم برای شرکت.
پس بهتره خودتون دست به کار بشید، پس بریم سراغش.
قبل از شروع باید بگم شما نمیتونید پروژتون رو روی هاست های اشتراکی اجرا کنید چون برای دیپلوی کردن نسخه پروداکشن شما نیازمند دسترسی روت دارید که این امکان برای شما فراهم نیست. پس باید سرور یا سرور مجازی تهیه کنید.
بعد از خرید سرور توسط putty وارد محیط کامند لاین بشید . خوب فرض بر این است شما پیش نیاز هارو روی سروتون نصب کردید که مهم ترینش که خودتون میدونید node.js هستش.
بهتره برای مدیرت بهتر سرور از دایرکت ادمین استفاده کنید که این فقط ی پیشنهاد هستش و بدون اون هم میتونید این کار رو انجام بدید.
در دایرکتوری که پروژتون رو قرار دادید دستور :
npm run start
رو بزنید و پروژتون روی پورت مشخص شده توسط خودتون اجرا بشه که پیش فرض 3000 هستش:
SERVERIP:3000
برای اینکه دستورتون بعد از بستن putty استاپ نشه دو راه دارید که :
- استفاده از pm2
- استفاده از screen
نصب pm2 :
yum install pm2
خوب بعد از نصب در دایرکتوری پروژتون دستور :
pm2 start npm --name PROJECTNAME start --port 3000
اسکرین (screen) :
اگر از اسکرین استفاده کنید نیازی به نصب پکیج یا افزونه ای ندارید
فقط کافیه دستورات زیر رو به ترتیب بزنید.
screen
npm run start
بعد از وارد کردن دستورات بالا ctrl + A + D رو بزنید تا پنجره بسته بشه.
خوب تا اینجای کار پروژه رو ران کردین و کار تمومه از اینجا به بعد مربوط میشه به اتصال دامنه به پورت مشخص شده.
طبیعتا آدرس ip گزینه مناسبی برای آدرس یک سایت نیست. پس باید چه کرد ؟
خوب دوستان اگر سرور شما آپاچی باشه باید وارد پوشه httpd.conf بشید و چند خط کد واردش کنید
<VirtualHost *:80> ... ProxyRequests Off ProxyPreserveHost On ProxyVia Full <Proxy *> Require all granted </Proxy> ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/ ... </VirtualHost>
<VirtualHost *:443> ... ProxyPreserveHost on ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ LogLevel warn ... </VirtualHost>
بعد از اون دستور
service httpd restart
رو بزنید تا آپاچی ی بار ریستارت بشه و دیگه کار تمومممم.
سعی کردم خیلی خلاصه و مفید که حوصله سربر نباشه بگم بازم اگر مشکلی داشتید میتونید از طریق ایمیل با من در ارتباط باشید : golshahimohammadreza@gmail.com و یا ای دی تلگرامم : @mohammadlth
اگرم نیازمند نصب و کانفیگ سرور هستین ما تو ویگن وب میتونیم بهتون کمک کنیم
امیدوارم این مطلب به دردتون خورده باشه.