server server .

server

ايجاد يك برنامه Django و اتصال آن به يك بانك اطلاعاتي

به خاطر چارچوب وب آزاد و منبع باز كه در پايتون نوشته شده است ، Django امكان مقياس پذيري ، قابليت استفاده مجدد و توسعه سريع را فراهم مي آورد.
در اين آموزش مي بينيد كه چگونه پايه و اساس اوليه يك سايت وبلاگي با اتصال به يك پايگاه داده MySQL را تنظيم كنيد. اين امر شامل ايجاد ساختار اسكلت برنامه وبلاگ با استفاده از django-admin ، ايجاد بانك اطلاعاتي MySQL و سپس اتصال برنامه وب به ديتابيس خواهد بود.
توجه داشته باشيد كه اين امر محيط توسعه را براي شما فراهم مي كند تا بتوانيد در برنامه وبلاگ خود كار كنيد ، اما شما بايد قبل از اينكه وبلاگ خود را به صورت زنده در اينترنت قرار دهيد ، كارهاي ديگري انجام دهيد ، نام هاي دامنه را تعيين و لايه هاي امنيتي بيشتري اضافه كنيد.
پيش نيازها
بايد يك محيط Python در سرور مجازي خود تنظيم كنيد. در اين آموزش ، ما از سرور مجازي اوبونتو 20.04 استفاده خواهيم كرد ، اما از آنجا كه تمركز اين آموزش بر روي Django است ، اين اصول بايد براي ساير سيستم عامل ها نيز كاربرد داشته باشد.
براي راه اندازي پايتون ، آموزش نحوه نصب پايتون 3 و تنظيم يك محيط برنامه نويسي را در سرور مجازي اوبونتو 20.04 دنبال كنيد.
با قرارگيري پايتون در جاي خود ، مي توانيم به سراغ ايجاد برنامه خود برويم.
مرحله 1 – MySQL را نصب كنيد
ما از MySQL به عنوان بانك اطلاعاتي خود استفاده خواهيم كرد. ممكن است شما بخواهيد از بانك اطلاعاتي ديگري استفاده كنيد يا از قبل يك پايگاه داده نصب كرده باشيد ، در اين صورت بايد اين مرحله را رد كنيد.
براي نصب MySQL در سرور مجازي Ubuntu 20.04 ، دستور زير را تايپ كنيد:
⦁ $ sudo apt install mysql-server

بايد خروجي زير را دريافت كنيد:
Output
● mysql.service – MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-05-07 20:22:51 UTC; 3min 7s ago
Main PID: 2052 (mysqld)
Status: “Server is operational”
Tasks: 38 (limit: 1137)
Memory: 317.4M
CGroup: /system.slice/mysql.service
└─2052 /usr/sbin/mysqld

اطمينان حاصل كنيد كه بازخورد دريافتي بيانگر فعال بودن سرور مجازي MySQL شماست. پس از تاييد اين موضوع ، مي توانيد اين آموزش را ادامه دهيد.
مرحله 2 – اسكلت اوليه پروژه Django را ايجاد كنيد
به منظور ايجاد زمينه كاري براي برنامه خود ، بايد اسكلت پروژه را با استفاده از دستور django-admin توليد كنيم. اين پروژه توليد شده پايه و اساس برنامه وبلاگ ما خواهد بود.
به دايركتوري برويد كه مي خواهيد برنامه وبلاگ خود را بسازيد. در اين ديركتوري ، يك ديركتوري خاص براي ساخت برنامه ايجاد خواهيم كرد. براي برنامه اي كه در حال ساخت هستيد ، نام ديركتوري را چيزي معني دار در نظر بگيريد. به عنوان نمونه ، ما آن را my_blog_app مي ناميم.
⦁ $ mkdir my_blog_app

اكنون به پوشه تازه ايجاد شده برويد:
⦁ $ cd my_blog_app

در مرحله بعد ، وارد محيط برنامه نويسي شويد كه مي خواهيد براي كار در Django استفاده كنيد. مي توانيد از يك ديركتوري موجود استفاده كنيد يا يك ديركتوري جديد ايجاد كنيد. ما ديركتوري خود را env مي ناميم ، اما شما بايد از اسمي استفاده كنيد كه براي شما معني دارد. پس از ايجاد ، مي توانيد آن را فعال كنيد.
⦁ $ python3 -m venv env

⦁ . env/bin/activate
اگر قبلا Django را نصب نكرده ايد ، آن را در اين محيط نصب كنيد:
⦁ (env) Sammy@ubuntu:$ pip install django

در حالي كه در ديركتوري my_blog_app هستيم، با اجراي دستور زير ، پروژه اي را توليد مي كنيم:
⦁ (env) Sammy@ubuntu:$ django-admin startproject blog

با رفتن به دايركتوري blog/ تأييد كنيد كه كار كرده است:
⦁ (env) Sammy@ubuntu:$ cd blog

دايركتوريblog/ بايد پس از اجراي دستور قبلي django-admin در دايركتوري فعلي ، ~ / my_blog_app / ايجاد شود.
براي تأييد اينكه موارد لازم ايجاد شده است ، ls را اجرا كنيد. بايد يك ديركتوري وبلاگ و يك فايل management.py وجود داشته باشد:
Output
blog manage.py

اكنون كه دايركتوري پروژه را ايجاد كرده ايد كه شامل شروع اوليه برنامه وبلاگ شماست ، مي توانيم به مرحله بعدي برويم.
مرحله 3 – تنظيمات را ويرايش كنيد
از آنجا كه ما پروژه اسكلت را توليد كرده ايم ، اكنون يك فايل settings.py داريم.
براي اينكه وبلاگ ما زمان صحيحي با ناحيه ما ارتباط داشته باشد ، فايل settings.py را ويرايش مي كنيم تا از منطقه زماني فعلي شما استفاده كند. مي توانيد از اين ليست مناطق زماني به عنوان مرجع استفاده كنيد. به عنوان مثال ، ما از وقت America/New_York استفاده خواهيم كرد.
مي خواهيم فايل را ويرايش كنيم ، بنابراين بياييد مسير فايل را با ويرايشگر متن مورد نظر خود باز كنيم. در اينجا ، ما از nano استفاده خواهيم كرد.
⦁ (env) Sammy@ubuntu:$ nano ~/my_blog_app/blog/blog/settings.py

از آنجا كه ما در حال ويرايش قسمت TIME_ZONE هستيم ، مانند زير به قسمت پايين فايل خواهيم رفت.
settings.py

# Internationalization
# https://docs.djangoproject.com/en/2.0/topics/i18n/

LANGUAGE_CODE = ‘en-us’

TIME_ZONE = ‘UTC’

USE_I18N = True

USE_L10N = True

USE_TZ = True

ما مي خواهيم خط TIME_ZONE را طوري تغيير دهيم كه در منطقه زماني فعلي شما تنظيم شود. در اين مثال از منطقه زماني نيويورك استفاده خواهيم كرد:
settings.py

# Internationalization
# https://docs.djangoproject.com/en/2.0/topics/i18n/

LANGUAGE_CODE = ‘en-us’

TIME_ZONE = ‘America/New_York’

USE_I18N = True

بياييد فايل را باز نگه داريم زيرا بايد مسيري را براي فايل هاي استاتيك خود اضافه كنيم. فايلهايي كه از برنامه وب Django شما دريافت مي شوند به فايل هاي استاتيك شناخته مي شوند. اين فايل ها مي تواند شامل تمام فايل هاي لازم براي ارائه كامل صفحه وب از جمله JavaScript ، CSS و تصاوير باشد.
به انتهاي فايل تنظيمات برويد و مطابق شكل زير STATIC_ROOT را اضافه كنيد:
settings.py

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.0/howto/static-files/

STATIC_URL = ‘/static/’
STATIC_ROOT = os.path.join(BASE_DIR, ‘static’)

اكنون كه منطقه زماني و مسير فايل هاي استاتيك را اضافه كرده ايم ، بايد IP بعدي خود را به ليست هاست هاي مجاز اضافه كنيم. به خط فايل settings.pyبرويد. جايي كه ALLOWED_HOSTS نوشته شده، در قسمت بالاي فايل settings.py خواهد بود.
settings.py

# SECURITY WARNING: don’t run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = [‘your server IP address’]

# Application definition

آدرس IP سرور مجازي خود را بين براكت و علامت تك نقل قول اضافه كنيد.
پس از رضايت از تغييراتي كه ايجاد كرده ايد ، فايل را ذخيره كنيد. اگر در حال استفاده از nano هستيد ، مي توانيد اين كار را با فشار دادن CTRL + X و سپس y براي تأييد تغييرات انجام دهيد.
شما فايل settings.pyخود را با موفقيت ويرايش كرده ايد تا منطقه زماني مناسب پيكربندي شده باشد. همچنين مسير فايل هاي استاتيك خود را اضافه كرده ايد و آدرس IP را براي برنامه خود ALLOWED_HOST قرار داده ايد.
در آخر ، اجازه دهيد يك كاربر ادمين ايجاد كنيم تا بتوانيد از رابط مدير Djano استفاده كنيد. بياييد اين كار را با دستور Creatuperuser انجام دهيم:
⦁ (me_env) $ python manage.py createsuperuser

از شما يك نام كاربري ، يك آدرس ايميل و رمز عبور براي كاربر خواسته مي شود.
در اين مرحله مي توانيم به تنظيم اتصال بانك اطلاعاتي خود بپردازيم.
مرحله 4 – اتصال دهنده پايگاه داده MySQL را نصب كنيد
براي استفاده از MySQL با پروژه خود ، به يك كتابخانه اتصال دهنده پايگاه داده Python 3 كه سازگار با Django است ، نياز خواهيم داشت. بنابراين ، ما اتصال ديتابيس را نصب خواهيم كرد ، mysqlclient ، كه يك نسخه forked از MySQLdb است.
ابتدا اطمينان حاصل كنيد كه python3-dev را نصب كرده ايد. با اجراي دستور زير مي توانيد python3-dev را نصب كنيد:
⦁ (env) Sammy@ubuntu:$ sudo apt install python3-dev

اكنون مي توانيم هدرها و كتابخانه هاي توسعه Python و MySQL را نصب كنيم:
⦁ (env) Sammy@ubuntu:$ sudo apt install python3-dev libmysqlclient-dev default-libmysqlclient-dev

براي پذيرش نصب ، y و ENTER را فشار دهيد.
پس از اتمام نصب ، از pip3 براي نصب كتابخانه mysqlclient از PyPi استفاده خواهيم كرد. از آنجا كه نسخه pip به pip3 اشاره مي كند ، مي توانيم از pip استفاده كنيم.
⦁ (env) Sammy@ubuntu:$ pip install mysqlclient

خروجي مشابه اين را دريافت خواهيد كرد ، تأييد ميكند كه به درستي در حال نصب است:
successfully installed mysqlclient

Successfully installed mysqlclient-1.4.6
اكنون با استفاده از كتابخانه اتصال دهنده mysqlclient PyPi با موفقيت MySQL را نصب كرديم.
مرحله 5 – ايجاد بانك اطلاعاتي
اكنون كه اسكلت برنامه Django شما راه اندازي شده است و mysqlclient و mysql-server نصب شده اند ، بايد براي سازگاري MySQL ، backend Django را پيكربندي كنيم.
به صورت ريشه MySQL با دستور زير وارد شويد:
⦁ (env) Sammy@ubuntu:$ sudo mysql -u root

وقتي اعلان تغيير مي كند مي دانيم كه در سرور مجازي MySQL قرار داريم:
Mysql>
بگذاريد پايگاه داده هاي فعلي را با دستور زير بررسي كنيم:
⦁ Mysql> SHOW DATABASES;

با فرض اينكه هنوز هيچ پايگاه داده اي ايجاد نكرده ايد ، خروجي مشابه زير را مشاهده خواهيد كرد:
Output
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| sys |
+——————–+
4 rows in set (0.00 sec)

توجه: اگر هنگام تلاش براي اتصال با خطايي مواجه شديد ، تأييد كنيد كه رمزعبورتان درست است و MySQL را به درستي نصب كرده ايد. در غير اينصورت آموزش نحوه نصب و پيكربندي MySQL را دوباره مرور كنيد.

به طور پيش فرض ، شما 4 پايگاه داده را تاكنون ايجاد كرده ايد ، data_schema ، MySQL ، performance_schema و sys. نيازي به اتصال به اين موارد نداريم ، زيرا حاوي اطلاعاتي مهم براي خود سرور مجازي MySQL هستند.
اكنون ، كه با موفقيت به سرور مجازي MySQL خود وارد شده ايد ، بانك اطلاعاتي اوليه را ايجاد مي كنيم كه داده ها را براي وبلاگ مان نگه مي دارد.
براي ايجاد يك پايگاه داده در MySQL ، دستور زير را با استفاده از يك اسم معني دار براي پايگاه داده خود اجرا كنيد:
⦁ Mysql> CREATE DATABASE blog_data;

پس از ايجاد موفقيت آميز پايگاه داده ، خروجي زير را مشاهده خواهيد كرد:
Output
Query OK, 1 row affected (0.00 sec)
توجه: اگر خروجي زير را مشاهده مي كنيد:
database creation failed
ERROR 1007 (HY000): Can’t create database blog_data; database exists

يعني ، همانطور كه خطا بيان مي كند ، يك بانك اطلاعاتي با نام blog_data از قبل وجود دارد.
و اگر خطاي MySQL زير را مشاهده كرديد ، به اين معني است كه يك خطاي نحوي MySQL وجود دارد. بررسي كنيد كه فرمان را دقيقاً مطابق با اين آموزش وارد كرده ايد.
database creation failed
ERROR 1064 (42000): You have an error in your SQL syntax;

سپس ، تأييد كنيد كه اكنون پايگاه داده در ليست پايگاههاي داده موجود شما قرار دارد:
⦁ $ SHOW DATABASES;

بايد ببينيد كه پايگاه داده blog_data در ميان پايگاه داده هاي موجود در خروجي است:
output
+——————–+
| Database |
+——————–+
| information_schema |
| blog_data |
| mysql |
| performance_schema |
| sys |
+——————–+
5 rows in set (0.00 sec)

در مرحله بعد ، قصد داريم يك حساب كاربري MySQL جداگانه ايجاد كنيم كه ما بطور انحصاري براي كار با بانك اطلاعات جديد خود استفاده خواهيم كرد. ايجاد بانكهاي اطلاعاتي و حسابهاي خاص مي تواند ما را از منظر مديريتي و امنيتي پشتيباني كند. ما در اين راهنما از نام djangouser استفاده خواهيم كرد ، اما شما ميتوانيد از هر نامي استفاده كنيد.
ما قصد داريم اين حساب را ايجاد كنيم ، رمزعبور راتنظيم كنيم و به ديتابيس ايجاد شده دسترسي پيدا كنيم. مي توانيم با تايپ دستور زير اين كار را انجام دهيم. به ياد داشته باشيد يك رمزعبور قوي براي كاربر پايگاه داده خود در جايي كه password را داريم انتخاب كنيد:
⦁ Mysql> CREATE USER ‘djangouser’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’;

در مرحله بعد ، به ديتابيس اطلاع دهيد كه djangouser ما بايد دسترسي كامل به ديتابيسي كه ايجاد ميكنيم داشته باشد:
⦁ Mysql> GRANT ALL ON blog_data.* TO ‘djangouser’@’%’;

اكنون يك بانك اطلاعاتي و يك حساب كاربري داريد كه هركدام به طور خاص براي Django ساخته شده است. بايد امتيازات را flush كنيم تا نمونه فعلي MySQL از تغييرات اخير ما اطلاع يابد:
⦁ Mysql> FLUSH PRIVILEGES;

با اتمام آن ، مي توانيد با وارد كردن EXIT يا با فشار دادن CTRL + D از سرور مجازي MySQL خارج شويد.
مرحله 6 – اتصال پايگاه داده MySQL را به برنامه خود اضافه كنيد
سرانجام ، اعتبارات اتصال بانك اطلاعاتي را به برنامه Django شما اضافه خواهيم كرد.
توجه: لازم است به ياد داشته باشيد كه تنظيمات اتصال ، مطابق مستندات Django ، به ترتيب زير استفاده مي شوند:
OPTIONS
– NAME, USER, PASSWORD, HOST, PORT
– MySQL option files.
بياييد تغييرات لازم را براي اتصال برنامه وبلاگ Django به MySQL ايجاد كنيم.
به فايل settings.py برويد و خطوط فعلي DATABASES را با موارد زير جايگزين كنيد. ما ديكشنري پايگاه داده شما را پيكربندي خواهيم كرد تا بداند كه از MySQL به عنوان backend ديتابيس شما استفاده كند و از چه فايلي براي خواندن اعتبارات اتصال بانك اطلاعاتي شما استفاده كند.
⦁ (env) Sammy@ubuntu:$ nano ~/my_blog_app/blog/blog/settings.py

خطوط موجود را در آنجا پاك كرده و آن را با خطوط زير جايگزين كنيد ، حتماً تعداد مناسب پرانتز را حفظ كنيد.
settings.py

# Database
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases

DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘OPTIONS’: {
‘read_default_file’: ‘/etc/mysql/my.cnf’,
},
}
}

فايل را ذخيره كنيد و ببنديد.
سپس ، اجازه دهيد فايل پيكربندي را ويرايش كنيم تا اعتبارات MySQL شما را داشته باشد. براي ويرايش فايل و افزودن اطلاعات زير از nano به عنوان sudo استفاده كنيد:
⦁ (env) Sammy@ubuntu:$ sudo nano /etc/mysql/my.cnf

خطوط زير را اضافه كنيد و اطلاعات مربوط به خود را درج كنيد.
my.cnf

[client]
database = blog_data
user = djangouser
password = your_actual_password
default-character-set = utf8

توجه خواهيد كرد كه utf8 به عنوان رمزگذاري پيش فرض تنظيم شده است ، كه يك روش معمول براي رمزگذاري داده هاي تك كد در MySQL است. وقتي مطمئن شديد كه جزئيات شما صحيح است ، فايل را ذخيره كنيد و ببنديد.
پس از ويرايش فايل ، لازم است كه MySQL را مجدداً راه اندازي كنيم تا تغييرات به مرحله اجرا درآيند.
⦁ (env) Sammy@ubuntu:$ sudo systemctl daemon-reload

⦁ (env) Sammy@ubuntu:$ sudo systemctl restart mysql

لطفاً توجه داشته باشيد كه راه اندازي مجدد MySQL چند ثانيه طول مي كشد ، بنابراين لطفاً صبور باشيد.
مرحله 7 – اتصال MySQL به برنامه را آزمايش كنيد
لازم است تأييد كنيم كه تنظيمات موجود در Django سرور مجازي MySQL را به درستي تشخيص مي دهد. ما مي توانيم اين كار را با اجراي سرور مجازي انجام دهيم. در صورت عدم موفقيت ، اين بدان معني است كه اتصال به درستي كار نمي كند. در غير اين صورت ، اتصال معتبر است.
بياييد ابتدا تغييرات خود را در django با دستور زير اعمال كنيم:
⦁ (env) Sammy@ubuntu:$ python manage.py migrate

بايد به ديركتوري زير برويم:
⦁ (env) Sammy@ubuntu:$ cd ~/my_blog_app/blog/

از آنجا ، مي توانيم دستور زير را اجرا كنيم:
⦁ (env) Sammy@ubuntu:$ python manage.py runserver your-server-ip:8000

اكنون خروجي مشابه زير را مشاهده خواهيد كرد:
Output
Performing system checks…

System check identified no issues (0 silenced).

You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run ‘python manage.py migrate’ to apply them.

January 4, 2018 – 15:45:39
Django version 2.0.1, using settings ‘blog.settings’
Starting development server at http://your-server-ip:8000/
Quit the server with CONTROL-C.

توجه: در خروجي خواهيد ديد كه جابه جايي هاي بي رويه داشته ايد. اما نگران نباشيد ، در آموزش هاي بعدي به اين موضوع پرداخته مي شود. اين مسئله بر تنظيم اوليه برنامه ما تأثير نمي گذارد. لطفا پيش برويد.

دستورالعمل هاي خروجي را دنبال كنيد و پيوند پيشنهادي ، http: // your-server-ip: 8000 / را دنبال كنيد تا برنامه وب خود را مشاهده كنيد و تأييد كنيد كه به درستي كار مي كند.

اگر صفحه شما شبيه به تصوير بالا ظاهر مي شود ، برنامه Django شما مطابق آنچه انتظار مي رود كار مي كند!
هنگامي كه آزمايش برنامه تان به پايان رسيد ، مي توانيد CTRL + C را فشار دهيد تا دستور Runnerver متوقف شود. با اين كار شما به محيط برنامه نويسي خود باز خواهيد گشت.
هنگامي كه آماده ترك محيط Python خود هستيد ، مي توانيد دستور غيرفعال كردن را اجرا كنيد:
⦁ (env) Sammy@ubuntu:$ deactivate

غيرفعال كردن محيط برنامه نويسي شما را به سمت فرمان نهايي ترمينال باز مي گرداند.
نتيجه
در اين آموزش پايه و اساس اوليه وبلاگ Django خود را ايجاد كرده ايد. MySQL را نصب و پيكربندي كرده و به backend Django وصل كرده ايد. همچنين برخي از اطلاعات مهم مانند TIME_ZONE و ALLOWED_HOSTS را به فايل تنظيمات برنامه خود اضافه كرده ايد.
اكنون كه اين تنظيمات و پيكربندي هاي اوليه كامل شده است ، مي توانيد شروع به توسعه مدل ها و اعمال برنامه هاي جابه جايي در برنامه Django خود كنيد.

 

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

نصب و پيكربندي Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

نظارت بر سلامت سرور با Checkmk در اوبونتو – اجراي چند نسخه PHP بر روي يك سرور

نصب Nginx، MySQL، PHP در CentOS 7 –  نصب و پيكربندي Elasticsearch در اوبونتو 18.04

راه اندازي سرور اوليه با اوبونتو 20.04 – تنظيم كليدهاي SSH در Ubuntu 20.04

نصب و استفاده از PostgreSQL در اوبونتو 20.0 – نحوه نصب MySQL در اوبونتو 20.04

نصب Python 3 روي سرور Ubuntu 18.04 –  نحوه نصب Python 3 روي سرور Ubuntu 20.04

نصب Linux،Apache،MySQL،PHP LAMP در اوبونتو 20.04 –  نصب وب سرور Apache در CentOS 8

نحوه نصب Drupal با Docker Compose –  نحوه نصب Nginx در اوبونتو 20.04

7 مورد از اقدامات امنيتي براي محافظت از سرورهاي شما –  نحوه نصب و ايمن سازي Redis در اوبونتو 20.04

نحوه نصب و ايمن سازي Redis در اوبونتو 18.04 – اضافه كردن فضاي Swap در اوبونتو 20.04

چگونه مي توان فايروال را با UFW در اوبونتو 20.04 تنظيم كرد – نظارت بر اطلاعيه و مسير BGP با BGPalerter اوبونتو 18.04

نصب و ايمن سازي phpMyAdmin در اوبونتو 20.04  –  نصب و استفاده از Composer در اوبونتو 20.04

ريست كردن رمز ورود ريشه MySQL يا MariaDB –  استفاده از نوع داده MySQL BLOB براي ذخيره تصاوير

نصب Nginx در اوبونتو 18.04 – نصب توزيع Anaconda پايتون در اوبونتو 20.04

نحوه نصب جاوا با Apt در اوبونتو 18.04 –  نحوه نصب Django و تنظيم محيط توسعه در اوبونتو 16.04

نصب جنگو و تنظيم محيط توسعه در اوبونتو 20.04 – نحوه ايجاد سرور Minecraft در اوبونتو 18.04

نحوه راه اندازي يك پروژه Node با Typescript –  نحوه نصب و پيكربندي VNC در اوبونتو 18.04

ايجاد يك برنامه Django و اتصال آن به يك بانك اطلاعاتي – نصب و پيكربندي VNC در اوبونتو 20.04

نصب MariaDB در اوبونتو 20.04  –  فعال سازي و اتصال رابط كاربري Django

تنظيم پلتفرم Cloud IDE كد سرور را در اوبونتو 18.04 – پيكربندي Apache HTTP با رويداد MPM و PHP-FPM

 

 

كلمات كليدي خريد سرور

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

 


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳ خرداد ۱۳۹۹ساعت: ۰۱:۴۹:۰۹ توسط:amir موضوع:

نصب و پيكربندي VNC در اوبونتو 20.04

Virtual Network Computing يا VNC يك سيستم اتصال است كه به شما امكان مي دهد از صفحه كليد و ماوس خود براي تعامل با يك محيط دسكتاپ گرافيكي روي يك سرور مجازي از راه دور استفاده كنيد. اين امر باعث مي شود مديريت فايل ها ، نرم افزارها و تنظيمات روي يك سرور مجازي از راه دور براي كاربراني كه همچنان با خط فرمان احساس راحتي نميكنند ، آسانتر شود.
در اين راهنما ، با TightVNC يك سرور مجازي VNC را روي سرور مجازي اوبونتو 20.04 تنظيم كرده و از طريق يك تونل SSH با ايمني به آن وصل مي شويد. سپس از يك برنامه كلاينت VNC بر روي دستگاه محلي خود استفاده ميكنيد تا از طريق محيط دسكتاپ گرافيكي با سرور مجازي خود ارتباط برقرار كنيد.
پيش نيازها
براي تكميل اين آموزش ، به موارد زير نياز داريد:
• يك سرور مجازي Ubuntu 20.04 شامل يك كاربر ادمين غير ريشه و فايروال تنظيم شده با UFW .
• يك كامپيوتر محلي با يك كلاينت VNC نصب شده . كلاينتVNC كه استفاده ميكنيد بايد از طريق تونل هاي SSH اتصالات را پشتيباني كند.
o در ويندوز ، مي توانيد از TightVNC ، RealVNC يا UltraVNC استفاده كنيد.
o در maغير مجاز مي باشد ، مي توانيد از برنامه داخلي اشتراك گذاري صفحه استفاده كنيد ، يا مي توانيد از يك برنامه cross-platform مانند RealVNC استفاده كنيد.
o در لينوكس ، مي توانيد گزينه هاي بسياري از جمله vinagre ، krdc ، RealVNC يا TightVNC را انتخاب كنيد.
مرحله 1 – نصب محيط دسكتاپ و سرور مجازي VNC
به طور پيش فرض ، يك سرور مجازي Ubuntu 20.04 با محيط دسكتاپ گرافيكي يا سرور مجازي VNC همراه نيست ، بنابراين ما با نصب آن ها كار را شروع خواهيم كرد.
براي انتخاب سرور مجازي VNC و محيط دسك تاپ گزينه هاي بسياري براي شما وجود دارد. در اين آموزش بسته هايي را براي جديدترين محيط دسك تاپ Xfce و بسته TightVNC موجود از مخزن رسمي اوبونتو نصب خواهيد كرد. Xfce و TightVNC هر دو به دليل وزن كم و سرعت شناخته شده اند كه اطمينان حاصل مي كند اتصال VNC حتي در اتصالات كندتر اينترنت هموار و پايدار خواهد بود.
بعد از اتصال به سرور مجازي با SSH ، ليست بسته هاي خود را به روز كنيد:
⦁ $ sudo apt update

اكنون Xfce را به همراه بسته xfce4-goodies نصب كنيد ، كه حاوي چند تغيير براي محيط دسك تاپ است:
⦁ $ sudo apt install xfce4 xfce4-goodies

در حين نصب ، ممكن است از شما خواسته شود يك مدير نمايشگر پيش فرض براي Xfce انتخاب كنيد. مدير نمايشگر برنامه اي است كه به شما امكان مي دهد از طريق يك رابط گرافيكي وارد يك محيط دسك تاپ شويد. فقط هنگام اتصال با كلاينت VNC از Xfce استفاده خواهيد كرد و در اين بخش هاي Xfce از قبل به عنوان كاربر غير ريشه اوبونتو وارد سيستم مي شويد. بنابراين براي اهداف اين آموزش ، انتخاب شما براي مدير صفحه نمايش اهميتي ندارد. يكي را انتخاب كنيد و ENTER را فشار دهيد.
پس از اتمام نصب ، سرور مجازي TightVNC را نصب كنيد:
⦁ $ sudo apt install tightvncserver

در مرحله بعدي ، دستور vncserver را براي تنظيم رمز ورود دسترسي VNC ، ايجاد فايل هاي پيكربندي اوليه و شروع يك مثال سرور مجازي VNC اجرا كنيد:
$ vncserver

از شما خواسته مي شود يك رمز ورود را براي دسترسي از راه دور به دستگاه خود وارد كرده و تأييد كنيد:
Output
You will require a password to access your desktops.

Password:
Verify:

رمز عبور بايد بين شش تا هشت كاراكتر باشد. گذرواژه‌هاي بيش از 8 كاراكتر به صورت خودكار كوتاه خواهند شد.
پس از تأييد گذرواژه ، مي توانيد يك گذرواژه view-only ايجاد كنيد. كاربراني كه با رمز ورود view-only به سيستم وارد مي شوند ، قادر به كنترل نمونه VNC با ماوس يا صفحه كليد خود نخواهند بود. اگر مي خواهيد چيزي را با استفاده از سرور VNC خود به ديگران نشان دهيد ، اين گزينه مفيد ميباشد ، اما ضروري نيست.
سپس اين فرآيند فايلهاي تنظيمات پيش فرض لازم و اطلاعات اتصال را براي سرور ايجاد مي كند. علاوه بر اين ، يك نمونه سرور پيش فرض را در پورت 5901 راه اندازي مي كند. اين پورت ، پورت نمايشگر گفته مي شود و توسط VNC به :1 شناخته ميشود. VNC مي تواند چندين نمونه را در ساير پورت هاي نمايش راه اندازي كند: :2 به پورت 5902 و :3 به 5903 اشاره ميكند و به همين ترتيب:
Output
Would you like to enter a view-only password (y/n)? n
xauth: file /home/sammy/.Xauthority does not exist

New ‘X’ desktop is your_hostname:1

Creating default startup script /home/sammy/.vnc/xstartup
Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

توجه داشته باشيد كه اگر هر زمان خواستيد رمزعبور خود را تغيير دهيد يا يك رمز ورود view-only اضافه كنيد ، مي توانيد با دستور vncpasswd اين كار را انجام دهيد:
⦁ $ vncpasswd

در اين مرحله ، سرور مجازي VNC نصب و راه اندازي مي شود. اكنون بياييد آن را پيكربندي كنيم تا Xfce را راه اندازي كرده و از طريق يك رابط گرافيكي به سرور مجازي دسترسي داشته باشيم.
مرحله 2 – پيكربندي سرور مجازي VNC
سرور مجازي VNC بايد بداند كه در هنگام راه اندازي چه دستوراتي را اجرا كند. به طور خاص ، VNC بايد بداند كه به كدام دسكتاپ گرافيكي وصل شود.
اين دستورات در يك فايل پيكربندي به نام xstartup در پوشه .vnc تحت ديركتوري هوم شما قرار دارند. اسكريپت راه اندازي هنگامي ايجاد شد كه در مرحله قبل vncserver را اجرا كرديد ، اما براي راه اندازي دسكتاپ Xfce ، اسكريپت خودمان را ايجاد خواهيم كرد.
از آنجا كه مي خواهيم نحوه پيكربندي سرور مجازي VNC را تغيير دهيم ، ابتدا نمونه سرور مجازي VNC را كه با استفاده از پورت 5901 در حال اجرا است با دستور زير متوقف كنيد:
⦁ $ vncserver -kill :1

خروجي بايد به اين شكل باشد ، اگرچه يك PID متفاوت را مشاهده خواهيد كرد:
Output
Killing Xtightvnc process ID 17648
قبل از تغيير فايل xstartup ، از نسخه اصلي نسخه پشتيبان تهيه كنيد:
⦁ $ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

اكنون يك فايل xstartup جديد ايجاد كرده و آن را در ويرايشگر متن خود باز كنيد:
⦁ $ nano ~/.vnc/xstartup

خطوط زير را به فايل اضافه كنيد:
~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

خط اول يك  shebangاست. در فايل هاي قابل اجراي متن ساده در پلتفرم هاي * nix ، يك shebang به سيستم مي گويد كه چه مفسري را براي انتقال آن فايل براي اجرا وارد مي كند. در اين حالت ، شما فايل را به مفسر Bash ارائه مي دهيد. اين امر به شما امكان مي دهد كه هر خط پي در پي را به صورت دستوراتي اجرا كنيد.
اولين دستورالعمل موجود در فايل ، xrdb $ HOME / .Xresource ، به چارچوب رابط كاربري گرافيكي VNC ميگويد فايل .Xresources كاربر سرور مجازي را بخواند. Xresource جايي است كه يك كاربر مي تواند تنظيمات خاصي از دسكتاپ گرافيكي ، مانند رنگ هاي ترمينال ، تم هاي مكان نما و رندر فونت ، تغييراتي ايجاد كند. دستور دوم به سرور مجازي مي گويد كه Xfce را راه اندازي كند ، در اين قسمت تمام نرم افزارهاي گرافيكي مورد نياز خود را براي مديريت راحت سرور مجازي خود پيدا خواهيد كرد.
پس از افزودن اين خطوط ، فايل را ذخيره كنيد و ببنديد. اگر از nano استفاده كرده ايد ، اين كار را با فشار دادن CTRL + X ، Y ، سپس enter انجام دهيد.
براي اطمينان از اينكه سرور مجازي VNC قادر به استفاده صحيح از اين فايل راه اندازي جديد خواهد بود ، بايد آن را عملياتي كنيم.
⦁ $ chmod +x ~/.vnc/xstartup

اكنون ، سرور مجازي VNC را رستارت كنيد.
⦁ $ vncserver -localhost

توجه كنيد كه اين بار اين دستور شامل گزينه -localhost است كه سرور مجازي VNC را به رابط حلقه برگشت سرور مجازي شما متصل مي كند. اين امر باعث مي شود VNC فقط اتصالات منبعي را كه روي آن نصب شده است مجاز بداند.
در مرحله بعد ، شما يك تونل SSH بين دستگاه محلي و سرور مجازي خود ايجاد مي كنيد ، در واقع VNC را فريب ميدهيد كه اتصال حاصل از دستگاه محلي شما را از سمت سرور مجازي تان بداند. اين استراتژي يك لايه امنيتي بيشتر در اطراف VNC اضافه خواهد كرد ، زيرا تنها كاربراني كه قادر به دستيابي به آن هستند ، كساني هستند كه از قبل دسترسي به SSH به سرور مجازي شما دارند.
خروجي مشابه اين را مشاهده خواهيد كرد:
Output
New ‘X’ desktop is your_hostname:1

Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

با پيكربندي موجود ، آماده هستيد از دستگاه محلي خود به سرور مجازي VNC وصل شويد.
مرحله 3 – اتصال ايمن به دسكتاپ VNC
VNC در هنگام اتصال از پروتكل هاي ايمن استفاده نمي كند. ما براي اتصال ايمن به سرور مجازي خود از يك تونل SSH استفاده خواهيم كرد و سپس به كلاينت VNC مي گوييم به جاي برقراري ارتباط مستقيم از آن تونل استفاده كند.
يك اتصال SSH را روي رايانه محلي خود ايجاد كنيد كه به طور ايمن به اتصال محلي براي VNC منتقل شود. شما مي توانيد اين كار را از طريق ترمينال در لينوكس يا maغير مجاز مي باشد با دستور SSH زير انجام دهيد:
⦁ $ ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

در اينجا منظور از گزينه هاي اين دستور ssh چيست:
⦁ -L 59000: localhost: 5901: سوئيچ -L مشخص مي كند كه پورت داده شده در رايانه محلي (59000) بايد به هاست داده شده و پورت روي سرور مجازي مقصد (localhost: 5901) يعني پورت 5901 در مقصد كه به your_server_ip شناخته ميشود، ارسال گردد. توجه داشته باشيد كه پورت محلي كه مشخص كرده ايد تا حدودي دلخواه است؛ تا زماني كه پورت به سرويس ديگري متصل نشده باشد ، مي توانيد از آن به عنوان پورت انتقال براي تونل خود استفاده كنيد.
⦁ -C: اين پرچم فشرده سازي را فعال مي كند كه مي تواند در به حداقل رساندن مصرف منابع و سرعت بخشيدن مفيد باشد.
⦁ -N: اين گزينه به ssh مي گويد كه شما نمي خواهيد دستورات راه دور را اجرا كنيد. اين تنظيم هنگامي مفيد است كه شما فقط مي خواهيد پورت ها را ارسال كنيد.
⦁ -l sammy your_server_ip: سوئيچ -l به شما امكان مي دهد تا به محض اتصال به سرور مجازي ، كاربر مورد نظر خود را وارد كنيد. حتماً sammy و your_server_ip را با نام كاربر غير ريشه و آدرس IP سرور مجازي خود جايگزين كنيد.
توجه: اين دستور يك تونل SSH ايجاد مي كند كه از طريق پورت 22 در هر دستگاه ، يعني پورت پيش فرض براي SSH ، اطلاعات را از پورت 5901 در سرور مجازي VNC شما به پورت 59000 در دستگاه محلي شما منتقل مي كند. با فرض اينكه از راهنماي پيش نياز ستاپ اوليه سرور مجازي اوليه براي اوبونتو 20.04 پيروي كرده باشيد ، يك قانون UFW اضافه كرده ايد تا امكان اتصال به سرور مجازي خود را از طريق OpenSSH فراهم كند.
اين كار نسبت به باز كردن فايروال سرور مجازي شما براي اتصال به پورت 5901 ايمن تر است ، زيرا اين امر به هر كسي امكان دسترسي به سرور مجازي شما از طريق VNC را مي دهد. با اتصال به يك تونل SSH ، دسترسي VNC به ماشين هايي كه از قبل دسترسي به SSH به سرور مجازي دارند را محدود مي كنيد.
اگر از PuTTY براي اتصال به سرور مجازي خود استفاده مي كنيد ، مي توانيد با كليك راست روي نوار بالاي پنجره ترمينال ، يك تونل SSH ايجاد كنيد و سپس بر روي گزينه Change Settings… كليك كنيد:

شاخه CONNECTION را در منوي درختي در سمت چپ پنجره PuTTY Reconfiguration پيدا كنيد. شاخه SSH را باز كرده و بر روي Tunnels كليك كنيد. در صفحه Options controlling SSH port forwarding ،59000 را به عنوان Port Source و localhost: 5901 به عنوان مقصد وارد كنيد ، مانند اين:

سپس براي اجراي تونل بر روي دكمه Add و سپس دكمه Apply كليك كنيد.
پس از راه اندازي تونل ، از يك كلاينت VNC براي اتصال به localhost:59000استفاده كنيد. از شما خواسته مي شود با استفاده از رمزعبور تنظيم شده در مرحله 1 ، تأييد اعتبار كنيد.
پس از اتصال ، ميزكار پيش فرض Xfce را مشاهده خواهيد كرد. بايد چيزي شبيه به اين باشد:

همانطور كه در اينجا مشاهده مي شود ، مي توانيد در ديركتوري هوم خود با مدير فايل يا از خط فرمان به فايلها دسترسي پيدا كنيد:

CTRL + C را در ترمينال محلي خود زده تا تونل SSH را متوقف كرده و به حالت عادي خود بازگرديد. اين كار بخش VNC شما را نيز قطع مي كند.
اكنون مي توانيد سرور مجازي VNC خود را پيكربندي كنيد تا به عنوان يك سرويس سيستمي اجرا شود.
مرحله 4 – اجراي VNC به عنوان يك سرويس سيستم
در مرحله بعدي ، سرور مجازي VNC را به عنوان يك سرويس سيستمي تنظيم خواهيم كرد تا بتوانيم مانند هر سرويس ديگر ، آن را بنا به نياز ، راه اندازي ، متوقف و مجدداً راه اندازي كنيم. اين كار همچنين راه اندازي VNC در حين ريبوت سرور مجازي را تضمين مي كند.
ابتدا با استفاده از ويرايشگر متن مورد علاقه خود ، يك فايل واحد جديد با نام /etc/systemd/system/vncserver@.service ايجاد كنيد:
⦁ $ sudo nano /etc/systemd/system/vncserver@.service

نماد @ در انتهاي نام به ما اجازه مي دهد تا آرگوماني را كه مي توانيم در پيكربندي سرويس استفاده كنيم ، وارد كنيم. از آن براي مشخص كردن پورت نمايشگر VNC استفاده خواهيم كرد كه مي خواهيم هنگام مديريت سرويس استفاده كنيم .
خطوط زير را به فايل اضافه كنيد. حتماً مقدار كاربر ، گروه ، WorkingDirectory و نام كاربري را در مقدار PIDFILE تغيير دهيد تا با نام كاربري شما مطابقت داشته باشد:
/etc/systemd/system/vncserver@.service
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=sammy
Group=sammy
WorkingDirectory=/home/sammy

PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

فرمان ExecStartPre اگر قبلاً در حال اجرا باشد VNC را متوقف مي كند. دستور ExecStart ، VNC را شروع مي كند و عمق رنگ را به رنگ 24 بيتي با رزولوشن 1280×800 تنظيم مي كند. مي توانيد بنا به نيازهاي خود اين گزينه هاي راه اندازي را تغيير دهيد. همچنين توجه داشته باشيد كه فرمان ExecStart  دوباره شامل گزينه -localhost ميباشد.
فايل را ذخيره كنيد و ببنديد.
سپس ، سيستم را از وجود فايل واحد جديد آگاه كنيد.
⦁ $ sudo systemctl daemon-reload

فايل واحد را فعال كنيد.
⦁ $ sudo systemctl enable vncserver@1.service

1 بعد از علامت @ نشان مي دهد كه كدام شماره نمايش سرويس بايد روي آن ظاهر شود ، در اين حالت پيش فرض : 1 است، همانطور كه در مرحله 2 بحث شد.
اگر هنوز نمونه فعلي سرور مجازي VNC در حال اجرا است آن را متوقف كنيد.
⦁ $ vncserver -kill :1

سپس آن را شروع كنيد همانطور كه هر سرويس سيستمي ديگري را شروع مي كنيد.
⦁ $ sudo systemctl start vncserver@1

با اين دستور مي توانيد تأييد كنيد كه شروع شده است:
⦁ $ sudo systemctl status vncserver@1

اگر به درستي شروع شود ، خروجي بايد به اين شكل باشد:
Output
● vncserver@1.service – Start TightVNC server at startup
Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-05-07 17:23:50 UTC; 6s ago
Process: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2)
Process: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :1 (code=exited, status=0/SUCCESS)
Main PID: 39795 (Xtightvnc)

سرور مجازي VNC شما اكنون آماده است تا هر زمان كه سرور مجازي تان بوت ميشود ، استفاده گردد و مي توانيد آن را با دستورات systemctl مانند ساير سرويس هاي سيستمي مديريت كنيد.
با اين حال ، هيچ تفاوتي در طرف كلاينت وجود نخواهد داشت. براي اتصال مجدد ، دوباره تونل SSH خود را شروع كنيد:
⦁ $ ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

سپس با استفاده از نرم افزار كلاينت VNC خود اتصالي به localhost: 59000 برقرار كنيد تا به سرور مجازي خود متصل شويد.
نتيجه
اكنون يك سرور مجازي VNC امن در سرور مجازي Ubuntu 20.04 خود فعال و راه اندازي كرده ايد. در حال حاضر مي توانيد فايلها ، نرم افزارها و تنظيمات خود را با يك رابط گرافيكي آسان و كاربردي مديريت كنيد و قادر خواهيد بود نرم افزارهاي گرافيكي مانند مرورگرهاي وب را از راه دور اجرا كنيد.

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

نصب و پيكربندي Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

نظارت بر سلامت سرور با Checkmk در اوبونتو – اجراي چند نسخه PHP بر روي يك سرور

نصب Nginx، MySQL، PHP در CentOS 7 –  نصب و پيكربندي Elasticsearch در اوبونتو 18.04

راه اندازي سرور اوليه با اوبونتو 20.04 – تنظيم كليدهاي SSH در Ubuntu 20.04

نصب و استفاده از PostgreSQL در اوبونتو 20.0 – نحوه نصب MySQL در اوبونتو 20.04

نصب Python 3 روي سرور Ubuntu 18.04 –  نحوه نصب Python 3 روي سرور Ubuntu 20.04

نصب Linux،Apache،MySQL،PHP LAMP در اوبونتو 20.04 –  نصب وب سرور Apache در CentOS 8

نحوه نصب Drupal با Docker Compose –  نحوه نصب Nginx در اوبونتو 20.04

7 مورد از اقدامات امنيتي براي محافظت از سرورهاي شما –  نحوه نصب و ايمن سازي Redis در اوبونتو 20.04

نحوه نصب و ايمن سازي Redis در اوبونتو 18.04 – اضافه كردن فضاي Swap در اوبونتو 20.04

چگونه مي توان فايروال را با UFW در اوبونتو 20.04 تنظيم كرد – نظارت بر اطلاعيه و مسير BGP با BGPalerter اوبونتو 18.04

نصب و ايمن سازي phpMyAdmin در اوبونتو 20.04  –  نصب و استفاده از Composer در اوبونتو 20.04

ريست كردن رمز ورود ريشه MySQL يا MariaDB –  استفاده از نوع داده MySQL BLOB براي ذخيره تصاوير

نصب Nginx در اوبونتو 18.04 – نصب توزيع Anaconda پايتون در اوبونتو 20.04

نحوه نصب جاوا با Apt در اوبونتو 18.04 –  نحوه نصب Django و تنظيم محيط توسعه در اوبونتو 16.04

نصب جنگو و تنظيم محيط توسعه در اوبونتو 20.04 – نحوه ايجاد سرور Minecraft در اوبونتو 18.04

نحوه راه اندازي يك پروژه Node با Typescript –  نحوه نصب و پيكربندي VNC در اوبونتو 18.04

ايجاد يك برنامه Django و اتصال آن به يك بانك اطلاعاتي – نصب و پيكربندي VNC در اوبونتو 20.04

نصب MariaDB در اوبونتو 20.04  –  فعال سازي و اتصال رابط كاربري Django

تنظيم پلتفرم Cloud IDE كد سرور را در اوبونتو 18.04 – پيكربندي Apache HTTP با رويداد MPM و PHP-FPM

 

 

كلمات كليدي خريد سرور

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

 

 

 

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳ خرداد ۱۳۹۹ساعت: ۰۱:۴۶:۲۱ توسط:amir موضوع:

نصب MariaDB در اوبونتو 20.04

يك سيستم مديريت پايگاه داده منبع باز است كه معمولاً به عنوان جايگزيني براي MySQL به عنوان بخش ديتابيس LAMP محبوب (Linux ، Apache ، MySQL ، PHP / Python / Perl) استفاده مي شود. درواقع به عنوان جايگزيني براي MySQL در نظر گرفته شده است.
نسخه كوتاه اين راهنماي نصب شامل اين سه مرحله است:
• ايندكس بسته خود را با استفاده از APT به روز كنيد
• پكيج mariadb-server را با استفاده از APT نصب كنيد. اين بسته همچنين ابزارهاي مرتبط را براي تعامل با MariaDB در نظر مي گيرد
• اسكريپت امنيتي شامل mysql_secure_installation را اجرا كنيد تا دسترسي به سرور مجازي محدود شود
$ sudo apt update

$ sudo apt install mariadb-server

$ sudo mysql_secure_installation

در اين آموزش نحوه نصب MariaDB در سرور مجازي Ubuntu 20.04 توضيح داده خواهد شد و تأييد مي شود كه در حال اجرا است و از پيكربندي اوليه ايمن برخوردار است.
پيش نيازها
براي دنبال كردن اين آموزش ، به يك سرور مجازي Ubuntu 20.04 نياز داريد. اين سرور مجازي بايد شامل يك كاربر ادمين غير ريشه و فايروال پيكربندي شده با UFW باشد. ميتوانيد طبق راهنماي ستاپ اوليه سرور مجازي اين تنظيمات را انجام دهيد.
مرحله 1 – نصب MariaDB
در زمان نوشتن اين مقاله، مخازن APT پيش فرض Ubuntu 20.04 شامل نسخه 10.3 MariaDB است.
براي نصب آن ، ايندكس بسته را بر روي سرور مجازي خود با apt به روز كنيد:
$ sudo apt update

سپس بسته را نصب كنيد:
$ sudo apt install mariadb-server

اين دستورات MariaDB را نصب مي كنند ، اما از شما خواسته نمي شود كه رمز عبوري را تنظيم كنيد يا تغييرات ديگري در پيكربندي ايجاد كنيد. از آنجا كه پيكربندي پيش فرض، نصب MariaDB را ناايمن مي كند ، ما از اسكريپتي استفاده خواهيم كرد كه بسته mariadb-server براي محدود كردن دسترسي به سرور مجازي و حذف حساب هاي بلااستفاده فراهم مي كند.
مرحله 2 – پيكربندي MariaDB
براي نصب هاي جديد MariaDB ، مرحله بعدي اجراي اسكريپت امنيتي گنجانده شده است. اين اسكريپت برخي از گزينه هاي پيش فرض بدون ايمني را تغيير مي دهد. ما از آن براي مسدود كردن ورود به سيستم ريشه از راه دور و حذف كاربران استفاده نشده پايگاه داده استفاده خواهيم كرد.
اسكريپت امنيتي را اجرا كنيد:
$ sudo mysql_secure_installation

اين دستور مجموعه اي از اعلان ها را به شما نشان ميدهد كه مي توانيد در گزينه هاي امنيتي نصب MariaDB خود تغييراتي ايجاد كنيد. اولين دستور از شما مي خواهد رمز ورود ريشه داده فعلي را وارد كنيد. از آنجا كه ما هنوز تنظيم نكرديم ، ENTER را فشار دهيد تا “none” را نشان دهد.
Output
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we’ll need the current
password for the root user. If you’ve just installed MariaDB, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):

اعلان بعدي از شما سؤال مي كند كه آيا مي خواهيد رمزعبور ريشه ديتابيس را تنظيم كنيد يا خير. در اوبونتو ، حساب اصلي براي MariaDB با نگهداري سيستم خودكار گره خورده است ، بنابراين ما نبايد روشهاي تأييد صحت تنظيم شده را براي آن حساب تغيير دهيم. با اين كار امكان به روزرساني بسته با حذف دسترسي به حساب ادمين باعث مي شود سيستم به روزرساني بسته شود. . N را تايپ كرده و ENTER را فشار دهيد.
Output
. . .
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] N

اگر تاييد هويت سوكت براي مورد شما مناسب نيست، در ادامه نحوه تنظيم حساب كاربري ادمين اضافه براي دسترسي به پسورد را پوشش خواهيم داد.
از آنجا ، مي توانيد Y و سپس ENTER را فشار دهيد تا جواب پيش فرض همه سؤالات بعدي را بپذيريد. اين كار برخي از كاربران ناشناس و بانك اطلاعاتي آزمايشي حذف مي كند ، ورود به سيستم ريشه از راه دور را غيرفعال مي كند و اين قوانين جديد را بارگذاري مي كند تا MariaDB سريعاً تغييراتي را كه ايجاد كرده ايد به مرحله اجرا برساند.
با اين كار، پيكربندي ايمن اولي را به پايان ميرسانيد. مرحله بعدي يك مرحله اختياري است، با اين حال اگر ترجيح ميدهيد با پسورد تاييد هويت را به سرور مجازي MariaDB انجام دهيد، آن را دنبال كنيد.
مرحله 3 – تنظيم تأييد اعتبار كاربر و امتيازات (اختياري)
در سيستم هاي اوبونتو كه MariaDB 10.1 در حال اجرا است ، كاربر اصلي MariaDB با استفاده از افزونه unix_socket به طور پيش فرض و نه با رمز عبور ، تأييد اعتبار را انجام مي دهد. اين امر امكان امنيت و قابليت استفاده بيشتري را در بسياري از موارد فراهم مي كند ، اما در صورت نياز به دادن امتيازات اجرايي به يك برنامه خارجي (به عنوان مثال ، phpMyAdmin) مي تواند كار را پيچيده تر كند.
از آنجا كه سرور مجازي از حساب root براي كارهايي مانند گردش ورود به سيستم و شروع و متوقف كردن سرور مجازي استفاده مي كند ، بهتر است جزئيات تأييد اعتبار حساب root را تغيير ندهيد. تغيير اعتبار در فايل پيكربندي /etc/mysql/debian.cnf ممكن است در ابتدا كار كند ، اما به روزرساني هاي بسته به طور بالقوه مي توانند آن تغييرات را بازنويسي كنند. به جاي تغيير حساب اصلي ، نگهدارندگان بسته توصيه مي كنند يك حساب ادمين جداگانه براي دسترسي مبتني بر رمز عبور ايجاد كنيد.
براي اين كار ، يك حساب كاربري جديد با نام admin با همان قابليت هاي root ايجاد مي كنيم ، كه براي احراز هويت رمز عبور پيكربندي شده است. براي انجام اين كار ، اعلان MariaDB را از پايانه خود باز كنيد:
$ sudo mariadb

اكنون كاربر جديدي با امتيازات اصلي و دسترسي مبتني بر رمز عبور ايجاد خواهيم كرد. نام كاربري و رمز عبور را براي مطابقت با موارد برگزيده خود تغيير دهيد:
mariaDB [(none)]> GRANT ALL ON *.* TO ‘admin’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;

براي اطمينان از ذخيره و در دسترس بودن آنها در بخش كنوني ، امتيازات را فلاش كنيد:
mariaDB [(none)]> FLUSH PRIVILEGES;

پس از اين ، از پوسته MariaDB خارج شويد:
mariaDB [(none)]> exit

در آخر ، بياييد نصب MariaDB را آزمايش كنيم.
مرحله 4 – تست MariaDB
هنگام نصب از مخازن پيش فرض ، MariaDB بايد به صورت خودكار شروع به كار كند. براي آزمايش اين موضوع ، وضعيت آن را بررسي كنيد.
$ sudo systemctl status mariadb

خروجي مشابه زير را دريافت خواهيد كرد:
Output
● mariadb.service – MariaDB 10.3.22 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-12 13:38:18 UTC; 3min 55s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 25914 (mysqld)
Status: “Taking your SQL requests now…”
Tasks: 31 (limit: 2345)
Memory: 65.6M
CGroup: /system.slice/mariadb.service
└─25914 /usr/sbin/mysqld
. . .
اگر MariaDB در حال اجرا نيست، ميتوانيد با دستور sudo systemctl start mariadb آن را راه اندازي كنيد.
براي بررسي بيشتر ، مي توانيد با استفاده از ابزار mysqladmin ، كه يك كلاينت است و به شما امكان اجراي دستورات ادمين را مي دهد ، به پايگاه داده وصل شويد. براي مثال ، اين دستور مي گويد كه به عنوان root به MariaDB وصل شويد و با استفاده از سوكت يونيكس نسخه را برگردانيد:
$ sudo mysqladmin version

بايد خروجي مشابه اين دريافت كنيد:
Output
mysqladmin Ver 9.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Server version 10.3.22-MariaDB-1ubuntu1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 4 min 49 sec

Threads: 7 Questions: 467 Slow queries: 0 Opens: 177 Flush tables: 1 Open tables: 31 Queries per second avg: 1.615

اگر يك كاربر ادمين جداگانه را با تأييد اعتبار رمزگذاري كرده ايد ، مي توانيد همان كار را با تايپ كردن اين دستور انجام دهيد:
$ mysqladmin -u admin -p version

اين بدان معناست كه MariaDB در حال كار است و كاربر شما قادر به تأييد هويت موفقيت آميز ميباشد.
نتيجه
در اين راهنما سيستم مديريت پايگاه داده رابطه اي MariaDB را نصب كرده و با استفاده از اسكريپت mysql_secure_installation كه با آن همراه است ، آن را ايمن كرديد. همچنين اين گزينه را داشتيد كه قبل از تست عملكرد سرور مجازي MariaDB ، يك كاربر جديد ادمين ايجاد كنيد كه از تأييد اعتبار مبتني بر پسورد استفاده كند.
اكنون كه سرور مجازي MariaDB را در حال اجرا و ايمن داريد ، در اينجا چند نمونه از مراحل بعدي كه مي توانيد براي كار با سرور مجازي انجام دهيد ، آورده شده است:
آموزش نحوه ورود و خروج بانكهاي اطلاعاتي
تمرين اجراي پرس و جوهاي SQL
گنجاندن MariaDB ذر يك پشته برنامه بزرگتر

 

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

نصب و پيكربندي Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

نظارت بر سلامت سرور با Checkmk در اوبونتو – اجراي چند نسخه PHP بر روي يك سرور

نصب Nginx، MySQL، PHP در CentOS 7 –  نصب و پيكربندي Elasticsearch در اوبونتو 18.04

راه اندازي سرور اوليه با اوبونتو 20.04 – تنظيم كليدهاي SSH در Ubuntu 20.04

نصب و استفاده از PostgreSQL در اوبونتو 20.0 – نحوه نصب MySQL در اوبونتو 20.04

نصب Python 3 روي سرور Ubuntu 18.04 –  نحوه نصب Python 3 روي سرور Ubuntu 20.04

نصب Linux،Apache،MySQL،PHP LAMP در اوبونتو 20.04 –  نصب وب سرور Apache در CentOS 8

نحوه نصب Drupal با Docker Compose –  نحوه نصب Nginx در اوبونتو 20.04

7 مورد از اقدامات امنيتي براي محافظت از سرورهاي شما –  نحوه نصب و ايمن سازي Redis در اوبونتو 20.04

نحوه نصب و ايمن سازي Redis در اوبونتو 18.04 – اضافه كردن فضاي Swap در اوبونتو 20.04

چگونه مي توان فايروال را با UFW در اوبونتو 20.04 تنظيم كرد – نظارت بر اطلاعيه و مسير BGP با BGPalerter اوبونتو 18.04

نصب و ايمن سازي phpMyAdmin در اوبونتو 20.04  –  نصب و استفاده از Composer در اوبونتو 20.04

ريست كردن رمز ورود ريشه MySQL يا MariaDB –  استفاده از نوع داده MySQL BLOB براي ذخيره تصاوير

نصب Nginx در اوبونتو 18.04 – نصب توزيع Anaconda پايتون در اوبونتو 20.04

نحوه نصب جاوا با Apt در اوبونتو 18.04 –  نحوه نصب Django و تنظيم محيط توسعه در اوبونتو 16.04

نصب جنگو و تنظيم محيط توسعه در اوبونتو 20.04 – نحوه ايجاد سرور Minecraft در اوبونتو 18.04

نحوه راه اندازي يك پروژه Node با Typescript –  نحوه نصب و پيكربندي VNC در اوبونتو 18.04

ايجاد يك برنامه Django و اتصال آن به يك بانك اطلاعاتي – نصب و پيكربندي VNC در اوبونتو 20.04

نصب MariaDB در اوبونتو 20.04  –  فعال سازي و اتصال رابط كاربري Django

تنظيم پلتفرم Cloud IDE كد سرور را در اوبونتو 18.04 – پيكربندي Apache HTTP با رويداد MPM و PHP-FPM

 

 

كلمات كليدي خريد سرور

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

 

 

 

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳ خرداد ۱۳۹۹ساعت: ۰۱:۴۳:۱۲ توسط:amir موضوع:

فعال سازي و اتصال رابط كاربري Django

اگر مجموعه هاي توسعه Django را دنبال كرده باشيد ، يك برنامه Django را راه اندازي كرده ، برنامه خود را به MySQL وصل كرده و مدل هاي ديتابيس را براي داده هاي Posts و Comments  در برنامه وب وبلاگ خود ايجاد كرده ايد.
در اين آموزش ، ما به سايت ادمين Django وصل شده و آن را فعال مي كنيم تا بتوانيد وبلاگ خود را مديريت كنيد. سايت مدير Django با يك رابط كاربري ساخته شده است كه به گونه اي طراحي شده كه به شما و ساير افراد قابل اعتماد امكان مديريت محتواي وب سايت را مي دهد.
شايان ذكر است كه مطالب رسمي Django اشاره مي كند كه اگرچه اين براي استفاده داخلي يك سازمان ايده آل است ، اما ساخت يك برنامه وب حول يك رابط كاربري ادمين Django با توليد خودكار توصيه نمي شود. اگر ديديد كه رابط كاربري شما لازم است پردازش محورتر باشد يا ثابت شد كه جزئيات اجراي جداول و فيلدهاي بانك اطلاعاتي را ابستركت مي كند ، بهتر است نظرات خود را براي سمت ادمين بنويسيد.
پيش نيازها
اين آموزش بخشي از مجموعه هاي توسعه Django است و ادامه آن مجموعه ها به حساب مي آيد.
اگر اين مجموعه ها را دنبال نكرده ايد ، فرضيات زير مطرح مي شود:
• شما نسخه 3 يا بالاتر Django را نصب كرده ايد.
• برنامه Django خود را به يك پايگاه داده وصل كرده ايد. ما از MySQL استفاده مي كنيم ، و مي توانيد با دنبال كردن قسمت دوم مجموعه Django ، “چگونگي ايجاد يك برنامه Django و اتصال آن به يك بانك اطلاعاتي” ، اين كار را انجام دهيد.
• شما با يك سيستم عامل مستقر در يونيكس كار مي كنيد ، ترجيحاً با سرور مجازي ابري اوبونتو 20.04 زيرا اين سيستمي است كه ما روي آن آزمايش كرده ايم. اگر مي خواهيد Django را در محيطي مشابه تنظيم كنيد ، لطفاً به آموزش ما ، “نحوه نصب Django و ايجاد يك محيط توسعه در اوبونتو 20.04” مراجعه كنيد.
از آنجا كه اين آموزش تا حد زيادي با رابط كاربري ادمين Django سروكار دارد ، حتي در صورت وجود ستاپ كمي متفاوت ، احتمالا ميتوانيد آن را دنبال كنيد.
مرحله 1 – ادمين را فعال كنيد
هر وقت كار را در Python و Django شروع كرديم ، بايد محيط مجازي Python خود را فعال كرده و به ديركتوري اصلي برنامه خود برويم. اگر مجموعه ها را دنبال كرده باشيد ، مي توانيد با تايپ كردن دستور زير به اين هدف برسيد.
⦁ $ cd ~/my_blog_app

⦁ $ . env/bin/activate

براي فعال كردن مدير Django ، بايد اطمينان حاصل كنيم كه برنامه ما بخشي از ليست INSTALLED_APPS در فايل settings.py است.
به ديركتوري فايل تنظيمات برويد:
⦁ (env) Sammy@ubuntu:$ cd ~/my_blog_app/blog/blog/

از اينجا ، فايل settings.py را باز كنيد. اگر در حال حاضر وجود نداشته باشد ، django.contrib.admin را با استفاده از ويرايشگر متني مانند nano به ليست INSTALLED_APPS اضافه كنيد.
⦁ (env) Sammy@ubuntu:$ nano settings.py

بخش INSTALLED_APPS فايل بايد مشابه فايل زير باشد. برنامه ما در ليست يكي از برنامه هاي موجود در بالا ، blogsite است ، اما اگر برنامه اي با نام ديگري ايجاد كرده ايد ، اطمينان حاصل كنيد كه آن برنامه همانطور كه نشان داده شده است در اين فايل ليست شده است.
settings.py

# Application definition
INSTALLED_APPS = [
‘blogsite’,
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.mesغير مجاز مي باشدes’,
‘django.contrib.staticfiles’,
]

در صورت ايجاد تغيير ، حتما فايل را ذخيره كنيد و ببنديد. در nano مي توانيد اين كار را با تايپ كردن CTRL و X سپس Y و ENTER انجام دهيد.
اكنون مي توانيم فايل urls.py را دوباره با nano يا ويرايشگر متن ديگر باز كنيم.
⦁ (env) Sammy@ubuntu:$ nano urls.py

در زير كامنت بالا ، فايل بايد به صورت زير باشد.
urls.py

“””
from django.contrib import admin
from django.urls import path

urlpatterns = [
path(‘admin/’, admin.site.urls),
]

اگر فايل با آنچه در بالا آمده است متفاوت است ، خطوط بالا را در فايل urls.py خود كپي و پيست كنيد.
اكنون كه اطمينان حاصل كرديم كه پروژه وب Django ما داراي كد مناسب در فايل هاي settings.py و urls.py است ، مي دانيم كه برنامه ما به مدل هاي ادمين و رابط كاربري ادمين دسترسي خواهد داشت.
مرحله 2 – تأييد كنيد كه Admin يك برنامه نصب شده است
بايد مدلهاي بعدي را به پايگاه داده انتقال دهيم تا مدلهاي Admin را كه به تازگي اضافه شده است انتخاب كند.
به دايركتوري كه فايل management.py در آن قرار دارد برويد.
⦁ (env) Sammy@ubuntu:$ cd ~/my_blog_app/blog

به ياد داشته باشيد هر زمان كه تغيير در مدل ها انجام مي دهيد فرمان migrate  را اجرا كنيد، مانند اين:
⦁ (env) Sammy@ubuntu:$ python manage.py migrate

اگر در فايل هاي فوق هيچ تغييري ايجاد نمي كرديم ، هنگام اجراي دستور migrate بايد خروجي مشابه زير را دريافت ميكرديم.
Output
Operations to perform:
Apply all migrations: admin, auth, blogsite, contenttypes, sessions
Running migrations:
No migrations to apply.

در غير اين صورت ، خروجي بايد نشان دهد كه Django جابه جايي هاي لازم براي پشتيباني از برنامه ما را انجام داده است.
اكنون مي توانيم سرور مجازي را با اجراي دستور زير شروع كنيم. مي توانيد 0.0.0.0 را با آدرس IP خود جايگزين كنيد.
⦁ (env) Sammy@ubuntu:$ python manage.py runserver 0.0.0.0:8000

سپس در يك مرورگر مورد نظر خود به URL پنل ادمين برويد. حتماً آدرس IP سرور مجازي خود را وارد كنيد.
http://your-server-ip:8000/admin/

يك صفحه ورود به سيستم شبيه به اين دريافت خواهيد كرد.

مشاهده اين صفحه به ما اطلاع مي دهد كه برنامه مديريت را با موفقيت فعال كرده ايم.
اگرچه اين برنامه را فعال كرده ايم ، ممكن است هنوز حساب مديريت Django را تنظيم نكرده باشيم. مي توانيم براي ورود به مرحله بعد ، حساب ادمين ايجاد كنيم.
مرحله 3 – ايجاد حساب فوق كاربري Admin
اگر قبلاً يك حساب ادمين تنظيم كرده ايد و مي توانيد وارد صفحه ادمين خود شويد ، مي توانيد از اين مرحله عبور كنيد.
يك ترمينال جديد را براي اتصال به سرور مجازي باز كنيد ، يا برنامه Django را با فشار دادن CTRL و C غيرفعال كنيد تا بتوانيم در محيط برنامه نويسي ترمينال سرور مجازي خود كار كنيم.
Django به شما امكان مي دهد تا يك حساب فوق كاربري توليد كنيد ، كه مي توانيم با اجراي فايل manage.py فرآيند ايجاد ابركاربر را شروع كنيم.
⦁ (env) Sammy@ubuntu:$ python manage.py createsuperuser

پس از انجام اين كار ، از شما خواسته مي شود تا جزئيات نام كاربري ، ايميل و رمز عبور خود را وارد كنيم. در اين آموزش ، ما با نام كاربري admin_user ، و ايميل sammy@example.com و پسوردadmin123 يك حساب ادمين ايجاد خواهيم كرد. شما بايد اين اطلاعات را با تنظيمات برگزيده خودتان پر كنيد و حتماً از يك رمز عبور ايمن استفاده كنيد كه آن را به خاطر ميسپاريد.
Output
Username (leave blank to use ‘root’): admin_user
Email address: sammy@example.com

سپس هنگامي كه اعلان گذرواژه را مي بينيد ، رمز عبور خود را دو بار وارد كنيد. هنگام وارد كردن آن ، و با زدن كليدهاي رمز عبور خروجي دريافت نخواهيد كرد. براي تأييد گذرواژه ، Enter را فشار دهيد.
Output
Password:
Password (again):

در اين مرحله ، اكنون يك حساب كاربري ادمين با نام كاربري admin_user و رمز عبور admin123 داريم.
بياييد وارد آن شده و بررسي كنيم كه چه چيزي در صفحه ادمين ما وجود دارد.
در صورت لزوم ، مجدداً برنامه Django را با Python manage.py runserver 0.0.0.0:8000 اجرا كنيد و سپس براي مشاهده صفحه ورود به سيستم يك بار ديگر به آدرس http://your-server-ip:8000/admin/ برويد. سپس با نام كاربري و رمز عبور و پسوردي كه تازه ايجاد كرده ايد وارد شويد.
پس از ورود موفق به سيستم ، صفحه زير را دريافت خواهيد كرد.

در مرحله بعد ، بايد روي اتصال برنامه وبلاگ خود به پنل ادمين كار كنيم.
مرحله 4 – ايجاد الگوهاي URL براي پست و كامنت
در مرحله قبل ، با موفقيت وارد رابط كاربري شديم ، اما شايد متوجه شده باشيد كه برنامه وبلاگ ما هنوز در دسترس نيست. براي ايجاد رابط ادمين با برنامه وبلاگ ، بايد آن را با مدل هاي مرتبط پست و كامنت اضافه و ثبت كنيم.
براي اين كار ، يك فايل خالي به نام urls.py ، در ديركتوري وبلاگ ها ايجاد مي كنيم ، مانند اين:
⦁ (env) Sammy@ubuntu:$ touch ~/my_blog_app/blog/blogsite/urls.py

در اين فايل الگوي URL را براي برنامه وبلاگ خود اضافه خواهيم كرد تا بتوانيم از طريق رابط ادمين به آن دسترسي پيدا كنيم.
به مكان آن فايل urls.py كه به تازگي ايجاد كرديم برويد.
⦁ (env) Sammy@ubuntu:$ cd ~/my_blog_app/blog/blogsite/
سپس به عنوان نمونه فايل را با nano باز كنيد.

⦁ (env) Sammy@ubuntu:$ nano urls.py

خطوط كد زير را به فايل اضافه كنيد.
urls.py
from django.urls import path
from . import views
urlpatterns = [
path(‘$/’, views.posts, name=’posts’),
path(‘$/’, views.comments, name=’comments’),
]

اين ها عبارتهاي الگوي URL مورد نياز براي دسترسي به views  براي Posts و Comments هستند. ما هنوز آن views  را ايجاد نكرده ايم ، اما اين مورد را بعداً در اين مجموعه پوشش خواهيم داد.
مرحله 5 – برنامه وبلاگ را به مدير وصل كنيد
اتصال وبلاگ ما به رابط ادمين به ما اين امكان را مي دهد كه پيوندها را براي Posts و Comments در داشبورد ادمين مشاهده كنيم. در حال حاضر ، داشبورد فقط لينك ها را براي گروه ها و كاربران نمايش مي دهد.
براي اتصال اين دو به يكديگر ، بايد مدل هاي پست ها و كامنت هاي خود را در داخل فايل blogsite ادمين ثبت كنيم.
به ديركتوري blogsite برويد:
⦁ (env) Sammy@ubuntu:$ cd ~/my_blog_app/blog/blogsite

سپس فايل admin.py را در ويرايشگر متن مورد نظر خود باز كنيد.
⦁ (env) Sammy@ubuntu:$ nano admin.py

فايل با عبارت ورود و يك كامنت پر مي شود.
admin.py
from django.contrib import admin

# Register your models here.

براي پشتيباني از برنامه خود بايد فايل را طوري ويرايش كنيد كه كد زير را در خود جاي دهد.
admin.py
from django.contrib import admin
from blogsite.models import Post
from blogsite.models import Comment

admin.site.register(Post)
admin.site.register(Comment)

هنگامي كه از فايل راضي هستيد ، آن را ذخيره كنيد و خارج شويد.
اكنون مدل هاي پست و كامنت را در داخل پنل ادمين ثبت كرده ايد. اين كار باعث مي شود تا رابط كاربري اين مدل ها را انتخاب كرده و به كاربراني كه وارد سيستم شده اند و داشبورد ادمين را مشاهده مي كنند ، نشان دهد.
مرحله 6 – بررسي كنيد كه برنامه وبلاگ به ادمين اضافه شده است
اكنون كه كد مربوط به Python را اضافه كرده ايد ، سرور مجازي را اجرا كنيد. http: // your-server-ip: 8000 / admin را باز كنيد و اگر از قبل وارد سيستم نشده ايد ، با استفاده از اطلاعات خود به صورت ادمين وارد شويد. در اين آموزش ، با نام كاربري admin_user و رمز عبور admin123 وارد سيستم شده ايم.
اكنون كه به سيستم وارد شده ايد ، بايد صفحه وب زير به شما ارائه شود. اگر از قبل تغيير نكرده باشد ، ممكن است لازم باشد مرورگر خود را ريفرش كنيد.

اين تأييد مي كند كه ما اكنون برنامه ، blogsite را به داشبورد مدير Django وصل كرده ايم.
هنگامي كه آزمايش برنامه شما به پايان رسيد ، مي توانيد CTRL + C را فشار دهيد تا سرور مجازي Django متوقف شود. اين كار شما را به محيط برنامه نويسي تان باز مي گرداند.
هنگامي كه آماده ترك محيط Python خود هستيد ، مي توانيد دستور غيرفعال كردن را اجرا كنيد:
⦁ (env) Sammy@ubuntu:$ deactivate

غيرفعال كردن محيط برنامه نويسي، شما را به سمت فرمان نهايي ترمينال باز مي گرداند.
نتيجه
در اين آموزش شما با موفقيت رابط كاربري ادمين را فعال كرده ايد ، يك ورود به سيستم به عنوان ادمين ايجاد كرده ايد و مدل هاي پست و كامنت را با ادمين ثبت كرده ايد.
رابط ادمين Django به اين صورت است كه شما قادر خواهيد بود تا پست هاي خود را ايجاد كنيد و نظرات را با وبلاگ خود نظارت كنيد.
با ورود به اين مجموعه ها، views  را براي برنامه وبلاگ ايجاد خواهيم كرد.

 

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

نصب و پيكربندي Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

نظارت بر سلامت سرور با Checkmk در اوبونتو – اجراي چند نسخه PHP بر روي يك سرور

نصب Nginx، MySQL، PHP در CentOS 7 –  نصب و پيكربندي Elasticsearch در اوبونتو 18.04

راه اندازي سرور اوليه با اوبونتو 20.04 – تنظيم كليدهاي SSH در Ubuntu 20.04

نصب و استفاده از PostgreSQL در اوبونتو 20.0 – نحوه نصب MySQL در اوبونتو 20.04

نصب Python 3 روي سرور Ubuntu 18.04 –  نحوه نصب Python 3 روي سرور Ubuntu 20.04

نصب Linux،Apache،MySQL،PHP LAMP در اوبونتو 20.04 –  نصب وب سرور Apache در CentOS 8

نحوه نصب Drupal با Docker Compose –  نحوه نصب Nginx در اوبونتو 20.04

7 مورد از اقدامات امنيتي براي محافظت از سرورهاي شما –  نحوه نصب و ايمن سازي Redis در اوبونتو 20.04

نحوه نصب و ايمن سازي Redis در اوبونتو 18.04 – اضافه كردن فضاي Swap در اوبونتو 20.04

چگونه مي توان فايروال را با UFW در اوبونتو 20.04 تنظيم كرد – نظارت بر اطلاعيه و مسير BGP با BGPalerter اوبونتو 18.04

نصب و ايمن سازي phpMyAdmin در اوبونتو 20.04  –  نصب و استفاده از Composer در اوبونتو 20.04

ريست كردن رمز ورود ريشه MySQL يا MariaDB –  استفاده از نوع داده MySQL BLOB براي ذخيره تصاوير

نصب Nginx در اوبونتو 18.04 – نصب توزيع Anaconda پايتون در اوبونتو 20.04

نحوه نصب جاوا با Apt در اوبونتو 18.04 –  نحوه نصب Django و تنظيم محيط توسعه در اوبونتو 16.04

نصب جنگو و تنظيم محيط توسعه در اوبونتو 20.04 – نحوه ايجاد سرور Minecraft در اوبونتو 18.04

نحوه راه اندازي يك پروژه Node با Typescript –  نحوه نصب و پيكربندي VNC در اوبونتو 18.04

ايجاد يك برنامه Django و اتصال آن به يك بانك اطلاعاتي – نصب و پيكربندي VNC در اوبونتو 20.04

نصب MariaDB در اوبونتو 20.04  –  فعال سازي و اتصال رابط كاربري Django

تنظيم پلتفرم Cloud IDE كد سرور را در اوبونتو 18.04 – پيكربندي Apache HTTP با رويداد MPM و PHP-FPM

 

 

كلمات كليدي خريد سرور

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

 

 

 

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳ خرداد ۱۳۹۹ساعت: ۰۱:۴۰:۳۲ توسط:amir موضوع:

تنظيم پلتفرم Cloud IDE كد سرور را در اوبونتو 18.04

با حركت ابزارهاي گسترش دهنده به سمت cloud ، تطابق پذيري پلتفرم cloud IDE (محيط پيشرفت ادغام شده) در حال رشد است. Cloud IDE ها امكان همكاري در زمان واقعي بين تيم هاي توسعه دهنده را فراهم مي كنند تا در يك محيط توسعه يكپارچه كار كنند و ناسازگاري ها را به حداقل مي رساند اما توليد را افزايش ميدهد. چون از طريق مرورگرهاي وب قابل دسترسي اند ، Cloud IDE ها در هر نوع دستگاه مدرن موجود هستند.
code-server يك كد مايكروسافت ويژوال استوديو است كه روي يك سرور مجازي از راه دور اجرا مي شود و مستقيماً از مرورگر شما قابل دسترسي است. ويژوال استوديو كد يك ويرايشگر كد مدرن با پشتيباني Git ادغام شده، يك اشكال زدا براي كد، داراي تكميل خودكار هوشمند و ويژگي هاي قابل سفارشي سازي و قابل بسط ميباشد. بدان معني كه مي توانيد از دستگاه هاي مختلف با سيستم عامل هاي مختلف استفاده كنيد و هميشه يك محيط توسعه مداوم داشته باشيد.
در اين آموزش ، پلت فرم cloud IDE كد سرور مجازي را بر روي دستگاه Ubuntu 18.04 شما تنظيم كرده و آن را در دامنه شما قرار مي دهيد ، كه با گواهي TLS در Let’s Encrypt ايمن شده است. در اخر، كد ويژوال استوديو را روي سرور مجازي Ubuntu 18.04 خود راه اندازي ميكنيد كه در دامنه شما در دسترس است و با پسورد محافظت ميشود.
پيش نيازها
⦁ سرور مجازي  كه اوبونتو 18.04 را اجرا ميكند با حداقل 2 گيگابايت حافظه رم ، دسترسي به ريشه و يك حساب سودو و غير ريشه. مي توانيد اين كار را با دنبال كردن راهنماي اوليه تنظيم سرور مجازي Ubuntu 18.04 انجام دهيد.
⦁ Nginx كه روي سرور مجازي شما نصب شده است. براي راهنمايي در مورد نحوه انجام اين كار ، مراحل 1 تا 4 نحوه نصب Nginx را در اوبونتو 18.04 مطالعه كنيد.
⦁ يك نام دامنه كاملا ثبت شده براي ميزباني كد سرور مجازي ، كه به سرور مجازي شما اشاره ميكند. در اين آموزش از code-server.your-domain استفاده مي شود. مي توانيد نام دامنه را در Namecheap خريداري كنيد ، به صورت رايگان در Freenom دريافت كنيد ، يا از ثبت دامنه مورد نظر خود استفاده كنيد.
مرحله 1 – نصب كد- سرور مجازي
در اين بخش كد-سرور مجازي را روي سرور مجازي خود تنظيم مي كنيد. اين مستلزم دانلود آخرين نسخه و ايجاد سرويس سيستمي است كه كد-سرور مجازي را هميشه در پس زمينه اجرا مي كند. همچنين گزينه ريستارت را براي سرويس تعيين خواهيد كرد ، به اين ترتيب كد-سرور مجازي پس از خرابي يا ريبوت احتمالي در دسترس خواهد بود.
همه داده هاي مربوط به كد-سرور مجازي را در پوشه اي به نام ~ / code-server ذخيره مي كنيد. با اجراي دستور زير آن را ايجاد كنيد:
⦁ $ mkdir ~/code-server
به آن برويد:
⦁ $ cd ~/code-server

بايد به صفحه نسخه هاي كد-سرور مجازي Github برويد و آخرين لينوكس را انتخاب كنيد (در نام فايل “linux” وجود خواهد داشت). در زمان نوشتن ، آخرين نسخه 3.2.0 بوده است. با اجراي دستور زير آن را با استفاده از wget دانلود كنيد:
⦁ $ wget https://github.com/cdr/code-server/releases/download/3.2.0/code-server-3.2.0-linux-x86_64.tar.gz

سپس با اجراي اين دستور، بايگاني را باز كنيد:
⦁ $ tar -xzvf code-server-3.2.0-linux-x86_64.tar.gz

پوشه اي دقيقاً به نام فايل اصلي كه دانلود كرده ايد ، دريافت ميكنيد كه شامل كد منبع كد-سرور مجازي است. آن را در / usr / lib / code-server كپي كنيد تا با اجراي دستور زير بتوانيد به صورت گسترده به آن دسترسي پيدا كنيد:
⦁ $ sudo cp -r code-server-3.2.0-linux-x86_64 /usr/lib/code-server

سپس ، يك لينك نمادين را در / usr / bin / code-server ايجاد كنيد ، كه به عملكرد كد-سرور مجازي اشاره كند:
⦁ $ sudo ln -s /usr/lib/code-server/code-server /usr/bin/code-server

سپس ، يك پوشه براي كد-سرور مجازي ايجاد كنيد ، كه در آن داده هاي كاربر را ذخيره مي كند:
⦁ $ sudo mkdir /var/lib/code-server

اكنون كه كد-سرور مجازي را دانلود كرده ايد و آن را در سراسر سيستم در دسترس قرار داده ايد ، يك سرويس سيستمي ايجاد خواهيد كرد تا كد-سرور مجازي را هميشه در پس زمينه اجرا كنيد.
پيكربندي سرويس را در فايلي به نام code-server.service ، در ديركتوري / lib / systemd / system ذخيره خواهيد كرد ، جايي كه سيستم عامل سرويس هاي خود را ذخيره مي كند. آن را با استفاده از ويرايشگر متن خود ايجاد كنيد:
⦁ $ sudo nano /lib/systemd/system/code-server.service

خطوط زير را اضافه كنيد:
/lib/systemd/system/code-server.service
[Unit]
Description=code-server
After=nginx.service

[Service]
Type=simple
Environment=PASSWORD=your_password
ExecStart=/usr/bin/code-server –bind-addr 127.0.0.1:8080 –user-data-dir /var/lib/code-server –auth password
Restart=always

[Install]
WantedBy=multi-user.target

در اينجا ابتدا شرح خدمات را مشخص مي كنيد. سپس ، اعلام مي كنيد كه سرويس nginx قبل از اين بايد شروع شود. بعد از بخش [Unit] نوع سرويس را تعريف مي كنيد (simple بدان معني است كه فرايند بايد به سادگي اجرا شود) و فرماني را كه اجرا مي شود ارائه مي دهد.
همچنين مشخص مي كنيد كه اجراي كد-سرور مجازي جهاني بايد با چند آرگومان خاص براي كد-سرور مجازي آغاز شود. –bind-addr 127.0.0.1:8080 آن را به localhost  در پورت 8080 متصل مي كند ، بنابراين فقط از داخل سرور مجازي شما قابل دسترسي است. –user-data-dir /var/lib/code-server دايركتوري داده هاي كاربر خود را تنظيم مي كند ، و –auth password مشخص مي كند كه بايد بازديد كنندگان را با يك رمزعبور ، مشخص شده در متغير محيط PASSWORD كه در خط بالاي آن مشخص شده است ، تأييد كند.
به ياد داشته باشيد كه your_password را با رمز عبور دلخواه خود جايگزين كنيد ، سپس فايل را ذخيره كنيد و ببنديد.
خط بعدي به systemd مي گويد تا كد-سرور مجازي را در تمام مواقع عدم كاركرد ريستارت كند (براي مثال ، هنگام خرابي يا سركوب فرايند). بخش [Install] به سيستم دستور مي دهد تا در صورت امكان ورود به سرور مجازي شما ، اين سرويس را شروع كند.
با اجراي دستور زير سرويس كد-سرور مجازي را شروع كنيد:
⦁ $ sudo systemctl start code-server

با مشاهده وضعيت آن بررسي كنيد كه درست شروع شده است:
⦁ $ sudo systemctl status code-server

خروجي مشابه اين مشاهده خواهيد كرد:
Output
● code-server.service – code-server
Loaded: loaded (/lib/systemd/system/code-server.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-12 20:53:29 UTC; 11s ago
Main PID: 3236 (node)
Tasks: 14 (limit: 2362)
CGroup: /system.slice/code-server.service
├─3236 /usr/lib/code-server/node /usr/lib/code-server/out/node/entry.js –bind-addr 127.0.0.1:8080 –user-data-dir /var/lib/code-server –auth pas
└─3258 /usr/lib/code-server/node /usr/lib/code-server/out/node/entry.js –bind-addr 127.0.0.1:8080 –user-data-dir /var/lib/code-server –auth pas

May 12 20:53:29 code-server-update systemd[1]: Started code-server.
May 12 20:53:30 code-server-update code-server[3236]: info code-server 3.2.0 fd36a99a4c78669970ebc4eb05768293b657716f
May 12 20:53:30 code-server-update code-server[3236]: info HTTP server listening on http://127.0.0.1:8080
May 12 20:53:30 code-server-update code-server[3236]: info – Using custom password for authentication
May 12 20:53:30 code-server-update code-server[3236]: info – Not serving HTTPS
May 12 20:53:30 code-server-update code-server[3236]: info Automatic updates are enabled

براي شروع خودكار كد-سرور مجازي پس از راه اندازي مجدد سرور مجازي ، سرويس خود را با اجراي دستور زير فعال كنيد:
⦁ $ sudo systemctl enable code-server

در اين مرحله ، شما كد-سرور مجازي را دانلود كرده و آن را در سطح جهاني در دسترس قرار داده ايد. سپس ، يك سرويس سيستمي براي آن ايجاد كرده ايد و آن را فعال كرده ايد ، بنابراين كد-سرور مجازي از هر بوت سرور مجازي شروع مي شود. سپس ، با پيكربندي Nginx به عنوان يك پراكسي معكوس بين بازديد كننده و كد-سرور مجازي آن را در معرض نمايش دامنه خود قرار مي دهيد.
مرحله 2 – قرار گرفتن در معرض كد-سرور مجازي در دامنه شما
در اين بخش ، Nginx را به عنوان يك پروكسي معكوس براي كد-ر پيكربندي مي كنيد.
همانطور كه در مرحله پيش نياز Nginx آموخته ايد ، فايل هاي پيكربندي سايت آن تحت /etc/nginx/sites-available ذخيره مي شوند و بعداً بايد براي فعال شدن با /etc/nginx/sites-enabled لينك شده باشند.
پيكربندي را براي قرار دادن كد-سرور مجازي در دامنه خود در فايلي به نام code-server.conf ، تحت /etc/nginx/sites-available ذخيره مي كنيد. با ايجاد ويرايشگر خود كار را شروع به كار كنيد:
⦁ $ sudo nano /etc/nginx/sites-available/code-server.conf

خطوط زير را اضافه كنيد:
/etc/nginx/sites-available/code-server.conf
server {
listen 80;
listen [::]:80;

server_name code-server.your-domain;

location / {
غير مجاز مي باشد_pass http://localhost:8080/;
غير مجاز مي باشد_set_header Upgrade $http_upgrade;
غير مجاز مي باشد_set_header Connection upgrade;
غير مجاز مي باشد_set_header Accept-Encoding gzip;
}
}

code-server.your-domain را با دامنه مورد نظر خود جايگزين كنيد ، سپس فايل را ذخيره كنيد و ببنديد.
در اين فايل ، تعريف مي كنيد كه Nginx بايد به پورت HTTP 80 گوش كند. سپس ، يك server_name را تعيين مي كنيد كه به Nginx مي گويد براي كدام دامنه درخواست ها را بپذيرد و اين پيكربندي خاص را اعمال كند. در بلوك بعدي ، براي مكان ريشه (/) ، مشخص مي كنيد كه درخواست ها بايد به كد-سرور مجازي در حال اجرا در localhost:8080 به جلو و عقب منتقل شوند. سه خط بعدي (كه با غير مجاز مي باشد_set_header شروع ميشود) به Nginx دستور مي دهد تا برخي از هدرهاي درخواست HTTP را كه براي عملكرد صحيح WebSockets مورد نياز هستند ، استفاده كند.
براي فعال كردن اين پيكربندي سايت ، بايد با اجراي دستور زير ، يك پوشه مربوط به آن را در پوشه / etc / nginx / sites-enabled ايجاد كنيد:
⦁ $ sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf

براي آزمايش اعتبار پيكربندي ، دستور زير را اجرا كنيد:
⦁ $ sudo nginx -t

خروجي زير را مشاهده خواهيد كرد:
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

براي اينكه پيكربندي عملي شود ، بايد Nginx را مجدداً راه اندازي كنيد:
⦁ $ sudo systemctl restart nginx

اكنون نصب كد-سرور مجازي شما در دامنه تان قابل دسترسي است. در مرحله بعد ، با استفاده از يك گواهي نامه Let’s Encrypt TLS رايگان ، آن را ايمن خواهيد كرد.
مرحله 3 – امنيت بخشيدن به دامنه
در اين بخش دامنه خود را با استفاده از گواهي نامه رمزگذاري TLS كه با استفاده از Certbot تهيه مي نماييد را ايمن مي كنيد.
براي نصب آخرين نسخه Certbot ، بايد با اجراي دستور زير مخزن بسته آن را به سرور مجازي خود اضافه كنيد:
⦁ $ sudo add-apt-repository ppa:certbot/certbot

براي قبول بايد ENTER را فشار دهيد.
سپس Certbot و افزونه Nginx آن را نصب كنيد:
⦁ $ sudo apt install python-certbot-nginx

به عنوان بخشي از پيش شرط ها ، شما ufw (فايروال كامپايل نشده) را فعال كرده و آن را پيكربندي كرده ايد تا امكان ترافيك HTTP رمزگذاري نشده را فراهم كند. براي دسترسي به سايت ايمن ، بايد آن را پيكربندي كنيد تا با اجراي دستور زير ، ترافيك رمزگذاري شده را بپذيرد:
⦁ $ sudo ufw allow https

خروجي اين چنين خواهد بود:
Output
Rule added
Rule added (v6)
به طور مشابه با Nginx ، لازم است آن را مجدد كنيد لود تا پيكربندي آن به مرحله اجرا برسد:
⦁ $ sudo ufw reload

چنين خروجي نشان داده مي شود:
Output
Firewall reloaded

سپس در مرورگر خود به دامنه مورد استفاده براي كد-سرور مجازي برويد. اعلان ورود به كد-سرور مجازي را مشاهده خواهيد كرد.

كد-سرور مجازي از شما مي خواهد رمز عبور خود را وارد كنيد. پسوردي را كه در مرحله قبل تعيين كرديد وارد كنيد و Enter IDE را فشار دهيد. اكنون كد-سرور مجازي را وارد كرده و فوراً رابط كاربري گرافيكي آن را مشاهده مي كنيد.

اكنون كه بررسي كرده ايد كه كد-سرور مجازي به درستي در دامنه شما قرار گرفته است ، بايد مجوز TLS را رمزگذاري كنيد تا با استفاده از Certbot ، آن را ايمن كنيد.
براي درخواست گواهي نامه براي دامنه خود ، دستور زير را اجرا كنيد:
⦁ $ sudo certbot –nginx -d code-server.your-domain

در اين دستور ، شما certbot را براي درخواست گواهينامه ها براي دامنه خود اجرا مي كنيد – نام دامنه را با پارامتر -d وارد ميكنيد. پرچم –nginx به آن مي گويد براي پشتيباني از HTTPS ، پيكربندي سايت Nginx را به طور خودكار تغيير دهد. به ياد داشته باشيد كه دامنه code-server.your خود را با نام دامنه خود جايگزين كنيد.
اگر اولين بار است كه Certbot را اجرا مي كنيد ، از شما خواسته مي شود كه يك آدرس ايميل براي اخطارهاي فوري وارد كنيد و شرايط خدمات EFF را بپذيريد. سپس Certbot درخواست Let’s Encrypt براي گواهي دامنه شما را ميدهد. سپس از شما سؤال مي كند كه آيا مايليد همه ترافيك HTTP را به 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 را فشار دهيد.
خروجي مشابه اين خواهد بود:
Output
IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/code-server.your-domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/code-server.your-domain/privkey.pem
Your cert will expire on … 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

اين بدان معني است كه Certbot موفق به توليد گواهينامه هاي TLS شده و آنها را در پيكربندي Nginx براي دامنه شما به كار مي برد. اكنون مي توانيد دامنه كد سرور مجازي خود را در مرورگر خود مجدد لود كنيد و يك پدلاك (قفل) در سمت چپ آدرس سايت مشاهده كنيد ، اين بدان معني است كه اتصال شما به درستي ايمن است.
اكنون كه كد-ر را از طريق يك پروكسي معكوس Nginx در دامنه خود داريد ، آماده استفاده از واسط كاربري كد-سرور مجازي هستيد.
مرحله 4 – استفاده از رابط كد-سرور مجازي
در اين بخش از برخي از ويژگي هاي رابط كد-سرور مجازي استفاده خواهيد كرد. از آنجا كه كد-سرور مجازي ويژوال استوديو كد در حال اجرا در cloud است ، همان رابط كاربري نسخه دسكتاپ مستقل را دارد.
در سمت چپ IDE ، يك رديف عمودي از شش دكمه وجود دارد كه بيشترين ويژگي هاي مورد استفاده را در يك صفحه جانبي كه با عنوان Activity Bar شناخته مي شود باز مي كند.

اين نوار قابل تنظيم است بنابراين مي توانيد اين نماها را به ترتيب ديگري جابجا كنيد يا آنها را از نوار حذف كنيد. به طور پيش فرض ، اولين دكمه منوي كلي را به صورت كشويي باز مي كند ، در حالي كه نماي دوم پنل اكسپلورر را باز مي كند كه پيمايش درخت مانند از ساختار پروژه را فراهم مي كند. مي توانيد پوشه ها و فايل هاي خود را در اينجا مديريت كنيد – ايجاد ، حذف ، جابجايي و تغيير نام آنها در صورت لزوم. نماي بعدي دسترسي به عملكرد جستجو و جايگزيني را فراهم مي كند
به دنبال اين ، به ترتيب پيش فرض ، نماي شما از سيستم هاي كنترل منبع مانند Git قرار ميگيرد. كد ويژوال استوديو همچنين از ساير ارائه دهندگان كنترل منبع پشتيباني مي كند و مي توانيد در اين مستندات دستورالعمل هاي بيشتري را براي جريان كاري كنترل منبع با ويرايشگر بيابيد.

گزينه اشكال زدايي در نوار فعاليت ، كليه اقدامات متداول را براي اشكال زدايي در پنل ارائه مي دهد. ويژوال استوديو كد با پشتيباني داخلي براي اشكال زدايي زمان اجراي Node.js و هر زباني كه به Javascript تبديل شود همراه است. براي ساير زبانها مي توانيد افزونه هايي را براي اشكال زدايي مورد نياز نصب كنيد. مي توانيد پيكربندي هاي اشكال زدايي را در فايل start.json ذخيره كنيد.

نماي نهايي در نوار فعاليت منو را براي دسترسي به افزونه هاي موجود در Marketplace فراهم مي كند.
قسمت اصلي GUI ويرايشگر شماست كه مي توانيد آن ها را با استفاده از زبانه ها براي ويرايش كد خود جدا كنيد. مي توانيد نماي ويرايش خود را به يك سيستم شبكه يا به فايل هاي جانبي تغيير دهيد.

پس از ايجاد فايل جديد از طريق منوي File ، يك فايل خالي در يك تب جديد باز مي شود و پس از ذخيره سازي ، نام فايل در صفحه جانبي Explorer قابل مشاهده خواهد بود. ايجاد پوشه ها را مي توان با كليك راست بر روي نوار كناري Explorer و كليك بر روي New Folder انجام داد. مي توانيد پوشه اي را با كليك بر روي نام آن و همچنين drag و drop فايل ها و پوشه ها به قسمتهاي بالايي بسط دهيد تا آنها را به يك مكان جديد منتقل كنيد.

مي توانيد با وارد كردن CTRL + SHIFT + `، يا با كليك كردن بر روي ترمينال در منوي كشويي بالاي منو ، و انتخاب New Terminal ، به ترمينال دسترسي پيدا كنيد. ترمينال در يك پنل پايين تر باز خواهد شد و ديركتوري كار آن روي فضاي كاري پروژه تنظيم مي شود ، كه شامل فايل ها و پوشه هاي نمايش داده شده در پنل سمت Explorer است.
شما يك نماي كلي سطح بالا از رابط كد سرور مجازي را جستجو كرده ايد و برخي از متداول ترين ويژگي ها را مشاهده كرده ايد.
نتيجه
اكنون كد-ر ، يك IDE همه كاره cloud را در اختيار داريد كه بر روي سرور مجازي Ubuntu 18.04 شما نصب شده است ، در دامنه شما قرار گرفته و با استفاده از گواهي نامه هاي رمزگذاري ايمن شده است. هم اكنون مي توانيد بر روي پروژه ها بصورت جداگانه و همچنين در يك مجموعه همكاري تيمي كار كنيد. اجراي IDE cloud منابع موجود در دستگاه محلي شما را آزاد مي كند و به شما امكان مي دهد منابع را در صورت لزوم مقياس كنيد. براي اطلاعات بيشتر در مورد ويژگي هاي ديگر و دستورالعمل هاي دقيق در مورد ساير مؤلفه هاي كد-سرور مجازي ، به مطالب كد ويژوال استوديو مراجعه كنيد.

 

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

نصب و پيكربندي Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

نظارت بر سلامت سرور با Checkmk در اوبونتو – اجراي چند نسخه PHP بر روي يك سرور

نصب Nginx، MySQL، PHP در CentOS 7 –  نصب و پيكربندي Elasticsearch در اوبونتو 18.04

راه اندازي سرور اوليه با اوبونتو 20.04 – تنظيم كليدهاي SSH در Ubuntu 20.04

نصب و استفاده از PostgreSQL در اوبونتو 20.0 – نحوه نصب MySQL در اوبونتو 20.04

نصب Python 3 روي سرور Ubuntu 18.04 –  نحوه نصب Python 3 روي سرور Ubuntu 20.04

نصب Linux،Apache،MySQL،PHP LAMP در اوبونتو 20.04 –  نصب وب سرور Apache در CentOS 8

نحوه نصب Drupal با Docker Compose –  نحوه نصب Nginx در اوبونتو 20.04

7 مورد از اقدامات امنيتي براي محافظت از سرورهاي شما –  نحوه نصب و ايمن سازي Redis در اوبونتو 20.04

نحوه نصب و ايمن سازي Redis در اوبونتو 18.04 – اضافه كردن فضاي Swap در اوبونتو 20.04

چگونه مي توان فايروال را با UFW در اوبونتو 20.04 تنظيم كرد – نظارت بر اطلاعيه و مسير BGP با BGPalerter اوبونتو 18.04

نصب و ايمن سازي phpMyAdmin در اوبونتو 20.04  –  نصب و استفاده از Composer در اوبونتو 20.04

ريست كردن رمز ورود ريشه MySQL يا MariaDB –  استفاده از نوع داده MySQL BLOB براي ذخيره تصاوير

نصب Nginx در اوبونتو 18.04 – نصب توزيع Anaconda پايتون در اوبونتو 20.04

نحوه نصب جاوا با Apt در اوبونتو 18.04 –  نحوه نصب Django و تنظيم محيط توسعه در اوبونتو 16.04

نصب جنگو و تنظيم محيط توسعه در اوبونتو 20.04 – نحوه ايجاد سرور Minecraft در اوبونتو 18.04

نحوه راه اندازي يك پروژه Node با Typescript –  نحوه نصب و پيكربندي VNC در اوبونتو 18.04

ايجاد يك برنامه Django و اتصال آن به يك بانك اطلاعاتي – نصب و پيكربندي VNC در اوبونتو 20.04

نصب MariaDB در اوبونتو 20.04  –  فعال سازي و اتصال رابط كاربري Django

تنظيم پلتفرم Cloud IDE كد سرور را در اوبونتو 18.04 – پيكربندي Apache HTTP با رويداد MPM و PHP-FPM

 

 

كلمات كليدي خريد سرور

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

 

 

 

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳ خرداد ۱۳۹۹ساعت: ۰۱:۳۷:۲۶ توسط:amir موضوع:

پيكربندي Apache HTTP با رويداد MPM و PHP-FPM در اوبونتو

وب سرور مجازي Apache HTTP طي سالها پيشرفت كرده و در محيط هاي مختلف كار مي كند و نيازهاي مختلف را برطرف مي كند. يكي از مشكلات مهم Apache HTTP كه مانند هر سرور مجازي وب بايد حل شود ، نحوه مديريت فرآيندهاي مختلف براي ارائه يك درخواست پروتكل http است. اين فرآيند شامل باز كردن سوكت ، پردازش درخواست ، باز نگه داشتن اتصال براي مدت معين ، رسيدگي به رويدادهاي جديد در اين ارتباط و بازگشت به محتواي توليد شده توسط برنامه ساخته شده به يك زبان خاص (مانند PHP ، Perl يا Python) است . اين كارها توسط يك ماژول چند پردازشي (MPM) انجام و كنترل مي شود.
Apache HTTP با سه MPM متفاوت ارائه مي شود:
⦁ Pre-fork: يك فرآيند جديد براي هر اتصال ورودي به سرور مجازي ايجاد مي شود. هر فرآيند از سايرين جدا شده است ، بنابراين هيچ حافظه اي بين آنها به اشتراك گذاشته نمي شود ، حتي اگر آنها در يك نقطه از اجراي خود تماس هاي يكسان را انجام دهند. اين يك روش ايمن براي اجراي برنامه هاي مرتبط با كتابخانه هايي است كه از رشته سازي پشتيباني نمي كنند – به طور معمول برنامه ها يا كتابخانه هاي قديمي تر.
⦁ Worker: يك فرآيند parent (والد) وظيفه راه اندازي مجموعه اي از فرآيندهاي child (فرزند) را بر عهده دارد ، كه برخي از آنها در حال گوش دادن به اتصالات جديد ورودي هستند ، و برخي ديگر در حال ارائه محتواي درخواستي هستند. هر فرآيند تبديل به رشته شده است (يك رشته واحد مي تواند يك اتصال را كنترل كند) بنابراين يك فرآيند مي تواند همزمان چندين درخواست را انجام دهد. اين روش كار با اتصالات ، باعث استفاده بهتر از منابع ميشود ، در حالي كه همچنان ثبات را حفظ مي كند. اين نتيجه اي از مجموعه فرآيندهاي موجود است كه غالباً رشته هاي در دسترس را براي ارائه اتصالات جديد فوري به صورت رايگان ارائه مي دهد.
⦁ Event: بر اساس Worker ، اين MPM با بهينه سازي چگونگي برنامه ريزي فرآيند والد وظايف را به فرآيندهاي فرزند و رشته هاي مرتبط با آن ها يك قدم فراتر مي گذارد. اتصال بصورت پيش فرض 5 ثانيه باز مي ماند و در صورت عدم وقوع اتفاق جديد ، بسته مي شود. اين مقدار پيش فرض دستورالعمل keep-alive است، كه رشته مربوط به آن را حفظ مي كند. Event MPM فرايند را قادر مي سازد تا رشته ها را مديريت كند به گونه اي كه برخي از رشته ها آزاد هستند كه بتوانند اتصالات جديد ورودي را كنترل كنند در حالي كه برخي ديگر به اتصالات زنده متصل هستند. اجازه توزيع مجدد وظايف اختصاص يافته به رشته ها باعث مي شود تا استفاده و عملكرد بهينه منابع بيشتر شود.
ماژول MPM Event يك ماژول چند پردازشي سريع است كه در وب سرور مجازي Apache HTTP موجود است.
PHP-FPM مدير فرآيند FastCGI براي PHP است. پروتكل FastCGI بر پايه رابط مشترك گيت (CGI) ساخته شده است ، پروتكلي كه بين برنامه ها و سرور مجازي هاي وب مانند Apache HTTP قرار دارد. اين ويژگي اجازه مي دهد تا توسعه دهندگان برنامه ها را جداگانه از رفتار سرور مجازي هاي وب بنويسند. برنامه ها فرآيندهاي خود را بطور مستقل اجرا مي كنند و محصول خود را از طريق اين پروتكل به سرور مجازي وب منتقل مي كنند. هر اتصال جديدي كه نياز به پردازش توسط يك برنامه داشته باشد فرآيند جديدي را ايجاد مي كند.
با تركيبي از رويداد MPM در Apache HTTP با PHP FastCGI مدير فرآيند (PHP-FPM) ، وب سايت مي تواند سريعتر لود شده و ضمن استفاده از منابع كمتر ، اتصالات همزمان بيشتري را مديريت كند.
در اين آموزش عملكرد پشته LAMP را با تغيير ماژول پيش فرض چند پردازشي از pre-fork به event و با استفاده از مدير فرآيند PHP-FPM براي مديريت كد PHP به جاي mod_php كلاسيك در Apache HTTP بهبود مي بخشيد.
پيش نيازها
قبل از شروع اين راهنما به موارد زير نياز خواهيد داشت:
• يك سرور مجازي Ubuntu 18.04 كه طبق راهنماي ستاپ اوليه سرور مجازي Ubuntu 18.04 تنظيم ، و شامل يك كاربر sudo غير ريشه و فايروال راه اندازي باشد.
• پشته LAMP كه طبق آموزش نحوه نصب Linux ، Apache ، MySQL ، PHP (LAMP stack) در اوبونتو 18.04 روي سرور مجازي شما نصب شده باشد.
مرحله 1 – تغيير ماژول چند پردازشي
اوبونتو براي فعال يا غيرفعال كردن ماژول هاي Apache HTTP از توزيع والد خود ، يعني دبيان ، اسكريپت هايي را به ارث مي برد. براي غيرفعال كردن ماژول Pre fork و فعال كردن ماژول Event از اين مجموعه ابزار در اين مرحله استفاده خواهيد كرد.
در اين مرحله شما Apache HTTP را متوقف خواهيد كرد ، ماژول PHP 7.2 را كه به ماژول Pre-fork وصل شده است ، غيرفعال ميكنيد و سپس Pre-fork را غيرفعال ميكنيد تا بلافاصله ماژول Event فعال شود.
ابتدا سرويس Apache HTTP را متوقف مي كنيد:
⦁ $ sudo systemctl stop apache2

اكنون مي توانيد ماژول PHP 7.2 را كه مربوط به ماژول Pre-fork است غيرفعال كنيد:
⦁ $ sudo a2dismod php7.2

سپس ماژول MPM Pre-fork MPM را غيرفعال كنيد:
⦁ $ sudo a2dismod mpm_prefork

اكنون ماژول Event MPM را فعال كنيد:
⦁ $ sudo a2enmod mpm_event

شما MPM را از Pre-fork به Event تغيير داده ايد و اتصال ماژول PHP 7.2 را بين PHP و Apache HTTP حذف كرده ايد. در مرحله بعدي ماژول php-fpm و همچنين كتابخانه ها و ماژول هاي پروكسي را نصب خواهيد كرد. Apache HTTP را پيكربندي خواهيد كرد تا بتواند با PHP نيز ارتباط برقرار كند.
مرحله 2 – پيكربندي Apache HTTP براي استفاده از مدير فرآيند FastCGI
تا اين جا روش پردازش اتصالات توسط Apache HTTP را با انتقال از MPM Pre-fork به Event تغيير داده ايد. اما در طول راه ماژول PHP را كه Apache HTTP را با هر برنامه اجرا شده در PHP وصل كرده است غيرفعال كرده ايد.
در اين مرحله پردازنده PHP-FPM را نصب خواهيد كرد تا Apache HTTP بتواند مجدداً برنامه هاي PHP را پردازش كند. و همچنين مي توانيد كتابخانه هاي متعلقات را نصب كنيد و ماژول ها را فعال كنيد تا هر دو بتوانند هموارتر و سريعتر از گذشته همكاري كنند.
ابتدا php-fpm را نصب كنيد. دستور زير بسته PHP-FPM را نصب مي كند و سرويس php7.2-fpm بصورت خودكار را كه با systemd يكپارچه شده است فعال مي كند ، بنابراين اين سرويس در زمان بوت شروع مي شود:
⦁ sudo apt install php-fpm

براي برقراري ارتباط ، Apache HTTP و PHP به يك كتابخانه نياز دارند كه بتواند آن ظرفيت را داشته باشد. اكنون libapache2-mod-fcgid را نصب خواهيد كرد ، كه مي تواند به عنوان واسط بين برنامه ها با سرور مجازي هاي وب سرويس دهي كند ، و مخصوص Apache HTTP است. اين ارتباط از طريق سوكت يونيكس اتفاق مي افتد.
اين كتابخانه را نصب كنيد:
⦁ $ sudo apt install libapache2-mod-fcgid

php-fpm و libapache2-mod-fcgid را نصب كرده ايد ، اما هنوز هيچ كدان فعال نشده اند.
ابتدا ماژول php-fpm را با دستور زير فعال كنيد:
⦁ $ sudo a2enconf php7.2-fpm

سپس ماژول پروكسي HTTP Apacheرا فعال كنيد.
⦁ $ sudo a2enmod غير مجاز مي باشد

بعد از آن ماژول پروكسي FastCGI را در Apache HTTP فعال كنيد:
⦁ $ sudo a2enmod غير مجاز مي باشد_fcgi

توجه: مي توانيد پيكربندي اين تعامل بين برنامه هاي PHP و Apache HTTP را از طريق سوكت UNIX با دستور زير بخوانيد:
⦁ $ cat /etc/apache2/conf-enabled/php7.2-fpm.conf

همه چيز در حال حاضر آماده است بنابراين مي توانيد Apache HTTP را شروع كنيد. ابتدا يك پيكربندي انجام مي دهيد:
⦁ $ sudo apachectl configtest

Output
Syntax OK

پس از آن مي توانيد Apache HTTP را رستارت كنيد ، تا هنگام نصب كتابخانه FastCGI libapache2-mod-fcgid به طور خودكار شروع شود:
⦁ $ sudo systemctl restart apache2

اكنون ماژول php-fpm را نصب ،و Apache HTTP را پيكربندي كرده ايد تا با آن كار كند ، ماژول هاي لازم را براي كار با پروتكل FastCGI فعال كرده و خدمات مربوطه را شروع نموده ايد.
اكنون كه Apache ماژول Event MPM را فعال كرده است و PHP-FPM در آن حضور دارد و در حال اجرا است ، زمان آن رسيده است كه همه چيز بررسي شود تا مطمئن شويم طبق پيش بيني عمل ميكند.
مرحله 3 – پيكربندي خود را بررسي كنيد
به منظور بررسي اينكه تغييرات پيكربندي اعمال شده اند ، برخي از آزمايشات را اجرا خواهيد كرد. اولين تست بررسي ميكند كه ماژول چند پردازشي Apache HTTP استفاده مي شود. تست دوم تأييد مي كند كه PHP از مدير FPM استفاده مي كند.
با اجراي دستور زير سرور مجازي Apache HTTP را بررسي كنيد:
⦁ $ sudo apachectl -M | grep ‘mpm’

خروجي شما به شرح زير خواهد بود:
Output
mpm_event_module (shared)
مي توانيد همين كار را براي ماژول پروكسي و FastCGI تكرار كنيد:
⦁ $ sudo apachectl -M | grep ‘غير مجاز مي باشد’

خروجي نشان داده شده اينگونه است:
Output
غير مجاز مي باشد_module (shared)
غير مجاز مي باشد_fcgi_module (shared)

اگر دوست داريد كل ليست ماژول ها را ببينيد ، مي توانيد قسمت دوم دستور را بعد از -M حذف كنيد.
اكنون زمان آن رسيده است كه بررسي كنيم PHP از مدير پردازشگر FastCGI استفاده مي كند يا خير. براي اين كار يك اسكريپت كوچك PHP بنويسيد كه تمام اطلاعات مربوط به PHP را به شما نشان مي دهد.
دستور زير را براي نوشتن فايلي به نام زير اجرا كنيد:
⦁ $ sudo nano /var/www/your_domain/info.php

محتواي زير را در فايل info.php اضافه كنيد:
info.php

اكنون به آدرس URL سرور مجازي خود مراجعه كرده و در انتها info.php را اضافه كنيد. به اين شكل:
http://your_domain/info.php
ورودي API سرور مجازي FPM / FastCGI خواهد بود.

بعد از اين بررسي فايل info.php را حذف كنيد تا هيچ گونه اطلاعاتي در مورد سرور مجازي به صورت عمومي فاش نشود:
⦁ $ sudo rm /var/www/yourdomain.com/info.php

در حال حاضر وضعيت كار ماژول MPM ، ماژول هاي مديريت FastCGI و نحوه استفاده از كد PHP را بررسي كرده ايد.
نتيجه
شما پشته LAMP اصلي خود را بهينه كرده ايد ، بنابراين تعداد اتصالات براي ايجاد فرآيندهاي جديد Apache HTTP افزايش يافته است ، PHP-FPM با كد PHP كارآمدتر عمل مي كند ، و استفاده كلي از منابع بهبود يافته است.
براي اطلاعات بيشتر در مورد ماژول هاي مختلف و پروژه هاي مرتبط ، به مطالب پروژه سرور مجازي Apache HTTP مراجعه كنيد.

 

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

نصب و پيكربندي Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

نظارت بر سلامت سرور با Checkmk در اوبونتو – اجراي چند نسخه PHP بر روي يك سرور

نصب Nginx، MySQL، PHP در CentOS 7 –  نصب و پيكربندي Elasticsearch در اوبونتو 18.04

راه اندازي سرور اوليه با اوبونتو 20.04 – تنظيم كليدهاي SSH در Ubuntu 20.04

نصب و استفاده از PostgreSQL در اوبونتو 20.0 – نحوه نصب MySQL در اوبونتو 20.04

نصب Python 3 روي سرور Ubuntu 18.04 –  نحوه نصب Python 3 روي سرور Ubuntu 20.04

نصب Linux،Apache،MySQL،PHP LAMP در اوبونتو 20.04 –  نصب وب سرور Apache در CentOS 8

نحوه نصب Drupal با Docker Compose –  نحوه نصب Nginx در اوبونتو 20.04

7 مورد از اقدامات امنيتي براي محافظت از سرورهاي شما –  نحوه نصب و ايمن سازي Redis در اوبونتو 20.04

نحوه نصب و ايمن سازي Redis در اوبونتو 18.04 – اضافه كردن فضاي Swap در اوبونتو 20.04

چگونه مي توان فايروال را با UFW در اوبونتو 20.04 تنظيم كرد – نظارت بر اطلاعيه و مسير BGP با BGPalerter اوبونتو 18.04

نصب و ايمن سازي phpMyAdmin در اوبونتو 20.04  –  نصب و استفاده از Composer در اوبونتو 20.04

ريست كردن رمز ورود ريشه MySQL يا MariaDB –  استفاده از نوع داده MySQL BLOB براي ذخيره تصاوير

نصب Nginx در اوبونتو 18.04 – نصب توزيع Anaconda پايتون در اوبونتو 20.04

نحوه نصب جاوا با Apt در اوبونتو 18.04 –  نحوه نصب Django و تنظيم محيط توسعه در اوبونتو 16.04

نصب جنگو و تنظيم محيط توسعه در اوبونتو 20.04 – نحوه ايجاد سرور Minecraft در اوبونتو 18.04

نحوه راه اندازي يك پروژه Node با Typescript –  نحوه نصب و پيكربندي VNC در اوبونتو 18.04

ايجاد يك برنامه Django و اتصال آن به يك بانك اطلاعاتي – نصب و پيكربندي VNC در اوبونتو 20.04

نصب MariaDB در اوبونتو 20.04  –  فعال سازي و اتصال رابط كاربري Django

تنظيم پلتفرم Cloud IDE كد سرور را در اوبونتو 18.04 – پيكربندي Apache HTTP با رويداد MPM و PHP-FPM

 

 

كلمات كليدي خريد سرور

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

 

 

 

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳ خرداد ۱۳۹۹ساعت: ۰۱:۳۴:۱۵ توسط:amir موضوع:

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

آخرين نسخه پشتيباني بلند مدت سيستم عامل اوبونتو ، Ubuntu 20.04 Focal Fossa در 23 آوريل 2020 منتشر شد. در اين راهنما نحوه به روزرساني سيستم اوبونتو با نسخه 18.04 يا بعد از آن به اوبونتو 20.04 توضيح داده خواهد شد.
هشدار: مانند هرگونه به روزرساني ديگر بين نسخه هاي اصلي يك سيستم عامل ، اين فرايند با خطر ذاتي شكست ، از دست رفتن داده ها يا پيكربندي ناقص نرم افزارها را به همراه دارد. پشتيبان گيري جامع و آزمايش گسترده به شدت توصيه مي شود.
براي جلوگيري از اين مشكلات ، توصيه مي كنيم به جاي به روزرساني در محل ، به يك سرور مجازي تازه اوبونتو 20.04 منتقل شويد. ممكن است شما هنوز هم نياز به بررسي تفاوت در پيكربندي نرم افزار هنگام به روزرساني داشته باشيد ، اما به احتمال زياد سيستم اصلي داراي ثبات بيشتري خواهد بود. براي يادگيري نحوه جابه جايي بين سرور مجازي ها مي توانيد مجموعه مقالات ما را دنبال كنيد.
پيش نيازها
اين راهنما فرض مي كند كه شما يك سيستم اوبونتو 18.04 يا بالاتر داريد كه با يك كاربر غير ريشه sudo فعال شده است.
مشكلات احتمالي
اگرچه بسياري از سيستم ها بدون بروز حادثه قابل نصب هستند ، اما انتقال به نسخه جديد با نصب توزيع از ابتدا ، پيكربندي سرويس ها با آزمايش دقيق در طول مسير ، و جابه جايي برنامه يا داده هاي كاربر به عنوان يك مرحله جداگانه ، ايمن تر و قابل پيش بيني تر است.
شما هرگز نبايد يك سيستم توليد را بدون آزمايش كردن تمام نرم افزارها و خدمات مستقر شده خود در برابر به روزرساني در يك محيط مرحله بندي ، ارتقا دهيد. به خاطر داشته باشيد كه كتابخانه ها ، زبان ها و سرويس هاي سيستم ممكن است تغيير قابل ملاحظه اي داشته باشند. قبل از بروزرساني ، مطالب انتشار Focal Fossa را بخوانيد.
مرحله 1 – تهيه نسخه پشتيبان از سيستم خود
قبل از تلاش براي بروزرساني اساسي در هر سيستمي ، بايد اطمينان حاصل كنيد كه اگر اين نسخه به روزرساني نادرست باشد ، اطلاعات شما از دست نخواهد رفت. بهترين راه براي دستيابي به اين امر تهيه نسخه پشتيبان از كل سيستم فايل شما است. در صورت عدم امكان اين كار ، از دايركتوري هوم كاربرو ، هر فايل پيكربندي سفارشي و داده هاي ذخيره شده توسط سرويس هايي مانند پايگاه داده هاي رابطه اي كپي تهيه كنيد.
براي مشاهده روش هاي بكاپ گيري كه روي بيشتر سيستم هاي اوبونتو كار خواهند كرد ، به نحوه انتخاب رويكرد بكاپ گيري موثر براي VPS خود مراجعه كنيد.
مرحله 2 – به روزرساني بسته هاي نصب شده فعلي
قبل از شروع به روزرساني نسخه ، ايمن ترين كار به روز رساني به جديدترين نسخه هاي كليه بسته ها براي نسخه فعلي است. با به روزرساني ليست بسته شروع كنيد:
⦁ $ sudo apt update

سپس ، بسته هاي نصب شده را به آخرين نسخه هاي موجود خود ارتقا دهيد:
⦁ $ sudo apt upgrade

ليستي از به روزرساني ها به شما نشان داده مي شود و از شما خواسته مي شود ادامه دهيد. با yes پاسخ دهيد و Enter را فشار دهيد.
اين روند ممكن است مدتي طول بكشد. پس از اتمام كار ، از دستور dist-upgrade با apt-get استفاده كنيد ، كه هر گونه به روزرساني ديگر كه شامل تغيير متعلقات است ،يا اضافه كردن و حذف بسته هاي جديد در صورت لزوم را انجام ميدهد. مجموعه اي از به روز رساني ها را شامل مي شود كه ممكن است با مرحله apt upgrade قبلي به عقب برگشته باشد:
⦁ $ sudo apt dist-upgrade

در صورت درخواست ادامه ، دوباره با y پاسخ دهيد و منتظر بمانيد كه به روزرساني به پايان برسد.
اكنون كه نصب به روز رساني اوبونتو را داريد ، مي توانيد براي ارتقاء به نسخه 20.04 از do-release-upgrade استفاده كنيد.
مرحله 3 – به روزرساني با ابزار do-release-upgrade اوبونتو
به طور معمول ، نسخه هاي اوبونتو با تغيير در /etc/apt/sources.list Apt – كه مشخص كننده مخازن بسته است – و با استفاده از apt-get dist-upgrade كه خود به روزرساني را انجام ميدهد، قابل ارتقا هستند. اگرچه هنوز هم ممكن است اين روند همچنان كار كند ، اوبونتو ابزاري به نام do-release-upgrade را فراهم مي كند تا اين ارتقا ايمن تر و آسان تر شود.
do-release-upgrade وجود نسخه جديد ، به روزرساني ليست منابع و ساير كارها را بررسي مي كند ، و مسير ارتقاء رسمي توصيه شده براي به روزرساني سرور مجازي است كه بايد از طريق يك اتصال از راه دور انجام شود.
با اجراي o-release-upgrade بدون هيچ آپشني شروع كنيد:
⦁ $ sudo do-release-upgrade

اگر نسخه جديد اوبونتو به طور رسمي منتشر نشده است ، ممكن است خروجي زير را دريافت كنيد:
Output
Checking for a new Ubuntu release
No new release found

توجه داشته باشيد كه در سرور مجازي اوبونتو ، نسخه جديد LTS تا انتشر نسخه اول خود ، در اين مورد 20.04.1 براي do-release-upgrade در دسترس نيست. معمولاً چند ماه پس از تاريخ انتشار اوليه بيرون مي آيد.
اگر نسخه موجود را نمي بينيد ، گزينه -d را براي ارتقا به نسخه توسعه اضافه كنيد:
⦁ $ sudo do-release-upgrade -d

اگر از طريق SSH به سيستم خود متصل هستيد ، از شما سؤال مي شود كه آيا مي خواهيد ادامه دهيد. در مورد ماشينهاي مجازي يا سرور مجازي هاي مديريت شده بايد به خاطر داشته باشيد كه از دست دادن اتصال SSH يك خطر محسوب مي شود ، به خصوص اگر وسيله ديگري براي اتصال از راه دور به كنسول سيستم نداريد (مثلاً يك ويژگي كنسول مبتني بر وب).
در مورد ساير سيستمهاي تحت كنترل خود ، به ياد داشته باشيد كه ايمن ترين كار اين است كه اجراي به روزرساني هاي اصلي سيستم عامل را تنها زماني انجام دهيد كه دسترسي فيزيكي مستقيم به دستگاه داريد.
در اعلان ظاهر شده، y را تايپ كرده و Enter را فشار دهيد تا ادامه يابد:
Output
Reading cache

Checking package manager

Continue running under SSH?

This session appears to be running under ssh. It is not recommended
to perform a upgrade over ssh currently because in case of failure it
is harder to recover.

If you continue, an additional ssh daemon will be started at port
‘1022’.
Do you want to continue?

Continue [yN]

در مرحله بعد ، به شما اطلاع داده مي شود كه do-release-upgrade ، نمونه جديدي از sshd را در پورت 1022 شروع مي كند:
Output
Starting additional sshd

To make recovery in case of failure easier, an additional sshd will
be started on port ‘1022’. If anything goes wrong with the running
ssh you can still connect to the additional one.
If you run a firewall, you may need to temporarily open this port. As
this is potentially dangerous it’s not done automatically. You can
open the port with e.g.:
‘iptables -I INPUT -p tcp –dport 1022 -j ACCEPT’

To continue please press [ENTER]

Enter را فشار دهيد. در مرحله بعد ، ممكن است هشدار داده شود كه ورودي آينه پيدا نشده است. Y را وارد كنيد:
Output
Updating repository information

No valid mirror found

While scanning your repository information no mirror entry for the
upgrade was found. This can happen if you run an internal mirror or
if the mirror information is out of date.

Do you want to rewrite your ‘sources.list’ file anyway? If you choose
‘Yes’ here it will update all ‘bionic’ to ‘focal’ entries.
If you select ‘No’ the upgrade will cancel.

Continue [yN]

پس از دانلود ليستهاي بسته جديد و محاسبه تغييرات ، از شما سؤال مي شود كه آيا مي خواهيد به روزرساني را شروع كنيد. دوباره ، y را وارد كنيد تا ادامه دهيد:
Output
Do you want to start the upgrade?

18 installed packages are no longer supported by Canonical. You can
still get support from the community.

3 packages are going to be removed. 142 new packages are going to be
installed. 452 packages are going to be upgraded.

You have to download a total of 338 M. This download will take about
42 minutes with a 1Mbit DSL connection and about 13 hours with a 56k
modem.

Fetching and installing the upgrade can take several hours. Once the
download has finished, the process cannot be canceled.

Continue [yN] Details [d]

بسته هاي جديد اكنون بازيابي ، باز و نصب مي شوند. حتي اگر سيستم شما در حال اتصال سريع باشد ، اين كار مدتي طول مي كشد.
در حين نصب ، ممكن است سؤالات مختلف در قالب گفتگوي تعاملي ارائه شود. به عنوان مثال ، ممكن است از شما سؤال شود كه آيا مي خواهيد در صورت لزوم به طور خودكار سرويس ها را مجدداً راه اندازي كنيد:

در اين حالت ، بهتر است بله را پاسخ دهيد. در موارد ديگر ، ممكن است از شما سؤال شود كه آيا مي خواهيد يك فايل پيكربندي را كه تغيير داده ايد جايگزين كنيد. اين اغلب يك فراخوان داوري است و به احتمال زياد به دانش در مورد نرم افزار خاصي نياز دارد كه خارج از محدوده اين آموزش است.
پس از پايان نصب بسته هاي جديد ، از شما سؤال مي شود كه آيا حاضر هستيد بسته هاي منسوخ را حذف كنيد. در سيستم استوك بدون پيكربندي سفارشي ، وارد كردن y در اينجا بايد ايمن تر باشد. در سيستمي كه به شدت اصلاح كرده ايد ، بهتر است d را وارد كنيد و ليست بسته هاي حذف شده را بررسي كنيد ، شايد شامل مواردي باشد كه لازم است بعدا مجدد نصب كنيد.
Output
Remove obsolete packages?

53 packages are going to be removed.

Continue [yN] Details [d]

سرانجام ، با فرض اينكه همه چيز خوب پيش رفته است ، مطلع خواهيد شد كه به روزرساني كامل شده است و بايد ريستارت كنيد. y را وارد كنيد تا ادامه يابد:
Output
System upgrade is complete.

Restart required

To finish the upgrade, a restart is required.
If you select ‘y’ the system will be restarted.

Continue [yN]
در يك بخش SSH ، احتمالاً چيزي شبيه به موارد زير را مشاهده خواهيد كرد:
Output
Connection to 203.0.113.241 closed by remote host.
Connection to 203.0.113.241 closed.

ممكن است لازم باشد براي خروج از اعلان محلي خود ، يك كليد را در اينجا فشار دهيد ، زيرا بخش SSH شما در انتهاي سرور مجازي خاتمه يافته است.
لحظه اي صبر كنيد تا سرور مجازي شما دوباره راه اندازي شود ، سپس دوباره وصل شويد. هنگام ورود به سيستم ، بايد با پيامي كه تأييد مي كند اكنون در Focal Fossa هستيد ، مورد استقبال قرار بگيريد:
Output
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-29-generic x86_64)

نتيجه
اكنون بايد نصب Ubuntu 20.04 كار كند. از اينجا ، به احتمال زياد بايد تغييرات پيكربندي لازم براي سرويس ها و برنامه هاي مستقر را بررسي كنيد.
مي توانيد آموزش و سؤالات بيشتر در مورد 20.04 را در صفحه آموزش Ubuntu 20.04 ما بيابيد.

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳ خرداد ۱۳۹۹ساعت: ۰۱:۳۱:۰۸ توسط:amir موضوع:

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

اگر مجموعه توسعه ما Django را دنبال كرده باشيد ، با موفقيت يك برنامه Django ايجاد كرده ايد كه به كاربران داراي امتيازات ادمين اجازه مي دهد تا از طريق داشبورد UI ادمين Django ، نظرات و پست هاي خود را اضافه كنند. همچنين با اهرم كردن MySQL و مدل هاي راه حل نگاشت مربوط به آبجكت، تداوم داده ها را تنظيم كرده ايد.
در اين آموزش ، نماهاي Django را ايجاد خواهيم كرد كه برنامه وب ما را قادر مي سازد به درستي درخواست هاي وب را انجام داده و پاسخ هاي وب مورد نياز را برگرداند. همانطور كه در مطالب Django تعريف شده است ، يك پاسخ وب مي تواند محتواي HTML يك صفحه وب ، يك تغيير مسير يا يك خطاي HTTP باشد (به عنوان مثال 404). كد توابع view تا زماني كه در مسير Python شما باشد از لحاظ فني مي تواند در هر نقطه از پروژه شما قرار بگيرد. با اين حال ، برخي از كنوانسيون هاي معروف براي نامگذاري و قرار دادن فايل وجود دارند كه اين توابع view در آنها موجودند ، و ما اين روشها را دنبال خواهيم كرد.
پس از اتمام مراحل اين آموزش ، وبلاگ Django شما يك پست جديد را به آدرس اينترنتي IP-يا-domain / post شما وارد مي كند.
پيش نيازها
اين آموزش بخشي از مجموعه توسعه Django است و ادامه آن سري ميباشد.
اگر اين مجموعه را دنبال نكرده ايد ، فرضيات زير را مطرح مي كنيم:
• بايد نسخه 3 يا بالاتر Django را نصب كرده باشيد.
• برنامه Django خود را به يك پايگاه داده وصل كرده ايد. ما از MySQL استفاده مي كنيم ، و مي توانيد با دنبال كردن قسمت دوم مقاله Django ،تحت عنوان “نحوه ايجاد يك برنامه Django و اتصال آن به يك بانك اطلاعاتي” ، به اين اتصال دست يابيد.
• شما با يك سيستم عامل مستقر در يونيكس كار مي كنيد ، ترجيحاً با سرور مجازي ابري اوبونتو 20.04 زيرا اين سيستمي است كه ما روي آن آزمايش كرده ايم. اگر مي خواهيد Django را در محيطي مشابه تنظيم كنيد ، لطفاً به آموزش “نحوه نصب Django و ايجاد يك محيط توسعه در اوبونتو 20.04” مراجعه كنيد.
• رابط كاربري ادمين Django خود را تنظيم كرده ايد. شما مي توانيد اين كار را با پيروي از آموزش ادمين Django انجام دهيد.
از آنجا كه اين راهنما در وهله اول با نماهاي Django سروكار دارد ، حتي اگر ستاپ كمي متفاوتي داريد، مي توانيد آن را دنبال كنيد.
مرحله 1 – ايجاد توابع view
در درون ترمينال خود ، ابتدا بايد وارد دايركتوري مربوطه شويد و محيط مجازي Python خود را فعال كنيد. اگر همراه اين مجموعه بوده باشيد ، مي توانيد دستورات زير را وارد كنيد. مهم است كه هميشه در هنگام تهيه برنامه خود از يك محيط برنامه نويسي پايتون استفاده كنيد تا اطمينان حاصل شود كه كد شما درج شده است و شما با ستاپ درست كار مي كنيد.
⦁ $ cd ~/my_blog_app

⦁ $ . env/bin/activate
اكنون كه محيط مجازي شما فعال شده است ، بياييد به ديركتوري blogsite  برويم و در آنجا يك فايل پايتون را باز خواهيم كرد و اولين تابع view خود را ايجاد مي كنيم.
⦁ (env) Sammy@ubuntu:$ cd ~/my_blog_app/blog/blogsite

براي مشاهده ويرايش ، با استفاده از nano يا ويرايشگر متن مورد نظر خود ، فايل views.py را باز كنيد.
⦁ (env) Sammy@ubuntu:$ nano views.py

با باز كردن فايل ، بايد كدي مشابه با اين را پر كنيد:
/my_blog_app/blog/blogsite/views.py
from django.shortcuts import render

# Create your views here.

عبارت ورود را كه تابع render () را از كتابخانه django.shortcuts وارد مي كند، نگه خواهيم داشت. تابع  render()به ما امكان مي دهد تا يك الگو و يك متن را با هم تركيب كنيم تا بتوانيم آبجكت HttpResponse مناسب را برگردانيم. اين را به خاطر بسپاريد زيرا با هر نمايي كه مي نويسيم ، مسئوليت نمونه سازي ، پر كردن و بازگرداندن HttpResponse را بر عهده داريم.
در مرحله اول ما اولين نماي خود را اضافه خواهيم كرد كه از كاربران با صفحه ايندكس استقبال مي كند. تابع HttpResponse () را از كتابخانه http  در Django وارد ميكنيم. با استفاده از آن تابع ، متن را ارسال مي كنيم تا هنگام درخواست صفحه وب نمايش داده شود.
~/my_blog_app/blog/blogsite/views.py
from django.shortcuts import render
from django.http import HttpResponse

def index(request):
return HttpResponse(‘Hello, welcome to the index page.’)

پس از آن ، يك تابع ديگر اضافه خواهيم كرد كه پست شخصي را كه مي خواهيم بعداً در آموزش ايجاد كنيم ، نمايش مي دهد.
~/my_blog_app/blog/blogsite/views.py

def individual_post(request):
return HttpResponse(‘Hi, this is where an individual post will be.’)

فايل نهايي views.py اكنون به شرح زير خواهد بود.
~/my_blog_app/blog/blogsite/views.py
from django.http import HttpResponse
from django.shortcuts import render

def index(request):
return HttpResponse(‘Hello, welcome to the index page.’)

def individual_post(request):
return HttpResponse(‘Hi, this is where an individual post will be.’)

پس از پايان ويرايش فايل ، حتما آن را ذخيره كنيد و خارج شويد. در nano ، مي توانيد CTRL و X ، سپسY ، و ENTER را فشار دهيد.
در حال حاضر ، هيچ URL مشخص شده اي كه اين توابع به آن اشاره كند وجود ندارد ، بنابراين بايد آن را به فايل urlpatterns خود در فايل پيكربندي URL اضافه كنيم. با افزودن نماها، اجازه خواهيم داد كه از طريق اين فايل پيكربندي به نگاشت URLها به آنها بپردازيم تا بتوانيم صفحاتي را كه ايجاد كرده ايم مشاهده كنيم.
مرحله 2 – URL را به نماها نگاشت كنيد
با Django ، مي توانيم URL هاي خود را طراحي كنيم تا با برنامه خود استفاده كنيم. اين كار در پايتون خالص با استفاده از فايلي كه معمولاً به URLconf  يا فايل “پيكربندي URL” شناخته مي شود انجام مي گردد.
براي نمايش صفحه وب ، Django ابتدا بايد ماژول URLconf را براي استفاده تعيين كند ، سپس به دنبال urlpatterns ، يك ساختار داده ليستي است كه شامل همه الگوهاي URL ميباشد. سپس Django از هر الگوي URL عبور مي كند تا اينكه اولين موردي را پيدا كند كه مطابقت داشته باشد. پس از يافتن يك انطباق ، Django نماي مرتبط را پيدا مي كند ، و آن تابع نما داده هاي مربوط به الگوي URL و يك آبجكت HttpRequest را دريافت مي كند. اگر در هر مرحله در طول اين فرآيند خرابي وجود داشته باشد ، به جاي آن ، يك نماي خطا نشان داده مي شود.
در اين بخش ، ما با دو فايل urls.py مختلف در دو ديركتوري مختلف برنامه خود كار خواهيم كرد.
در حالي كه در ديركتوري ~ / my_blog_app / blog / blogsite هستيد، فايل urls.py – كه به عنوان فايل URLconf شما نيز شناخته شده است – را براي ويرايش باز كنيد. ما در اينجا از nano براي ويرايش فايل استفاده خواهيم كرد.

⦁ (env) Sammy@ubuntu:$ nano urls.py

با ليست urlpatterns فايل را به گونه اي تغيير دهيد كه مشابه فايل زير باشد.
~/my_blog_app/blog/blogsite/urls.py
from django.urls import path
from . import views

urlpatterns = [
path(”, views.index, name=’index’),
path(‘post/’, views.individual_post, name=’individual_post’)
]

پس از اتمام خطوط بالا را اضافه كنيد، فايل را ذخيره كرده و ببنديد.
پس از به روزرساني فايل URLconf ديركتوري blogsite ، آن را در URLconf ديركتوري blog قرار خواهيم داد وگرنه قابل تشخصي نيست. ما بايد اين كار را انجام دهيم زيرا در فايل تنظيمات ما به عنوان ROOT_URLCONF تنظيم شده است. اين بدان معناست كه Django در حال جستجوي urlpatterns در آدرس URL ديركتوري blog است.
براي درج blogsite URLconf در blog URLconf ، بايد به آن ديركتوري برويم.
⦁ (env) Sammy@ubuntu:$ cd ~/my_blog_app/blog/blog

پس از رفتن به آنجا ، مي توانيد فايل URLconf را با nano يا ويرايشگر متن ديگر مورد نظر خود باز كنيد.
⦁ (env) Sammy@ubuntu:$ nano urls.py

در اين فايل خطوط زير را اضافه خواهيم كرد تا فايل /blogsite/urls.py را كه با آنها كار كرده ايم درج شود ، كه در خط دوم نشان داده شده است.
~/my_blog_app/blog/blog/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
path(‘admin/’, admin.site.urls),
path(”, include(‘blogsite.urls’))
]

فايل را ذخيره كنيد و ببنديد.
اكنون براي رفتن به URL هايي كه ايجاد كرده ايم مي خواهيم مرورگر وب را باز كنيم و تأييد كنيم كه آنها متني را كه ما به نماها اضافه كرده ايم را نمايش مي دهند. براي دسترسي به فايل manage.py كه برنامه Django را ارائه ميدهد ، بايد به پوشه والد برويم.
⦁ (env) Sammy@ubuntu:$ cd ..

دستور زير را صادر كنيد. در زير مي توانيد 0.0.0.0 را با آدرس IP خود جايگزين كنيد.
⦁ (env) Sammy@ubuntu:$ python manage.py runserver 0.0.0.0:8000

در مرورگر وب خود ، به آدرس IP خود ، پورت 8000 برويد:
your-server-ip:8000
يك صفحه وب مشابه زير دريافت خواهيد كرد:

در مرحله بعد ، به URL زير برويد:
your-server-ip:8000/post/
از اينجا بايد صفحه وب زير نمايش داده شود:

اكنون تأييد كرديم كه دو فايل urls.py كار مي كنند و داده ها دقيقاً آنچه را كه انتظار داريم را نشان مي دهد. اكنون بياييد برخي از داده هاي واقعي را وارد وبلاگ خود كنيم.
مرحله 3 – ايجاد يك پست وبلاگ
اكنون كه اصول كاركرد الگوها و نماهاي URL را ميدانيد ، بياييد يك پست وبلاگ اضافه كنيم و به جاي متني كه در فايل هاي پايتون رمزگذاري كرده ايم ، در صفحه وب نمايش داده شود.
پست را از طريق صفحه ادميني كه قبلاً تنظيم كرده ايم ايجاد خواهيم كرد. با استفاده از سرور مجازي خود در برنامه Django ، از يك مرورگر وب استفاده كنيد تا به صفحه وبلاگ نويسي ادمين به آدرس زير برويد:
your-server-ip:8000/admin/blogsite/

در آنجا ، روي پيوند + Add واقع در رديف Posts كليك كنيد تا پر كردن ديتابيس با يك پست وبلاگ نمونه را شروع كنيد

با كليك روي لينك ، فرم ورودي مانند اين را دريافت خواهيد كرد:

هر گاه مي خواهيد پستي اضافه كنيد ، براي اين كار به اين صفحه مي رويد. از طرف ديگر ، مي توانيد پست ها را با لينك تغيير ويرايش كنيد.
در فرم موجود ، مي توانيد قسمتهاي زير را ويرايش كنيد:
فيلد محتوا
عنوان عنوان پست مورد نظر را اينجا اضافه كنيد. به عنوان مثال My First Blog Post
كد شماره صفحه به قسمتي از URL اشاره دارد كه المان آدرس وب معتبر را با كليدواژه هاي قابل خواندن معرفي ميكند. عموما از عنوان صفحه گرفته ميشود. بنابراين در اين حالت ميتوانيم از my-first-blog-post استفاده كنيم
محتوا بدنه پست وبلاگ شماست. براي مثال ما فقط Hello, World! را اضافه ميكنيم، اما شما ميتوانيد هر متن طولاني وارد كنيد.
نويسنده در اين فيلد نام و نام كاربري مربوطه را اضافه كنيد. ما از sammy استفاده ميكنيم

فرم پست وبلاگ را همانطور كه مي بينيد براي اهداف تست خود پر كنيد.

هنگامي كه داده هاي مثال را به صفحه اضافه كرديد ، روي دكمه SAVE كليك كنيد. صفحه تأييد زير را دريافت خواهيد كرد:

تبريك مي گويم! شما اولين پست وبلاگ خود را ايجاد كرده ايد!
در مرحله بعد ، بررسي مي كنيم كه آيا يك رديف به پايگاه داده MySQL اضافه كرده است و شامل داده هايي كه تازه وارد رابط كاربري سرور مجازي كرده ايم ميباشد.
مرحله 4 – نمايش داده هاي بانك اطلاعاتي
در اين مرحله ، بايد به MySQL برويم ، بنابراين فرآيند فعلي سرور مجازي را از طريق ترمينال با تايپ كردن CTRL + C متوقف كنيد ، سپس مفسر MySQL خود را باز كنيد. كاربر ما براي پايگاه داده برنامه Django ، djangouser ميباشد ، اما حتما از كاربر مناسب براي پروژه خود استفاده كنيد.
⦁ (env) sammy@ubuntu:$ mysql -u djangouser

وقتي وارد MySQL شديد ، به پايگاه داده blog_data (يا پايگاه داده اي كه براي پروژه شما صحيح است) برويد:
⦁ Mysql> use blog_data;

سپس محتواي جدول blogsite_post را نمايش دهيد.
⦁ Mysql> select * from blogsite_post;

خروجي مشابه زير را دريافت خواهيد كرد كه بايد اطلاعات اضافه شده شما به رابط كاربري ادمين را نشان دهد.
Output
+—-+——————–+——————–+—————+—————————-+——–+
| id | title | slug | content | created_on | author |
+—-+——————–+——————–+—————+—————————-+——–+
| 1 | My First Blog Post | my-first-blog-post | Hello, World! | 2020-05-14 00:30:03.186564 | Sammy |
+—-+——————–+——————–+—————+—————————-+——–+
1 row in set (0.00 sec)

همانطور كه در خروجي نشان داده شده است ، يك رديف داده براي پستي كه اضافه كرده ايم وجود دارد. اكنون بياييد اين داده ها را به تابع view براي پست ها ارجاع دهيم. براي خروج از مفسر MySQL از CTRL + D استفاده كنيد.
به برنامه فايل views.py در داخل برنامه blogsite  خود برويد.
⦁ (env) sammy@ubuntu:$ cd ~/my_blog_app/blog/blogsite

اكنون فايل را باز كنيد تا بتوانيم داده هاي جديد خود را وارد كنيم.
⦁ (env) sammy@ubuntu:$ nano views.py

فايل را ويرايش كنيد تا همانند فايل زير باشد.
~/my_blog_app/blog/blogsite
from django.shortcuts import render
from django.http import HttpResponse
from .models import Post

def index(request):
return HttpResponse(‘Hello, welcome to the index page.’)

def individual_post(request):
recent_post = Post.objects.get(id__exact=1)
return HttpResponse(recent_post.title + ‘: ‘ + recent_post.content)

در كد بالا ، عبارت ورودي ديگري را براي پست اضافه كرديم. رشته نقل قول شده را نيز از HttpResponse حذف كرديم و آن را با داده هاي پست وبلاگ خود جايگزين كرديم. براي ارجاع داده ها براي يك آبجكت خاص ، از شناسه پست وبلاگ در ارتباط با آبجكت مورد نظر كه ميخواهيم نمايش دهيم استفاده مي كنيم و آن شناسه را در متغيري به نام recent_post ذخيره مي كنيم. سپس مي توانيم با اضافه كردن فيلد با جداكننده دوره ، فيلد هاي خاصي از آن آبجكت را بدست آوريم.
پس از ذخيره كردن و بستن فايل ، براي اجراي برنامه Django به مكان فايل management.py برويد.
⦁ (env) sammy@ubuntu:$ cd ~/my_blog_app/blog

⦁ (env) sammy@ubuntu:$ python manage.py runserver 0.0.0.0:8000

از يك مرورگر وب ، به آدرس زير برويد:
your-server-ip:8000/post/

در اينجا ، ما تغييراتي را كه ايجاد كرده ايم خواهيم ديد. صفحه مشابه اين خواهد بود ، متني را كه به پست اضافه كرديد نشان داده مي شود.

پس از پايان يافتن صفحه ، CTRL + C را در ترمينال فشار دهيد تا روند كار متوقف شود.
براي غيرفعال كردن محيط برنامه نويسي خود ، مي توانيد دستور deactivate را تايپ كرده و سپس از سرور مجازي خارج شويد.
نتيجه
در اين آموزش نماها را ايجاد كرديم، الگوهاي URL را نگاشت كرديم ، و متن را در صفحه وب از پايگاه داده پست وبلاگ خود نمايش داديم.
آموزش بعدي نحوه استفاده از HTML براي ايجاد قالب هاي Django و نحوه زيباسازي را پوشش ميدهد. تاكنون اين مجموعه مدلهاي Django و نماهاي Django را پوشش داده است. قالب ها آخرين قسمت مهم و بنيادي براي پايه و اساس برنامه Django شما هستند.

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳ خرداد ۱۳۹۹ساعت: ۰۱:۲۷:۲۹ توسط:amir موضوع:

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

NFS يا Network File System يك پروتكل سيستم فايل توزيع شده است كه به شما امكان مي دهد دايركتوري هاي از راه دور را روي سرور مجازي خود سوار كنيد. همچنين اين امكان را به شما مي دهد فضاي ذخيره سازي را در يك مكان ديگر مديريت كنيد و از طرف چندين كلاينت روي آن فضا بنويسيد. NFS روشي نسبتاً استاندارد و كارآمد براي دسترسي به سيستمهاي از راه دور از طريق شبكه را فراهم مي كند و در شرايطي كار مي كند كه به طور منظم به منابع مشترك دسترسي پيدا كند.
در اين راهنما ، چگونگي نصب نرم افزار مورد نياز براي عملكرد NFS را در اوبونتو 20.04 ، پيكربندي دو مانيتور NFS روي يك سرور مجازي و كلاينت ، بررسي خواهيم كرد و به اشتراك گذاري از راه دور مي پردازيم.
پيش نيازها
ما در اين آموزش از دو سرور مجازي استفاده خواهيم كرد كه يك قسمت از سيستم فايل آن را با ديگري به اشتراك مي گذارد. براي دنبال كردن اين راهنما، به موارد زير نياز خواهيد داشت:
• دو سرور مجازي Ubuntu 20.04. هر يك از آنها بايد يك كاربر غير ريشه با امتيازات sudo ، فايروال تنظيم شده با UFW و شبكه هاي خصوصي داشته باشد.
o براي كمك به راه اندازي كاربر غير ريشه با امتيازات sudo و فايروال ، راه اندازي سرور مجازي اوليه ما را با راهنماي اوبونتو 20.04 دنبال كنيد.
در طول اين آموزش ، ما به سرور مجازي هايي كه دايركتوري هاي آن را به عنوان هاست و سرور مجازي كه اين دايركتوري ها را به عنوان كلاينت سوار مي كند ، اشاره مي كنيم. براي هر دو بايد آدرس IP را بدانيد. در صورت وجود حتما از آدرس شبكه خصوصي استفاده كنيد.
در طول اين آموزش به آدرسهاي IP توسط متغيرهايي host_ip و client_ip ارجاع خواهيم داد. لطفاً در صورت لزوم جايگزين كنيد.
مرحله 1 – دانلود و نصب مولفه ها
با نصب مولفه هاي لازم در هر سرور مجازي شروع خواهيم كرد.
روي هاست
روي سرور مجازي ميزبان ، بسته nfs-kernel-server را نصب كنيد ، كه به شما امكان مي دهد دايركتوري هاي خود را به اشتراك بگذاريد. از آنجايي كه اين اولين عملي است كه در اين بخش با apt انجام مي دهيد ، قبل از نصب ، ديركتوري بسته محلي خود را ريفرش كنيد:
Host:$ sudo apt update

Host:$ sudo apt install nfs-kernel-server
پس از نصب اين بسته ها ، به سرور مجازي كلاينت برويد.
روي كلاينت
در سرور مجازي كلاينت ، بايد پكيجي به نام nfs-common نصب كنيم ، كه عملكرد NFS را بدون در اختيار گذاشتن اجزاي سرور مجازي فراهم مي كند. قبل از نصب ، دوباره ديركتوري بسته محلي را ريفرش كنيد تا اطمينان حاصل كنيد كه اطلاعات به روز داريد:
Client:$ sudo apt update

Client:$ sudo apt install nfs-common

اكنون كه هر دو سرور مجازي بسته هاي لازم را دارند ، مي توانيم پيكربندي آنها را شروع كنيم.
مرحله 2 – ايجاد دايركتوري Share روي هاست
مي خواهيم دو دايركتوري جداگانه را با تنظيمات مختلف پيكربندي به اشتراك بگذاريم ، تا دو روش اصلي كه NFS mounts ميتواند با توجه به دسترسي ابركاربر پيكربندي شود را نشان دهيم .
ابركاربرها مي توانند در هر مكاني در سيستم خود فعال باشند. با اين حال ، دايركتوري هاي نصب شده NFS جزئي از سيستمي نيستند كه روي آن نصب شده اند ، بنابراين به طور پيش فرض ، سرور مجازي NFS از انجام عملياتي كه نياز به امتيازات فوق كاربري دارند امتناع مي ورزد. اين محدوديت پيش فرض بدين معني است كه ابركاربرها روي كلاينت نمي توانند به عنوان ريشه فايل هايي را بنويسند ، مالكيت را واگذار كنند يا ساير وظايف فوق كاربري را در قسمت NFS انجام دهند.
با اين وجود ، گاهي اوقات ، كاربران قابل اعتماد در سيستم كلاينت وجود دارند كه بايد اين اقدامات را در سيستم فايل نصب شده انجام دهند اما نيازي به دسترسي ابركاربر به هاست ندارند. شما مي توانيد سرور مجازي NFS را تنظيم كنيد تا اين كار را انجام دهد ، اگرچه اين يك عنصر خطر را ايجاد مي كند ، زيرا چنين كاربري مي تواند دسترسي ريشه اي به كل سيستم هاست را بدست آورد.
مثال 1: صادر كردن يك MOUNT با هدف عمومي
در مثال اول ، يك NFS mount عمومي ايجاد خواهيم كرد كه از رفتار پيش فرض NFS استفاده كند تا ارتباط با هاست را براي كاربري با امتيازات اصلي در دستگاه كلاينت كه از اين امتيازات ابركاربري كلاينت استفاده ميكند، مشكل نمايد. ممكن است از چيزي شبيه به اين براي ذخيره فايلهايي كه با استفاده از يك سيستم مديريت محتوا بارگذاري شده اند و يا براي ايجاد فضايي براي كاربران كه به راحتي فايل هاي پروزه را به اشتراك بگذارند ، استفاده كنيد.
ابتدا ديركتوري اشتراك را تهيه كنيد:
Host:$ sudo mkdir /var/nfs/general -p

از آنجا كه ما آن را با sudo ايجاد مي كنيم ، اين ديركتوري متعلق به كاربر ريشه ميزبان است:
Host:$ ls -la /var/nfs/general

Output
drwxr-xr-x 2 root root 4096 May 14 18:36 .

NFS هر عمليات ريشه اي بر روي كلاينت را به عنوان يك اقدام امنيتي به اعتبارات nobody:nogroup  ترجمه ميكند. بنابراين ، ما بايد مطابق با آن اعتبارات، مالكيت دايركتوري را تغيير دهيم.
Host:$ sudo chown nobody:nogroup /var/nfs/general

اكنون آماده صادر كردن اين ديركتوري هستيد.
مثال 2: صادر كردن ديركتوري هوم
در مثال دوم ، هدف اين است كه دايركتوري هاي هوم كاربر ذخيره شده روي هاست در سرور مجازي هاي كلاينت در دسترس باشد ، در حالي كه به ادمين هاي معتبر آن سرور مجازي هاي كلاينت امكان دسترسي براي مديريت راحت كاربران را بدهد.
براي انجام اين كار ، دايركتوري /home را صادر خواهيم كرد. از آنجا كه در حال حاضر وجود دارد ، نيازي به ايجاد آن نداريم. مجوزها را نيز تغيير نمي دهيم. اگر اين كار را انجام داديم ، مي تواند براي هر كسي كه داراي ديركتوري هوم در دستگاه ميزبان است ، منجر به طيف وسيعي از مشكلات شود.
مرحله 3 – پيكربندي NFS Exports در سرور مجازي ميزبان
در مرحله بعدي ، براي تنظيم اشتراك گذاري اين منابع ، وارد فايل پيكربندي NFS خواهيم شد.
در دستگاه ميزبان ، فايل / etc / eksport را در ويرايشگر متن خود با امتيازات اصلي باز كنيد:
Host:$ sudo nano /etc/exports

فايل حاوي كامنت هايي است كه ساختار كلي هر خط پيكربندي را نشان ميدهد. تركيب آن به شرح زير است:
/etc/exports
directory_to_share client(share_option1,…,share_optionN)

ما بايد براي هر دايركتوري كه قصد داريم به اشتراك بگذاريم خطي ايجاد كنيم. حتما مكان نگهدارنده client_ip كه در اينجا نشان داده شده است را به آدرس IP واقعي خود تغيير دهيد:
/etc/exports
/var/nfs/general client_ip(rw,sync,no_subtree_check)
/home client_ip(rw,sync,no_root_squash,no_subtree_check)

در اينجا ، ما به جز no_root_squash از گزينه هاي تنظيمات مشابه براي هر دو ديركتوري استفاده مي كنيم. بياييد نگاهي بيندازيم كه معني هر يك از اين گزينه ها چيست:
rw: اين گزينه به رايانه كلاينت امكان دسترسي و خواندن volume را مي دهد.
sync: اين گزينه NFS را مجبور به نوشتن تغييراتي در ديسك قبل از پاسخ دادن مي كند. منجر به محيط پايدارتر و مداوم تر ميشود زيرا پاسخ ، بيانگر وضعيت واقعي واليوم از راه دور است. اما سرعت عملكردهاي فايل را نيز كاهش مي دهد.
no_subtree_check: اين گزينه مانع از بررسي زيرشاخه مي شود ، كه فرآيندي است كه در آن ميزبان بايد بررسي كند كه آيا فايل براي هر درخواست همچنان در درخت صادر شده موجود است يا خير. با تغيير نام فايل هنگام تغيير كلاينت ، اين مسئله مي تواند مشكلات بسياري ايجاد كند. تقريباً در همه موارد ، بهتر است چك كردن زيرشاخه را غيرفعال كنيد.
no_root_squash: به طور پيش فرض ، NFS درخواست هاي يك كاربر ريشه از راه دور را به يك كاربر بدون امتياز در سرور مجازي ترجمه مي كند. اين به عنوان ويژگي امنيتي در نظر گرفته شده بود تا از دسترسي يك حساب كاربري ريشه روي كلاينت براي استفاده از سيستم فايل ميزبان به عنوان ريشه جلوگيري كند. no_root_squash اين رفتار را براي برخي از اشتراكات غيرفعال مي كند.
پس از اتمام انجام تغييرات ، فايل را ذخيره كنيد و ببنديد. سپس ، براي اينكه اشتراكات را در اختيار كلاينتاني كه پيكربندي كرده ايد قرار دهيد ، سرور مجازي NFS را با دستور زير مجدداً راه اندازي كنيد:
host:$ sudo systemctl restart nfs-kernel-server

با اين حال ، قبل از استفاده واقعي از اشتراكات جديد ، بايد اطمينان داشته باشيد كه طبق قوانين فايروال ترافيك به سمت فايل اشتراكي مجاز باشد.
مرحله 4 – تنظيم فايروال روي هاست
ابتدا ، اجازه دهيد وضعيت فايروال را بررسي كنيم تا ببينيم آيا فعال شده است يا خير ، و اگر چنين است ، ببينيم چه چيزي در حال حاضر مجاز است:
host:$ sudo ufw status

Output
Status: active

To Action From
— —— —-
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)

روي سيستم ما فقط ترافيك SSH مجاز است ، بنابراين براي ترافيك NFS بايد قاعده اي اضافه كنيم.
در بسياري از برنامه ها ، مي توانيد از sudo ufw app listاستفاده كرده و آنها را با نام فعال كنيد ، اما nfs يكي از اين موارد نيست. با اين حال ، از آنجا كه ufw همچنين /etc/servicesرا براي پورت و پروتكل يك سرويس بررسي مي كند ، ما هنوز مي توانيم dNFS را با نام اضافه كنيم. بهترين روش فعال كردن محدود كننده ترين قانون است كه هنوز ترافيكي را كه مي خواهيد مجاز كنيد را ممكن ميسازد ، بنابراين به جاي اينكه ترافيك را از هر كجا امكان پذير كنيد ، به صورت خاص عمل خواهيم كرد.
براي باز كردن پورت 2049 روي هاست از دستور زير استفاده كنيد ، حتماً آدرس IP كلاينت خود را جايگزين كنيد:
host:$ sudo ufw allow from client_ip to any port nfs

مي توانيد تغيير را با تايپ دستور زير تأييد كنيد:
host:$ sudo ufw status

بايد ترافيك مجاز از پورت 2049 در خروجي را مشاهده كنيد:
Output
Status: active

To Action From
— —— —-
OpenSSH ALLOW Anywhere
2049 ALLOW 203.0.113.24
OpenSSH (v6) ALLOW Anywhere (v6)

اين خروجي تأييد مي كند كه UFW فقط امكان عبور NFS در پورت 2049 از دستگاه كلاينت ما را فراهم مي كند.
مرحله 5 – ايجاد Mount Points و نصب ديركتوري ها بر روي كلاينت
اكنون كه سرور مجازي هاست پيكربندي شده است و اشتراكات خود را ارائه مي دهد ، كلاينت خود را آماده خواهيم كرد.
براي اينكه اشتراك گذاري ها از راه دور در دسترس كلاينت قرار گيرد ، بايد دايركتوري ها را روي ميزبان نصب كنيم كه مي خواهيم آنها را به اشتراك بگذاريم تا دايركتوري هاي خالي روي كلاينت قرار بگيرد.
توجه: اگر فايلها و دايركتوري هايي در قسمت استقرار شما وجود داشته باشند ، به محض سوار كردن اشتراك NFS ، مخفي مي شوند. براي جلوگيري از از بين رفتن فايل هاي مهم ، اطمينان حاصل كنيد كه اگر در پوشه اي كه از قبل وجود دارد مستقر ميكنيد ، دايركتوري خالي باشد.

ما دو ديركتوري براي سوار كردن فايل هاي خود ايجاد خواهيم كرد:
Client:$ sudo mkdir -p /nfs/general

Client:$ sudo mkdir -p /nfs/home

اكنون كه يك مكان براي قرار دادن اشتراك گذاري ها از راه دور داريم و فايروال را باز كرده ايم ، مي توانيم با استفاده از آدرس IP سرور مجازي ميزبان خود ، اشتراكات را سوار كنيم:
Client:$ sudo mount host_ip:/var/nfs/general /nfs/general

Client:$ sudo mount host_ip:/home /nfs/home
اين دستورات اشتراك گذاري ها را از رايانه ميزبان روي دستگاه كلاينت نصب مي كنند. مي توانيد چند بار بررسي كنيد كه آنها با موفقيت نصب شده اند. مي توانيد اين كار را با يك فرمان mount يا findmnt بررسي كنيد ، اما df -h خروجي خواناتري را ارائه مي دهد:
Client:$ df -h

Output
Filesystem Size Used Avail Use% Mounted on
udev 474M 0 474M 0% /dev
tmpfs 99M 936K 98M 1% /run
/dev/vda1 25G 1.8G 23G 8% /
tmpfs 491M 0 491M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 491M 0 491M 0% /sys/fs/cgroup
/dev/vda15 105M 3.9M 101M 4% /boot/efi
tmpfs 99M 0 99M 0% /run/user/1000
10.132.212.247:/var/nfs/general 25G 1.8G 23G 8% /nfs/general
10.132.212.247:/home 25G 1.8G 23G 8% /nfs/home

هر دو اشتراك گذاري كه مستقر كرديم در پايين ظاهر مي شود. از آنجا كه از همان سيستم فايل سوار شده اند ، همان استفاده از ديسك را نشان مي دهند. براي ديدن ميزان فضاي استفاده شده تحت هر نقطه نصب ، از دستور ميزان استفاده ديسك يعني du  و مسير سوار كردن استفاده كنيد. پرچم -s به جاي نمايش استفاده براي هر فايل ، خلاصه اي از استفاده را ارائه مي دهد. –h خروجي خواناتري را براي انسان چاپ مي كند.
مثلا:
Client:$ du -sh /nfs/home

Output
36K /nfs/home

اين به ما نشان مي دهد كه محتويات كل دايركتوري هوم فقط از 36k فضاي موجود استفاده مي كند.
مرحله 6 – آزمايش دسترسي NFS
در مرحله بعد ، اجازه دهيد با نوشتن چيزي براي هركدام از آنها ، دسترسي به اشتراكات را آزمايش كنيم.
مثال 1: اشتراك گذاري هدف كلي
ابتدا يك فايل آزمايشي را در قسمت / var / nfs / general بنويسيد:
Client:$ sudo touch /nfs/general/general.test

سپس ، مالكيت آن را بررسي كنيد:
Client:$ ls -l /nfs/general/general.test

Output
-rw-r–r– 1 nobody nogroup 0 Aug 1 13:31 /nfs/general/general.test

از آنجا كه ما اين واليوم را بدون تغيير رفتار پيش فرض NFS نصب كرديم و فايل را به عنوان كاربر اصلي كلاينت از طريق دستور sudo ايجاد كرديم، مالكيت فايل به طور پيش فرض براي nobody:nogroupميباشد. ابركاربرهاي كلاينت قادر به انجام اقدامات ادمين معمولي مانند تغيير صاحب يك فايل يا ايجاد يك ديركتوري جديد براي گروهي از كاربران ، در اين اشتراك NFS نخواهند بود.
مثال 2: اشتراك ديركتوري هوم
براي مقايسه مجوزهاي اشتراك با هدف كلي با اشتراك ديركتوري هوم ، يك فايل را در / nfs / home به همين روش ايجاد كنيد:
Client:$ sudo touch /nfs/home/home.test

سپس به مالكيت فايل نگاه كنيد:
Client:$ ls -l /nfs/home/home.test

Output
-rw-r–r– 1 root root 0 Aug 1 13:32 /nfs/home/home.test

ما با استفاده از دستور sudo ، home.test را به عنوان root ساختيم ، دقيقاً به همان روشي كه فايل general.test را ايجاد كرديم. اما ، در اين حالت متعلق به root است زيرا وقتي گزينه no_root_squash را در اين نصب مشخص كرديم ، از رفتار پيش فرض استفاده مي كنيم. اين امر اجازه مي دهد تا كاربران اصلي ما در دستگاه كلاينت به عنوان ريشه عمل كنند و اجراي حساب هاي كاربري را بسيار راحت تر مي كند. در عين حال ، اين بدان معني است كه ما نبايد به اين كاربران دسترسي اصلي را به هاست بدهيم.
مرحله 7 – نصب ديركتوري هاي از راه دور NFS در بوت
ما مي توانيم اشتراك گذاري هاي NFS راه دور را با اضافه كردن آنها به فايل / etc / fstab روي كلاينت بطور خودكار در بوت نصب كنيم.
اين فايل را با امتيازات ريشه در ويرايشگر متن خود باز كنيد:
Client:$ sudo nano /etc/fstab

در پايين فايل ، براي هر يك از اشتراكات يك خط اضافه كنيد. مانند اين ظاهر خواهند شد:
/etc/fstab
. . .
host_ip:/var/nfs/general /nfs/general nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
host_ip:/home /nfs/home nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

توجه: مي توانيد اطلاعات بيشتري در مورد گزينه هايي كه در اينجا مشخص مي كنيم در صفحه Man NFS پيدا كنيد. با اجراي دستور زير مي توانيد به آن دسترسي پيدا كنيد:
$ man nfs

كلاينت به طور خودكار پارتيشن هاي از راه دور را در بوت سوار مي كند ، اگرچه ممكن است براي برقراري اتصال و در دسترس بودن اشتراك گذاري ، مدتي طول بكشد.
مرحله 8 – Unmount (پياده) كردن اشتراك گذاري از راه دور NFS
اگر ديگر نمي خواهيد كه دايركتوري از راه دور روي سيستم شما نصب باشد ، مي توانيد با بيرون رفتن از ساختار ديركتوري اشتراك گذاري و پياده كردن آن ، آن را Unmount كنيد:
Client:$ cd ~

Client:$ sudo umount /nfs/home

Client:$ sudo umount /nfs/general

توجه داشته باشيد كه اين فرمان همانطور كه انتظار داريد umount  است و نه unmount .
با اين كار اشتراك گذاري از راه دور حذف مي شود و فقط فضاي محلي شما قابل دسترسي خواهد بود:
Client:$ df -h

Output
Filesystem Size Used Avail Use% Mounted on
udev 474M 0 474M 0% /dev
tmpfs 99M 936K 98M 1% /run
/dev/vda1 25G 1.8G 23G 8% /
tmpfs 491M 0 491M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 491M 0 491M 0% /sys/fs/cgroup
/dev/vda15 105M 3.9M 101M 4% /boot/efi
tmpfs 99M 0 99M 0% /run/user/1000

اگر همچنين مي خواهيد از استقرار مجدد آنها در ريبوت بعدي جلوگيري كنيد ، / etc / fstab را ويرايش كرده و با قرار دادن يك كاراكتر # در ابتداي خط ، خط را حذف كرده يا آن را باطل كنيد. همچنين مي توانيد با از بين بردن گزينه auto  مانع نصب خودكار شويد ، كه به شما امكان مي دهد هچنان آن را به صورت دستي سوار كنيد.
نتيجه
در اين آموزش ، ما يك ميزبان NFS ايجاد كرديم و با ايجاد دو نصب مختلف NFS ، كه با يك كلاينت NFS به اشتراك گذاشتيم ، برخي رفتارهاي كليدي NFS را نشان داديم.
اگر به دنبال اجراي NFS در توليد هستيد ، مهم است كه توجه داشته باشيد كه اين پروتكل رمزگذاري نشده است. در مواردي كه از طريق شبكه خصوصي به اشتراك مي گذاريد ، ممكن است مشكلي نداشته باشد. اما در موارد ديگر ، يك VPN يا نوع ديگري از تونل رمزگذاري شده براي محافظت از اطلاعات شما ضروري خواهد بود.

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳ خرداد ۱۳۹۹ساعت: ۰۱:۲۴:۳۰ توسط:amir موضوع:

نحوه نصب و پيكربندي VNC در اوبونتو 18.04

Virtual Network Computing يا VNC يك سيستم اتصال است كه به شما امكان مي دهد از صفحه كليد و ماوس خود براي تعامل با يك محيط دسكتاپ گرافيكي روي يك سرور مجازي از راه دور استفاده كنيد. اين امر باعث مي شود مديريت فايل ها ، نرم افزارها و تنظيمات روي يك سرور مجازي از راه دور براي كاربراني كه همچنان با خط فرمان احساس راحتي نميكنند ، آسانتر شود.
در اين راهنما ، سرور مجازي VNC را روي يك سرور مجازي اوبونتو 18.04 تنظيم كرده و از طريق يك تونل SSH با ايمني به آن وصل مي شويد. شما از TightVNC ، يك بسته كنترل از راه دور سريع و سبك استفاده مي كنيد. اين انتخاب اطمينان حاصل خواهد كرد كه اتصال VNC ما حتي در اتصالات اينترنت كندتر هموار و پايدار خواهد بود.
پيش نيازها
براي تكميل اين آموزش ، به موارد زير نياز داريد:
• يك سرور مجازي Ubuntu 18.04 كه طبق راهنماي ستاپ اوليه سرور مجازي Ubuntu 18.04 تنظيم شده باشد، شامل يك كاربر sudo غير ريشه و فايروال باشد.
• يك كامپيوتر محلي با يك كلاينت VNC نصب شده كه اتصالات VNC را از طريق تونل هاي SSH پشتيباني مي كند.
o در ويندوز ، مي توانيد از TightVNC ، RealVNC يا UltraVNC استفاده كنيد.
o در maغير مجاز مي باشد ، مي توانيد از برنامه داخلي اشتراك گذاري صفحه استفاده كنيد ، يا مي توانيد از يك برنامه cross-platform مانند RealVNC استفاده كنيد.
o در لينوكس ، مي توانيد گزينه هاي بسياري از جمله vinagre ، krdc ، RealVNC يا TightVNC را انتخاب كنيد.
مرحله 1 – نصب محيط دسكتاپ و سرور مجازي VNC
به طور پيش فرض ، يك سرور مجازي Ubuntu 18.04 با محيط دسكتاپ گرافيكي يا سرور مجازي VNC همراه نيست ، بنابراين ما با نصب آن ها كار را شروع خواهيم كرد. به طور خاص ، بسته هاي جديدترين محيط دسكتاپ Xfce و بسته TightVNC موجود در مخزن رسمي اوبونتو را نصب خواهيم كرد.
در سرور مجازي خود ليست بسته هاي خود را به روز كنيد:
⦁ $ sudo apt update

اكنون محيط دسكتاپ Xfce را روي سرور مجازي خود نصب كنيد:
⦁ $ sudo apt install xfce4 xfce4-goodies

پس از اتمام نصب ، سرور مجازي TightVNC را نصب كنيد:
⦁ $ sudo apt install tightvncserver

براي تكميل پيكربندي اوليه سرور مجازي VNC پس از نصب ، از دستور vncserver براي تنظيم گذرواژه ايمن و ايجاد فايل هاي پيكربندي اوليه استفاده كنيد:
⦁ $ vncserver

از شما خواسته مي شود يك رمز ورود را براي دسترسي از راه دور به دستگاه خود وارد كرده و تأييد كنيد:
Output
You will require a password to access your desktops.

Password:
Verify:

رمز عبور بايد بين شش تا هشت كاراكتر باشد. گذرواژه‌هاي بيش از 8 كاراكتر به صورت خودكار كوتاه خواهند شد.
پس از تأييد گذرواژه ، مي توانيد يك گذرواژه view-only ايجاد كنيد. كاربراني كه با رمز ورود view-only به سيستم وارد مي شوند ، قادر به كنترل نمونه VNC با ماوس يا صفحه كليد خود نخواهند بود. اگر مي خواهيد چيزي را با استفاده از سرور مجازي VNC خود به ديگران نشان دهيد ، اين گزينه مفيد ميباشد ، اما ضروري نيست.
سپس اين فرآيند فايلهاي پيكربندي پيش فرض لازم و اطلاعات اتصال را براي سرور مجازي ايجاد مي كند:
Output
Would you like to enter a view-only password (y/n)? n
xauth: file /home/sammy/.Xauthority does not exist

New ‘X’ desktop is your_hostname:1

Creating default startup script /home/sammy/.vnc/xstartup
Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

اكنون بگذاريد سرور مجازي VNC را پيكربندي كنيم.
مرحله 2 – پيكربندي سرور مجازي VNC
سرور مجازي VNC بايد بداند كه در هنگام راه اندازي چه دستوراتي را اجرا مي كند. به طور خاص ، VNC بايد بداند كه به كدام دسكتاپ گرافيكي وصل شود.
اين دستورات در يك فايل پيكربندي به نام xstartup در پوشه .vnc تحت ديركتوري هوم شما قرار دارند. اسكريپت راه اندازي هنگامي ايجاد شد كه در مرحله قبل vncserver را اجرا كرديد ، اما براي راه اندازي دسكتاپ Xfce ، اسكريپت خودمان را ايجاد خواهيم كرد.
هنگامي كه VNC براي اولين بار راه اندازي ميشود ، يك نمونه سرور مجازي پيش فرض را در پورت 5901 راه اندازي مي كند. اين پورت به عنوان پورت نمايشگر ناميده مي شود و توسط VNC به صورت :1 ارجاع داده مي شود. VNC مي تواند چندين نمونه در پورت هاي نمايشگر ديگر مانند: 2 ،: 3 و غيره راه اندازي كند.
از آنجا كه مي خواهيم نحوه پيكربندي سرور مجازي VNC را تغيير دهيم ، ابتدا نمونه سرور مجازي VNC را كه با استفاده از پورت 5901 در حال اجرا است با دستور زير متوقف كنيد:
⦁ $ vncserver -kill :1

خروجي بايد به اين شكل باشد ، اگرچه يك PID متفاوت را مشاهده خواهيد كرد:
Output
Killing Xtightvnc process ID 17648
قبل از تغيير فايل xstartup ، از نسخه اصلي نسخه پشتيبان تهيه كنيد:
⦁ $ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

اكنون يك فايل xstartup جديد ايجاد كرده و آن را در ويرايشگر متن خود باز كنيد:
⦁ $ nano ~/.vnc/xstartup

هر زمان كه سرور مجازي VNC را شروع يا ريستارت ميكنيد، دستورات موجود در اين فايل بطور خودكار اجرا ميشوند. براي شروع محيط دسكتاپ خود در صورتي كه از قبل شروع نشده است ، به VNC احتياج داريم. اين دستورات را به فايل اضافه كنيد:
~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

اولين دستورالعمل موجود در فايل ، xrdb $ HOME / .Xresource ، به چارچوب رابط كاربري گرافيكي VNC ميگويد فايل .Xresources كاربر سرور مجازي را بخواند. Xresource جايي است كه يك كاربر مي تواند تنظيمات خاصي از دسكتاپ گرافيكي ، مانند رنگ هاي ترمينال ، تم هاي مكان نما و رندر فونت ، تغييراتي ايجاد كند. دستور دوم به سرور مجازي مي گويد كه Xfce را راه اندازي كند ، در اين قسمت تمام نرم افزارهاي گرافيكي مورد نياز خود را براي مديريت راحت سرور مجازي خود پيدا خواهيد كرد.
براي اطمينان از اينكه سرور مجازي VNC قادر به استفاده صحيح از اين فايل راه اندازي جديد خواهد بود ، بايد آن را عملياتي كنيم.
⦁ $ sudo chmod +x ~/.vnc/xstartup

اكنون ، سرور مجازي VNC را رستارت كنيد.
⦁ $ vncserver

خروجي مشابه اين را مشاهده خواهيد كرد:
Output
New ‘X’ desktop is your_hostname:1

Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

با پيكربندي موجود ، بياييد از دستگاه محلي خود به سرور مجازي وصل شويم.
مرحله 3 – اتصال ايمن به دسكتاپ VNC
VNC در هنگام اتصال از پروتكل هاي ايمن استفاده نمي كند. ما براي اتصال ايمن به سرور مجازي خود از يك تونل SSH استفاده خواهيم كرد و سپس به كلاينت VNC مي گوييم به جاي برقراري ارتباط مستقيم از آن تونل استفاده كند.
يك اتصال SSH را روي رايانه محلي خود ايجاد كنيد كه به طور ايمن به اتصال محلي براي VNC منتقل شود. شما مي توانيد اين كار را از طريق ترمينال در لينوكس يا maغير مجاز مي باشد با دستور زير انجام دهيد:
⦁ ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

سوئيچ -L اتصالات پورت را مشخص مي كند. در اين حالت ما پورت 5901 اتصال از راه دور را به پورت 5901 در دستگاه محلي شما وصل مي كنيم. سوئيچ -C فشرده سازي را قادر مي سازد ، در حالي كه سوئيچ -N به ssh مي گويد كه ما نمي خواهيم يك دستور از راه دور را اجرا كنيم. سوئيچ -l نام ورود از راه دور را مشخص مي كند.
به ياد داشته باشيد كه sammy و your_server_ip را با نام كاربري sudo غير ريشه و آدرس IP سرور مجازي خود جايگزين كنيد.
اگر از يك سرويس دهنده گرافيكي SSH استفاده مي كنيد ، مانند PuTTY ، از your_server_ip به عنوان IP اتصال استفاده كنيد و localhost: 5901 را به عنوان پورت جديد ارسال شده در تنظيمات تونل SSH برنامه تنظيم كنيد.
پس از راه اندازي تونل ، از يك سرويس دهنده VNC براي اتصال به localhost:5901 استفاده كنيد. از شما خواسته مي شود با استفاده از رمزعبور تنظيم شده در مرحله 1 ، تأييد اعتبار كنيد.
پس از اتصال ، ميزكار پيش فرض Xfce را مشاهده خواهيد كرد. بايد چيزي شبيه به اين باشد:

همانطور كه در اينجا مشاهده مي شود ، مي توانيد به فايلها در ديركتوري هوم خود با مدير فايل يا از خط فرمان دسترسي پيدا كنيد:

CTRL + C را در ترمينال خود فشار دهيد تا تونل SSH را متوقف كرده و به اعلان خود بازگرديد. اين كار بخش VNC شما را نيز قطع مي كند.
بگذاريد سرور مجازي VNC ما به عنوان سرويس تنظيم شود.
مرحله 4 – اجراي VNC به عنوان يك سرويس سيستم
در مرحله بعدي ، سرور مجازي VNC را به عنوان يك سرويس سيستمي تنظيم خواهيم كرد تا بتوانيم مانند هر سرويس ديگر ، آن را بنا به نياز ، راه اندازي ، متوقف و مجدداً راه اندازي كنيم. اين كار همچنين راه اندازي VNC در حين ريبوت سرور مجازي را تضمين مي كند.
ابتدا با استفاده از ويرايشگر متن مورد علاقه خود ، يك فايل واحد جديد با نام /etc/systemd/system/vncserver@.service ايجاد كنيد:
⦁ $ sudo nano /etc/systemd/system/vncserver@.service

نماد @ در انتهاي نام به ما اجازه مي دهد تا آرگوماني را كه مي توانيم در پيكربندي سرويس استفاده كنيم ، وارد كنيم. از آن براي مشخص كردن پورت نمايشگر VNC استفاده خواهيم كرد كه مي خواهيم هنگام مديريت سرويس استفاده كنيم .
خطوط زير را به فايل اضافه كنيد. حتماً مقدار كاربر ، گروه ، WorkingDirectory و نام كاربري را در مقدار PIDFILE تغيير دهيد تا با نام كاربري شما مطابقت داشته باشد:
/etc/systemd/system/vncserver@.service
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=sammy
Group=sammy
WorkingDirectory=/home/sammy

PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

فرمان ExecStartPre اگر قبلاً در حال اجرا باشد VNC را متوقف مي كند. دستور ExecStart ، VNC را شروع مي كند و عمق رنگ را به رنگ 24 بيتي با رزولوشن 1280×800 تنظيم مي كند. مي توانيد بنا به نيازهاي خود اين گزينه هاي راه اندازي را تغيير دهيد.
فايل را ذخيره كنيد و ببنديد.
سپس ، سيستم را از وجود فايل واحد جديد آگاه كنيد.
⦁ $ sudo systemctl daemon-reload

فايل واحد را فعال كنيد.
⦁ $ sudo systemctl enable vncserver@1.service

1 بعد از علامت @ نشان مي دهد كه كدام شماره نمايش سرويس بايد روي آن ظاهر شود ، در اين حالت پيش فرض : 1 است، همانطور كه در مرحله 2 بحث شد.
اگر هنوز نمونه فعلي سرور مجازي VNC در حال اجرا است آن را متوقف كنيد.
⦁ $ vncserver -kill :1

سپس آن را شروع كنيد همانطور كه هر سرويس سيستمي ديگري را شروع مي كنيد.
⦁ $ sudo systemctl start vncserver@1

با اين دستور مي توانيد تأييد كنيد كه شروع شده است:
⦁ $ sudo systemctl status vncserver@1

اگر به درستي شروع شود ، خروجي بايد به اين شكل باشد:
Output
● vncserver@1.service – Start TightVNC server at startup
Loaded: loaded (/etc/systemd/system/vncserver@.service; indirect; vendor preset: enabled)
Active: active (running) since Mon 2018-07-09 18:13:53 UTC; 2min 14s ago
Process: 22322 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :1 (code=exited, status=0/SUCCESS)
Process: 22316 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS)
Main PID: 22330 (Xtightvnc)

سرور مجازي VNC شما هنگام ريبوت دستگاه ، اكنون در دسترس خواهد بود.
دوباره تونل SSH خود را شروع كنيد:
⦁ $ ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

سپس با استفاده از نرم افزار كلاينت VNC خود به localhost: 5901 اتصال جديدي برقرار كنيد تا به دستگاه خود متصل شويد.
نتيجه
اكنون يك سرور مجازي VNC امن در سرور مجازي Ubuntu 18.04 خود فعال و راه اندازي كرده ايد. در حال حاضر مي توانيد فايلها ، نرم افزارها و تنظيمات خود را با يك رابط گرافيكي آسان و كاربردي مديريت كنيد و قادر خواهيد بود نرم افزارهاي گرافيكي مانند مرورگرهاي وب را از راه دور اجرا كنيد.

 

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

نصب و پيكربندي Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

نظارت بر سلامت سرور با Checkmk در اوبونتو – اجراي چند نسخه PHP بر روي يك سرور

نصب Nginx، MySQL، PHP در CentOS 7 –  نصب و پيكربندي Elasticsearch در اوبونتو 18.04

راه اندازي سرور اوليه با اوبونتو 20.04 – تنظيم كليدهاي SSH در Ubuntu 20.04

نصب و استفاده از PostgreSQL در اوبونتو 20.0 – نحوه نصب MySQL در اوبونتو 20.04

نصب Python 3 روي سرور Ubuntu 18.04 –  نحوه نصب Python 3 روي سرور Ubuntu 20.04

نصب Linux،Apache،MySQL،PHP LAMP در اوبونتو 20.04 –  نصب وب سرور Apache در CentOS 8

نحوه نصب Drupal با Docker Compose –  نحوه نصب Nginx در اوبونتو 20.04

7 مورد از اقدامات امنيتي براي محافظت از سرورهاي شما –  نحوه نصب و ايمن سازي Redis در اوبونتو 20.04

نحوه نصب و ايمن سازي Redis در اوبونتو 18.04 – اضافه كردن فضاي Swap در اوبونتو 20.04

چگونه مي توان فايروال را با UFW در اوبونتو 20.04 تنظيم كرد – نظارت بر اطلاعيه و مسير BGP با BGPalerter اوبونتو 18.04

نصب و ايمن سازي phpMyAdmin در اوبونتو 20.04  –  نصب و استفاده از Composer در اوبونتو 20.04

ريست كردن رمز ورود ريشه MySQL يا MariaDB –  استفاده از نوع داده MySQL BLOB براي ذخيره تصاوير

نصب Nginx در اوبونتو 18.04 – نصب توزيع Anaconda پايتون در اوبونتو 20.04

نحوه نصب جاوا با Apt در اوبونتو 18.04 –  نحوه نصب Django و تنظيم محيط توسعه در اوبونتو 16.04

نصب جنگو و تنظيم محيط توسعه در اوبونتو 20.04 – نحوه ايجاد سرور Minecraft در اوبونتو 18.04

نحوه راه اندازي يك پروژه Node با Typescript –  نحوه نصب و پيكربندي VNC در اوبونتو 18.04

ايجاد يك برنامه Django و اتصال آن به يك بانك اطلاعاتي – نصب و پيكربندي VNC در اوبونتو 20.04

نصب MariaDB در اوبونتو 20.04  –  فعال سازي و اتصال رابط كاربري Django

تنظيم پلتفرم Cloud IDE كد سرور را در اوبونتو 18.04 – پيكربندي Apache HTTP با رويداد MPM و PHP-FPM

 

 

كلمات كليدي خريد سرور

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

 

 

 

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳ خرداد ۱۳۹۹ساعت: ۰۱:۲۰:۵۳ توسط:amir موضوع:

خرید بک لینک behtarinbacklink.com - پسورد نود 32 - اوکلی لایسنس رایگان نود 32 -
سایت enfejar
بهترین سایت پیش بینی فوتبال
سایت betball90
انفجار آنلاین
جت بت ۹۰
betorward
وان ایکس بت
جت بت
betforward
river poker
emperor poker
بکس بت
بت تایم 90 وی آی پی
وان ایکس بت
همیار نود 32 - بهترین سئو