loading...
discount Banner

پاپلیش

سوالتو بپرس
سوال شده توسط : Saeed Papi
تاریخ : 17:14 1403/12/13
بازدید : 75 بار

سلام وقت بخیر آقای اشرفی

برای پابلیش کردن لینوکسی رو سی پنل منبع خوبی دارید 

آموزشی چیزیی...

 

 

باتشکر

2 پاسخ

سلام وقت بخیر تاحالا ندیدم روی  cpanel برنامه های asp رو اجرا کنن ولی از chatgpt پرسیدم اینو گفت 


 

You said:

چطوری برنامه asp.net core رو روی لینوکس و cpanel پابلیش کنم

ChatGPT said:

برای انتشار (Deploy) یک برنامه ASP.NET Core روی لینوکس و cPanel، چند مرحله وجود دارد. از آنجایی که cPanel بیشتر برای میزبانی PHP و Node.js طراحی شده، اجرای ASP.NET Core روی آن نیاز به کمی تنظیمات دارد. در اینجا مراحل کلی را توضیح می‌دهم:


۱. پابلیش کردن برنامه

ابتدا باید برنامه را برای لینوکس پابلیش (Publish) کنید. اگر برنامه را روی ویندوز توسعه داده‌اید، می‌توانید با این دستور در CMD یا ترمینال VS Code آن را کامپایل کنید:

sh

Copy code

dotnet publish --configuration Release --runtime linux-x64 --self-contained true -o ./publish

  • --runtime linux-x64 → مشخص می‌کند که خروجی برای لینوکس است.
  • --self-contained true → باعث می‌شود که همه فایل‌های لازم همراه برنامه باشند، بنابراین نیازی به نصب .NET Runtime روی سرور نیست.
  • -o ./publish → خروجی را در پوشه publish/ قرار می‌دهد.

۲. آپلود روی سرور (cPanel)

بعد از پابلیش، باید فایل‌های خروجی را روی سرور آپلود کنید.

  1. وارد cPanel شوید.
  2. به File Manager بروید.
  3. یک پوشه جدید در مسیر public_html یا بیرون از آن (مثلاً /app) بسازید.
  4. فایل‌های داخل پوشه publish را فشرده (ZIP) کرده و در پوشه‌ی سرور آپلود کنید.
  5. فایل ZIP را اکسترکت (Extract) کنید.

۳. اجرای برنامه روی لینوکس (از طریق SSH)

چون cPanel به‌صورت پیش‌فرض از ASP.NET Core پشتیبانی نمی‌کند، باید از SSH برای اجرای برنامه استفاده کنید.

  1. به cPanel بروید و در قسمت Terminal یا SSH Access، اتصال را برقرار کنید.
  2. به پوشه‌ای که فایل‌های برنامه را در آن آپلود کردید بروید:

sh

Copy code

cd /home/your-cpanel-user/app

  1. برنامه را اجرا کنید:

sh

Copy code

./your-app-name

🔹 نکته: اگر برنامه اجرا نشد، ممکن است نیاز باشد مجوز اجرای فایل را تنظیم کنید:

sh

Copy code

chmod +x your-app-name


۴. اجرای برنامه در پس‌زمینه (با nohup یا screen)

اگر نمی‌خواهید بعد از بستن SSH، برنامه متوقف شود، می‌توانید آن را با nohup اجرا کنید:

sh

Copy code

nohup ./your-app-name > output.log 2>&1 &

یا از screen استفاده کنید:

sh

Copy code

screen -S myapp ./your-app-name

(با زدن Ctrl + A + D از screen خارج شوید، ولی برنامه در پس‌زمینه بماند.)


۵. تنظیم یک دامنه یا ساب‌دامنه برای برنامه

برنامه ASP.NET Core به‌طور پیش‌فرض روی localhost:5000 اجرا می‌شود. شما باید کاری کنید که درخواست‌های HTTP از طریق دامنه شما به این برنامه هدایت شوند.

ایجاد ساب‌دامنه یا دامنه سفارشی:

  • در cPanel به Domains بروید و یک Subdomain یا Addon Domain بسازید.

ریدایرکت کردن درخواست‌ها به پورت برنامه (مثلاً 5000):

  • در cPanel > Apache Handlers یا .htaccess، یک Reverse Proxy تنظیم کنید.

افزودن این تنظیمات در .htaccess:

apache

Copy code

RewriteEngine On RewriteRule ^(.*)$ http://127.0.0.1:5000/$1 [P,L]

🔹 نکته: در بیشتر هاست‌های اشتراکی، امکان اجرای برنامه روی یک پورت خاص (مثلاً 5000) وجود ندارد، مگر اینکه هاست از Reverse Proxy پشتیبانی کند. در این صورت بهتر است با پشتیبانی هاست مشورت کنید.


۶. استفاده از Supervisor (در صورت امکان)

اگر cPanel شما Supervisor را پشتیبانی کند، می‌توانید برنامه را در آن تعریف کنید تا همیشه اجرا بماند. اگر پشتیبانی نشود، باید از nohup یا screen که در مرحله‌ی ۴ گفتم استفاده کنید.


نتیجه‌گیری

  • ASP.NET Core روی cPanel قابل اجرا است، اما به دلیل محدودیت‌های هاست‌های اشتراکی، ممکن است نیاز به تنظیمات خاصی مانند Reverse Proxy یا سرور مجازی (VPS) داشته باشید.
  • اگر هاست شما دسترسی به پورت‌های سفارشی ندارد، پیشنهاد می‌کنم از یک VPS لینوکسی با Nginx یا Apache برای هاستینگ برنامه خود استفاده کنید.

سوالی داشتی بپرس!

 

 

 


 

06:35 1403/12/14

شما خودتون با چه سروری و پنلی کار میکنید ؟؟؟

و اینکه من تابحال با داکر برنامه رو روی سرور پاپلیش نکردم 

میشه بابت اونم توضیحاتی بدید

 

19:57 1403/12/15

برای ثبت پاسخ باید وارد حساب کاربری خود شوید