نحوه نصب R روی اوبونتو 20.04

R یک زبان برنامه نویسی منبع باز است که در تحلیل داده و محاسبات آماری استفاده میشود. با حمایت بنیاد R برای محاسبات آماری ، از آن به صورت گسترده توسط جامعه فعالی استفاده میشود. R بسیاری از بسته های تولید شده توسط کاربر را برای حوزه های خاصی از مطالعه ارائه می دهد ، که باعث می شود این امر در بسیاری از زمینه ها کاربرد داشته باشد.
در این آموزش R را نصب می کنیم و نحوه اضافه کردن بسته ها از شبکه رسمی بایگانی جامع R (CRAN) را نشان می دهیم.
پیش نیازها
برای دنبال کردن این آموزش به سرور مجازی اوبونتو 20.04 با:
• حداقل 1 گیگابایت رم
• کاربر غیر ریشه با امتیازات sudo
نیاز دارید
برای یادگیری چگونگی دستیابی به این تنظیمات ، راهنمای ستاپ اولیه سرور مجازی را دنبال کنید.
پس از اتمام این پیش نیازها ، آماده شروع هستید.
مرحله 1 – نصب R
از آنجا که R یک پروژه به سرعت در حال حرکت است ، آخرین نسخه پایدار همیشه از منابع اوبونتو در دسترس نیست ، بنابراین ما با اضافه کردن منبع خارجی که توسط CRAN نگهداری می شود ، شروع خواهیم کرد.
توجه : CRAN منابع درون شبکه خود را حفظ می کند ، اما همه منابع خارجی قابل اعتماد نیستند. مطمئن شوید که فقط از منابع معتبر نصب کنید.

ابتدا بیایید کلید GPG مربوطه را اضافه کنیم.
$ sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

وقتی دستور را اجرا می کنیم ، خروجی زیر را دریافت خواهیم کرد:
Output
Executing: /tmp/apt-key-gpghome.cul0ddtmN1/gpg.1.sh –keyserver keyserver.ubuntu.com –recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
gpg: key 51716619E084DAB9: public key “Michael Rutter <marutter@gmail.com>” imported
gpg: Total number processed: 1
gpg: imported: 1

پس از داشتن کلید قابل اعتماد ، می توانیم منبع را اضافه کنیم.
توجه داشته باشید که اگر از 20.04 استفاده نمی کنید ، می توانید منبع مربوطه را از لیست R Project Ubuntu ، که برای هر نسخه نامگذاری شده است ، پیدا کنید. اوبونتو 20.04 به Focal Fossa اشاره دارد و جدیدترین نسخه R، 4.0.0 است، بنابراین قرارداد نامگذاری منبع زیر، focal-cran40 است.
$ sudo add-apt-repository ‘deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/’

در بین خروجی نمایش داده شده ، باید خطوط مشابه زیر را پیدا کنید:
Output

Get:7 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ InRelease [3622 B]
Get:8 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ Packages [15.6 kB]

اکنون ، برای اینکه مانیفیست (اعلان) های بسته از منبع جدید را شامل شود ، باید پس از این به روزرسانی کنیم.
$ sudo apt update
در بین خروجی باید یک خط شبیه به زیر باشد:
Output

Hit:5 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ InRelease

اگر خط فوق در خروجی از دستور UPDATE ظاهر شود ، ما منبع را با موفقیت اضافه کرده ایم. می توانیم مطمئن باشیم که به طور تصادفی نسخه قدیمی را نصب نمی کنیم.
در این مرحله ، آماده نصب R با دستور زیر هستیم.
$sudo apt install r-base
اگر از شما خواسته شد که نصب را تأیید کنید ، برای ادامه ، y را فشار دهید.
در زمان نوشتن این مقاله، آخرین نسخه پایدار R از CRAN نسخه 4.0.1 میباشد که هنگام شروع R نمایش داده می شود.
از آنجا که ما قصد داریم یک پکیج نمونه برای هر کاربر روی سیستم نصب کنیم ، R را به صورت root شروع خواهیم کرد تا کتابخانه ها بصورت خودکار در دسترس همه کاربران قرار بگیرند. از طرف دیگر ، اگر دستور R را بدون sudo اجرا کنید ، می توانید یک کتابخانه شخصی برای کاربر خود تنظیم کنید.
$ sudo -i R
Output

R version 4.0.0 (2020-04-24) — “Arbor Day”
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

Type ‘demo()’ for some demos, ‘help()’ for on-line help, or
‘help.start()’ for an HTML browser interface to help.
Type ‘q()’ to quit R.

>

این تأیید می کند که ما R را با موفقیت نصب کرده ایم و وارد پوسته تعاملی آن شدیم.
مرحله 2 – نصب بسته های R از CRAN
بخشی از قدرت R فراوانی در دسترس بسته های افزودنی آن است. به هدف توضیحی ، txtplot را نصب خواهیم کرد ، کتابخانه ای که نمودارهای ASCII را در بر می گیرد که شامل نمودار پراگندگی ، نمودار خطی ، نمودار چگالی ، نمودارهای acf و نمودارهای میله ای است:
> install.packages(‘txtplot’)
توجه: خروجی زیر نشان می دهد که بسته در کجا نصب خواهد شد.
Output

Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)

این مسیر گسترده در سایت وجود دارد زیرا ما R را به عنوان root اجرا کردیم. این مکان صحیحی است که بسته را در دسترس همه کاربران قرار میدهد.
پس از اتمام نصب ، می توانیم txtplot را لود کنیم:
> library(‘txtplot’)
اگر پیام خطایی وجود ندارد ، کتابخانه با موفقیت لود شده است. بیایید اکنون آن را با مثالی که عملکرد نمودارسازی پایه را با برچسب های محور نشان می دهد ، در مرحله عمل قرار دهیم. داده های مثال ، تهیه شده توسط بسته های datasets درR ، شامل سرعت اتومبیل ها و مسافت موردنیاز برای متوقف کردن بر اساس داده های دهه 1920 است:
$ txtplot(cars[,1], cars[,2], xlab = ‘speed’, ylab = ‘distance’)

Output
+—-+———–+————+———–+———–+–+
120 + * +
| |
d 100 + * +
i | * * |
s 80 + * * +
t | * * * * |
a 60 + * * * * * +
n | * * * * * |
c 40 + * * * * * * * +
e | * * * * * * * |
20 + * * * * * +
| * * * |
0 +—-+———–+————+———–+———–+–+
5 10 15 20 25
speed

اگر علاقه مند به کسب اطلاعات بیشتر در مورد txtplot هستید ، از help)txtplot) در داخل مفسر R استفاده کنید.
هر بسته از پیش کامپایل شده را می توان از CRAN با install.packages () نصب کرد. برای کسب اطلاعات بیشتر در مورد آنچه در دسترس است ، می توانید لیستی از بسته های رسمی بر اساس نام که از طریق لیست نام بسته های موجود CRAN سازماندهی شده ، پیدا کنید.
برای خروج از R ، می توانید q () را تایپ کنید. مگر اینکه بخواهید تصویر فضای کاری را ذخیره کنید ، می توانید در صورت درخواست از شما n را فشار دهید.
نتیجه
با نصب موفقیت آمیز R روی سرور مجازی ، ممکن است علاقه مند به این راهنما در مورد نصب سرور مجازی RStudio باشید تا بتوانید یک IDE را در استقرار مبتنی بر سرور مجازی که تازه تکمیل کرده اید ، قرار دهید. همچنین می توانید نحوه تنظیم سرور مجازی Shiny را برای تبدیل کد R خود به صفحات وب تعاملی بیاموزید.
برای کسب اطلاعات بیشتر در مورد نحوه نصب پکیج های R با استفاده از ابزارهای مختلف ، می توانید نحوه نصب مستقیم از GitHub ، BitBucket یا سایر لوکیشن ها را مطالعه کنید. این کار به شما امکان می دهد تا از آخرین کارهای جامعه فعال بهره ببرید.

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

چگونه به Ubuntu 20.04 Focal Fossa ارتقا دهید

نحوه ایجاد نماها (Views) برای توسعه وب Django

نصب Mount NFS در اوبونتو 20.04

نحوه توسعه برنامه ها در Kubernetes با Okteto

نصب و پیکربندی Laravel با Nginx در اوبونتو 20.04

نحوه تنظیم Jupyter Notebook با پایتون در Ubuntu 20.04

نصب Jitsi Meet در Debian 10

نصب و پیکربندی Nextcloud در اوبونتو 20.04

نصب و پیکربندی Ansible در اوبونتو 20.04

مقدمه ای بر مدیریت پیکربندی با Ansible

نحوه نصب R روی اوبونتو 20.04

ارائه برنامه های Flask با uWSGI و Nginx در اوبونتو 18.04

نصب و پیکربندی Postfix در اوبونتو 20.04

 

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان – 

 

برچسب‌ها:


ارائه برنامه های Flask با uWSGI و Nginx در اوبونتو 18.04

در این راهنما یک برنامه Python را با استفاده از میکروفریم Flask در Ubuntu 18.04 ایجاد خواهید کرد. بخش عمده این مقاله در مورد نحوه تنظیم سرور مجازی برنامه uWSGI و نحوه راه اندازی و پیکربندی برنامه Nginx برای عمل به عنوان یک پروکسی معکوس front-end خواهد بود.
پیش نیازها
قبل از شروع این راهنما ، باید این موارد را داشته باشید:
سرور مجازی با اوبونتو 18.04 و یک کاربر غیر ریشه با امتیازات sudo. برای راهنمایی ، مقاله ستاپ اولیه سرور مجازی ما را دنبال کنید.
? Nginx نصب شده داشته باشید، مراحل 1 و 2 نحوه نصب Nginx در اوبونتو 18.04 را دنبال کنید.
? نام دامنه پیکربندی شده برای اشاره به سرور مجازی شما. می توانید یکی از آنها را در Namecheap خریداری کنید یا یکی از آنها را به صورت رایگان در Freenom دریافت کنید. با دنبال کردن مستندات مربوط به دامنه ها و DNS می توانید یاد بگیرید که چگونه دامنه ها را به vpsgol نشان دهید. حتماً سوابق DNS زیر را ایجاد کنید:
o یک رکورد A با your_domain که به آدرس IP عمومی سرور مجازی شما اشاره می کند.
o یک رکورد A با www.your_domain که به آدرس IP عمومی سرور مجازی شما اشاره کند.
? آشنایی با uWSGI ، سرور مجازی برنامه ما و مشخصات WSGI. این بحث به تفصیل به تعاریف و مفاهیم می پردازد.
مرحله 1 – نصب مولفه ها از مخازن اوبونتو
اولین قدم ما نصب تمام بخش ها مورد نیاز از مخازن اوبونتو خواهد بود. pip ، مدیر بسته پایتون را برای مدیریت اجزای پایتون خود نصب خواهیم کرد. همچنین فایل های توسعه پایتون لازم برای ساخت uWSGI را دریافت خواهیم کرد.
ابتدا ، اجازه دهید ایندکس بسته محلی را به روز کنیم و بسته هایی را نصب کنیم که به ما امکان می دهد محیط Python خود را بسازیم. این موارد شامل python3-pip ، همراه با چند بسته دیگر و ابزار توسعه لازم برای یک محیط برنامه نویسی قوی است:
? $ sudo apt update
?
? $ sudo apt install python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools

با استفاده از این بسته ها ، به سمت ایجاد یک فضای مجازی برای پروژه خود برویم.
مرحله 2 – ایجاد یک محیط مجازی پایتون
در مرحله بعدی ، یک محیط مجازی تنظیم خواهیم کرد تا بتوانیم برنامه Flask خود را از سایر فایل های Python روی سیستم جدا کنیم.
با نصب بسته python3-venv که ماژول venv را نصب خواهد کرد شروع کنید:
? $ sudo apt install python3-venv
?
در مرحله بعد ، بیایید یک دایرکتوری والد برای پروژه Flask تهیه کنیم. بعد از ایجاد آن وارد پوشه شوید:
? $ mkdir ~/myproject
?
? $ cd ~/myproject

یک محیط مجازی ایجاد کنید تا نیازمندی های پایتون پروژه Flask خود را با تایپ کردن دستور زیر ذخیره کنید:
? $ python3.6 -m venv myprojectenv
?
با این کار یک کپی محلی از Python و pip در دیرکتوری به نام myprojectenv درون دیرکتوری پروژه شما کپی میشود.
قبل از نصب برنامه ها در محیط مجازی ، باید آن را فعال کنید. این کار را با تایپ کردن دستور زیر انجام دهید:
? $ source myprojectenv/bin/activate
?
اعلان شما تغییر می کند و نشان می دهد که اکنون در محیط مجازی کار می کنید. چیزی شبیه به (myprojectenv)user@host:~/myproject$ به نظر می رسد .
مرحله 3 – تنظیم یک برنامه Flask
اکنون که در محیط مجازی خود قرار دارید ، می توانید Flask و uWSGI را نصب کرده و طراحی برنامه خود را شروع کنید.
ابتدا بگذارید wheel  را با نمونه محلی pip نصب کنیم تا اطمینان حاصل شود که بسته های ما حتی در صورت از دست دادن بایگانی wheel ، نصب می شوند:
? $ pip install wheel
?

توجه داشته باشید
صرفنظر از اینکه از کدام نسخه Python استفاده می کنید ، هنگامی که محیط مجازی فعال می شود ، باید از دستور pip استفاده کنید (نه pip3)
سپس ، اجازه دهید Flask و uWSGI را نصب کنیم:
? (myprojectenv) $ pip install uwsgi flask
?
ایجاد یک برنامه نمونه
اکنون که Flask را در دسترس دارید ، می توانید یک برنامه ساده ایجاد کنید. Flask یک میکرو فریم ورک است. و بسیاری از ابزارهایی که ممکن است چهارچوبهای کامل تری داشته باشند را شامل نمیشود، و عمدتاً به عنوان ماژول وجود دارد که می توانید برای شروع برنامه های وب از کمک بگیرید تا بتوانید به پروژه های خود وارد شوید.
در حالی که ممکن است برنامه شما پیچیده تر باشد ، ما برنامه Flask خود را در یک فایل واحد با نام myproject.py ایجاد خواهیم کرد:
? (myprojectenv) $ nano ~/myproject/myproject.py
?
کد برنامه در این فایل قرار دارد. Flask را وارد می کند و یک آبجکت Flask را معرفی می کند. شما می توانید از این ویژگی برای تعریف کارکردهایی استفاده کنید که باید هنگام درخواست یک مسیر خاص انجام شود:
~/myproject/myproject.py
from flask import Flask
app = Flask(__name__)

@app.route(“/”)
def hello():
return “<h1 style=’color:blue’>Hello There!</h1>”

if __name__ == “__main__”:
app.run(host=’0.0.0.0′)

این کد اساساً مشخص می کند که هنگام دستیابی به حوزه root ، چه محتوایی ارائه شود. پس از اتمام فایل را ذخیره کنید و ببندید.
اگر راهنمای اولیه تنظیم سرور مجازی را دنبال کرده اید ، باید فایروال UFW را فعال کرده باشید. برای تست برنامه ، باید دسترسی به پورت 5000 را داشته باشید:
? (myprojectenv) $ sudo ufw allow 5000
?
اکنون می توانید برنامه Flask خود را با تایپ کردن دستور زیر تست کنید:
? (myprojectenv) $ python myproject.py
?
خروجی مانند این را مشاهده خواهید کرد ، که شامل یک هشدار مفید است که به شما یادآوری می کند از این ستاپ سرور مجازی در تولید استفاده نکنید:
Output
* Serving Flask app “myproject” (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

از آدرس IP سرور مجازی و به دنبال آن: 5000 در مرورگر وب خود بازدید کنید:
http://your_server_ip:5000
باید چیزی شبیه به این را ببینید:

پس از اتمام ، CTRL-C را در پنجره ترمینال خود بزنید تا سرور مجازی توسعه Flask متوقف شود.
ایجاد نقطه ورود WSGI
در مرحله بعدی ، فایلی را ایجاد میکنیم که به عنوان نقطه ورود برنامه ما باشد. این به سرور مجازی uWSGI می گوید که چگونه می توان با آن تعامل برقرار کرد.
بیایید فایل wsgi.py را فراخوانی کنیم:
? (myprojectenv) $ nano ~/myproject/wsgi.py
?

در این فایل ، بیایید نمونه Flask را از برنامه خود وارد کنیم و سپس آن را اجرا کنیم:
~/myproject/wsgi.py
from myproject import app

if __name__ == “__main__”:
app.run()

پس از اتمام فایل را ذخیره کنید و ببندید.
مرحله 4 – پیکربندی uWSGI
برنامه شما اکنون با یک نقطه ورود مشخص نوشته شده است. اکنون می توانیم به سراغ پیکربندی uWSGI برویم.
تست سرویس UWSGI
بیایید تست کنیم تا مطمئن شویم که uWSGI می تواند برنامه ما را ارائه کند.
ما می توانیم این کار را با ساده تر کردن نام ورودی خود انجام دهیم. این با نام ماژول ساخته شده است (منهای پسوند .py) به علاوه نام قابل فراخوانی درون برنامه. در نمونه ما ، wsgi:app است.
بیایید سوکت را نیز مشخص کنیم ، به طوری که آن را بر روی یک رابط در دسترس عمومی و همچنین پروتکل راه اندازی کنید تا از HTTP به جای پروتکل باینری uwsgi استفاده کند. ما از همان شماره پورت ، 5000 ، که قبلاً باز کردیم استفاده خواهیم کرد:
? (myprojectenv) $ uwsgi –socket 0.0.0.0:5000 –protocol=http -w wsgi:app
?
آدرس IP سرور مجازی خود را به همراه 5000 در ادامه اش بازدید کنید
http: // your_server_ip: 5000
باید دوباره خروجی برنامه خود را مشاهده کنید:

وقتی تأیید کرد که به درستی کار میکند ، CTRL-C را در پنجره ترمینال خود فشار دهید.
اکنون محیط مجازی خود را ایجاد کرده ایم ، بنابراین می توانیم آن را غیرفعال کنیم:
? (myprojectenv) $ deactivate
?

هر دستور پایتون اکنون دوباره از محیط پایتون سیستم استفاده خواهد کرد.
ایجاد یک فایل پیکربندی uWSGI
آزمایش کرده اید که uWSGI قادر به ارائه برنامه شما است ، اما در نهایت برای استفاده طولانی مدت چیزی قوی تر می خواهید. می توانید با استفاده از گزینه های مربوطه ، یک فایل پیکربندی uWSGI ایجاد کنید.
بیایید آن فایل را در فهرست پروژه خود قرار دهیم و آن را myproject.ini بنامیم:
? $ nano ~/myproject/myproject.ini
?
در داخل ، با عنوان [uwsgi] شروع خواهیم کرد تا uWSGI بداند که می تواند تنظیمات را اعمال کند. دو مورد را مشخص خواهیم کرد: خود ماژول با مراجعه به فایل wsgi.py منهای پسوند و فراخوانی در فایل ، app:
~/myproject/myproject.ini
[uwsgi]
module = wsgi:app

در مرحله بعد ، به uWSGI خواهیم گفت که در حالت مستر راه اندازی شود و پنج فرآیند کارگر را برای ارائه درخواست های واقعی ایجاد کند:
~/myproject/myproject.ini
[uwsgi]
module = wsgi:app

master = true
processes = 5

هنگام آزمایش ، uWSGI را در پورت شبکه قرار داده اید. با این حال ، می توانید از Nginx برای رسیدگی به اتصالات واقعی کلاینت استفاده کنید ، که سپس درخواست ها را به uWSGI منتقل می کند. از آنجا که این مولفه ها در همان رایانه کار می کنند ، سوکت یونیکس ترجیح داده می شود زیرا سریع تر و ایمن تر است. بیایید سوکت را myproject.sock بنامیم و در این دیرکتوری قرار دهیم.
بیایید مجوزهای موجود در سوکت را نیز تغییر دهیم. بعداً به گروه Nginx مالکیت پروسه uWSGI را می دهیم ، بنابراین باید اطمینان حاصل کنیم که مالک گروه سوکت می تواند اطلاعاتی را از آن بخواند و برای آن بنویسد. ما همچنین با اضافه کردن گزینه vacuum ، سوکت را تمیز کنیم:
~/myproject/myproject.ini
[uwsgi]
module = wsgi:app

master = true
processes = 5

socket = myproject.sock
chmod-socket = 660
vacuum = true

آخرین کاری که انجام خواهیم داد اینست که گزینه die-on-term  را تنظیم کنیم. این می تواند اطمینان حاصل کند که سیستم init و uWSGI پیش فرض های یکسانی در مورد معنی هر سیگنال فرآیند دارند. تنظیم این دو مؤلفه سیستم ، رفتار مورد انتظار را اجرا می کند:
~/myproject/myproject.ini
[uwsgi]
module = wsgi:app

master = true
processes = 5

socket = myproject.sock
chmod-socket = 660
vacuum = true

die-on-term = true

شاید متوجه شده باشید که ما پروتکلی مانند خط فرمان مشخص نکردیم. دلیل این است که به طور پیش فرض ، uWSGI با استفاده از پروتکل uwsgi ، یک پروتکل باینری سریع طراحی شده برای برقراری ارتباط با دیگر سرور مجازی ها ، ارتباط برقرار می کند. Nginx می تواند این پروتکل را به صورت بومی اجرا کند ، بنابراین بهتر است از این استفاده کنید به جای اینکه مجبور به برقراری ارتباط توسط HTTP شوید.
پس از اتمام ، فایل را ذخیره کنید و ببندید.
مرحله 5 – ایجاد یک فایل واحد سیستماتیک
در مرحله بعدی ، بیایید فایل واحد خدمات سیستمی سرویس را ایجاد کنیم. ایجاد یک فایل واحد سیستمی به سیستم اولیه Ubuntu امکان می دهد تا UWSGI را به طور خودکار شروع کرده و هر زمان که سرور مجازی بوت میشود ، سرویس Flask را ارائه دهد.
برای شروع یک فایل واحد که به service . ختم میشود در دیرکتوری /etc/systemd/system ایجاد می کنیم:
? $ sudo nano /etc/systemd/system/myproject.service
?
در داخل ، با بخش [Unit] شروع خواهیم کرد ، که برای مشخص کردن ابرداده و متعلقات استفاده می شود. بیایید شرح خدمات خود را در اینجا قرار دهیم و به سیستم init بگوییم که فقط پس از رسیدن به هدف شبکه ، سیستم را شروع کند:
/etc/systemd/system/myproject.service
[Unit]
Description=uWSGI instance to serve myproject
After=network.target

سپس ، اجازه دهید بخش [Service] را باز کنیم. با این کار کاربر و گروهی را که می خواهیم تحت روند کار قرار بگیرند مشخص می کند. بیایید مالکیت این فرآیند را به حساب کاربری معمول خود بدهیم زیرا این فایل در اختیار همه فایل های مربوطه است. همچنین بیایید مالکیت گروه را به گروه www-data واگذار کنیم تا Nginx بتواند به راحتی با فرآیندهای uWSGI ارتباط برقرار کند. به یاد داشته باشید که نام کاربری خود را در اینجا جایگزین کنید:
/etc/systemd/system/myproject.service
[Unit]
Description=uWSGI instance to serve myproject
After=network.target

[Service]
User=sammy
Group=www-data

در مرحله بعدی ، بگذارید دیرکتوری کار را مشخص کنیم و متغیر محیطی PATH را تنظیم کنیم تا سیستم اولیه بداند که موارد اجرایی این فرآیند در محیط مجازی ما قرار دارند. بیایید فرمان شروع سرویس را نیز مشخص کنیم. Systemd نیاز دارد که ما مسیر کامل را به uWSGI قابل اجرا که در محیط مجازی ما نصب شده است ، واگذار کنیم. نام فایل پیکربندی .ini را که در دیرکتوری پروژه خود ایجاد کرده ایم ، ارسال خواهیم کرد.
به یاد داشته باشید که نام کاربری و مسیر پروژه را با اطلاعات شخصی خود جایگزین کنید:
/etc/systemd/system/myproject.service
[Unit]
Description=uWSGI instance to serve myproject
After=network.target

[Service]
User=sammy
Group=www-data
WorkingDirectory=/home/sammy/myproject
Environment=”PATH=/home/sammy/myproject/myprojectenv/bin”
ExecStart=/home/sammy/myproject/myprojectenv/bin/uwsgi –ini myproject.ini

در آخر ، بیایید یک بخش [Install] اضافه کنیم. اگر سیستم را فعال کنیم که در بوت شروع شود ، به چه سیستم میگوید که به این سرویس چه چیزی وصل کند. ما می خواهیم با شروع به کار سیستم معمولی چند کاربره ، این سرویس شروع شود:
/etc/systemd/system/myproject.service
[Unit]
Description=uWSGI instance to serve myproject
After=network.target

[Service]
User=sammy
Group=www-data
WorkingDirectory=/home/sammy/myproject
Environment=”PATH=/home/sammy/myproject/myprojectenv/bin”
ExecStart=/home/sammy/myproject/myprojectenv/bin/uwsgi –ini myproject.ini

[Install]
WantedBy=multi-user.target

با این کار ، فایل سرویس سیستمی ما کامل است. اکنون آن را ذخیره کنید و ببندید.
اکنون می توانیم سرویس uWSGI را که ایجاد کردیم شروع کنیم و آن را فعال کنیم تا در بوت شروع شود:
? $ sudo systemctl start myproject
?
? $ sudo systemctl enable myproject

بگذارید وضعیت را بررسی کنیم:
? $ sudo systemctl status myproject
?
باید خروجی مانند این را مشاهده کنید:
Output
? myproject.service – uWSGI instance to serve myproject
Loaded: loaded (/etc/systemd/system/myproject.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-07-13 14:28:39 UTC; 46s ago
Main PID: 30360 (uwsgi)
Tasks: 6 (limit: 1153)
CGroup: /system.slice/myproject.service
??30360 /home/sammy/myproject/myprojectenv/bin/uwsgi –ini myproject.ini
??30378 /home/sammy/myproject/myprojectenv/bin/uwsgi –ini myproject.ini
??30379 /home/sammy/myproject/myprojectenv/bin/uwsgi –ini myproject.ini
??30380 /home/sammy/myproject/myprojectenv/bin/uwsgi –ini myproject.ini
??30381 /home/sammy/myproject/myprojectenv/bin/uwsgi –ini myproject.ini
??30382 /home/sammy/myproject/myprojectenv/bin/uwsgi –ini myproject.ini

در صورت مشاهده هر گونه خطا ، حتما آنها را قبل از ادامه آموزش برطرف کنید.
مرحله 6 – پیکربندی Nginx در درخواستهای پروکسی
سرور مجازی برنامه uWSGI ما باید اکنون به روز و در حال اجرا و منتظر درخواست هایی روی فایل سوکت در دیرکتوری پروزه باشد. بیایید Nginx را پیکربندی کنیم تا درخواست های وب را با استفاده از پروتکل uwsgi به آن سوکت منتقل کنیم.
با ایجاد یک فایل پیکربندی بلوک جدید سرور مجازی در دیرکتوری sites-available Nginx شروع کنید. بیایید این پروژه را myproject بنامیم تا با بقیه راهنما مطابقت داشته باشد:
? $ sudo nano /etc/nginx/sites-available/myproject
?

یک بلوک سرور مجازی باز کنید و به Nginx بگویید که به پورت پیش فرض 80 گوش کند. بیایید به آن نیز بگوییم که از این بلوک برای درخواست های نام دامنه سرور مجازی ما استفاده کند:
/etc/nginx/sites-available/myproject
server {
listen 80;
server_name your_domain www.your_domain;
}

سپس ، بیایید یک بلوک موقعیت مکانی اضافه کنیم که مطابق با هر درخواست باشد. در این بلوک ، فایل uwsgi_params را وارد خواهیم کرد که پارامترهای کلی UWSGI مورد نیاز برای تنظیم را مشخص می کند. سپس درخواستها را به سوکت تعریف شده با استفاده از بخشنامه uwsgi_pass ارسال خواهیم کرد:
/etc/nginx/sites-available/myproject
server {
listen 80;
server_name your_domain www.your_domain;

location / {
include uwsgi_params;
uwsgi_pass unix:/home/sammy/myproject/myproject.sock;
}
}

پس از اتمام فایل را ذخیره کنید و ببندید.
برای فعال کردن پیکربندی بلوک سرور مجازی Nginx که اخیراً ایجاد کرده اید ، فایل را به دیرکتوری sites-enabled پیوند دهید:
? $ sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
?
با قرارگیری فایل در آن دیرکتوری ، می توانیم با تایپ کردن دستور زیر خطاهای نحوی را آزمایش کنیم:
? $ sudo nginx -t
?
اگر بدون نشان دادن مشکلی بازگشت ، فرایند Nginx را دوباره شروع کنید تا پیکربندی جدید را بخوانید:
? $ sudo systemctl restart nginx
?
در آخر ، اجازه دهید دوباره فایروال را تنظیم کنیم. دیگر نیازی به دسترسی از طریق پورت 5000 نداریم ، بنابراین می توانیم این قانون را حذف کنیم. سپس می توانیم به رسرور مجازی Nginx دسترسی داشته باشیم:
? $ sudo ufw delete allow 5000
?
? $ sudo ufw allow ‘Nginx Full’

اکنون باید بتوانید در مرورگر وب خود به نام دامنه سرور مجازی خود بروید:
http: // your_domain
باید خروجی برنامه خود را مشاهده کنید:

اگر با خطایی مواجه شدید ، موارد زیر را بررسی کنید:
? sudo less /var/log/nginx/error.log ورودهای مربوط به خطای Nginx را بررسی می کند.
? sudo less /var/log/nginx/access.log ورودهای مربوط به دسترسی Nginx را بررسی می کند.
? sudo journalctl -u nginx ورود های مربوط به فرآیند Nginx را بررسی می کند.
? sudo journalctl -u myproject ورود های UWSGI برنامه Flask شما را بررسی می کند.
مرحله 7 – امنیت برنامه
برای اطمینان از ایمن ماندن ترافیک به سرور مجازی شما ، اجازه دهید یک گواهی SSL برای دامنه شما دریافت کنیم. روش های مختلفی برای این کار وجود دارد ، از جمله دریافت گواهینامه رایگان از Let’s Encrypt ، تولید یک گواهی خود امضا شده یا خرید از ارائه دهنده دیگر و پیکربندی Nginx برای استفاده از آن با دنبال کردن مراحل 2 تا 6 نحوه ایجاد یک گواهی SSL خود امضا شده برای Nginx در اوبونتو 18.04. به خاطر صلاحدید ، گزینه ی اول را انتخاب میکنیم.
ابتدا مخزن Certbot Ubuntu را اضافه کنید:
? $ sudo add-apt-repository ppa:certbot/certbot
?
برای قبول باید ENTER را فشار دهید.
در مرحله بعدی ، بسته Nginx Certbot را با apt نصب کنید:
? $ sudo apt install python-certbot-nginx
?
Certbot روشهای مختلفی برای به دست آوردن گواهینامه های SSL از طریق افزونه ها ارائه می دهد. افزونه Nginx از پیکربندی مجدد Nginx و لود مجدد در صورت لزوم ، مراقبت خواهد کرد. برای استفاده از این افزونه ، دستور زیر را تایپ کنید:
? $ sudo certbot –nginx -d your_domain -d www.your_domain
?

این دستور certbot  را با افزونه –nginx با استفاده از -d اجرا میکند تا نام هایی که می خواهیم گواهی برای آنها اعتبار داشته باشد ، مشخص شوند.
اگر اولین بار است که certbot  را اجرا میکنید ، از شما خواسته می شود که آدرس ایمیل را وارد کنید و با شرایط سرویس موافقت کنید. بعد از انجام این کار ، certbot با سرور مجازی Let’s Encrypt ارتباط برقرار می کند ، سپس برای تأیید اینکه دامنه مورد نظر خود را کنترل می کنید ، یک چالش را اجرا کنید.
اگر موفقیت آمیز باشد ، certbot از شما می پرسد که می خواهید تنظیمات HTTPS خود را چگونه پیکربندی کنید.
Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
——————————————————————————-
1: No redirect – Make no further changes to the webserver configuration.
2: Redirect – Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you’re confident your site works on HTTPS. You can undo this
change by editing your web server’s configuration.
——————————————————————————-
Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel):

انتخاب خود را مشخص کنید و سپس ENTER بزنید. پیکربندی به روز خواهد شد ، و Nginx مجدد لود می شود تا تنظیمات جدید را انتخاب کند. certbot با پیغامی همراه خواهد بود که به شما می گوید روند موفقیت آمیز بوده و گواهی نامه های شما در کجا ذخیره شده است:
Output
IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/your_domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/your_domain/privkey.pem
Your cert will expire on 2018-07-23. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the “certonly” option. To non-interactively renew *all* of
your certificates, run “certbot renew”
– Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
– If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

اگر دستورالعمل نصب Nginx را در پیش شرط ها دنبال کردید ، دیگر نیازی به اجازه پروفایل HTTP نخواهید داشت:
? $ sudo ufw delete allow ‘Nginx HTTP’
?
برای تأیید پیکربندی ، اجازه دهید یکبار دیگر با استفاده از https: // به دامنه خود برویم
https: // your_domain
باید یک بار دیگر خروجی برنامه خود را همراه با نشانگر امنیتی مرورگر خود مشاهده کنید ، که باید نشانگر امنیت سایت باشد.
نتیجه
در این راهنما ، یک برنامه ساده Flask را در یک محیط مجازی Python ایجاد و ایمن کرده اید. یک نقطه ورود WSGI ایجاد کردید تا هر سرور مجازی برنامه WSGI قادر به استفاده از آن باشد و سپس سرور مجازی برنامه uWSGI را برای ارائه این عملکرد پیکربندی نمودید. پس از آن ، یک فایل خدمات سیستمی ایجاد کردید تا سرور مجازی برنامه به صورت خودکار راه اندازی شود. همچنین یک بلوک سرور مجازی Nginx ایجاد کردید که ترافیک کلاینت وب را به سرور مجازی برنامه منتقل می کند ، درخواست های خارجی را منتقل می کند و با Let’s Encrypt ، سرور مجازی شما را ایمن نماید.
Flask یک چارچوب بسیار ساده اما بسیار انعطاف پذیر به معنای ارائه برنامه ها با قابلیت های زیاد بدون محدودیت در ساختار و طراحی است. می توانید از خدمات پشته عمومی که در این راهنما تشریح شده است استفاده کنید تا بتوانید کاربردهای Flask را که طراحی کرده اید ارائه دهید.

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

چگونه به Ubuntu 20.04 Focal Fossa ارتقا دهید

نحوه ایجاد نماها (Views) برای توسعه وب Django

نصب Mount NFS در اوبونتو 20.04

نحوه توسعه برنامه ها در Kubernetes با Okteto

نصب و پیکربندی Laravel با Nginx در اوبونتو 20.04

نحوه تنظیم Jupyter Notebook با پایتون در Ubuntu 20.04

نصب Jitsi Meet در Debian 10

نصب و پیکربندی Nextcloud در اوبونتو 20.04

نصب و پیکربندی Ansible در اوبونتو 20.04

مقدمه ای بر مدیریت پیکربندی با Ansible

نحوه نصب R روی اوبونتو 20.04

ارائه برنامه های Flask با uWSGI و Nginx در اوبونتو 18.04

نصب و پیکربندی Postfix در اوبونتو 20.04

 

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان – 

 

برچسب‌ها:


نصب Jitsi Meet در Debian 10

Jitsi Meet یک برنامه کنفرانس ویدئویی منبع باز مبتنی بر WebRTC است. سرور مجازی Jitsi Meet اتاقهای کنفرانس ویدئویی چند نفره را در اختیار شما قرار می دهد که می توانید با استفاده از تنها یک مرورگر به آنها دسترسی داشته باشید و عملکرد قابل مقایسه ای را با یک گفتگوی کنفرانسی مثل zoom یا skype ارائه دهید. مزیت جیتسی کنفرانس این است که تمام داده های شما فقط از طریق سرور مجازی شما عبور می کند ، و رمزگذاری TLS به صورت end-to-end تضمین می کند که هیچ کس نمی تواند تماس را شنود کند. با وجود Jitsi می توانید مطمئن باشید که اطلاعات خصوصی شما به همان صورت باقی می مانند.
در این آموزش ، سرور مجازی Jitsi Meet را روی Debian 10 نصب و پیکربندی خواهید کرد. پیکربندی پیش فرض به هر کسی امکان ایجاد یک اتاق کنفرانس جدید را می دهد. اما برای سرور مجازی که در اینترنت در دسترس عموم باشد ایده آل نیست بنابراین شما Jitsi Meet را نیز به گونه ای پیکربندی میکنید تا فقط کاربران ثبت نام شده بتوانند اتاق های کنفرانس جدید ایجاد کنند. بعد از ایجاد اتاق کنفرانس ، هر کاربر می تواند عضویت داشته باشد ، مادامی که آدرس منحصر به فرد و رمز اختیاری را داشته باشد.
پیش نیازها
قبل از شروع این راهنما به موارد زیر نیاز خواهید داشت:
• یک سرور مجازی Debian 10 که با دنبال کردن راهنمای ستاپ اولیه سرور مجازی Debian 10 راه اندازی شده باشد، و شامل کاربر غیر ریشه فعال با sudo باشد. اندازه سرور مجازی مورد نیاز شما بیشتر به پهنای باند موجود و تعداد شرکت کننده ای که انتظار دارید از سرور مجازی استفاده کنند بستگی دارد. جدول زیر ایده های لازم را به شما ارائه می دهد.
• نام دامنه پیکربندی شده برای ارجاع به سرور مجازی تان. در سراسر این راهنما ، از نام دامنه jitsi.your-domain استفاده می شود.
هنگامی که شما یک سرور مجازی را برای اجرای نمونه Jitsi Meet انتخاب می کنید ، باید منابع مورد نیاز سیستم برای میزبانی اتاق های کنفرانس را در نظر بگیرید. اطلاعات معیار زیر از یک ماشین مجازی تک هسته ای با استفاده از تنظیمات ویدیویی با کیفیت بالا جمع آوری شده است:

CPU پهنای باند سرور مجازی
2 شرکت کننده 3% 30Kbps Up, 100Kbps Down
3 شرکت کننده 15% 7Mbps Up, 6.5Mbps Down

پرش در استفاده از منابع بین دو تا سه شرکت کننده به این دلیل است که Jitsi داده های تماس را مستقیماً بین کلاینت ها در صورت وجود دو نفر، هدایت می کند. هنگامی که بیش از دو کلاینت وجود دارند ، داده های تماس از طریق سرور مجازی Jitsi Meet هدایت می شوند.
مرحله 1 – تنظیم نام هاست سیستم
در این مرحله ، نام هاست سیستم را تغییر میدهید تا با نام دامنه ای که قصد دارید برای مثال Jitsi Meet خود استفاده کنید مطابقت داشته باشد و آن نام هاست را به IP localhost ، 127.0.0.1 تغییر می دهید. Jitsi Meet هنگام نصب و تولید فایل های پیکربندی خود از هر دو تنظیمات استفاده می کند.
ابتدا نام هاست سیستم را روی نام دامنه ای که برای نمونه Jitsi خود استفاده خواهید کرد تنظیم کنید. دستور زیر نام هاست فعلی را تنظیم کرده و /etc/hostname را تغییر میدهد که نام هاست سیستم را در بین ریبوت ها نگه میدارد:
? $ sudo hostnamectl set-hostname jitsi.your-domain
?
فرمانی که اجرا کردید به شرح زیر است:
? hostnamectl ابزاری است از مجموعه ابزارهای systemd برای مدیریت نام هاست سیستم استفاده میکند.
? set-hostname نام هاست سیستم را تنظیم می کند.
با اجرای دستور زیر بررسی کنید که این کار موفقیت آمیز بوده است:
? $ hostname
?
با این کار نام هاست شما با دستور hostnamectl برمی گردد:
Output
jitsi.your-domain

در مرحله بعد ، نگاشت محلی از نام هاست سرور مجازی را بر روی حلقه بازگشت آدرس IP ، 127.0.0.1 تنظیم خواهید کرد. این کار را با باز کردن فایل / etc / hosts با ویرایشگر متن انجام دهید:
? $ sudo nano /etc/hosts
?
سپس خط زیر را اضافه کنید:
/etc/hosts
127.0.0.1 jitsi.your-domain

نگاشت نام دامنه سرور مجازی Jitsi Meet روی 127.0.0.1 به سرور مجازی Jitsi Meet شما اجازه می دهد تا از چندین فرآیند شبکه ای استفاده کند که اتصالات محلی را از یکدیگر در آدرس IP 127.0.0.1 قبول می کنند. این اتصالات با گواهی TLS که در نام دامنه شما ثبت شده است ، تأیید و رمزگذاری می شوند. نگاشت محلی نام دامنه روی 127.0.0.1 امکان استفاده از گواهینامه TLS برای این اتصالات شبکه محلی را فراهم می آورد.
فایل خود را ذخیره کنید و از آن خارج شوید.
اکنون سرور مجازی شما دارای نام هاست است که Jitsi برای نصب به آن نیاز دارد. در مرحله بعد ، پورت های فایروال مورد نیاز Jitsi و نصب کننده گواهینامه TLS را باز خواهید کرد.
مرحله 2 – پیکربندی فایروال
هنگامی که راهنمای راه اندازی اولیه سرور مجازی با Debian 10 را دنبال کردید ، فایروال UFW را فعال کرده و پورت SSH را باز نموده اید. سرور مجازی Jitsi به برخی از پورت های باز شده نیاز دارد تا بتواند با کلاینت ها ارتباط برقرار کند. همچنین ، فرایند نصب TLS نیاز به پورت باز دارد تا بتواند درخواست مجوز را تأیید کند.
پورت هایی که باز خواهید کرد به شرح زیر است:
? 80 / tcp که در درخواست گواهینامه TLS مورد استفاده قرار میگیرد.
? 443 / TCP برای صفحه وب ایجاد اتاق کنفرانس استفاده میشود.
? 4443 / tcp ، 10000 / udp که برای انتقال و دریافت ترافیک تماس رمزگذاری شده استفاده می شود.
دستورات ufw زیر را برای باز کردن این پورت ها اجرا کنید:
? $ sudo ufw allow 80/tcp
?
? $ sudo ufw allow 443/tcp
?
? $ sudo ufw allow 4443/tcp
?
? $ sudo ufw allow 10000/udp

بررسی کنید که همه آنها با دستور ufw status اضافه شده باشند:
? $ sudo ufw status
?
در صورت باز بودن این پورت ها ، خروجی زیر را مشاهده خواهید کرد:
Output
Status: active

To Action From
— —— —-
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
4443/tcp ALLOW Anywhere
10000/udp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
4443/tcp (v6) ALLOW Anywhere (v6)
10000/udp (v6) ALLOW Anywhere (v6)

اکنون سرور مجازی آماده نصب Jitsi است که در مرحله بعدی آن را کامل خواهید کرد.
مرحله 3 – نصب Jitsi Meet
در این مرحله مخزن پایدار Jitsi را به سرور مجازی خود اضافه می کنید و سپس بسته Jitsi Meet را ز آن مخزن نصب می کنید. با این کار اطمینان حاصل می شود که همیشه آخرین بسته پایدار Jitsi Meet را اجرا می کنید.
ابتدا بسته gnupg را نصب کنید که سیستم را قدر میسازد کلیدهای کریپتوگرافیک GPG را مدیریت کند:
? $ sudo apt install gnupg
?
سپس با ابزار دانلود wget کلید Jitsi GPG را دانلود میکنیم
? $ wget https://download.jitsi.org/jitsi-key.gpg.key

مدیر بسته apt از این کلید GPG برای اعتبارسنجی بسته هایی که از مخزن Jitsi دانلود می کنید ، استفاده خواهد کرد.
اکنون ، کلید GPG را که با استفاده از ابزار key-apt روی رینگ apt دانلود کرده اید، اضافه نمایید:
? $ sudo apt-key add jitsi-key.gpg.key
?
اکنون می توانید فایل کلید GPG را حذف کنید زیرا دیگر نیازی به آن نیست:
? $ rm jitsi-key.gpg.key
?
اکنون با ایجاد یک فایل منبع جدید که حاوی مخزن Jitsi است ، مخزن Jitsi را به سرور مجازی خود اضافه می کنید. با ویرایشگر خود فایل جدید را باز و ایجاد کنید:
? $ sudo nano /etc/apt/sources.list.d/jitsi-stable.list
?

این خط را به فایل مخزن Jitsi اضافه کنید:
/etc/apt/sources.list.d/jitsi-stable.list
deb https://download.jitsi.org stable/
ویرایشگر خود را ذخیره کرده و از آن خارج شوید.
سرانجام برای جمع آوری لیست بسته ها از مخزن Jitsi یک به روزرسانی سیستم انجام دهید و سپس بسته jitsi-meet را نصب کنید:
? $ sudo apt update
?
? $ sudo apt install jitsi-meet

در حین نصب jitsi-meet از شما خواسته می شود نام دامنه (مثلاً jitsi.your-domain) را که می خواهید برای نمونه Jitsi Meet خود استفاده کنید وارد کنید.

توجه: شما مکان نما را از قسمت نام هاست حرکت می دهید تا دکمه <OK> را با کلید TAB هایلایت کنید. هنگامی که <OK> هایلایت شد برای ارسال نام هاست ، ENTER را فشار دهید.

سپس کادر جعبه گفتگوی جدیدی به شما نشان داده می شود که میپرسد آیا می خواهید Jitsi یک گواهی TLS امضا شده را استفاده کند یا از یک گواهی موجود که خودتان در اختیار دارید استفاده نماید:

اگر گواهی TLS برای دامنه Jitsi ندارید ، اولین مورد یعنی Generate a new self-signed certificate را انتخاب کنید.
نمونه Jitsi Meet شما اکنون با استفاده از گواهی TLS خود امضا شده نصب شده است. این باعث اخطار مرورگر می شود ، بنابراین در مرحله بعدی یک گواهی TLS امضا شده دریافت خواهید کرد.
مرحله 4 – اخذ گواهینامه TLS امضا شده
Jitsi Meet از گواهینامه های TLS برای رمزگذاری ترافیک تماس استفاده می کند تا هیچ کس نتواند هنگام استفاده از اینترنت به تماس شما گوش کند. گواهینامه های TLS همان گواهینامه هایی هستند که توسط وب سایت ها برای فعال کردن آدرس های HTTPS استفاده می شوند.
Jitsi Meet برنامه ای را برای دانلود خودکار گواهی TLS برای نام دامنه شما تهیه می نماند که از ابزار Certbot استفاده می کند. قبل از اجرای اسکریپت نصب گواهی ، باید این برنامه را نصب کنید.
ابتدا ، بسته ی certbot را با دستور زیر نصب کنید:
? $ sudo apt install certbot
?
اکنون سرور مجازی شما آماده اجرای برنامه نصب گواهینامه TLS تهیه شده توسط Jitsi Meet است:
? $ sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
?
هنگامی که اسکریپت را اجرا می کنید ، اعلان زیر برای آدرس ایمیل نشان داده می شود:
Output
————————————————————————-
This script will:
– Need a working DNS record pointing to this machine(for domain jitsi.example.com)
– Download certbot-auto from https://dl.eff.org to /usr/local/sbin
– Install additional dependencies in order to request Let’s Encrypt certificate
– If running with jetty serving web content, will stop Jitsi Videobridge
– Configure and reload nginx or apache2, whichever is used
– Configure the coturn server to use Let’s Encrypt certificate and add required deploy hooks
– Add command in weekly cron job to renew certificates regularly

You need to agree to the ACME server’s Subscriber Agreement (https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf)
by providing an email address for important account notifications
Enter your email and press [ENTER]:

این آدرس ایمیل به صادرکننده گواهینامه https://letsencrypt.org ارسال می شود و برای اطلاع دادن به شما درباره امنیت و سایر موارد مرتبط با گواهینامه TLS استفاده می شود. برای ادامه نصب باید یک آدرس ایمیل را وارد کنید. پس از آن نصب بدون هیچ گونه اعلان دیگری انجام می شود.
پس از اتمام ، نمونه Jitsi Meet شما پیکربندی می شود تا از یک گواهی TLS امضا شده برای نام دامنه خود استفاده کنید. تمدید گواهینامه به طور خودکار اتفاق می افتد زیرا نصب کننده، یک اسکریپت تجدید را در /etc/cron.weekly/letsencrypt-renew قرار داده است که هر هفته اجرا می شود.
سرور مجازی Jitsi Meet شما اکنون آماده و در حال اجرا است و برای آزمایش در دسترس میباشد. یک مرورگر باز کرده و نام دامنه خود را به آن معرفی کنید. قادر خواهید بود یک اتاق کنفرانس جدید ایجاد کنید و دیگران را نیز دعوت کنید تا به شما بپیوندند.
تنظیمات پیش فرض برای Jitsi Meet این گونه است که هرکسی که صفحه اصلی سرور مجازی Jitsi Meet شما را مشاهده می کند می تواند یک اتاق کنفرانس جدید ایجاد کند. با این کار از منابع سیستم سرور مجازی شما برای اجرای اتاق کنفرانس استفاده می شود و به خاطر استفاده کاربران غیرمجاز مطلوب نیست. در مرحله بعد ، شما نمونه Jitsi Meet را به گونه ای پیکربندی می کنید که فقط کاربران عضو شده قادر به ایجاد اتاق کنفرانس باشند.
مرحله 5 – ایجاد قفل کنفرانس
در این مرحله ، شما سرور مجازی Jitsi Meet را به گونه ای پیکربندی می کنید تا فقط کاربران ثبت نام شده بتوانند اتاق کنفرانس ایجاد کنند. فایل هایی که ویرایش می کنید توسط نصب کننده ایجاد شده اند و با نام دامنه شما پیکربندی میشوند.
متغیر your_domain به جای نام دامنه در مثالهای زیر استفاده خواهد شد.
ابتدا ، sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua را با یک ویرایشگر متن باز کنید:
? $ sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua
?
این خط را ویرایش کنید:
/etc/prosody/conf.avail/your_domain.cfg.lua

authentication = “anonymous”

به صورت زیر:
/etc/prosody/conf.avail/your_domain.cfg.lua

authentication = “internal_plain”

این پیکربندی به Jitsi Meet می گوید تا قبل از اجازه ایجاد اتاق کنفرانس توسط یک بازدید کننده جدید ، مجبور به تأیید اعتبار نام کاربری و رمز عبور شود.
سپس در همان فایل قسمت زیر را به انتهای فایل اضافه کنید:
/etc/prosody/conf.avail/your_domain.cfg.lua

VirtualHost “guest.your_domain”
authentication = “anonymous”
c2s_require_encryption = false

این پیکربندی به کاربران ناشناس اجازه می دهد تا به اتاق های کنفرانس که توسط یک کاربر معتبر ایجاد شده اند بپیوندند. با این حال ، میهمان باید یک آدرس منحصر به فرد و رمز عبور اختیاری برای ورود به اتاق داشته باشد.
در اینجا ، شما guest. را به جلوی نام دامنه خود اضافه کردید به عنوان مثال ، برای jitsi.your-domain، guest.jitsi.your-domain را قرار دهید. نام هاست guest. فقط به صورت داخل توسط Jitsi Meet استفاده می شود. شما هرگز آن را وارد مرورگر نخواهید کرد و یا نیازی به ایجاد رکورد DNS برای آن ندارید.
فایل پیکربندی دیگری را در /etc/jitsi/meet/your_domain-config.js با یک ویرایشگر متن باز کنید:
? $ sudo nano /etc/jitsi/meet/your_domain-config.js
?
این خط را ویرایش کنید:
/etc/jitsi/meet/your_domain-config.js

// anonymousdomain: ‘guest.example.com’,

تا به این صورت درآید:
/etc/jitsi/meet/your_domain-config.js

anonymousdomain: ‘guest.your_domain’,

مجدداً ، با استفاده از نام هاست guest.your_domain که قبلاً از این پیکربندی استفاده کرده اید ، به Jitsi می گوید چه نام هاست داخلی را برای مهمانان تأیید نشده استفاده کند.
سپس ، /etc/jitsi/jicofo/sip-communicator.properties را باز کنید:
? $ sudo nano /etc/jitsi/jicofo/sip-communicator.properties
?
و خط زیر را برای تکمیل تغییرات پیکربندی اضافه کنید:
/etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.auth.URL=XMPP:your_domain

این پیکربندی یکی از فرایندهای Jitsi Meet را به سرور مجازی محلی نشان می دهد که تأیید اعتبار کاربر را که اکنون لازم است انجام می دهد.
نمونه Jitsi Meet شما اکنون پیکربندی شده است و فقط کاربران ثبت نام شده می توانند اتاق کنفرانس ایجاد کنند. بعد از ایجاد یک اتاق کنفرانس ، هر کسی می تواند بدون نیاز به کاربر ثبت نام شده به آن بپیوندد. تنها آنچه نیاز دارند آدرس اتاق کنفرانس منحصر به فرد و رمزعبور اختیاری است که توسط فردی که اتاق را ایجاد کرده تنظیم شده است.
اکنون که Jitsi Meet پیکربندی شده است و برای ایجاد اتاق نیاز به کاربران معتبر دارد ، باید این کاربران و رمزهای عبور خود را ثبت کنید. برای این کار از ابزار prosodyctl استفاده خواهید کرد.
دستور زیر را برای افزودن کاربر به سرور مجازی خود اجرا کنید:
? $ sudo prosodyctl register user your_domain password
?
کاربری که شما در اینجا اضافه می کنید کاربر سیستم نیست. آنها فقط قادر به ایجاد یک اتاق کنفرانس هستند و از طریق SSH قادر به ورود به سرور مجازی شما نیستند.
در آخر ، مراحل Jitsi Meet را ریستارت کنید تا پیکربندی جدید لود شود:
? $ sudo systemctl restart prosody.service
?
? $ sudo systemctl restart jicofo.service
?
? $ sudo systemctl restart jitsi-videobridge2.service
?
? $ sudo systemctl restart nginx
?
اکنون Jitsi Meet نمونه هنگام ایجاد یک اتاق کنفرانس ، نام کاربری و رمزعبور را با جعبه گفتگو درخواست می کند.

سرور مجازی Jitsi Meet شما اکنون تنظیم و ایمن شده است.
نتیجه
در این مقاله ، شما سرور مجازی Jitsi Meet را مستقر کرده اید که می توانید از آنها برای میزبانی اتاق های کنفرانس ویدیویی ایمن و خصوصی استفاده کنید. می توانید نمونه Jitsi Meet خود را با دستورالعمل Jitsi Meet Wiki گسترش دهید.

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

چگونه به Ubuntu 20.04 Focal Fossa ارتقا دهید

نحوه ایجاد نماها (Views) برای توسعه وب Django

نصب Mount NFS در اوبونتو 20.04

نحوه توسعه برنامه ها در Kubernetes با Okteto

نصب و پیکربندی Laravel با Nginx در اوبونتو 20.04

نحوه تنظیم Jupyter Notebook با پایتون در Ubuntu 20.04

نصب Jitsi Meet در Debian 10

نصب و پیکربندی Nextcloud در اوبونتو 20.04

نصب و پیکربندی Ansible در اوبونتو 20.04

مقدمه ای بر مدیریت پیکربندی با Ansible

نحوه نصب R روی اوبونتو 20.04

ارائه برنامه های Flask با uWSGI و Nginx در اوبونتو 18.04

نصب و پیکربندی Postfix در اوبونتو 20.04

 

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان – 

 

برچسب‌ها:


نصب و پیکربندی Postfix در اوبونتو 20.04

Postfix یک عامل انتقال ایمیل (MTA) است ، که برای هدایت و دریافت ایمیل در سیستم لینوکس استفاده می شود. پیش بینی میشود حدود 25 درصد سرور مجازی های ایمیل عمومی در اینترنت Postfix را اجرا میکنند.
در این راهنما ، نحوه نصب و پیکربندی Postfix را در سرور مجازی Ubuntu 20.04 یاد خواهید گرفت. سپس با نصب s-nail ، یک نماینده کاربر ایمیل (MUA) ، که به کلاینت ایمیل نیز شناخته میشود، آزمایش می کنید که آیا Postfix قادر است به درستی ایمیل را مسیریابی کند.
توجه داشته باشید که هدف از این آموزش این است که به شما کمک کند تا فقط با برخی از قابلیت های معمول ایمیل، سریعا Postfix را راه اندازی و اجرا کنید. در پایان این راهنما یک سرور مجازی ایمیل تمام عیار ندارید ، اما برخی از مؤلفه های اساسی چنین ستاپی را برای کمک به شما در شروع کار خواهید داشت.
پیش نیازها
برای پیروی از این راهنما ، موارد زیر را لازم دارید:
• سرور مجازی دارای Ubuntu 20.04 که به عنوان سرور مجازی ایمیل Postfix شما فعالیت می کند. این سرور مجازی باید دارای یک کاربر غیر ریشه با امتیازات sudo و فایروال تنظیم شده با UFW باشد. برای تنظیم این گزینه می توانید راهنمای ستاپ اولیه سرور مجازی Ubuntu 20.04 را دنبال کنید.
• یک نام دامنه کاملاً واجد شرایط که به سرور مجازی Ubuntu 20.04 شما اشاره کند. توجه داشته باشید که اگر قصد دسترسی به ایمیل از یک مکان خارجی را دارید ، باید مطمئن شوید که یک رکورد MX دارید که به سرور مجازی ایمیل شما نیز اشاره کند.
توجه داشته باشید که این آموزش با این فرض پیش میرود که شما هاستی را پیکربندی می کنید که دارای FQDN mail.example.com میباشد. در صورت لزوم ، حتماً example.com یا mail.example.com را تغییر دهید تا FQDN شما را منعکس کند.
مرحله 1 – نصب Postfix
Postfix در مخازن پیش فرض اوبونتو گنجانده شده است ، بنابراین می توانید آن را با APT نصب کنید.
برای شروع ، حافظه نهان بسته محلی apt خود را به روز کنید:
$ sudo apt update

سپس بسته ی postfix را با دستور زیر نصب کنید. توجه داشته باشید که در اینجا ما متغیر محیطی DEBIAN_PRIORITY=low را در این دستور نصب وارد میکنیم. این امر باعث می شود فرآیند نصب از شما بخواهد برخی گزینه های اضافی را پیکربندی کنید:
$ sudo DEBIAN_PRIORITY=low apt install postfix

این فرآیند نصب یک سری اعلان های تعاملی را باز می کند. برای اهداف این آموزش ، از اطلاعات زیر برای پر کردن فرم های خود استفاده کنید:
• نوع کلی پیکربندی ایمیل؟برای این، Internet Site را انتخاب کنید چرا که با تیازهای فراساختاری مطابقت دارد.
• نام ایمیل سیستم: این دامنه اصلی است که برای ساختن یک آدرس ایمیل معتبر استفاده می شود هنگامی که فقط بخش حساب آدرس داده می شود. به عنوان مثال ، نام میزبان سرور مجازی شما mail.example.com است. به احتمال زیاد باید نام ایمیل سیستم را به صورت example.com قرار دهید تا با توجه به نام کاربری user1 ، Postfix از آدرس user1@example.com استفاده کند.
• گیرنده ایمیل Root و postmaster: این حساب لینوکس است که از طریق ایمیل به root @ و postmaster @ ارسال می شود. برای این کار از حساب اصلی خود استفاده کنید. در این مورد مثال ، Sammy .
• سایر مقاصد برای پذیرش ایمیل: مقصد پستی را که این نمونه Postfix می پذیرد تعیین می کند. اگر لازم است دامنه دیگری را که این سرور مجازی مسئول دریافت آن است اضافه کنید ، آنها را در اینجا اضافه کنید. در غیر این صورت ، پیش فرض کافی خواهد بود.
• اجبار به روزرسانی های همزمان در صف ایمیل ؟: از آنجا که به احتمال زیاد از یک سیستم فایل ژورنال دار استفاده می کنید ، no را در اینجا بپذیرید.
• شبکه های محلی: لیستی از شبکه هایی است که سرور مجازی ایمیل شما برای تقویت پیام های آن ها پیکربندی شده است. پیش فرض برای بیشتر سناریوها کار خواهد کرد. اگر می خواهید آن را تغییر دهید ، مطمئن شوید که از نظر دامنه شبکه بسیار محدود باشد.
• محدودیت اندازه صندوق پستی: این می تواند برای محدود کردن اندازه پیام ها استفاده شود. تنظیم آن بر روی 0 محدودیت اندازه را غیرفعال می کند.
• کاراکتر پسوند آدرس محلی: کاراکتری است که می تواند برای جدا کردن قسمت معمول آدرس از یک پسوند (برای ایجاد نام های مستعار پویا استفاده شود) استفاده می شود. به طور پیش فرض ، + برای این آموزش کار خواهد کرد.
• پروتکل های اینترنت برای استفاده: انتخاب کنید آیا نسخه IP را که Postfix از آن پشتیبانی می کند محدود کنید یا خیر. برای اهداف این آموزش ، all را انتخاب کنید.
برای بیان صریح تر ، این تنظیمات مورد استفاده در این راهنماست:
نوع کلی پیکربندی ایمیل: سایت اینترنتی
نام ایمیل سیستم: example.com (نه mail.example.com)
گیرنده ایمیل Root و postmaster: نام کاربری حساب لینوکس اولیه (در این مثال ها sammy )
سایر مقاصد برای پذیرش ایمیل: $myhostname, example.com, mail.example.com, localhost.example.com,localhost
اجبار به روزرسانی های همزمان در صف ایمیل : خیر
شبکه های محلی: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
محدودیت اندازه صندوق پستی: 0
کاراکتر پسوند آدرس محلی: +
پروتکل های اینترنت برای استفاده:al

توجه: اگر نیاز به بازگشت برای تغییر این تنظیمات داشتید ، می توانید با تایپ کردن دستور زیر این کار را انجام دهید:
$ sudo dpkg-reconfigure postfix

اعلان ها با پاسخ های قبلی شما ، از قبل پر می شوند.
پس از اتمام مراحل نصب ، می توانید چند نسخه به روزرسانی پیکربندی Postfix خود را انجام دهید.
مرحله 2 – تغییر پیکربندی Postfix
اکنون می توانید برخی تنظیمات را انجام دهید که روند نصب بسته از شما نخواسته بود. بسیاری از تنظیمات پیکربندی Postfix در فایل /etc/postfix/main.cf تعریف شده اند. به جای ویرایش مستقیم این فایل ، می توانید از دستور postconf Postfix برای پرس و جو یا تعیین تنظیمات پیکربندی استفاده کنید.
برای شروع ، لوکیشن را برای صندوق پستی کاربر غیر ریشه اوبونتو تنظیم کنید. در این راهنما ، ما از قالب Maildir استفاده خواهیم کرد ، که پیام ها را به فایل های جداگانه که بر اساس عملکرد کاربر بین دایرکتوری ها منتقل می شوند ، جدا می کند. گزینه دیگری که در این راهنما پوشش داده نشده است ، فرمت mbox است که تمام پیام ها را در یک فایل واحد ذخیره می کند.
متغیر home_mailbox را روی Maildir/ تنظیم کنید. سپس ، یک ساختار دایرکتوری تحت این نام در دیرکتوری هوم کاربر خود ایجاد خواهید کرد. home_mailbox را با تایپ کردن دستور زیر پیکربندی کنید:
$ sudo postconf -e ‘home_mailbox= Maildir/’

در مرحله بعدی ، مکان جدول virtual_alias_maps را تنظیم کنید ، که نقشه های ایمیل دلخواه را به حساب های سیستم لینوکس نگاشت می کند. دستور زیر را اجرا کنید ، که نقشه جدول را در یک فایل پایگاه داده هش به نام / etc / postfix / virtual نگاشت می کند:
$ sudo postconf -e ‘virtual_alias_maps= hash:/etc/postfix/virtual’

اکنون که مکان فایل نقشه های مجازی را در فایل main.cfخود تعریف کرده اید ، می توانید خود این فایل را ایجاد کرده و نگاشت حساب های ایمیل را به حساب کاربری در سیستم لینوکس خود شروع کنید. فایل را با ویرایشگر متن مورد نظر خود ایجاد کنید. در این مثال ، ما از nano استفاده خواهیم کرد:
$ sudo nano /etc/postfix/virtual

آدرسهایی را که مایلید ایمیل را برای آن بپذیرید ، لیست کنید و به دنبال آن فضای سفید و کاربر لینوکس را که دوست دارید ایمیل را به ان تحویل دهید.
به عنوان مثال ، اگر می خواهید ایمیل را در آدرس contact@example.com و admin@example.com بپذیرید و دوست دارید آن ایمیل ها را به کاربر sammy Linux تحویل دهید ، می توانید فایل خود را مانند این تنظیم کنید:
/etc/postfix/virtual
contact@example.com sammy
admin@example.com sammy

پس از نگاشت همه آدرس ها به حساب های سرور مجازی مناسب ، فایل را ذخیره کنید و ببندید. اگر از nano استفاده کرده اید ، این کار را با فشار دادن CTRL + X ، Y ، سپس ENTER انجام دهید.
نگاشت را با تایپ این دستور اعمال کنید:
$ sudo postmap /etc/postfix/virtual
فرایند Postfix را مجدداً راه اندازی کنید تا مطمئن شوید که تمام تغییرات شما اعمال شده است:
$ sudo systemctl restart postfix

با فرض اینکه از راهنمای ستاپ اولیه پیروی کرده اید ، فایروال را با UFW پیکربندی نموده اید. این فایروال به طور پیش فرض اتصالات خارجی را به سرویس های روی سرور مجازی شما مسدود می کند مگر اینکه این اتصالات به صراحت مجاز باشند ، بنابراین باید یک قانون فایروال اضافه کنید تا استثنائی برای Postfix داشته باشید.
می توانید با تایپ دستور زیر، اجازه اتصالات به سرویس را بدهید:
$ sudo ufw allow Postfix

با این کار ، Postfix پیکربندی شده و آماده پذیرش اتصالات خارجی است. با این حال ، شما هنوز آمادگی آزمایش آن را با یک سرویس گیرنده ایمیل ندارید. قبل از اینکه بتوانید کلاینت را نصب کنید و از آن برای تعامل با ایمیل ارسال شده به سرور مجازی خود استفاده کنید ، لازم است چند تغییر در تنظیمات سرور مجازی اوبونتو انجام دهید.
مرحله 3 – نصب کلاینت پست الکترونیکی و اولیه سازی ساختار Maildir
به منظور تعامل با ایمیل تحویل داده شده ، این مرحله شما را با روند نصب بسته s-s-nail آشنا می کند. یک متغیر پر از ویژگی از کلاینت xmail BSD است که می تواند فرمت Maildir را به درستی اداره کند.
اما قبل از نصب کلاینت ، منطقی است که مطمئن شوید متغیر محیط MAIL شما به درستی تنظیم شده است. s-nailبه دنبال این متغیر است تا بفهمد کجا می تواند ایمیل را برای کاربر شما پیدا کند.
برای اطمینان از تنظیم متغیر MAIL بدون توجه به نحوه دسترسی به حساب کاربری خود – خواه از طریق ssh، su، su – یا sudo، به عنوان مثال – باید متغیر را در فایل /etc/bash.bashrc تنظیم کرده و اضافه کنید. آن را به فایلی در /etc/profile.d اضافه کنید تا مطمئن شوید که به طور پیش فرض برای همه کاربران تنظیم شده است.
برای افزودن متغیر به این فایل ها ، دستور زیر را تایپ کنید:
$ echo ‘export MAIL=~/Maildir’ | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

برای خواندن متغیر در بخش فعلی ، فایل /etc/profile.d/mail.sh را وارد کنید:
$ source /etc/profile.d/mail.sh

با کامل شدن آن ، کلاینت ایمیل s-nail را با APT نصب کنید:
$ sudo apt install s-nail

قبل از اجرای کلاینت ، چند تنظیمات وجود دارد که باید انجام دهید. فایل /etc/s-nail.rc را در ویرایشگر خود باز کنید:
$ sudo nano /etc/s-nail.rc

در انتهای فایل گزینه های زیر را اضافه کنید:
/etc/s-nail.rc
. . .
set emptystart
set folder=Maildir
set record=+sent

در اینجا عملکرد این خطوط آورده شده است:
set emptystart به کلاینت اجازه می دهد حتی با یک صندوق ورودی خالی باز شود
set folder=Maildir دیرکت.ری Maildir را روی متغیر folder داخلی تنظیم می کند
set record=+sent یک فایل mbox ارسال شده را برای ذخیره ایمیل ارسال شده در هر دیرکتوری به عنوان متغیر folder  ایجاد می کند ، در این حالت Maildir
پس از اتمام فایل را ذخیره کنید و ببندید. اکنون آماده هستید تا ساختار Maildir سیستم را تنظیم کنید.
یک راه سریع برای ایجاد ساختار Maildir در دیرکتوری هوم شما این است که به خودتان یک ایمیل با دستور s-nail ارسال کنید. از آنجا که فایل ارسال شده فقط پس از ایجاد Maildir در دسترس خواهد بود ، شما باید نوشتن آن را برای این ایمیل اولیه غیرفعال کنید. این کار را با عبور از گزینه -Snorecord انجام دهید.
با اتصال یک رشته به دستور s-nail ، ایمیل را ارسال کنید. این دستور را تنظیم کنید تا کاربر Linux خود را به عنوان گیرنده علامت گذاری کند:
$ echo ‘init’ | s-nail -s ‘init’ -Snorecord sammy

توجه: ممکن است پاسخ زیر را دریافت کنید:
Output
Can’t canonicalize “/home/sammy/Maildir”
طبیعی است و ممکن است هنگام ارسال این پیام اول ظاهر شود.

با جستجوی دیرکتوری ~ / Maildir خود می توانید مطمئن شوید که دیرکتوری ایجاد شده است:
$ ls -R ~/Maildir

خواهید دید که ساختار دایرکتوری ایجاد شده است و یک فایل پیام جدید در دیرکتوری ~ / Maildir / new موجود است:
Output
/home/sammy/Maildir/:
cur new tmp

/home/sammy/Maildir/cur:

/home/sammy/Maildir/new:
1463177269.Vfd01I40e4dM691221.mail.example.com

/home/sammy/Maildir/tmp:

اکنون که ساختار دایرکتوری ایجاد شده است ، می توانید با مشاهده پیام init که ارسال کرده اید و ارسال یک پیام به آدرس ایمیل خراجی، کلاینت s-nail s را امتحان کنید.
مرحله 5 – آزمایش کلاینت
برای باز کردن کلاینت ، دستور s-nail را اجرا کنید:
$ s-nail

در کنسول خود ، یک صندوق ورودی ابتدایی با پیام init  خواهید دید:
Output
s-nail version v14.9.15. Type `?’ for help
“/home/sammy/Maildir”: 1 message 1 new
>N 1 sammy@example.com 2020-05-19 15:40 14/392 init
برای نمایش پیام، ENTER را فشار دهید:
Output
[– Message 1 — 14 lines, 369 bytes –]:
From sammy@example.com Tue May 19 15:40:48 2020
Date: Tue, 19 May 2020 15:40:48 +0000
To: sammy@example.com
Subject: init
Message-Id: <20160513220749.A278F228D9@mail.example.com>
From: sammy@example.com

init

می توانید با تایپ h و سپس ENTER به لیست پیام ها برگردید :
? h

Output
>R 1 sammy@example.com 2020-05-19 15:40 14/392 init

توجه کنید که پیام اکنون حالت R دارد ، نشان می دهد که خوانده شده است.
از آنجا که این پیام چندان مفید نیست ، می توانید با فشار دادن d آن را حذف کرده و سپس ENTER بزنید.
? d

برای بازگشت به ترمینال ، q و سپس ENTER را بزنید:
? q

به عنوان یک آزمایش نهایی ، بررسی کنید که آیا s-nail قادر به ارسال صحیح پیام های ایمیل است یا خیر. برای این کار می توانید همانند پیام init  که در مرحله قبل برای خود ارسال کردید ، محتویات یک فایل متنی را درون فرایند s-nail قرار دهید.
با نوشتن پیام آزمایشی در ویرایشگر متن شروع کنید:
$ nano ~/test_message

در داخل ، متنی را که می خواهید ارسال کنید ، وارد کنید:
~/test_message
Hello,

This is a test. Please confirm receipt!

فایل را پس از نوشتن پیام خود ذخیره کنید و ببندید.
سپس از دستور cat برای ارسال پیام به روند s-nail استفاده کنید. می توانید با مثال زیر این کار را انجام دهید:
-s: خط موضوع پیام ایمیل را مشخص می کند
-r: تغییر اختیاری در قسمت “from” ایمیل. به طور پیش فرض ، کاربر لینوکس که با آن وارد شده اید برای پر کردن این فیلد استفاده می شود. گزینه -r به شما امکان می دهد این مسئله را با یک آدرس معتبر ، مانند یکی از مواردی که در فایل / etc / postfix / virtual تعریف کرده اید ، پر کنید. برای نشان دادن ، دستور زیر از contact@example.com استفاده می کند
همچنین ، حتما user@email.com را به یک آدرس ایمیل معتبر که به آن دسترسی دارید تغییر دهید:
$ cat ~/test_message | s-nail -s ‘Test email subject line’ -r contact@example.com user@email.com

سپس ، برای آدرس ایمیلی که پیام را برای آن ارسال کرده اید ، به صندوق ورودی بروید. پیام خود را تقریباً فوراً خواهید دید.
توجه: اگر پیام در صندوق ورودی شما نیست ، ممکن است به پوشه Spam تحویل داده شده باشد.
می توانید پیام های ارسالی خود را در کلاینت s-nail خود مشاهده کنید. دوباره کلاینت تعاملی را شروع کنید:
$ s-nail

از کلاینت ایمیل ، پیام های ارسالی خود را با تایپ کردن این دستور مشاهده کنید:
? file +sent

خروجی مانند این را خواهید دید:
Output
+[/home/sammy/Maildir/]sent: 1 message 1 new
?N 1 contact@example.com 2020-05-19 15:47 12/297 Test email subject line

می توانید ایمیل ارسال شده را با استفاده از همان دستوراتی که برای ایمیل های ورودی استفاده می کنید مدیریت کنید.
نتیجه
اکنون Postfix را در سرور مجازی Ubuntu 20.04 خود تنظیم کرده اید. مدیریت سرور مجازی های ایمیل می تواند یک کار سخت برای مدیران جدید سیستم باشد ، اما با این پیکربندی ، باید عملکرد ایمیل MTA کافی را برای شروع کار خود داشته باشید.

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

چگونه به Ubuntu 20.04 Focal Fossa ارتقا دهید

نحوه ایجاد نماها (Views) برای توسعه وب Django

نصب Mount NFS در اوبونتو 20.04

نحوه توسعه برنامه ها در Kubernetes با Okteto

نصب و پیکربندی Laravel با Nginx در اوبونتو 20.04

نحوه تنظیم Jupyter Notebook با پایتون در Ubuntu 20.04

نصب Jitsi Meet در Debian 10

نصب و پیکربندی Nextcloud در اوبونتو 20.04

نصب و پیکربندی Ansible در اوبونتو 20.04

مقدمه ای بر مدیریت پیکربندی با Ansible

نحوه نصب R روی اوبونتو 20.04

ارائه برنامه های Flask با uWSGI و Nginx در اوبونتو 18.04

نصب و پیکربندی Postfix در اوبونتو 20.04

 

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان – 

 

برچسب‌ها: