کپی کردن پروژه dotnet از ویندوز به سرور ابونتو

1/13/2024 Linux
653

پروژه خودم رو در ویندوز ساختم و build ازش گرفتم باید به سرور ubuntu کپی میکردم فایلهای پروژه رو که مراحل زیر رو رفتم 

چند راه حل بود برای اجرای پروژه های دات نت در سرور ubutu من این روش رو اینحا انجام داد، امیدوارم هر کدوم رو که بتونم انجام بدهم برای شما بنویسم

برای build گرفتن از دستور زیر استفاده کردم 

dotnet publish -c Release -r ubuntu.23.10-x64 --self-contained

به نظرم جزئیات دستور ساده است و من برای ubuntu 23.10 سرور خروجی گرفتم 

اگه به خطای 

C:\Program Files\dotnet\sdk\8.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error NETSDK1083: The specified Runt
imeIdentifier 'ubuntu.23.10-x64' is not recognized. See https://aka.ms/netsdk1083 for more information.

برخوردید میتوانید از دستور 

dotnet publish -c Release -r linux-x64 --self-contained

استفاده کنید و برای لیست RID های قابل استفاده به ادرس rid-catalog مراجعه کنید.

پوشه پابلیش توی ادرس /bin/releasubnut-23.10-x64 ا اماده بود ، خوب من nginx رو کانفیگ کرده بودم و برای پروژه خودم یک پوشه در نظر گرفته بودم 

لازم بود تا فایلهای پروژه رو به پوشه مورد نظر در ابوتو سرور خوم انتقال بدم برای این کار از دستور 

 scp -p 2356 d:/ub/*.* user@255.255.255.1:/var/www/devex.ir

استفاده کردم 

البته برای اینکه فیلهایی که پسوند ندارند و یا پوشه های موجود در این پوشه میتوانید از دستور زیر که فقط یک تغییر کوچک دارد استفاده کنید

 scp -p 2356 d:/ub/* user@255.255.255.1:/var/www/devex.ir

راهنما:

1- من برای ssh از پورت 2356 استفاده میکنم اگر پورت ما همان پورت پیشفرض ssh یعنی 22 هست نیاز به -P 2365 نیست در ضمن P- به صورت حرف بزرگ نوشته میشود 

2- به حای user نام کاربر لینوکس خود را بنویسید

3- به جای 255.255.255.1   ادرس ای پی سرور خود را بگذارید

4- به جای devex.ir نام دامنه خود را بگذارید و مطمئن شوید که در nginx همان ادرس را تنظیم کرده اید

 

خوب به خطای دسترسی بخوردم به این صورت که به ازای هر فایل خطای permisstion denied صادر میشد 

راه حل 

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

 sudo chmod -R u+rwx /var/www/devex.ir

 sudo chown -R user:user /var/www/devex.ir

راهنما: 

1- به جای user نام کاربر لینوکس بگذارید 

2- به جای devex.ir نام دامنه خود را که قبلا در تنظیمات nginx هم تنظیم شده بگذارید

 scp -p 2356 d:/ub/*.* user@255.255.255.1:/var/www/devex.ir

حال دستور کپی را اجرا کردم و اجرا شد