راکت
حل شده

آپلود خودکار سورس

19 پاسخ

سلام وقت همگی بخیر باشه
من یه فکری تو سرم دارم و میخوام به حالتی باشه که وقتی با IDE ام کد مینویسم هم تو PC سیو شه و هم تو سرور

یعنی به صورت خودکار با سرور sync بشه که نیاز نباشه دوباره سورس کد رو اپلود کنم

حالا راه های دیگه ام هست مثل FTP و ... ولی اینارو نمیخوام .

ثبت پرسش جدید

پاسخ‌ها

19
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

بهترین پاسخ

علاوه بر روش‌های فوق، یک روش دیگه هم ارزش امتحان کردن داره و من خودم خیلی باهاش حال می‌کنم:

اگر از PHPStorm استفاده کنید، می‌تونید از داخل خود محیطش و با استفاه از امکان browse remote host به هاست یا سرورتون با استفاده از پروتوکل‌های FTP یا SFTP یا FTPS متصل بشید.

در مرحله بعد با تعریف کردن mapping بهش می‌فهمونید که کدام پوشه نسخه لوکال نظیر کدام پوشه در هاستتون هست.

وقتی این مراحل رو یکبار انجام دادید، از این به بعد، فرض کنید تنها یک فایلتون (مثلا UserController) رو آپدیت کردید. کافیه در حالی که این فایلتون باز هست روی گزینه آپلود کلیک کنید یا کلیدهای میانبر Ctrl + Alt + Shift + X رو بزنید. خودش اتومات فایل رو روی فایل موردنظر در سرور overwrite میکنه.

یعنی بعد از هر تغییری تنها با یک کلیک یا دو کلیک تغییراتتون روی نسخه هاست deploy خواهند شد و کلش کمتر از یک ثانیه زمان می‌بره. نیاز به باز کردن نرم افزار جداگانه ای هم نیست.

برای اعمال تغییرات گروهی و بیش از یک فایل هم کافیه از قابلیت Synch همون PHPStorm استفاده کنید.

Muhammad
Muhammad
@muhammad

تخصص: Back-End Developer

سلام. درباره‌ی گیت و CI/CD تحقیق کنید.

moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

سلام دوست عزیز @parsaparasteh
روش توسعه کد git version کنترلر است. در این روش شما روی local ابتدا از روی سرورتون clone می کنید و شروع به اصلاح کردن کد می کنید و سپس این مقادیر را بر روی سرور push می کنید. حالا شما می خواهید به صورت مستقیم در هر تغییر به صورت اتوماتیک بر روی سرور آپلود شود. ولی مشکلی که اینجا وجود دارد این است که این تغییرات ممکن است سرور شما را به طور کل down کند. در این شرایط چه کاری می خواهید انجام دهید ؟ مثلا برای وب سایت مثال می زنم. خیلی مواقع اون چیزی که روی لوکال دارید روی هاست جواب نمی دهد. به خاطر این موارد نمی توان هیچگاه مستقیم روی هاست آپلود انجام داد.

شاید پاسخ شما همین‌جا باشد

parsa parasteh
parsa parasteh
@parsaparasteh

تخصص: Fullstack Developer

@mohaligateway سلام ممنون از توضیحات خوبی که دادید
کاری که بنده باید انجام بدم اینه که پروژه آنلاین باشه هر موقع و هر زمان و کارفرما بتونه به راحتی دسترسی داشته باشه. مشکلاتی که واسه من پیش میاد اینه که واسه هر یک ادیت جزئی مجبور میشم دوباره فایل ها را آپلود کنم تک به تک که این زمان بر میشه.

parsa parasteh
parsa parasteh
@parsaparasteh

تخصص: Fullstack Developer

@mohaligateway من قبل از این کار از اف تی پی استفاده می کردم ولی خب مشکلاتی که داشت این بود که نمی شد به راحتی با کنترل و کلیک کردن رو اسم فانکشن به فایل مد نظر انتقال پیدا کنه. و کلا رفرنس هایی که داره رو به خوبی نمیاره وقتی با FTP وصل میشم

moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

یک قابلیت جدید داخل لاراول 8 قرار داده شده که با down کردن وب سایت می تونید یک کلید تعیین کنید که تنها خودتون دسترسی داشته باشید. من خودم با استفاده از یک branch مثلا developer روی هاست دارم و با استفاده از لوکال کار ها رو پیش می برم وقتی تمام شد آن را بر روی هاست push می کنم و هاست رو down می کنم و سپس بعد از تست کردم دوباره هاست را up می کنم.

php artisan down --secret="1630542a-246b-4b66-afa1-dd72a4c43515"

@parsaparasteh

moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

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

بله با اف تی پی نمیشه این کارها را انجام داد. بهترین روش همین استفاده از گیت هست که مزایای خیلی زیادی داره
@parsaparasteh

parsa parasteh
parsa parasteh
@parsaparasteh

تخصص: Fullstack Developer

@mohaligateway بسیار ممنونم
موضوعی که هست اینه که برای هر تغییری که من میدم باید کد های زیر رو بزنم

Git add *
git commit -m="some text"
git push

و سمت سرور هم دوباره pull کنم ...

زمان بره ...

moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

الزاما برای هر تغییر نیازی نیست که شما commit کنید. در برخی موارد ممکنه تا چند روز اصلا commit بر روی پروژه انجام نشه. وقتی روی سرور push می کنید دیگه نیازی نیست آن را دوباره pull کنید!
@parsaparasteh

parsa parasteh
parsa parasteh
@parsaparasteh

تخصص: Fullstack Developer

@mohaligateway منظورتون از خود سرور را متوجه نشدم اگر میشه بیشتر توضیح بدید خیلی ممنونم

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

میتونی برای میزبانی سایتت از لیارا استفاده کنی دقیقا همونیه که تو ذهنته با یک کامند پروژه رو مثه گیت اپلود میکنی رو سرور و تمام تغییرات بدون وقفه روی سایتت اعمال میشن.

moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

هیچ وقت به صورت مستقیم تغییرات روی سرور هایی که زیر بار هستند آپلود نکنید. مخصوصا سایت هایی که بازدید کننده های بالایی دارند. من خودم به شخصه یک بار چوب همچین کاری رو خوردم تا بیایم بکاپ رو بر گردونیم ...... 😀.
مهندس @juza66 سیستم لیارا این قابلیت رو به چه صورتی داره. با ssh هستش ؟
@parsaparasteh

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

@mohaligateway
مخلصیم مهندس
لیارا یک cli داره که با لاگین شدن اطلاعات پروژه شما رو میفرسته سمت سرور و سمت بک اند خودشون پکیج ها و لاراول رو براتون اینستال میکنه و خیلی سریع بدون اینکه وقفه ی توی سایت ایجاد بشه پروژه رو براتون ران میکنه.

توضیح تصویر رو وارد کنید

moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

دست درد نکنه مخلصتونیم😓 @juza66
چه پلتفرم جالبی تا حالا نشنیده بودم. تشکر

parsa parasteh
parsa parasteh
@parsaparasteh

تخصص: Fullstack Developer

ممنون از توضیح خوبتون @mhyeganeh

میشه به صورت ویدیوی این رو توضیح بدین ؟ من دکمه آپلود یا دانلودی نمیبنیم.

parsa parasteh
parsa parasteh
@parsaparasteh

تخصص: Fullstack Developer

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین روش استفاده از CI/CD و گیت برای ورژن کنترل هست
در کنارش میتونی از فرایند auto build در Jenkins استفاده کنی
بدین ترتیب پول شدن روی سرور خودش انجام میشه و تغییرات بیلد میشه

تنها کاری که باید بکنی اینه که کامیت و پوش کنی، که اون هم میتونه حتما با cmd نباشه
الان تمام ادیتور ها ابزار ویژوال برای گیت دارند

parsa parasteh
parsa parasteh
@parsaparasteh

تخصص: Fullstack Developer

@ali.bayat
بررسی کردم خیلی عالی بود ، باید یاد بگیرم اینم

zahra ghasemi
zahra ghasemi
@zghasemi891

@parsaparasteh
سلام وقتتون بخیر من کار با گیت رو بلد نیستم متاسفانه ولی با فایلزیلا راحت کار می کنم تنها مشکلم اینه که الان یه پروژه node دارم بعد از ادیت فایل هایی که مربوط به بک اند میشه یعنی کنترلرها یا مدل ها یا روترها به روز رسانی روی سایت انجام نمیشه و حتما باید از طریق ssh وارد بشم و pm2 رو ریستارت کنم این ریستارت مداوم سایت رو دچار مشکل کرده بود
ولی اگر برای فرانت اند که فایل های ejs هستن ادیت انجام بدم بعد اپلود مستقیما اجرا میشه
حتی خواستم پروژه رو روی لوکال ادیت کنم بعد اپلود کنم اما دیتابیسم رو نمی خونه و سایت روی لوکال بالا نمیاد
یه راه حل دارید بهم بدید🙏🙏🙏

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام