چک‌لیست: کانفیگ VPS لینوکسی جدید

امروز لازم شد یه VPS برای یه پروژه‌ای از دیجیتال‌اوشن بگیرم و تصمیم گرفتم لیست کارایی که می‌کنم رو بنویسم تا یه‌جایی داشته باشم.

فعلن همینا بود. احتمالن در آینده چیزهای دیگه هم اضافه می‌شه. و البته این لیست خیلی جنراله. مثلن توی VPS اخیر داکر ریختم و توی VPS قبلی داکر نداریم و مجبورم کلی وقت بذارم تا مثلن php به درستی آپدیت بشه

چجوری فایل‌های سروری که با SSH بهش وصل می‌شیم رو توی VS Code ویرایش کنیم

VS Code واقعن ویرایشگر خوبیه و به نظرم مجموعه افزونه‌هایی که داره باعث می‌شه خیلی خوب و کاربردی بشه.

ما اخیرن از یه سرور ویندوز به یه سرور لینوکسی مهاجرت کردیم و من مسئولیت راه‌اندازی وب‌سرور رو به عهده گرفتم و چون کنجکاو بودم ببینم NGINX چیه و چجوری باید باهاش کار کرد و فقط به همین دلیل تصمیم گرفتم از NGINX به‌جای آپاچی استفاده کنم. برای مهدی البته مهم بود که دات‌نت کُر روی وب‌سرور قابل اجرا باشه و برای من خبر خوبی بود که توی مستندات رسمی مایکروسافت اجرا کردن برنامه روی وب‌سرور انجین‌ایکس آموزش داده شده بود.

اوایل کار برای ویرایش فایل‌های تنظیمات از nano و mcedit استفاده می‌کردم. نانو خیلی پرطرفداره و ویرایشگر خوبی هم هست ولی چون قبلش می‌دونستم که mcedit قابلیت جست‌وجو توی متن داره (و نمی‌دونم نانو این قابلیت رو داره یا نه) زمانی که لازم بود چیزی رو ویرایش کنم از اون استفاده می‌کردم.

اگر تجربه‌ی ویرایش متن توی کنسول و توی ssh رو داشته باشید می‌دونید کار آسونی نیست چون همه‌ی عملیات توی سرور انجام می‌شه و برای همین وقتی من دکمه‌ی اسپیس رو می‌زنم، کمی طول می‌کشه تا اون توی متن نوشته بشه و این قضیه برای من خیلی اعصاب خورد کن بود. برای همین دنبال راه‌حل جایگزین گشتم و با توجه به این‌که افزونه‌های متنوعی برای VS Code دیده بودم، حدس زدم که شاید راه‌حلی برای مشکل من هم توش پیدا بشه. و راه‌حل رو پیدا کردم!

آموزش استفاده ازش توی همون صفحه هست و توضیح بیشتری نمی‌دم. چندتا نکته که تجربه کردم رو می‌گم:

  • چیزی که فهمیدم اینه که این پروتوکل امکان ویرایش فایل‌های متنی رو برامون فراهم می‌کنه و بسته‌ی rmate هم برای همین لازمه روی سرور نصب بشه.
  • من اول نسخه‌ی روبی و بعد نسخه‌ی بش rmate رو امتحان کردم. نسخه‌ی روبی جواب نیازم رو نداد چون با sudo کار نکرد و وقت بیشتری هم روش نذاشتم تا بفهمم چرا کار نمی‌کنه.
  • اگه چند نفری می‌خواید روی سرور کار کنید و از rmate استفاده کنید، از پورت‌های مختلفی باید استفاده کنید. توی آموزشی که توی اون صفحه گفته از پورت ۵۲۶۹۸ استفاده کرده.
  • من وقتی می‌خوام تعداد زیادی فایل رو ویرایش کنم، از دو تا ssh session استفاده می‌کنم و توی یه سشن فقط دستور rmate رو نگه می‌دارم و تو یه سشن دیگه کارهای دیگه‌م (مثل ریست کردن سرویس‌ها و …) رو انجام می‌دم. در این حالت توی سشن دوم وقتی ssh می‌زنم این خطا رو می‌ده که پورت ۵۲۶۹۸ در حال استفاده‌ست چون اولین سشن sshتون داره از اون پورت استفاده می‌کنه ولی توی سشن دوم هم می‌شه از rmate استفاده کرد و اطلاعات از طریق کانکشنی که توی سشن اول بازه منتقل می‌شه ولی اگه سشن اول رو ببندید (مثلن logout کنید) دیگه نمی‌تونید توی سشن دوم از rmate استفاده کنید.
  • تا زمانی که همه‌ی فایل‌های ریموت روی توی vscode نبندید، ssh به صورت طبیعی ارتباطش رو قطع نمی‌کنه. و اگه logout رو زدید و ارتباط‌تون قطع نشد به اینترنت یا سرور یا Bash on Windowsتون فحش ندید 😀 منظورم از به صورت طبیعی اینه که مثلن اگه سرورتون رو ریبوت کنید که طبیعی محسوب نمی‌شه ارتباط خود به خود قطع می‌شه.

پی‌نوشت ۱: این توییت به نظرم مرتبط با نوشته‌ی قواعد نوشتاری‌م بود و از کاری که می‌کنه خوشم اومد:

پی‌نوشت ۲: در مورد مصائبم با NGINX (که هنوز هم ادامه داره) احتمالن نوشته‌های دیگه‌ای می‌نویسم.