سال نو، مهارت نو! تا 50% تخفیف روی تمام دورههای آموزشی کدیاد!
زمان باقی مانده
سلام وقت بخیر آقای اشرفی
برای پابلیش کردن لینوکسی رو سی پنل منبع خوبی دارید
آموزشی چیزیی...
باتشکر
سلام وقت بخیر تاحالا ندیدم روی 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/ قرار میدهد.بعد از پابلیش، باید فایلهای خروجی را روی سرور آپلود کنید.
public_html
یا بیرون از آن (مثلاً /app
) بسازید.publish
را فشرده (ZIP) کرده و در پوشهی سرور آپلود کنید.چون cPanel بهصورت پیشفرض از ASP.NET Core پشتیبانی نمیکند، باید از SSH برای اجرای برنامه استفاده کنید.
sh
Copy code
cd
/home/your-cpanel-user/app
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 از طریق دامنه شما به این برنامه هدایت شوند.
ایجاد سابدامنه یا دامنه سفارشی:
ریدایرکت کردن درخواستها به پورت برنامه (مثلاً 5000):
.htaccess
، یک Reverse Proxy تنظیم کنید.افزودن این تنظیمات در .htaccess
:
apache
Copy code
RewriteEngine On
RewriteRule ^(.*)$ http://127.0.0.1:5000/$1 [P,L]
🔹 نکته: در بیشتر هاستهای اشتراکی، امکان اجرای برنامه روی یک پورت خاص (مثلاً 5000) وجود ندارد، مگر اینکه هاست از Reverse Proxy پشتیبانی کند. در این صورت بهتر است با پشتیبانی هاست مشورت کنید.
اگر cPanel شما Supervisor را پشتیبانی کند، میتوانید برنامه را در آن تعریف کنید تا همیشه اجرا بماند. اگر پشتیبانی نشود، باید از nohup
یا screen
که در مرحلهی ۴ گفتم استفاده کنید.
سوالی داشتی بپرس!
06:35 1403/12/14
شما خودتون با چه سروری و پنلی کار میکنید ؟؟؟
و اینکه من تابحال با داکر برنامه رو روی سرور پاپلیش نکردم
میشه بابت اونم توضیحاتی بدید
19:57 1403/12/15