server



Composer یک ابزار مدیریت وابستگی محبوب برای PHP است که عمدتاً برای تسهیل نصب و به روزرسانی برای متعلقات پروژه ایجاد شده است. این ابزار بررسی خواهد کرد که یک پروژه خاص به چه بسته های دیگری متکی است و با استفاده از نسخه های مناسب با توجه به نیاز پروژه ، آنها را برای شما نصب می کند. Composer همچنین معمولاً برای راه اندازی پروژه های جدید بر اساس چارچوب های محبوب PHP مانند Symfony و Laravel استفاده می شود.
در این آموزش ، نصب و شروع Composer را روی یک سیستم Ubuntu 20.04 بررسی می کنید.
پیش نیازها
برای دنبال کردن این راهنما ، به عنوان یک کاربر sudo غیر ریشه به یک 

سرور مجازی Ubuntu 20.04 و یک فایروال فعال شده روی 

سرور مجازی خود نیاز دارید. برای انجام این کار، می توانید راهنمای تنظیم اولیه 

سرور مجازی ما برای اوبونتو 20.04 را دنبال کنید.
مرحله 1 – نصب PHP و متعلقات اضافی
علاوه بر متعلقاتی که قبلاً باید درون سیستم اوبونتو 20.04 شما مانند git و curl وجود داشته باشد ، Composer برای اجرای اسکریپت های PHP در خط فرمان ، به php-cli نیز و برای اکسترکت بایگانی های zip شده به unzip نیاز دارد. اکنون این وابستگی ها را نصب خواهیم کرد.
ابتدا حافظه نهان مدیر بسته را با اجرای این دستور به روز کنید:
⦁ $ sudo apt update

در مرحله بعدی ، برای نصب بسته های مورد نیاز ، دستور زیر را اجرا کنید:
⦁ $ sudo apt install php-cli unzip

از شما خواسته می شود که نصب را با تایپ Y و سپس ENTER تأیید کنید.
پس از نصب پیش نیازها ، می توانید به سراغ نصب Composer بروید.
مرحله 2 – دانلود و نصب Composer
Composer اسکریپت نصب کننده ای را فراهم می کند که به زبان PHP نوشته شده است. آن را دانلود خواهیم کرد ، و تأیید می کنیم که مشکلی ندارد ، و سپس از آن برای نصب Composer استفاده خواهیم کرد.
مطمئن شوید که در دیرکتوری هوم خود قرار دارید ، سپس نصب را با استفاده از curl بازیابی کنید:
⦁ $ cd ~

⦁ $ curl -sS https://getcomposer.org/installer -o composer-setup.php

در مرحله بعد ، تأیید خواهیم کرد که نصب کننده دانلود شده با هش SHA-384 برای جدیدترین نصب کننده در صفحه کلیدهای عمومی Composer / امضاها مطابقت دارد. برای تسهیل مرحله تأیید ، می توانید از دستور زیر استفاده کنید تا آخرین hash را از صفحه Composer به طور برنامه وار بدست آورید و آن را در متغیر پوسته ذخیره کنید:
⦁ $ HASH=`curl -sS https://composer.github.io/installer.sig`

اگر می خواهید مقدار به دست آمده را تأیید کنید ، می توانید این دستور را اجرا کنید:
⦁ $ echo $HASH

Output
e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a

اکنون کد PHP زیر را ، همانطور که در صفحه دانلود Composer ارائه شده است ، اجرا کنید تا تأیید کنید که اسکریپت نصب برای اجرا امن است:
⦁ $ php -r if (hash_file(‘SHA384’, ‘composer-setup.php’) === ‘$HASH’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL;”

خروجی زیر را مشاهده خواهید کرد:
Output
Installer verified

اگر خروجی می گوید نصب کننده مشکل دارد ، باید اسکریپت نصب را بار دیگر دانلود کنید و بررسی کنید که از هش درست استفاده می کنید. سپس فرایند تأیید را تکرار کنید. وقتی یک نصب تأیید شده داشتید ، می توانید ادامه دهید.
برای نصب Composer در سطح جهانی ، از دستور زیر استفاده کنید که Composer را به عنوان یک فرمان در گستره سیستم به نام Composer تحت ، usr / local / bin دانلود و نصب می کند:
⦁ $ sudo php composer-setup.php –install-dir=/usr/local/bin –filename=composer

خروجی مشابه این را مشاهده خواهید کرد:
Output
All settings correct for using Composer
Downloading…

Composer (version 1.10.5) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

برای آزمایش نصب خود ، اجرا کنید:
⦁ $ composer

Output
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.10.5 2020-04-10 11:44:22

Usage:
command [options] [arguments]

Options:
-h, –help Display this help message
-q, –quiet Do not output any message
-V, –version Display this application version
–ansi Force ANSI output
–no-ansi Disable ANSI output
-n, –no-interaction Do not ask any interactive question
–profile Display timing and memory usage information
–no-plugins Whether to disable plugins.
-d, –working-dir=WORKING-DIR If specified, use the given directory as working directory.
–no-cache Prevent use of the cache
-v|vv|vvv, –verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

تأیید می کند که Composer با موفقیت روی سیستم شما نصب شده است و در سطح سیستم در دسترس است.
توجه: اگر ترجیح می دهید Composer قابل اجرای جداگانه برای هر پروژه ای که در این 

سرور مجازی میزبانی میکنید ، داشته باشید ، می توانید آن را به صورت محلی در هر پروژه نصب کنید. این روش همچنین زمانی مفید است که کاربر سیستم شما اجازه نصب نرم افزارهای گسترده در سیستم را ندارد.
برای این کار از دستور php Composer -setup.php استفاده کنید. با این کار یک فایل composer.phar در دایرکتوری فعلی شما ایجاد می شود ، که می تواند با php comper.phar اجرا شود.
اکنون بیایید به استفاده از Composer برای مدیریت وابستگی ها بپردازیم.
مرحله 3 – استفاده از Composer در یک پروژه PHP
پروژه های PHP اغلب به کتابخانه های خارجی متکی هستند ، و مدیریت آن وابستگی ها و نسخه های آنها می تواند مشکل باشد. Composer با پیگیری نسخه های پروژه و متعلقات آن ، این مشکل را حل می کند ، ضمن اینکه روند پیدا کردن ، نصب و به روزرسانی بسته های مورد نیاز یک پروژه را نیز تسهیل می کند.
برای استفاده از Composer در پروژه خود ، به یک فایل Composer .json احتیاج دارید. فایل composer.json به Composer می گوید که به کدام متعلقات برای دانلود برای پروژه شما نیاز دارد و نصب کدام نسخه های هر بسته مجاز است. بسیار مهم است که پروژه خود را ثابت نگه دارید و از نصب نسخه های ناپایدار که به طور بالقوه می تواند باعث ایجاد مشکلات سازگاری شود ، خودداری کنید.
لازم نیست این فایل را به صورت دستی ایجاد کنید – معمولا در هنگام انجام این کار با خطاهای نحوی روبرو میشوید. Composer یک روش تعاملی برای ایجاد یک فایل جدید Composer .json بر اساس ورودی کاربر ارائه می دهد ، اگر قصد دارید پروژه خود را بعدا به عنوان یک بسته عمومی در Packagist به اشتراک بگذارید ، گزینه خوبی است. وقتی فرمان composer require را اجرا میکنید، Composer همچنین یک فایل Composer .json ایجاد می کند تا یک وابستگی را در یک پروژه تازه ایجاد شده شامل شود.
مراحل استفاده از Composer برای نصب بسته به عنوان متعلقات در یک پروژه شامل مراحل زیر است:
• شناسایی کنید که برنامه به چه نوع کتابخانه ای نیاز دارد.
• در مورد کتابخانه منبع باز مناسب در Packagist.org ، مخزن رسمی بسته بندی Composer تحقیق کنید.
⦁ بسته ای را که می خواهید به آن متکی باشید انتخاب کنید.
• composer require را اجرا کنید تا وابستگی را در فایل Composer .json شامل شده و بسته را نصب کنید.
بیایید این کار را با یک برنامه آزمایشی امتحان کنیم.
هدف از این برنامه تبدیل یک جمله معین به یک رشته سازگار با URL است- یعنی یک slug.
این معمولاً برای تبدیل عناوین صفحه به مسیرهای URL استفاده می شود (مانند قسمت نهایی URL برای این آموزش)
بیایید با ایجاد دایرکتوری برای پروژه خود شروع کنیم. آن را slugify می نامیم:
⦁ $ cd ~

⦁ $ mkdir slugify

⦁ $ cd slugify

اگرچه لازم نیست ، اکنون می توانید یک دستور composer init را اجرا کنید تا یک فایل composer.jso مفصل را برای پروژه خود ایجاد کنید. از آنجا که تنها هدف پروژه ما نشان دادن چگونگی نصب متعلقات با Composer است ، از یک فایل ساده تر Composer .json استفاده خواهیم کرد که وقتی به اولین بسته خود احتیاج داریم ، به صورت خودکار تولید می شود.
اکنون زمان آن رسیده است که Packagist.org را برای بسته ای جستجو کنیم که می تواند در تولید slugs به ما کمک کند. اگر اصطلاح Slug را در Packagist جستجو کنید ، نتیجه ای مشابه این دریافت خواهید کرد:

در سمت راست هر بسته در لیست ، دو عدد مشاهده خواهید کرد. عدد بالا نشان می دهد که چند بار بسته از طریق Composer نصب شده است ، و عدد پایین نشان می دهد که چند بار بسته بندی در GitHub ستاره دار شده است. به طور کلی ، بسته هایی با نصب بیشتر و تعداد بیشتری ستاره ، پایداری بیشتری دارند ، زیرا بسیاری از افراد از آنها استفاده می کنند. همچنین مهم است که توضیحات بسته را برای میزان ارتباط بررسی کنید تا اطمینان حاصل کنید که به چه چیز نیاز دارید.
ما به مبدل string به slug نیاز داریم. از نتایج جستجو ، بسته Cocur / slugify که به عنوان اولین نتیجه در آن صفحه ظاهر می شود ، با تعداد معینی نصب و ستاره گزینه خوبی به نظر میرسد.
بسته های Packagist دارای نام vendor  و نام package  هستند. هر بسته دارای یک شناسه منحصر به فرد (یک فضای نام) در همان قالب است که GitHub برای مخازن خود استفاده می کند: vendor/package. کتابخانه ای که می خواهیم نصب کنیم از فضای نام cocur / slugify استفاده می کند. برای اینکه در پروژه خود آن را به کار بگیرید ، به فضای نام بسته نیاز دارید.
اکنون که می دانید دقیقاً کدام پکیج را می خواهید نصب کنید ، می توانید composer require را اجرا کنید ، باید آن را به عنوان یک وابستگی در نظر بگیرید و همچنین فایل Composer .json را برای پروژه خود تولید کنید. نکته ای که هنگام به کارگیری بسته ها باید توجه کنیم این است که Composer هم متعلقات سطح برنامه و هم متعلقات سطح سیستم را ردیابی می کند. متعلقات سطح سیستم برای نشان دادن اینکه بسته به کدامیک از ماژول های PHP متکی است مهم هستند. بسته Cocur / slugify ، به یک ماژول PHP نیاز دارد که ما هنوز نصب نکرده ایم.
هنگامی که یک بسته مورد نیاز به یک کتابخانه سیستمی که در حال حاضر روی 

سرور مجازی شما نصب نشده است متکی است ، با خطایی مبنی بر اینکه چه چیزی مورد نیاز است ، مواجه می شوید:
⦁ $ composer require cocur/slugify

Output
Using version ^4.0 for cocur/slugify
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
– Installation request for cocur/slugify ^4.0 -> satisfiable by cocur/slugify[v4.0.0].
– cocur/slugify v4.0.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.

برای حل مشکل وابستگی سیستم ، می توانیم با استفاده از apt search ، بسته گمشده را جستجو کنیم:
⦁ $ apt search mbstring

Output
Sorting… Done
Full Text Search… Done
php-mbstring/focal 2:7.4+75 all
MBSTRING module for PHP [default]

php-patchwork-utf8/focal 1.3.1-1 all
UTF-8 strings handling for PHP

php7.4-mbstring/focal 7.4.3-4ubuntu1 amd64
MBSTRING module for PHP

پس از یافتن نام درست بسته ، می توانید بار دیگر از apt برای نصب وابستگی سیستم استفاده کنید:
⦁ $ sudo apt install php-mbstring

پس از اتمام نصب ، مجدداً می توانید composer require را اجرا کنید:
⦁ $ composer require cocur/slugify

Output
Using version ^4.0 for cocur/slugify
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
– Installing cocur/slugify (v4.0.0): Downloading (100%)
Writing lock file
Generating autoload files

همانطور که از خروجی مشاهده می کنید ، Composer به طور خودکار تصمیم گرفت از کدام نسخه از بسته استفاده کند. اگر اکنون دایرکتوری پروژه خود را بررسی کنید ، شامل دو فایل جدید خواهد بود: composer.json و composer.lock ، و یک دیرکتوری vendor:
⦁ $ ls -l

Output
total 12
-rw-rw-r– 1 sammy sammy 59 May 4 13:56 composer.json
-rw-rw-r– 1 sammy sammy 3229 May 4 13:56 composer.lock
drwxrwxr-x 4 sammy sammy 4096 May 4 13:56 vendor

از فایل composer.lock برای ذخیره اطلاعات در مورد این که کدام یک از نسخه های هر بسته نصب شده است استفاده می شود و اطمینان حاصل می کند اگر شخص دیگری پروژه شما را کلون کند و متعلقات آن را نصب کند ، از نسخه های مشابه استفاده می شود. دایرکتوری vendor جایی است که وابستگی پروژه در آن واقع شده باشد. پوشه vendor نباید به کنترل نسخه متعهد باشد – فقط باید فایل های Composer .json و composer.lock را شامل شوید.
هنگام نصب پروژه ای که از قبل حاوی یک فایل composer.json است ، به منظور دانلود متعلقات پروژه ، composer install را اجرا کنید.

بیایید نگاهی اجمالی به محدودیت های نسخه بیندازیم. اگر محتویات فایل Composer .json خود را بررسی کنید ، چنین چیزی را مشاهده خواهید کرد:
⦁ $ cat composer.json

Output
{
require”: {
cocur/slugify”: ^4.0”
}
}

ممکن است متوجه کاراکتر خاص ^ قبل از شماره نسخه در Composer .json شوید. Composer از چندین محدودیت و فرمت مختلف برای تعریف نسخه بسته مورد نیاز پشتیبانی می کند ، به منظور ارائه انعطاف پذیری و در عین حال ثابت نگه داشتن پروژه شما. اپراتور caret (^) که توسط فایل تولید شده توسط composer.json ایجاد شده است ، طبق  semantic versioning ، اپراتور توصیه شده برای حداکثر قابلیت همکاری است. در این حالت ،  4.0 را به عنوان حداقل نسخه سازگار تعریف می کند و به روزرسانی های هر نسخه بعدی زیر  5.0 را امکان پذیر می کند.
به طور کلی ، لازم نیست که محدودیت های نسخه را در فایل Composer .json خود دستکاری کنید. با این حال ، در برخی از شرایط ممکن است نیاز باشد که شما محدودیت ها را به صورت دستی ویرایش کنید – برای مثال ، هنگامی که نسخه اصلی جدیدی از کتابخانه مورد نیاز شما منتشر میشود و می خواهید آن را ارتقا دهید ، یا وقتی کتابخانه ای که می خواهید از آن استفاده کنید ، نسخه معنایی (semantic versioning) را دنبال نمی کند.
در اینجا چند مثال برای درک بهتر نحوه عملکرد محدودیتهای نسخه Composer آورده شده است:
Constraint Meaning Example Versions Allowed
^1.0 >= 1.0 < 2.0 1.0, 1.2.3, 1.9.9
^1.1.0 >= 1.1.0 < 2.0 1.1.0, 1.5.6, 1.9.9
~1.0 >= 1.0 < 2.0.0 1.0, 1.4.1, 1.9.9
~1.0.0 >= 1.0.0 < 1.1 1.0.0, 1.0.4, 1.0.9
1.2.1 1.2.1 1.2.1
1.* >= 1.0 < 2.0 1.0.0, 1.4.5, 1.9.9
1.2.* >= 1.2 < 1.3 1.2.0, 1.2.3, 1.2.9

برای مشاهده دقیق تر محدودیت های نسخه Composer ، به مقالات رسمی مراجعه کنید.
در مرحله بعدی ، بیایید ببینیم که چگونه متعلقات را به طور خودکار با Composer لود کنیم.
مرحله 4 – مشمولیت اسکریپت Autoload
از آنجایی که خود PHP کلاسها را به طور خودکار لود نمی کند ، Composer یک اسکریپت autoload را فراهم می کند که می توانید در پروژه خود بگنجانید تا بتوانید از عملکرد لود خودکار برای پروژه خود استفاده کنید. این فایل با افزودن اولین وابستگی ، توسط Composer به طور خودکار تولید می شود.
تنها کاری که شما باید انجام دهید اینست که فایل vendor/autoload.php را در اسکریپت های PHP خود قبل معرفی و نمونه سازی کلاس بگنجانید.
بیایید آن را در برنامه نسخه ی نمایشی خود امتحان کنیم. فایل جدیدی به نام test.php را در ویرایشگر متن خود باز کنید:
⦁ $ nano test.php

کد زیر را اضافه کنید که فایل vendor/autoload.php را وارد می کند ، وابستگی Cocur / slugify را لود می کند ، و از آن برای ایجاد یک slug استفاده می کند:
test.php
<?php
require __DIR__ . ‘/vendor/autoload.php’;

use Cocur\Slugify\Slugify;

$slugify = new Slugify();

echo $slugify->slugify(‘Hello World, this is a long sentence and I need to make a slug from it!’);

فایل را ذخیره کنید و از ویرایشگر خود خارج شوید.
اکنون اسکریپت را اجرا کنید:
⦁ $ php test.php

خروجی زیر را ایجاد میکند:
hello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it
هنگام انتشار نسخه های جدید، متعلقات به آپدیت نیاز دارند ، بنابراین بیایید ببینیم چگونه این کار را انجام دهیم
مرحله 5 – بروزرسانی متعلقات پروژه
هر زمان که می خواهید متعلقات پروژه خود را به نسخه های جدیدتر بروزرسانی کنید ، دستور update  را اجرا کنید:
⦁ $ composer update

با این کار نسخه های جدیدتری از کتابخانه های مورد نیاز پروژه شما جستجو می شوند. اگر نسخه جدیدتری پیدا شود و با محدودیت نسخه تعریف شده در فایل composer.json سازگار باشد ، Composer نسخه جدید را جایگزین قبلی می کند. فایل composer.lock به روز خواهد شد تا این تغییرات را منعکس کند.
همچنین می توانید یک یا چند کتابخانه خاص را با مشخص کردن آنها مانند این به روز کنید:
⦁ $ composer update vendor/package vendor2/package2

بعد از به روزرسانی متعلقات خود ، حتماً فایل های Composer .json و composer.lock را در سیستم کنترل نسخه خود بررسی کنید تا دیگران بتوانند این نسخه های جدیدتر را نیز نصب کنند.
نتیجه
Composer ابزاری قدرتمند است که می تواند کارآیی مدیریت متعلقات را در پروژه های PHP تا حد زیادی تسهیل کند. و یک روش مطمئن برای کشف ، نصب و به روز رسانی بسته های PHP فراهم می کند که یک پروژه به آن بستگی دارد. در این راهنما ، ما چگونگی نصب Composer ، چگونگی گنجاندن متعلقات جدید در یک پروژه و نحوه به روزرسانی این متعلقات را در صورت وجود نسخه های جدید ، بررسی کردیم.

 

برچسب‌ها:,


فراموش کردن رمزهای عبور برای اکثر ما اتفاق می افتد. اگر رمز عبور ریشه برای ورود به پایگاه داده MySQL یا MariaDB خود را فراموش یا گم کرده اید، در صورت دسترسی به سرور مجازی و یک حساب کاربری دارای قابلیت sudo ، باز هم می توانید دسترسی پیدا کرده و پسورد را ریست کنید.
در این آموزش نحوه تنظیم مجدد رمز عبور ریشه برای نسخه های قدیمی تر و جدیدتر MySQL و MariaDB ارائه می شود.
پیش نیازها
برای بازیابی رمز عبور ریشه MySQL / MariaDB ، به این موارد نیاز دارید:
• دسترسی به سرور مجازی لینوکس که MySQL یا MariaDB را با یک کاربر sudo اجرا کند.
مرحله 1 – شناسایی نسخه بانک اطلاعاتی
بیشتر توزیع های مدرن لینوکس با MySQL یا MariaDB همراه هستند ، یک جایگزین محبوب که کاملاً با MySQL سازگار است. بسته به پایگاه داده استفاده شده و نسخه آن ، برای بازیابی رمز اصلی باید از دستورات مختلفی استفاده کنید.
می توانید نسخه خود را با دستور زیر بررسی کنید:
$ mysql –version

خروجی مانند این را برای MySQL مشاهده خواهید کرد:
MySQL output
mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper

یا خروجی مانند این برای MariaDB:
MariaDB output
mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

توجه داشته باشید که کدام بانک اطلاعاتی و کدام نسخه را اجرا می کنید ، زیرا بعداً از آنها استفاده خواهید کرد. در مرحله بعد باید پایگاه داده را متوقف کنید تا بتوانید به صورت دستی به آن دسترسی پیدا کنید.
مرحله 2 – توقف سرور مجازی بانک اطلاعاتی
برای تغییر رمز عبور ریشه ، باید از قبل سرور مجازی پایگاه داده را خاموش کنید.
می توانید با دستور زیر این کار را برای MySQL انجام دهید:
$ sudo systemctl stop mysql

و برای MariaDB با:
$ sudo systemctl stop mariadb

پس از متوقف کردن سرور مجازی پایگاه داده ، برای تنظیم مجدد رمزعبور ریشه به صورت دستی به آن دسترسی پیدا می کنید.
مرحله 3 – راه اندازی مجدد سرور مجازی بانک اطلاعاتی بدون بررسی مجوز
اگر MySQL و MariaDB را بدون بارگذاری اطلاعات در مورد امتیازات کاربر اجرا کنید ، به شما این امکان را می دهد تا بدون ارائه رمز عبور ، به خط فرمان پایگاه داده با امتیازات اصلی دسترسی پیدا کنید. این امر به شما امکان می دهد بدون شناختن آن به پایگاه داده دسترسی پیدا کنید.
برای انجام این کار ، شما باید از بارگذاری جداول امتیازدهی ، که اطلاعات امتیازات کاربر را ذخیره می کند ، توسط پایگاه داده جلوگیری کنید. از آنجا که این کار کمی خطر امنیتی دارد ، باید از ایجاد شبکه نیز صرفنظر کنید تا از اتصال سایر کلاینت ها جلوگیری کنید.
پایگاه داده را بدون لود جداول امتیاز یا فعال کردن شبکه شروع کنید:
$ sudo mysqld_safe –skip-grant-tables –skip-networking &

علامت & در انتهای این دستور باعث می شود این روند در پس زمینه اجرا شود ، بنابراین می توانید به استفاده از ترمینال خود ادامه دهید.
اکنون می توانید به عنوان کاربر اصلی به بانک اطلاعاتی متصل شوید که نباید از شما پسورد بخواهد.
$ mysql -u root
در عوض بلافاصله پوسته پایگاه داده را مشاهده خواهید کرد.
MySQL prompt
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

MariaDB prompt
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]>

اکنون که دسترسی ریشه دارید ، می توانید رمز عبور اصلی را تغییر دهید.
مرحله 4 – تغییر رمز عبور Root
یک روش ساده برای تغییر رمز عبور اصلی برای نسخه های مدرن MySQL ، استفاده از دستور ALTER USER است. با این حال ، این دستور اکنون کار نمی کند زیرا جداول امتیاز لود نمی شوند.
بیایید به سرور مجازی پایگاه داده بگوییم که جداول امتیاز را با صدور فرمان FLUSH PRIVILEGES مجدد لود کند.
Mysql> FLUSH PRIVILEGES;

اکنون می توانیم کلمه عبور اصلی را تغییر دهیم.
برای MySQL 5.7.6 و نسخه های جدیدتر و همچنین MariaDB 10.1.20 و جدیدتر از دستور زیر استفاده کنید.
Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password’;

برای MySQL 5.7.5 و نسخه های قبل تر و همچنین MariaDB 10.1.20 و قبل تر از این دستور استفاده کنید:
Mysql> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘new_password’);

حتماً new_password را با رمز جدید انتخابی خود جایگزین کنید.
توجه: اگر فرمان ALTER USER کار نکند ، معمولاً نشان دهنده یک مشکل بزرگتر است. با این حال ، می توانید UPDATE …SET را امتحان کنید تا رمزعبور ریشه را تنظیم کنید.
Mysql> UPDATE mysql.user SET authentication_string = PASSWORD(‘new_password’) WHERE User = ‘root’ AND Host = ‘localhost’;

به یاد داشته باشید که جدولهای اعطای امتیاز را پس از این مجدد لود کنید.
در هر صورت ، باید تأیید کنید که فرمان با موفقیت انجام شده است.
Output
Query OK, 0 rows affected (0.00 sec)

گذرواژه تغییر کرده است ، بنابراین شما هم اکنون می توانید نمونه دستی سرور مجازی پایگاه داده را متوقف کرده و آن را به حالت قبل ریستارت کنید.
مرحله 5 – سرور مجازی پایگاه داده را به طور عادی ریستارت کنید
ابتدا نمونه سرور مجازی پایگاه داده را که به طور دستی در مرحله 3 شروع کرده اید متوقف کنید. این دستور PID یا شناسه پردازش MySQL یا MariaDB را جستجو میکند و SIGTERM را ارسال می کند تا به آن بگوید که پس از انجام عملیات پاکسازی از آن خارج شود. در این لینک آموزش مدیریت فرآیند لینوکس می توانید اطلاعات بیشتری کسب کنید.
برای MySQL ، از این دستور استفاده کنید:
$ sudo kill `cat /var/run/mysqld/mysqld.pid`

برای MariaDB :
$ sudo kill `/var/run/mariadb/mariadb.pid`

سپس سرویس را با استفاده از systemctl مجدداً راه اندازی کنید.
برای MySQL ، از این دستور استفاده کنید:
$ sudo systemctl start mysql

برای MariaDB :
$ sudo systemctl start mariadb

اکنون می توانید با این دستور تأیید کنید که رمز عبور جدید به صورت صحیح اعمال شده است:
$ mysql -u root -p

این دستور باید رمز عبور تازه تخصیص یافته را از شما بخواهد. پسورد را وارد کنید ، و باید همانطور که انتظار می رود ، به دیتابیس دسترسی پیدا کنید.
نتیجه
اکنون دسترسی ادمین به MySQL یا سرور مجازی MariaDB بازگردانی شده است. اطمینان حاصل کنید که رمزعبور ریشه جدیدی که انتخاب کرده اید قوی و ایمن است و آن را در جای امن نگه دارید.

 

 

برچسب‌ها:


Binary Large Object (BLOB) به معنی شئ بزرگ دودویی، یک نوع داده MySQL است که می تواند داده های باینری مانند تصاویر ، چندرسانه ای و فایل های PDF را ذخیره کند.
هنگام ایجاد برنامه هایی که نیاز به یک بانک اطلاعاتی منسجم دارند که در آن تصاویر باید با داده های مرتبط هماهنگ شوند (به عنوان مثال ، یک پورتال کارمند ، یک پایگاه داده دانشجویی یا یک برنامه مالی) ، ذخیره کردن تصاویر مانند عکس گذرنامه دانشجویی و امضاها در یک پایگاه داده MySQL در کنار سایر اطلاعات مرتبط میتواند راحت باشد.
اینجاست که نوع داده MySQL BLOB وارد می شود. این رویکرد برنامه نویسی نیاز به ایجاد یک سیستم فایل جداگانه برای ذخیره تصاویر را از بین می برد. این طرح همچنین پایگاه داده را متمرکز کرده و آن را قابل حمل تر و ایمن تر می کند زیرا داده ها از سیستم فایل جدا شده اند. ایجاد نسخه پشتیبان نیز نیز آسان تر است زیرا می توانید یک فایل MySQL dump ایجاد کنید که شامل تمام داده های شما باشد.
بازیابی اطلاعات سریعتر است و هنگام ایجاد سوابق می توانید مطمئن باشید که قوانین اعتبار سنجی داده ها و تمامیت ارجاع به ویژه هنگام استفاده از معاملات MySQL حفظ می شوند.
در این آموزش از نوع داده MySQL BLOB برای ذخیره تصاویر با PHP در اوبونتو 18.04 استفاده می کنید.
پیش نیازها
برای پیروی از این راهنما به موارد زیر نیاز دارید:
⦁ 

سرور مجازی Ubuntu 18.04 که با استفاده از راهنمای ستاپ اولیه سرور با Ubuntu 18.04 تنظیم و شامل یک کاربر غیر ریشه با امتیازات sudoباشد.
⦁ Apache ، MySQL و PHP که طبق راهنمای نحوه نصب پشته Linux ، Apache ، MySQL ، PHP (LAMP) در اوبونتو 18.04 تنظیم شده باشند. برای این آموزش ، نیازی به ایجاد هاست مجازی نیست ، بنابراین می توانید مرحله 4 را نادیده بگیرید.
مرحله 1 – ایجاد یک بانک اطلاعاتی
با ایجاد یک پایگاه داده نمونه برای پروژه خود شروع می کنید. برای این کار ، به 

سرور مجازی خود SSH کرده و دستور زیر را اجرا کنید تا به عنوان ریشه به 

سرور مجازی MySQL خود وارد شوید:
⦁ $ sudo mysql -u root -p

رمز عبور ریشه پایگاه داده MySQL خود را وارد کرده و برای ادامه ، ENTER بزنید.
سپس دستور زیر را برای ایجاد بانک اطلاعاتی اجرا کنید. در این آموزش ما آن را test_company می نامیم:
⦁ Mysql> CREATE DATABASE test_company;

پس از ایجاد دیتابیس ، خروجی زیر را مشاهده خواهید کرد:
Output
Query OK, 1 row affected (0.01 sec)

در مرحله بعد ، یک حساب test_user در 

سرور مجازی MySQL ایجاد کنید و به یاد داشته باشید که PASSWORD را با یک رمزعبور قوی جایگزین کنید:
⦁ Mysql> CREATE USER ‘test_user’@’localhost’ IDENTIFIED BY ‘PASSWORD’;

خروجی زیر را مشاهده خواهید کرد:
Output
Query OK, 0 rows affected (0.01 sec)

برای اعطای امتیازات کامل به test_user در پایگاه داده test_company ، این دستور را اجرا کنید:
⦁ Mysql> GRANT ALL PRIVILEGES ON test_company.* TO ‘test_user’@’localhost’;

اطمینان حاصل کنید که خروجی زیر را دریافت می کنید:
Output
Query OK, 0 rows affected (0.01 sec)

سرانجام ، جدول امتیازات را flush کنید تا MySQL مجدداً مجوزها را لود کند:
⦁ Mysql> FLUSH PRIVILEGES;

اطمینان حاصل کنید که خروجی زیر را مشاهده می کنید:
Output
Query OK, 0 rows affected (0.01 sec)

اکنون که پایگاه داده test_company و test_user آماده هستند ، می توانید به سراغ ایجاد جدول محصولات برای ذخیره سازی نمونه محصولات بروید. بعداً از این جدول برای درج و بازیابی سوابق برای نشان دادن نحوه کار MySQL BLOB استفاده خواهید کرد.
از 

سرور مجازی MySQL خارج شوید:
⦁ Mysql> QUIT;

سپس ، مجدداً با اعتبارات test_user که ایجاد کردید وارد سیستم شوید:
⦁ $ mysql -u test_user -p

هنگامی که از شما خواسته شد ، رمز عبور test_user را وارد کنید و برای ادامه ENTER را بزنید. سپس ، با تایپ دستور زیر به پایگاه داده test_company بروید:
⦁ Mysql> USE test_company;

پس از انتخاب پایگاه داده test_company ، MySQL نمایش داده می شود:
Output
Database changed

سپس ، با اجرای دستور زیر یک جدول محصولات ایجاد کنید:
⦁ Mysql> CREATE TABLE `products` (product_id BIGINT PRIMARY KEY AUTO_INCREMENT, product_name VARCHAR(50), price DOUBLE, product_image BLOB) ENGINE = InnoDB;

این دستور یک جدول با نام محصولات ایجاد می کند. جدول دارای چهار ستون است:
⦁ product_id: این ستون از یک نوع داده BIGINT استفاده می کند تا بتواند لیست بزرگی از محصولات را تا حداکثر 2⁶³-1 آیتم در خود جای دهد. برای تعیین منحصر به فرد محصولات ، این ستون را به عنوان PRIMARY KEY علامت گذاری کرده اید. برای اینکه MySQL بتواند نسل شناساگرهای جدید ستون های درج شده را مدیریت کند ، از کلمه کلیدی AUTO_INCREMENT استفاده کرده اید.
⦁ product_name: این ستون نام محصولات را در خود جای داده است. از نوع داده VARCHAR استفاده کرده اید ، زیرا این فیلد به طور کلی تا حداکثر 50 کاراکتر را مدیریت خواهد کرد – حد 50 فقط یک مقدار فرضی است که در این آموزش استفاده می شود.
⦁ price: برای اهداف نمایشی ، جدول محصولات شما شامل ستون قیمت برای ذخیره قیمت خرده فروشی محصولات است. از آنجا که ممکن است برخی محصولات دارای مقادیر شناور باشند (برای مثال ، 23.69 ، 45.36 ، 102.99) ، از نوع داده DOUBLE استفاده کرده اید.
⦁ product_image: این ستون از یک نوع داده BLOB برای ذخیره داده های باینری واقعی تصاویر محصولات استفاده می کند.
برای پشتیبانی از طیف گسترده ای از ویژگی ها از جمله معاملات MySQL از ENGINE ذخیره سازی InnoDB استفاده کرده اید. پس از اجرای این برای ایجاد جدول محصولات ، خروجی زیر را مشاهده خواهید کرد:
Output
Query OK, 0 rows affected (0.03 sec)
از 

سرور مجازی MySQL خود خارج شوید:
⦁ mysql> QUIT;

خروجی زیر را دریافت خواهید کرد
Output
Bye
در حال حاضر جدول محصولات برای ذخیره برخی سوابق از جمله تصاویر محصولات آماده است و در مرحله بعدی آن را با برخی محصولات پر می کنید.
مرحله 2 – ایجاد اسکریپت های PHP برای اتصال و پر کردن بانک اطلاعاتی
در این مرحله ، یک اسکریپت PHP ایجاد خواهید کرد که به پایگاه داده MySQL که در مرحله اول 1 ایجاد کرده اید متصل خواهد شد. اسکریپت سه محصول نمونه را آماده کرده و آنها را در جدول محصولات قرار می دهد.
برای ایجاد کد PHP ، یک فایل جدید را با ویرایشگر متن خود باز کنید:
⦁ $ sudo nano /var/www/html/config.php

سپس اطلاعات زیر را در فایل وارد کرده و PASSWORD را با گذرواژه test_user که در مرحله 1 ایجاد کرده اید جایگزین کنید:
/var/www/html/config.php
<?php

define(‘DB_NAME’, ‘test_company’);
define(‘DB_USER’, ‘test_user’);
define(‘DB_PASSWORD’, ‘PASSWORD’);
define(‘DB_HOST’, ‘localhost’);

$pdo = new PDO(mysql:host=” . DB_HOST . ; dbname=” . DB_NAME, DB_USER, DB_PASSWORD);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

فایل را ذخیره کنید و ببندید.
در این فایل از چهار PHP ثابت برای اتصال به پایگاه داده MySQL که در مرحله 1 ایجاد کردید، استفاده نموده اید:
⦁ DB_NAME: این ثابت دارای نام بانک اطلاعاتی test_company است.
⦁ DB_USER: این متغیر دارای نام کاربری test_user است.
⦁ DB_PASSWORD: این ثابت پسورد MySQL حساب test_user را ذخیره می کند.
⦁ DB_HOST: نشان دهنده 

سرور مجازی ی است که دیتابیس در آن قرار دارد. در این حالت ، شما از 

سرور مجازی localhost استفاده می کنید.
خط زیر در فایل شما یک PHP Data Object (PDO) را آغاز کرده و به پایگاه داده MySQL متصل می شود:

$pdo = new PDO(mysql:host=” . DB_HOST . ; dbname=” . DB_NAME, DB_USER, DB_PASSWORD);

در پایان فایل ، چند ویژگی PDO تنظیم کرده اید:
⦁ ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION : این ویژگی به PDO دستور می دهد استثنائی را که می تواند برای اهداف اشکال زدایی وارد شود ، ارائه کند.
⦁ ATTR_EMULATE_PREPARES, false : این گزینه با اطلاع به موتور پایگاه داده MySQL برای آماده سازی به جای PDO ، امنیت را بیشتر می کند.
فایل /var/www/html/config.php را در دو اسکریپت PHP که به ترتیب برای درج و بازیابی سوابق ایجاد خواهید کرد ، در نظر خواهید گرفت.
ابتدا اسکریپت PHP /var/www/html/insert_products.php را برای درج سوابق در جدول محصولات ایجاد کنید:
⦁ $ sudo nano /var/www/html/insert_products.php

سپس اطلاعات زیر را در فایل /var/www/html/insert_products.php اضافه کنید:
/var/www/html/insert_products.php
<?php

require_once ‘config.php’;

$products = [];

$products[] = [
‘product_name’ => ‘VIRTUAL SERVERS’,
‘price’ => 5,
‘product_image’ => file_get_contents(https://i.imgur.com/VEIKbp0.png”)
];

$products[] = [
‘product_name’ => ‘MANAGED KUBERNETES’,
‘price’ => 30,
‘product_image’ => file_get_contents(https://i.imgur.com/cCc9Gw9.png”)
];

$products[] = [
‘product_name’ => ‘MySQL DATABASES’,
‘price’ => 15,
‘product_image’ => file_get_contents(https://i.imgur.com/UYcHkKD.png” )
];

$sql = INSERT INTO products(product_name, price, product_image) VALUES (:product_name, :price, :product_image)”;

foreach ($products as $product) {
$stmt = $pdo->prepare($sql);
$stmt->execute($product);
}

echo Records inserted successfully”;

فایل را ذخیره کنید و ببندید.
در فایل بالا، فایل config.php را در بالا وارد کرده اید. این اولین فایلی است که شما برای تعیین متغیرهای دیتابیس و اتصال به پایگاه داده ایجاد کرده اید. این فایل همچنین یک شی PDO را آغاز می کند و آن را در یک متغیر pdo $ ذخیره می کند.
در مرحله بعد ، مجموعه ای از داده های محصولات را ایجاد کرده اید تا در بانک اطلاعاتی درج شوند. به غیر از product_name و price ، که به ترتیب به عنوان رشته ها و مقادیر عددی تهیه شده اند ، اسکریپت از تابع file_get_contents داخلی PHP برای خواندن تصاویر از یک منبع خارجی استفاده می کند و آنها را به صورت رشته به ستون product_image منتقل می کند.
در مرحله بعد ، یک عبارت SQL آماده کرده اید و از عبارت PHP foreach {…} برای وارد کردن هر محصول در پایگاه داده استفاده کرده اید.
برای اجرای فایل /var/www/html/insert_products.php ، آن را با استفاده از آدرس زیر در پنجره مرورگر خود اجرا کنید. به یاد داشته باشید که your-server-IP را با آدرس IP عمومی 

سرور مجازی خود جایگزین کنید:
http://your-server-IP/insert_products.php

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

شما با موفقیت سه رکورد حاوی تصاویر محصول را در جدول محصولات وارد کرده اید. در مرحله بعد ، یک اسکریپت PHP برای بازیابی این سوابق و نمایش آنها در مرورگر خود ایجاد خواهید کرد.
مرحله 3 – نمایش اطلاعات محصولات از پایگاه داده MySQL
با اطلاعات و تصاویر محصولات موجود در بانک اطلاعاتی ، اکنون می خواهید اسکریپت PHP دیگری را رمزگذاری کنید که اطلاعات محصولات را در یک جدول HTML در مرورگر شما پستجو کرده و نمایش می دهد.
برای ایجاد فایل ، دستور زیر را تایپ کنید:
⦁ $ sudo nano /var/www/html/display_products.php

سپس اطلاعات زیر را در فایل وارد کنید:
/var/www/html/display_products.php
<html>
<title>Using BLOB and MySQL</title>
<body>

<?php

require_once ‘config.php’;

$sql = SELECT * FROM products”;
$stmt = $pdo->prepare($sql);
$stmt->execute();
?>

<table border = ‘1’ align = ‘center’> <caption>Products Database</caption>
<tr>
<th>Product Id</th>
<th>Product Name</th>
<th>Price</th>
<th>Product Image</th>
</tr>

<?php
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo ‘<tr>’;
echo ‘<td>’ . $row[‘product_id’] . ‘</td>’;
echo ‘<td>’ . $row[‘product_name’] . ‘</td>’;
echo ‘<td>’ . $row[‘price’] . ‘</td>’;
echo ‘<td>’ .
‘<img src = data:image/png;base64,’ . base64_encode($row[‘product_image’]) . ‘” width = 50px” height = 50px”/>’
. ‘</td>’;
echo ‘</tr>’;
}
?>

</table>
</body>
</html>

تغییرات را در فایل ذخیره کنید و آن را ببندید.
در اینجا شما مجدداً فایل config.php را برای اتصال به پایگاه داده وارد کرده اید. سپس ، با استفاده از PDO ، یک عبارت SQL را با استفاده از دستور SELECT * FROM products برای بازیابی همه موارد از جدول محصولات تهیه و اجرا کرده اید.
در مرحله بعد ، یک جدول HTML ایجاد کرده و آن را با داده های محصولات با استفاده از while() {…} PHP پر کرده اید. خط $ row = $ stmt-> fetch (PDO :: FETCH_ASSOC) از پایگاه داده پرس و جو می کند و نتیجه را در متغیر $row به عنوان یک آرایه چند بعدی ذخیره می کند ، که می توانید با استفاده از $row[‘column_name’] در یک ستون جدول HTML نمایش دهید.
تصاویر از ستون product_image درون برچسب های <img src = ”> محصور شده اند. برای تغییر اندازه تصاویر در اندازه کوچکتر که می تواند در ستون جدول HTML قرار بگیرد از صفات عرض و ارتفاع استفاده کرده اید.
به منظور تبدیل داده های نگهداشته شده توسط نوع داده BLOB به تصاویر ، از عملکرد داخلی PHP base64_encode و عبارت زیر برای طرح داده URI استفاده کرده اید:
data:media_type;base64, base_64_encoded_data

در این حالت ، image/png ، Media_type است و رشته رمزگذاری شده Base64 از ستون product_image، base_64_encoded_data میباشد.
در مرحله بعد ، با وارد کردن آدرس زیر ، فایل Display_products.php را در یک مرورگر وب اجرا کنید:
http://your-server-IP/display_products.php

پس از اجرای فایل display_products.php در مرورگر خود ، یک جدول HTML با لیستی از محصولات و تصاویر همراه مشاهده خواهید کرد.

این تأیید می کند که متن PHP برای بازیابی تصاویر از MySQL همانطور که انتظار می رود کار می کند.
نتیجه
در این راهنما از نوع داده MySQL BLOB برای ذخیره و نمایش تصاویر با PHP در اوبونتو 18.04 استفاده کرده اید. همچنین مزایای پایه ذخیره کردن تصاویر در یک پایگاه داده را در مقایسه با ذخیره آنها در یک سیستم فایل مشاهده کردید. این موارد شامل قابلیت حمل ، امنیت و سهولت تهیه نسخه پشتیبان است. اگر در حال ساخت برنامه ای مانند پورتال دانشجویی یا بانک اطلاعاتی کارمندان هستید که نیاز به ذخیره سازی اطلاعات و تصاویر مرتبط دارد ، این فناوری می تواند برای شما بسیار مفید باشد.
برای اطلاعات بیشتر در مورد انواع داده پشتیبانی شده در MySQL ، راهنمای انواع داده MySQL را دنبال کنید. اگر علاقه مند به مطالب بیشتر مربوط به MySQL و PHP هستید، آموزش های زیر را بررسی کنید:
• نحوه پیاده سازی صفحه بندی در MySQL با PHP در اوبونتو 18.04
• نحوه استفاده از افزونه PDO PHP برای انجام تراکنش های MySQL در PHP در اوبونتو 18.04

 

برچسب‌ها:


Nginx یکی از محبوب ترین 

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

سرور مجازی وب یا پروکسی مع استفاده شود.
در این راهنما ، ما در مورد چگونگی نصب Nginx در 

سرور مجازی Ubuntu 18.04 صبت خواهیم کرد.
پیش نیازها
قبل از شروع این راهنما ، باید یک کاربر معمولی و غیر ریشه با امتیازات sudo در 

سرور مجازی خود تنظیم کنید. با پیروی از راهنمای ستاپ اولیه 

سرور مجازی برای اوبونتو 18.04 می توانید نحوه پیکربندی یک حساب کاربری معمولی را یاد بگیرید.
هنگامی که یک حساب کاربری در دسترس داشتید ، به عنوان کاربر غیر ریشه خود وارد شوید.
مرحله 1 – نصب Nginx
از آنجا که Nginx در مخازن پیش فرض اوبونتو موجود است ، می توان آن را از طریق این مخازن با استفاده از سیستم بسته بندی apt نصب کرد.
از آنجا که این اولین تعامل ما با سیستم بسته بندی apt در این بخش است ، دیرکتوری بسته های محلی خود را به روز می کنیم تا به جدیدترین لیست های بسته دسترسی داشته باشیم. پس از آن ، می توانیم nginx را نصب کنیم:
⦁ $ sudo apt update

⦁ $ sudo apt install nginx
پس از پذیرش روال ، apt ، Nginx و هرگونه متعلقات لازم را برای 

سرور مجازی شما نصب می کند.
مرحله 2 – تنظیم فایروال
قبل از آزمایش Nginx ، برای دسترسی به سرویس باید نرم افزار فایروال تنظیم شود. Nginx پس از نصب ، خود را به عنوان سرویسی با ufw ثبت می کند ، و این باعث می شود دسترسی Nginx ساده باشد.
با تایپ دستور زیر تنظیمات برنامه را که ufw می داند چگونه با آن کار کند لیست کنید:
⦁ $ sudo ufw app list

باید لیستی از پروفایل های برنامه را دریافت کنید:
Output
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH

همانطور که از خروجی نشان داده شده است ، سه پروفایل برای Nginx در دسترس است:
⦁ Nginx Full: این پروفایل هر دو پورت 80 (ترافیک وب عادی و بدون رمزگذاری) و پورت 443 (ترافیک رمزگذاری شده TLS / SSL) را باز می کند
⦁ Nginx HTTP: این نمایه فقط پورت 80 را باز می کند (ترافیک وب عادی و بدون رمزگذاری)
⦁ Nginx HTTPS:این پروفایل فقط پورت 443 را باز می کند (ترافیک رمزگذاری شده TLS / SSL)
توصیه می شود محدودترین نمایه ای را که هنوز امکان ترافیک تنظیم شده خود را فراهم می کند ، فعال کنید. در حال حاضر ، ما فقط نیاز به ترافیک در پورت 80 داریم.
می توانید آن را با تایپ کردن دستور زیر فعال کنید:
⦁ $ sudo ufw allow ‘Nginx HTTP’

می توانید تغییر را با تایپ این دستور تأیید کنید:
⦁ $ sudo ufw status

در خروجی نمایش داده شده، ترافیک HTTP مجاز را مشاهده میکنید:
Output
Status: active

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

مرحله 3 – بررسی 

سرور مجازی وب خود
در پایان مراحل نصب ، اوبونتو 18.04 ، Nginx را شروع می کند. وب 

سرور مجازی اکنون راه اندازی و در حال کار میباشد.
ما می توانیم با تایپ کردن این دستور زیر سیستم شروع کار systemd  را بررسی کنیم تا مطمئن شویم که این سرویس در حال اجراست:
⦁ $ systemctl status nginx

Output
● nginx.service – A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago
Docs: man:nginx(8)
Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
CGroup: /system.slice/nginx.service
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2380 nginx: worker process

همانطور که با این دستور تأیید شده است ، این سرویس با موفقیت شروع به کار نموده است. با این حال ، بهترین راه برای آزمایش آن، درخواست صفحه از Nginx است.
شما می توانید با رفتن به آدرس IP 

سرور مجازی خود به صفحه فرود پیش فرض Nginx دسترسی داشته باشید تا تأیید کنید که نرم افزار به درستی کار می کند. اگر آدرس IP 

سرور مجازی خود را نمی دانید ، می توانید آن را به چند روش مختلف دریافت کنید.
سعی کنید این را در اعلان فرمان 

سرور مجازی خود تایپ کنید:
⦁ $ ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’

چند خط دریافت خواهید کرد. می توانید هرکدام را در مرورگر وب خود امتحان کنید تا ببینید که آیا کار می کنند.
راه جایگزین دیگر تایپ آن است که باید آدرس IP عمومی شما را همانطور که از یک مکان دیگر در اینترنت مشاهده می شود به شما بدهد:
⦁ $ curl -4 icanhazip.com

اکنون که آدرس IP 

سرور مجازی خود را دارید ، آن را در نوار آدرس مرورگر خود وارد کنید:
http://your_server_ip
باید صفحه فرود پیش فرض Nginx را دریافت کنید:

این صفحه برای این در Nginx گنجانده شده که نشان دهد 

سرور مجازی شما به درستی کار می کند.
مرحله 4 – مدیریت فرایند Nginx
اکنون که 

سرور مجازی وب خود را فعال کرده اید ، اجازه دهید برخی دستورات مدیریت پایه را مرور کنیم.
برای متوقف کردن 

سرور مجازی وب خود ، تایپ کنید:
⦁ $ sudo systemctl stop nginx

برای شروع 

سرور مجازی وب هنگام متوقف بودن ، تایپ کنید:
⦁ $ sudo systemctl start nginx

برای متوقف کردن و شروع مجدد سرویس ، تایپ کنید:
⦁ $ sudo systemctl restart nginx

اگر فقط تغییرات پیکربندی را انجام می دهید ، Nginx اغلب می تواند بدون افت اتصالات مجدد لود شود. برای انجام این کار ، تایپ کنید:
⦁ $ sudo systemctl reload nginx

به طور پیش فرض ، Nginx به گونه ای پیکربندی شده است تا وقتی 

سرور مجازی بوت میشود ، به طور خودکار شروع گردد. اگر این چیزی نیست که شما می خواهید ، می توانید با تایپ کردن دستور زیر، این رفتار را غیرفعال کنید:
⦁ $ sudo systemctl disable nginx

برای فعال کردن مجدد سرویس برای راه اندازی در هنگام بوت شدن ، می توانید این دستور را تایپ کنید:
⦁ $ sudo systemctl enable nginx

مرحله 5 – تنظیم بلوک های 

سرور مجازی (توصیه می شود)
هنگام استفاده از وب 

سرور مجازی Nginx ، می توان از بلوک های 

سرور مجازی (مشابه هاست های مجازی در Apache) برای کپسوله کردن جزئیات پیکربندی و میزبانی بیش از یک دامنه از یک 

سرور مجازی واحد استفاده کرد. دامنه ای به نام example.com را راه اندازی می کنیم ، اما شما باید این نام را با نام دامنه خود جایگزین کنید.
Nginx در اوبونتو 18.04 دارای یک بلوک 

سرور مجازی است که بصورت پیش فرض فعال شده است تا برای ارائه اسناد از یک دیرکتوری در / var / www / html پیکربندی شود. اگرچه برای یک سایت واحد به خوبی کار می کند ، اگر میزبان چندین سایت باشید ، می تواند مشکل ساز شود. به جای تغییر / var / www / html ، بیایید یک ساختار دایرکتوری در / var / www برای سایت example.com ایجاد کنیم ، و / var / www / html را به عنوان دایرکتوری پیش فرض رها کنیم تا در صورت عدم تطابق درخواست کلاینت با هیچ سایت دیگر، این دیرکتوری ارائه شود.
دایرکتوری برای example.com را به شرح زیر ایجاد کنید ، از پرچم -p برای ایجاد هرگونه دیرکتوری parent لازم
استفاده نمایید.
⦁ $ sudo mkdir -p /var/www/example.com/html

سپس ، مالکیت دایرکتوری را به متغیر محیط USER $ اختصاص دهید
⦁ $ sudo chown -R $USER:$USER /var/www/example.com/html

اگر مقدار umask خود را تغییر نداده باشید ، مجوزهای ریشه وب شما باید صحیح باشد، اما میتوانید با تایپ دستور زیر از این بابت مطمئن شوید:
⦁ $ sudo chmod -R 755 /var/www/example.com

سپس ، با استفاده از nano یا ویرایشگر مورد علاقه خود ، صفحه index.html نمونه را ایجاد کنید:
⦁ $ nano /var/www/example.com/html/index.html

در داخل ، نمونه HTML زیر را اضافه کنید:
/var/www/example.com/html/index.html
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com server block is working!</h1>
</body>
</html>

پس از اتمام فایل را ذخیره کنید و ببندید.
برای اینکه Nginx بتواند این محتوا را ارائه دهد ، لازم است یک بلوک 

سرور مجازی را با دستورالعمل های درست ایجاد کنید. به جای تغییر مستقیم پیکربندی پیش فرض ، بیایید فایل جدیدی را در /etc/nginx/sites-available/example.com ایجاد کنیم:
⦁ $ sudo nano /etc/nginx/sites-available/example.com

در بلوک پیکربندی زیر پیست کنید که مشابه پیش فرض است ، اما برای دیرکتوری جدید و نام دامنه به روز میباشد:
/etc/nginx/sites-available/example.com
server {
listen 80;
listen [::]:80;

root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;

server_name example.com www.example.com;

location / {
try_files $uri $uri/ =404;
}
}

توجه کنید که پیکربندی ریشه را به دیرکتوری جدید و server_name را به نام دامنه خود به روز کرده ایم.
در مرحله بعد ، با ایجاد پیوندی از آن به دیرکتوری sites-enabled ، که Nginx هنگام راه اندازی از آن می خواند ، فایل را فعال میکنیم:
$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

اکنون دو بلوک 

سرور مجازی فعال و پیکربندی شده اند تا به درخواست ها بر اساس دستورالعمل های listen و server_name آنها پاسخ دهند (می توانید درباره نحوه پردازش Nginx این دستورالعمل ها در این لینک بیشتر بخوانید):
⦁ example.com: به درخواست های example.com و www.example.com پاسخ خواهد داد.
⦁ •default: به هر درخواست در پورت 80 که با دو بلوک دیگر مطابقت ندارد پاسخ خواهد داد.
برای جلوگیری از بروز مشکل حافظه که می تواند ناشی از افزودن نام 

سرور مجازی اضافی باشد ، لازم است یک مقدار واحد را در فایل /etc/nginx/nginx.conf تنظیم کنید. فایل را باز کنید:
⦁ $ sudo nano /etc/nginx/nginx.conf

دستورالعمل server_names_hash_bucket_size را پیدا کنید و نماد # را حذف کنید تا خط را باطل کنید.
/etc/nginx/nginx.conf

http {

server_names_hash_bucket_size 64;

}

پس از اتمام فایل را ذخیره کنید و ببندید.
سپس ، بررسی کنید تا مطمئن شوید که هیچ خطای نحوی در هیچ یک از فایل های Nginx شما وجود ندارد:
⦁ $ sudo nginx -t

اگر مشکلی وجود ندارد ، Nginx را ریستارت کنید تا تغییرات خود را فعال نمایید:
⦁ $ sudo systemctl restart nginx

Nginx اکنون باید نام دامنه شما را ارائه دهد. می توانید با رفتن به http://example.com ، جایی که باید چیزی شبیه به این تصویر را مشاهده کنید ، این فرآیند را آزمایش کنید:

مرحله ششم – آشنایی با فایل ها و دستورالعمل های مهم Nginx
اکنون که می دانید چگونه خود سرویس Nginx را مدیریت کنید ، باید چند دقیقه وقت بگذارید تا با چند دیرکتوری و فایل مهم آشنا شوید.
محتوا
⦁ / var / www / html: محتوای وب واقعی ، که به طور پیش فرض فقط شامل صفحه پیش فرض Nginx است که قبلاً دیدید ، از دیرکتوری / var / www / html ارائه می شود. با تغییر فایل های پیکربندی Nginx قابل تغییر است.
پیکربندی ر
⦁ / etc / nginx: دیرکتوری پیکربندی Nginx . همه فایل های پیکربندی Nginx در اینجا قرار دارند.
⦁ /etc/nginx/nginx.conf: فایل اصلی پیکربندی Nginx . می تواند برای ایجاد تغییر در تنظیمات جهانی Nginx اصلاح شود.
⦁ / etc / nginx / sites-available /: دایرکتوری که می توان در آن بلوک های 

سرور مجازی هر سایت ذخیره شود. Nginx از فایل های پیکربندی موجود در این دیرکتوری استفاده نمی کند مگر اینکه به دیرکتوری sites-enabled مرتبط باشند. به طور معمول ، تمام پیکربندی بلوک 

سرور مجازی در این دایرکتوری انجام می شود ، و سپس با پیوند دادن به دایرکتوری دیگر فعال می شود.
⦁ / etc / nginx / sites-enabled /: دایرکتوری که در آن بلوکهای 

سرور مجازی فعال در هر سایت ذخیره میشوند. به طور معمول ، با پیوند دادن به فایلهای پیکربندی موجود در دیرکتوری sites-available ایجاد می شوند.
⦁ / etc / nginx / snippets: این دیرکتوری شامل قطعات پیکربندی است که می توان در جایی دیگر در پیکربندی Nginx گنجانید. بخش های پیکربندی قابل تکرار بالقوه گزینه های خوبی برای تجزیه قطعات هستند.
ورودهای مربوط به 

سرور مجازی
⦁ /var/log/nginx/access.log: هر درخواستی به 

سرور مجازی وب شما در این فایل log ثبت می شود ، مگر اینکه Nginx به گونه ای پیکربندی شده باشد که کاری غیر از این انجام دهد.
⦁ /var/log/nginx/error.log: هرگونه خطای Nginx در این ورود ثبت می شود.
نتیجه
اکنون که 

سرور مجازی وب خود را نصب کرده اید ، گزینه های بسیاری برای نوع محتوا و فناوری هایی که می خواهید از آنها استفاده کنید در اختیار دارید تا یک تجربه غنی تر ایجاد نمایید.
اگر مایلید یک پشته برنامه کامل تر بسازید، مقاله نحوه نصب پشته LEMP در اوبونتو 18.04 را بررسی کنید.

 

برچسب‌ها:


Anaconda یک مدیر بسته منبع آزاد ، مدیر محیط و توزیع زبانهای برنامه نویسی پایتون و R است. معمولاً برای علوم داده ، یادگیری ماشین ، پردازش داده در مقیاس بزرگ ، محاسبات علمی و تحلیل پیش بینی استفاده می شود.
Anaconda با ارائه مجموعه ای از بیش از 1000 بسته علمی اطلاعات ، در هر دو نسخه بصورت رایگان و پولی در دسترس است. توزیع Anaconda با ابزار خط فرمان conda ارسال می شود. می توانید با خواندن مطالب رسمی Anaconda ، در مورد Anaconda و conda اطلاعات بیشتری کسب کنید.

این آموزش با نصب نسخه پایتون 3 Anaconda روی 

سرور مجازی اوبونتو 20.04 آشنا میشوید.
پیش نیازها
قبل از شروع این راهنما ، باید یک کاربر غیر ریشه با امتیازات sudo در 

سرور مجازی خود تنظیم کنید.
شما می توانید با تکمیل راهنمای تنظیم اولیه 

سرور مجازی Ubuntu 20.04 این کار را انجام دهید.
نصب Anaconda
بهترین راه برای نصب Anaconda ، دانلود جدیدترین اسکریپت bash نصب کننده Anaconda ، تأیید صحت آن و سپس اجرای آن است.
آخرین نسخه Anaconda را برای پایتون 3 در صفحه دانلود Anaconda پیدا کنید. در زمان نوشتن ، آخرین نسخه 2020.02 است ، اما در صورت وجود نسخه جدیدتر باید از نسخه پایدار بعدی استفاده کنید.
سپس ، به دیرکتوری / tmp در 

سرور مجازی خود بروید. این یک دیرکتوری خوب برای دانلود آیتم های موقت است ، مانند اسکریپت bash Anaconda ، که ما پس از اجرا نیازی به آن نداریم.
$ cd /tmp

برای دانلود پیوندی که از وب سایت Anaconda کپی کرده اید ، از curl استفاده کنید. برای استفاده سریعتر آن را به فایلی به نام anaconda.sh ارسال خواهیم کرد.
$ curl https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh –output anaconda.sh

اکنون می توانیم صحت داده های نصب کننده را با تأیید هش رمزنگاری از طریق بررسی نهایی SHA-256 بررسی کنیم. ما از دستور sha256sum به همراه نام فایل اسکریپت استفاده خواهیم کرد:
$ sha256sum anaconda.sh

خروجی دریافت خواهید کرد که شبیه به این است:
Output
2b9f088b2022edb474915d9f69a803d6449d5fdb4c303041f60ac4aefcc208bb anaconda.sh

باید خروجی را در برابر HASH های موجود در Anaconda با پایتون 3 در صفحه 64 بیتی لینوکس برای نسخه مناسب Anaconda بررسی کنید. تا زمانی که خروجی شما با هشی که در ردیف sha2561 نمایش داده شده مطابقت دارد ، میتوانید ادامه دهید.
اکنون می توانیم اسکریپت را اجرا کنیم:
$ bash anaconda.sh

خروجی زیر را دریافت خواهید کرد:
Output

Welcome to Anaconda3 2020.02

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>>

ENTER را برای ادامه فشار دهید و سپس ENTER بزنید تا مجوز را بخوانید. هنگامی که خواندن مجوز به پایان رسید ، از شما خواسته می شود که شرایط مجوز را تأیید کنید:
Output
Do you approve the license terms? [yes|no]

اگر موافق بودید ، بله را تایپ کنید.
در این مرحله از شما خواسته می شود که محل نصب را انتخاب کنید. برای پذیرش مکان پیش فرض می توانید ENTER را فشار دهید ، یا برای تغییر آن مکان دیگری را مشخص کنید.
Output
Anaconda3 will now be installed into this location:
/home/sammy/anaconda3

– Press ENTER to confirm the location
– Press CTRL-C to abort the installation
– Or specify a different location below

[/home/sammy/anaconda3] >>>

مراحل نصب ادامه خواهد یافت. توجه داشته باشید که ممکن است مدتی طول بکشد.
پس از اتمام نصب ، خروجی زیر را دریافت خواهید کرد:
Output

Preparing transaction: done
Executing transaction: done
installation finished.
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>>

بله را تایپ کنید تا بتوانید Anaconda3 را مقداردهی اولیه کنید. خروجی دریافت خواهید کرد که تغییرات ایجاد شده در دیرکتوریهای مختلف را بیان می کند. یکی از خطوطی که دریافت میکنید خطی است که از شما برای نصب Anaconda تشکر می کند.
Output

Thank you for installing Anaconda3!

اکنون می توانید با وارد کردن فایل ~ / .bashrc ، نصب را فعال کنید:
$ source ~/.bashrc

پس از انجام این کار ، در محیط برنامه نویسی پایه پیش فرض Anaconda قرار خواهید گرفت و اعلان دستور شما به شرح زیر تغییر می کند:
(base) Sammy@ubuntu: ~$
اگرچه Anaconda با این محیط برنامه نویسی پایه پیش فرض همراه است ، اما باید محیط های جداگانه ای برای برنامه های خود ایجاد کنید و آنها را از یکدیگر جدا کنید.
می توانید با استفاده از دستور conda ، به عنوان مثال با list ، نصب خود را تأیید کنید:
(base) Sammy@ubuntu: ~$ conda list

از طریق نصب Anaconda می توانید تمام بسته هایی را که در دسترس دارید دریافت کنید:
Output
# packages in environment at /home/sammy/anaconda3:
#
# Name Version Build Channel
_ipyw_jlab_nb_ext_conf 0.1.0 py37_0
_libgcc_mutex 0.1 main
alabaster 0.7.12 py37_0
anaconda 2020.02 py37_0

اکنون که Anaconda نصب شده است ، می توانیم به تنظیم محیط های Anaconda بپردازیم.
تنظیم محیط های Anaconda
محیط های مجازی Anaconda به شما امکان می دهد پروژه هایی را که توسط نسخه های پایتون و بسته های مورد نیاز سازماندهی شده اند ، نگه دارید. برای هر محیط Anaconda که تنظیم کرده اید ، می توانید مشخص کنید که از کدام نسخه Python استفاده شود و می توانید تمام فایل های برنامه نویسی مرتبط خود را در آن دیرکتوری نگه دارید.
ابتدا می توانیم بررسی کنیم که کدام نسخه های پایتون برای استفاده در دسترس ما است:
(base) Sammy@ubuntu: ~$ conda search ^python$”

خروجی با نسخه های مختلف Python که می توانید هدف قرار دهید دریافت می کنید ، از جمله نسخه های Python 3 و Python 2. از آنجا که ما در این آموزش از Anaconda با پایتون 3 استفاده می کنیم ، شما فقط به نسخه های بسته های پایتون 3 دسترسی خواهید داشت.
بیایید با استفاده از جدیدترین نسخه Python 3. یک محیط ایجاد کنیم. می توانیم با اختصاص نسخه 3 به آرگومان پایتون به این مهم دست یابیم. محیط را my_env می نامیم ، اما شما بهتر است از یک نام توصیفی برای محیط خود استفاده کنید ، به خصوص اگر از محیط ها برای دسترسی به بیش از یک نسخه Python استفاده می کنید.
(base) Sammy@ubuntu: ~$ conda create –name my_env python=3

خروجی با اطلاعاتی درباره موارد دانلود شده و بسته های نصب شده ، دریافت خواهیم کرد و از شما خواسته می شود که y یا n را انتخاب کنید. اگر موافق هستید ، y را تایپ کنید.
ابزار conda اکنون بسته های محیط را به دست می آورد و اتمام کار را به شما اطلاع می دهد.
با تایپ دستور زیر می توانید محیط جدید خود را فعال کنید:
(base) Sammy@ubuntu: ~$ conda activate my_env

با فعال کردن محیط تان ، پیشوند اعلان فرمان شما نشان می دهد که شما دیگر در محیط base نیستید ، بلکه در محیط جدیدی هستید که اخیرا ایجاد کرده اید.
(base) Sammy@ubuntu: ~$
در داخل محیط می توانید تأیید کنید که از نسخه پایتونی که قصد استفاده از آن را داشتید استفاده می کنید:
(base) Sammy@ubuntu: ~$ python –version

Output
Python 3.8.2

وقتی آماده غیرفعال کردن محیط Anaconda بودید ، می توانید با تایپ کردن دستور زیر این کار را انجام دهید:
(base) Sammy@ubuntu: ~$ conda deactivate

توجه داشته باشید که برای رسیدن به نتایج مشابه می توانید کلمه source را با . جایگزین کنید.
برای هدف قرار دادن نسخه خاص تری از پایتون ، می توانید نسخه خاصی را به آرگومان پایتون منتقل کنید مثلاً 3.5:
(base) Sammy@ubuntu: ~$ conda create -n my_env35 python=3.5

می توانید تمام محیط هایی که با این دستور تنظیم کرده اید را بازرسی کنید:
(base) Sammy@ubuntu: ~$ conda info –envs

Output
# conda environments:
#
base * /home/sammy/anaconda3
my_env /home/sammy/anaconda3/envs/my_env
my_env35 /home/sammy/anaconda3/envs/my_env35

ستاره نشانگر محیط فعال فعلی است.
هر محیطی که با conda create ایجاد می کنید با چندین بسته پیش فرض همراه است:
_libgcc_mutex
ca-certificates
certifi
libedit
libffi
libgcc-ng
libstdcxx-ng
ncurses
openssl
pip
python
readline
setuptools
sqlite
tk
wheel
xz
zlib
با دستور زیر می توانید بسته های اضافی مانند numpy را اضافه کنید:
(base) Sammy@ubuntu: ~$ conda install –name my_env35 numpy

اگر می دانید که پس از ایجاد ، یک محیط numpy  می خواهید ، می توانید آن را در دستور conda create خود هدف قرار دهید:
(base) Sammy@ubuntu: ~$ conda create –name my_env python=3 numpy

اگر دیگر در حال کار روی یک پروژه خاص هستید و دیگر نیازی به محیط مرتبط ندارید ، می توانید آن را حذف کنید. برای انجام این کار ، دستور زیر را تایپ کنید:
(base) Sammy@ubuntu: ~$ conda remove –name my_env35 –all

حال ، هنگامی که فرمان conda info –envs را تایپ می کنید ، محیطی که حذف کرده اید دیگر لیست نمی شود.
به روزرسانی Anaconda
شما باید به طور مرتب از بروزرسانی Anaconda اطمینان حاصل کنید ، تا با آخرین نسخه های بسته کار کنید.
برای انجام این کار ، ابتدا باید ابزار conda را به روز کنید:
(base) Sammy@ubuntu: ~$ conda update conda

هنگامی که از شما خواسته شد ، y را برای ادامه به روزرسانی تایپ کنید.
پس از اتمام بروزرسانی conda ، می توانید توزیع Anaconda را به روز کنید:
(base) Sammy@ubuntu: ~$ conda update anaconda

دوباره ، هنگامی که از شما خواسته شد ، y را تایپ کنید تا ادامه دهید.
این کار اطمینان حاصل خواهد کرد که شما از آخرین نسخه های conda و Anaconda استفاده می کنید.
حذف Anaconda
اگر دیگر از Anaconda استفاده نمی کنید و متوجه شدید که باید آن را حذف کنید ، باید از ماژول anaconda-cleanشروع کنید ، که هنگام حذف Anaconda ، فایل های پیکربندی را حذف می کند.
$ conda install anaconda-clean

هنگامی که از شما خواسته شد y را تایپ کنید.
پس از نصب ، می توانید دستور زیر را اجرا کنید. قبل از حذف هر یک از شما خواسته می شود y را پاسخ دهید. اگر ترجیح می دهید که هر بار از شما سوال نشود ، –yesرا به پایان فرمان خود را اضافه کنید:
$ anaconda-clean

با این کار یک پوشه پشتیبان به نام .anaconda_backup در دیرکتوری هوم شما ایجاد می شود:
Output
Backup directory: /home/sammy/.anaconda_backup/2020-05-06T024432

اکنون با وارد کردن دستور زیر می توانید کل دایرکتوری Anaconda را حذف کنید:
$ rm -rf ~/anaconda3

سرانجام می توانید خط PATH را از فایل .bashrc خود که Anaconda اضافه کرده است حذف کنید. برای انجام این کار ، ابتدا یک ویرایشگر متنی مانند nano را باز کنید:
$ nano ~/.bashrc

سپس به انتهای فایل بروید (در صورتی که آخرین نصب است) یا برای جستجوی Anaconda ،CTRL + W را تایپ کنید. این بلوک Anaconda را حذف یا باطل میکند:
/home/sammy/.bashrc

# >>> conda initialize >>>
# !! Contents within this block are managed by ‘conda init’ !!
__conda_setup=”$(‘/home/sammy/anaconda3/bin/conda’ ‘shell.bash’ ‘hook’ 2> /dev/null)”
if [ $? -eq 0 ]; then
eval $__conda_setup”
else
if [ -f /home/sammy/anaconda3/etc/profile.d/conda.sh” ]; then
. /home/sammy/anaconda3/etc/profile.d/conda.sh”
else
export PATH=”/home/sammy/anaconda3/bin:$PATH”
fi
fi
unset __conda_setup
# <<< conda initialize <<<

وقتی ویرایش فایل را انجام دادید ، CTRL + X را تایپ کنید تا از آن خارج شوید و y را برای ذخیره تغییرات تایپ کنید.
اکنون Anaconda از 

سرور مجازی شما حذف شده است. اگر محیط برنامه نویسی base را غیرفعال نکردید ، می توانید از 

سرور مجازی خارج شده و مجدداً وارد شوید تا آن را حذف کنید.
نتیجه
این آموزش شما را با نصب Anaconda ، کار با ابزار خط فرمان conda ، تنظیم محیط ، به روزرسانی Anaconda و حذف Anaconda در صورت عدم نیاز به آن ، آشنا کرد.
شما می توانید از Anaconda برای مدیریت بارهای کاری برای علوم داده ، محاسبات علمی ، تجزیه و تحلیل و پردازش داده های بزرگ استفاده کنید. از اینجا ، می توانید آموزش های ما در مورد تجزیه و تحلیل داده ها و یادگیری ماشین را مطالعه تا در مورد ابزارهای مختلف موجود برای استفاده و پروژه هایی که می توانید انجام دهید اطلاعات بیشتری کسب کنید.

 

برچسب‌ها:


Django یک چارچوب وب آزاد و منبع باز است که در پایتون نوشته شده است و از الگوی معماری نرم افزار نمای الگوی مدل (MTV) پیروی می کند. الگوی MTV الگوی  model–view–controller (MVC) در Django است. طبق گفته بنیاد نرم افزار Django ، این مدل تنها منبع قطعی داده های شما است ، view  داده هایی که از طریق یک عملکرد برگشتی Python به یک URL خاص به کاربر نشان داده می شوند ، توصیف می کند و template  چگونگی تولید Django HTML به صورت پویا میباشد.
اصول اساسی Django مقیاس پذیری ، قابلیت استفاده مجدد و توسعه سریع است. همچنین به دلیل پایداری چارچوب و کوپلینگ سست آن ، شناخته شده است و باعث می شود اجزای جداگانه از یکدیگر مستقل باشند. برنامه نویسی Don’t repeat yourself (DRY) بخشی جدایی ناپذیر از اصول Django است.
در این آموزش محیط توسعه Django را تنظیم خواهیم کرد. ما Python 3، pip3 ، Django و virtualenv را نصب خواهیم کرد تا ابزار لازم برای توسعه برنامه های وب با Django را در اختیار شما قرار دهیم.
پیش نیازها
یک حساب کاربری غیر ریشه با امتیازات sudo که بر روی یک 

سرور مجازی Debian یا Ubuntu Linux تنظیم شده باشد. با دنبال کردن و تکمیل ستاپ اولیه 

سرور مجازی برای Debian 8 یا مراحل 1-4 در ستاپ اولیه 

سرور مجازی برای آموزش اوبونتو 16.04 می توانید به این پیش نیازها برسید.
مرحله 1 – Python و pip را نصب کنید
برای نصب پایتون ابتدا باید مخزن محلی APT را به روز کنیم. در پنجره ترمینال خود ، فرمان زیر را وارد خواهیم کرد. توجه داشته باشید که پرچم -y به درخواستهای مربوط به فرآیند ارتقا پاسخهای بله” می دهد. در صورت تمایل به روزرسانی برای توقف هر اعلان ، پرچم را حذف کنید.
⦁ $ sudo apt-get update && sudo apt-get -y upgrade

هنگامی که از شما خواسته شد grub-pc را پیکربندی کنید ، می توانید ENTER را فشار دهید تا پیش فرض را بپذیرد ، یا مطابق دلخواه پیکربندی کند.
از طرف بنیاد نرم افزار Django استفاده از پایتون 3 توصیه می شود ، بنابراین پس از بروزرسانی همه چیز ، می توانیم پایتون 3 را با استفاده از دستور زیر نصب کنیم:
⦁ $ sudo apt-get install python3

برای تأیید نصب موفق پایتون 3 ، یک بررسی نسخه را با دستور python3 اجرا کنید:
⦁ $ python3 -V

خروجی حاصل شبیه به این است:
Output
python 3.5.2

اکنون که پایتون 3 را نصب کردیم ، برای نصب بسته هایی از PyPi ، مخزن بسته Python ، به pip نیز احتیاج خواهیم داشت.
⦁ $ sudo apt-get install -y python3-pip

برای تأیید نصب موفقیت آمیز pip ، دستور زیر را اجرا کنید:
⦁ $ pip3 -V

باید خروجی مشابه این را ببینید:
Output
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

اکنون که pip نصب کردیم ، این توانایی را داریم که به سرعت بسته های لازم دیگر را برای یک محیط پایتون نصب کنیم.
مرحله 2 – virtualenv را نصب کنید
virtualenv یک محیط مجازی است که می توانید نرم افزارها و بسته های Python را در یک فضای توسعه یافته نصب کنید ، که این نرم افزار و بسته های نصب شده را از بقیه محیط جهانی دستگاه شما جدا می کند. این جداسازی از تعامل بسته ها یا نرم افزار با یکدیگر جلوگیری می کند.
برای نصب virtualenv ، از دستور pip3 استفاده خواهیم کرد ، مانند زیر:
⦁ $ pip3 install virtualenv

پس از نصب ، یک بررسی نسخه را اجرا کنید تا تأیید کنید که نصب با موفقیت انجام شده است:
⦁ $ virtualenv –version

باید خروجی زیر یا مشابه آن را ببینیم:
Output
virtualenv 20.0.20 from /home/sammy/.local/lib/python3.5/site-packages/virtualenv/__init__.py

با موفقیت virtualenv را نصب کرده اید.
در این مرحله ، می توانیم برنامه وب Django و متعلقات نرم افزاری مرتبط با آن را از سایر بسته ها یا پروژه های Python در سیستم خود جدا کنیم.
مرحله 3 – Django را نصب کنید
سه راه برای نصب Django وجود دارد. ما از روش نصب pip این آموزش استفاده خواهیم کرد ، اما همه گزینه های موجود برای شما را ارجاع می دهیم.
• گزینه 1: نصب Django درون یک virtualenv
این روش زمانی ایده آل است که نیاز دارید نسخه Django جدا از محیط جهانی 

سرور مجازی باشد.
• گزینه 2: نصب Django از منبع
اگر جدیدترین نرم افزار را می خواهید یا چیزی جدیدتر از آنچه مخزن Ubuntu APT شما ارائه می دهد ، می توانید مستقیماً از منبع آن رانصب کنید. توجه داشته باشید که اگر می خواهید نسخه نرم افزار شما به روز باشد ، انتخاب این روش مستم توجه و نگهداری مداوم است.
• گزینه 3: نصب Django به صورت جهانی با pip
روشی که با آن همراه میشویم ، pip 3 است زیرا نصب Django را در سطح جهانی انجام خواهیم داد.
ما می خواهیم Django را با استفاده از pip در یک محیط مجازی نصب کنیم. برای راهنمایی بیشتر و اطلاع در مورد راه اندازی و استفاده از محیط های برنامه نویسی ، این آموزش مربوط به تنظیم یک محیط مجازی را بررسی کنید.
در دیرکتوری هوم 

سرور مجازی ، باید دایرکتوری ایجاد کنیم که شامل برنامه Django ما باشد. دستور زیر را اجرا کنید تا دایرکتوری به نام django-apps یا نام دیگری به انتخاب خود ایجاد کنید. سپس به داخل پوشه بروید.
⦁ $ mkdir django-apps

⦁ $ cd django-apps

درون دیرکتوری django-apps ، محیط مجازی خود را ایجاد کنید. بیایید آن را env بنامیم.
⦁ $ virtualenv env
اکنون محیط مجازی را با دستور زیر فعال کنید:
⦁ $ . env/bin/activate

پس از تغییر پیشوند به (env) مطلع میشوید که فعال شده است ، که بسته به اینکه در کدام دیرکتوری قرار دارید ، مشابه زیر خواهد بود:
(env) Sammy@ubuntu:$
در داخل محیط ، بسته Django را با استفاده از pip نصب کنید. نصب Django به ما امکان می دهد برنامه های Django را ایجاد و اجرا کنیم. برای کسب اطلاعات بیشتر در مورد Django ، سری آموزش های ما را در مورد توسعه Django را بخوانید
⦁ (env) Sammy@ubuntu:$ pip install django

پس از نصب ، با اجرای بررسی نسخه ، نصب Django خود را تأیید کنید:
⦁ (env) Sammy@ubuntu:$ django-admin –version

نتیجه خروجی به صورت زیر یا مشابه آن خواهد بود:
Output
2.2.12

با نصب Django بر روی 

سرور مجازی تان، می توانیم به سراغ ایجاد یک پروژه آزمایشی برویم تا مطمئن شویم که همه چیز به درستی کار می کند.
مرحله 4 – ایجاد یک پروژه تست Django
برای تست نصب Django ، یک برنامه وب اسکلتی ایجاد می کنیم.
تنظیم قوانین فایروال
در مرحله اول ، در صورت وجود ، باید پورت مورد استفاده را در فایروال 

سرور مجازی خود باز کنیم. اگر از UFW استفاده می کنید (همانطور که در راهنمای راه اندازی 

سرور مجازی اولیه توضیح داده شده است) ، می توانید پورت را با دستور زیر باز کنید:
⦁ (env) Sammy@ubuntu:$ sudo ufw allow 8000

شروع پروژه
اکنون می توانیم با استفاده از django-admin ، ابزار خط فرمان برای کارهای مدیریتی در پایتون ، برنامه ای تولید کنیم. سپس می توانیم از دستور startproject برای ایجاد ساختار دایرکتوری پروژه برای وب سایت تستی خود استفاده کنیم.
در حالی که در دیرکتوری برنامه django هستید ، دستور زیر را اجرا کنید:
⦁ (env) Sammy@ubuntu:$ django-admin startproject testsite

توجه: اجرای دستور django-admin startproject <projectname> ، نام دایرکتوری پروژه و بسته پروژه را <projectname> می نامد و پروژه را در دایرکتوری که در آن فرمان اجرا شده است ، ایجاد می کند. اگر پارامتر <destination> اختیاری ارائه شود ، Django از دیرکتوری مقصد ارائه شده به عنوان دایرکتوری پروژه استفاده می کند ، و management.py و بسته پروژه را درون آن ایجاد می کند.

حال می توانیم ببینیم که چه فایل های پروژه ای به تازگی ساخته شده اند. به فهرست راهنمای testite بروید و سپس محتویات آن دیرکتوری را فهرست کنید تا ببینید چه فایل هایی ایجاد شده اند:
⦁ (env) Sammy@ubuntu:$ cd testsite

⦁ (env) Sammy@ubuntu:$ ls

Output
manage.py testsite

خروجی را مشاهده خواهید کرد که نشان می دهد این دایرکتوری حاوی فایلی به نام manage.py و پوشه ای به نام testsite است. فایل manage.py شبیه django-admin است و بسته پروژه را در sys.path قرار می دهد. همچنین متغیر محیط DJANGO_SETTINGS_MODULE را تنظیم می کند تا به فایل تنظیمات پروژه شما نشان دهد.
با اجرای دستور less مانند زیر می توانید اسکریپت manage.py را در ترمینال خود مشاهده کنید:
⦁ (env) Sammy@ubuntu:$ less manage.py

هنگامی که خواندن اسکریپت را تمام کردید ، برای خروج از فایل ، Q را فشار دهید.
اکنون برای مشاهده سایر فایل های ایجاد شده به دایرکتوری Testite بروید:
⦁ (env) Sammy@ubuntu:$ cd testsite/

سپس دستور زیر را برای لیست کردن محتوای دیرکتوری اجرا کنید:
⦁ (env) Sammy@ubuntu:$ ls

چهار فایل را مشاهده خواهید کرد:
Output
__init__.py settings.py urls.py wsgi.py

بیایید ببینیم هر یک از این فایل ها چگونه اند:
⦁ __init__.py به عنوان نقطه ورود پروژه Python شما عمل می کند.
⦁ settings.py تنظیمات نصب Django شما را توصیف می کند و به Django اطلاع می دهد که کدام تنظیمات در دسترس است.
⦁ urls.py حاوی لیست urlpatterns است ، که URL ها را به نمای آنها مسیریابی و نگاشت می کند.
⦁ wsgi.py شامل پیکربندی مربوط به رابط گیت وب 

سرور مجازی است. رابط گیت وب 

سرور مجازی (WSGI) استاندارد پلتفرم پایتون برای استقرار 

سرور مجازی ها و برنامه های وب است.
توجه: اگرچه یک فایل پیش فرض ایجاد شده است ، اما شما هنوز هم می توانید wsgi.py را در هر زمان متناسب با نیازهای استقرار خود تغییر دهید.

وب سایت خود را شروع و مشاهده کنید
اکنون می توانیم 

سرور مجازی را راه اندازی کنیم و با اجرای دستور runserver ، وب سایت را بر روی هاست و پورت تعیین شده مشاهده کنیم.
باید آدرس IP 

سرور مجازی شما را به لیست ALLOWED_HOSTS در فایل settings.py واقع در ~ / test_django_app / Testite / Testite / اضافه کنیم.
همانطور که در مقاله های Django گفته شد ، متغیر ALLOWED_HOSTS شامل لیستی از رشته های نماینده هاست / دامنه هایی است که این سایت Django می تواند ارائه کند. این یک اقدام امنیتی برای جلوگیری از حملات هدر هاست HTTP است ، که حتی در بسیاری از تنظیمات 

سرور مجازی وب به ظاهر بی خطر امکان پذیر است. ”
برای افزودن آدرس IP می توانید از ویرایشگر متن مورد علاقه خود استفاده کنید. به عنوان مثال ، اگر از nano استفاده می کنید ، دستور زیر را به سادگی اجرا کنید:
⦁ (env) Sammy@ubuntu:$ nano ~/django-apps/testsite/testsite/settings.py

پس از اجرای فرمان ، بهتر است به بخش مجاز هاست ها بروید و آدرس IP 

سرور مجازی خود را درون براکت ها با یک یا دو کاما اضافه کنید.
settings.py
””
Django settings for testsite project.

Generated by ‘django-admin startproject’ using Django 2.0.

””

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

# Edit the line below with your server IP address
ALLOWED_HOSTS = [‘your-server-ip’]

می توانید با نگه داشتن کلیدهای CTRL + x و سپس فشار دادن کلید y ، تغییرات را ذخیره کنید و از nano خارج شوید.
با انجام این کار ، حتماً به دایرکتوری که management.py در آن قرار دارد بروید:
⦁ (env) Sammy@ubuntu:$ cd ~/django-apps/testsite/

اکنون در دستور زیر your-server-ip را با IP 

سرور مجازی خود جایگزین کنید:
⦁ (env) Sammy@ubuntu:$ python manage.py runserver your-server-ip:8000

در آخر ، می توانید به لینک زیر بروید تا ببینید وب سایت اسکلتی شما چگونه است ، دوباره متن هایلایت شده را با IP واقعی 

سرور مجازی خود جایگزین کنید:
http://your-server-ip:8000/
پس از لود صفحه ، یک صفحه وب دریافت خواهید کرد که مشابه زیر است:

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

غیرفعال کردن محیط برنامه نویسی، شما را به سمت فرمان نهایی ترمینال باز می گرداند.
نتیجه
در این آموزش شما با موفقیت آخرین نسخه پایتون 3 که از طریق مخزن Ubuntu APT در دسترس شماست ، به روزرسانی کرده اید. همچنین pip 3 ، virtualenv و django را نصب کردید.
اکنون ابزارهای مورد نیاز برای شروع ساخت برنامه های وب Django را در اختیار دارید.

 

برچسب‌ها:


جنگو یک چارچوب وب آزاد و منبع باز است که در پایتون نوشته شده است و اصول اصلی آن مقیاس پذیری ، قابلیت استفاده مجدد و توسعه سریع است. همچنین به دلیل قوام چارچوب و جفت شدن سست آن ، شناخته شده است و باعث می شود اجزای جداگانه از یکدیگر مستقل باشند.
در این آموزش ، ما یک محیط Django را برای اهداف توسعه بر روی 

سرور مجازی Ubuntu 20.04 تنظیم خواهیم کرد. برای یک وب سایت زنده ، ملاحظات دیگری از جمله اتصال به یک بانک اطلاعاتی ، تنظیم نام دامنه و اضافه کردن لایه هایی از امنیت را دراختیار خواهید داشت. ما آموزشهای مختلفی در مورد جنگو داریم که می توانید در ساختن برچسب جنگو” از شما در حمایت از شما کمک کند.
پیش نیازها
برای تکمیل این آموزش ، شما نیاز دارید:
• یک حساب کاربری غیر ریشه با امتیازات sudo ، که می توانید با دنبال کردن و تکمیل تنظیم اولیه 

سرور مجازی برای آموزش اوبونتو 20.04 به آن برسید.
• پایتون 3 با یک محیط برنامه نویسی مجازی تنظیم شده است. می توانید این کار را از طریق راهنمای نصب Python 3 دریافت کنید.
مرحله 1 – نصب جنگو
روش های مختلفی برای نصب Django وجود دارد ، مدیر بسته بسته پایتون در یک محیط مجازی.
در حالی که در فهرست اصلی 

سرور مجازی هستیم ، دایرکتوری ایجاد خواهیم کرد که شامل برنامه Django ما باشد. دستور زیر را اجرا کنید تا دایرکتوری به نام django-apps یا نام دیگری از انتخاب خود ایجاد کنید. سپس به پوشه بروید.
در حالی که درون فهرست برنامه django هستید ، محیط مجازی خود را ایجاد کنید. ما آن را محیط عمومی می نامیم ، اما شما باید از اسمی استفاده کنید که برای شما و پروژه شما معنی دار باشد.
اکنون محیط مجازی را با دستور زیر فعال کنید:
شما می دانید پس از تغییر پیشوند به (env) فعال می شود ، بسته به نوع فهرست شما در این لیست شبیه به موارد زیر خواهد بود:
در داخل محیط ، بسته Django را با استفاده از pip نصب کنید. نصب Django به ما امکان می دهد برنامه های Django را ایجاد و اجرا کنیم.
پس از نصب ، با اجرای نسخه نسخه ، نصب Django خود را تأیید کنید:
این یا چیزی مشابه نتیجه خروجی حاصل خواهد شد:
با نصب Django بر روی 

سرور مجازی شما ، می توانیم به سمت ایجاد یک پروژه آزمایشی حرکت کنیم تا مطمئن شویم که همه چیز به درستی کار می کند. ما یک برنامه وب اسکلت ایجاد خواهیم کرد.
مرحله 2 – تنظیمات تنظیمات فایروال
اگر آموزش اولیه راه اندازی 

سرور مجازی ما را دنبال کرده اید یا فایروال در 

سرور مجازی خود را اجرا می کنید ، باید پورت مورد نظر را در فایروال 

سرور مجازی خود باز کنیم. برای فایروال UFW می توانید پورت را با دستور زیر باز کنید:
اگر از 

vpsgol Firewalls استفاده می کنید ، می توانید HTTP را از بین قوانین ورودی انتخاب کنید. می توانید در مورد 

vpsgol Firewalls بیشتر بخوانید و با تغییر قوانین ورودی ، قوانینی را برای آنها ایجاد کنید.
مرحله 3 – شروع پروژه
اکنون می توانیم با استفاده از django-admin ، ابزار خط فرمان برای کارهای مدیریتی در پایتون ، برنامه ای تولید کنیم. سپس می توانیم از دستور startproject برای ایجاد ساختار دایرکتوری پروژه برای وب سایت آزمون خود استفاده کنیم.
در حالی که در فهرست برنامه django هستید ، دستور زیر را اجرا کنید:
توجه: در حال اجرای دستور django-admin startproject <projectname> ، نام دایرکتوری پروژه و بسته پروژه را <projectname> می نامید و پروژه را در دایرکتوری که در آن فرمان اجرا شده است ، ایجاد می کنید. اگر پارامتر <destination> اختیاری ارائه شود ، جنگو از فهرست مقصد ارائه شده به عنوان دایرکتوری پروژه استفاده می کند ، و management.py و بسته پروژه را درون آن ایجاد می کند.

حال می توانیم ببینیم که پرونده های پروژه به تازگی ساخته شده اند. به فهرست راهنمای testite بروید و سپس محتویات آن فهرست را فهرست کنید تا ببینید چه پرونده هایی ایجاد شده اند:
شما خروجی را مشاهده خواهید کرد که نشان می دهد این دایرکتوری حاوی پرونده ای به نام management.py و پوشه ای به نام testite است. پرونده management.py شبیه django-admin است و بسته پروژه را در sys.path قرار می دهد. این همچنین متغیر محیط DJANGO_SETTINGS_MODULE را تنظیم می کند تا به پرونده تنظیمات پروژه شما نشان دهد.
با اجرای دستور کمتر مانند می توانید اسکریپت management.py را در ترمینال خود مشاهده کنید:
هنگامی که خواندن اسکریپت را تمام کردید ، برای ترک پرونده ، Q را فشار دهید.
اکنون برای مشاهده سایر پرونده های ایجاد شده به دایرکتوری Testite بروید:
سپس دستور زیر را برای لیست کردن محتوای فهرست راهنما اجرا کنید:
چهار پرونده را مشاهده خواهید کرد:
بیایید به آنچه که هر یک از این پرونده ها هستند بپردازیم:
• __init__.py به عنوان نقطه ورود پروژه Python شما عمل می کند.
• asgi.py شامل پیکربندی مربوط به استقرار اختیاری در Asynchronous Server Gateway Interface یا ASGI است که استانداردی را برای برنامه های همگام و ناهمزمان فراهم می کند ، و جانشین WSGI محسوب می شود (به تصویر زیر مراجعه کنید).
• settings.py تنظیمات نصب Django شما را توصیف می کند و به Django اجازه می دهد تا بدانید که کدام تنظیمات در دسترس است.
• urls.py حاوی لیست urlpatterns است ، که URL ها را به نمای آنها مسیریابی و نقشه می کند.
• wsgi.py شامل پیکربندی مربوط به رابط Gateway Web Server یا WSGI است که استانداردی را برای برنامه های همزمان Python فراهم می کند.
توجه: اگرچه پرونده های پیش فرض تولید می شوند ، شما
هنوز هم می توانید فایل های asgi.py یا wsgi.py را هر وقت بخواهید متناسب با نیازهای استقرار خود تغییر دهید.

مرحله 4 – پیکربندی جنگو
اکنون می توانیم 

سرور مجازی را راه اندازی کنیم و با اجرای دستور runserver ، وب سایت را بر روی هاست و پورت تعیین شده مشاهده کنیم.
ما باید آدرس IP 

سرور مجازی شما را به لیست ALLOWED_HOSTS در پرونده settings.py واقع در ~ / test_django_app / Testite / Testite / اضافه کنیم.
همانطور که در اسناد جنگو گفته شد ، متغیر ALLOWED_HOSTS شامل لیستی از رشته های نماینده میزبان / دامنه هایی است که این سایت جنگو می تواند در خدمت آنها باشد. این یک اقدام امنیتی برای جلوگیری از حملات هدر HTTP Host است ، که حتی در بسیاری از تنظیمات 

سرور مجازی وب به ظاهر بی خطر امکان پذیر است. ”
برای افزودن آدرس IP می توانید از ویرایشگر متن مورد علاقه خود استفاده کنید. به عنوان مثال ، اگر از nano استفاده می کنید ، دستور زیر را اجرا کنید:
پس از اجرای فرمان ، می خواهید به بخش مجاز میزبان ها از سند بروید و آدرس IP 

سرور مجازی خود را درون براکت های مربع با قیمت های یک یا دو به اضافه کنید.
می توانید با نگه داشتن کلیدهای CTRL + x و سپس فشار دادن کلید y ، تغییر و خروج نانو را ذخیره کنید. در مرحله بعد ، ما به دسترسی به برنامه وب خود از طریق یک مرورگر ادامه خواهیم داد.
در آخر ، اجازه دهید یک کاربر اداری ایجاد کنیم تا بتوانید از رابط مدیر Djano استفاده کنید. بیایید این کار را با دستور Creatuperuser انجام دهیم:
از شما خواسته می شود یک نام کاربری ، یک آدرس ایمیل و یک رمز عبور برای کاربر خود دریافت کنید.
مرحله 5 – دسترسی به برنامه وب Django
با پیکربندی کامل ما ، حتماً به دایرکتوری که در آن management.py قرار دارد بروید:
اکنون دستور زیر را جایگزین متن 

سرور مجازی-IP خود با IP 

سرور مجازی خود کنید:
در آخر ، می توانید به پیوند زیر بروید تا ببینید وب سایت اسکلت شما چگونه است ، دوباره متن برجسته شده را با IP واقعی 

سرور مجازی خود جایگزین کنید:
پس از بارگیری صفحه ، موارد زیر را مشاهده خواهید کرد:
این تأیید می کند که Django به درستی نصب شده است و پروژه آزمایش ما به درستی کار می کند.
برای دسترسی به رابط 

سرور مجازی ، / مدیر / به انتهای آدرس اینترنتی خود اضافه کنید:
با این کار شما به صفحه ورود به سیستم می روید:
اگر نام کاربری و رمز عبوری را که به تازگی ایجاد کرده اید وارد کنید ، به بخش اصلی مدیر سایت دسترسی خواهید داشت:
برای کسب اطلاعات بیشتر در مورد کار با رابط کاربری Django ، لطفاً به چگونه می توان رابط کاربری Django Admin را فعال و وصل کرد.”
هنگامی که شما با آزمایش برنامه خود به پایان رسیدید ، می توانید CTRL + C را فشار دهید تا دستور Runnerver متوقف شود. این شما را به محیط برنامه نویسی شما باز می گرداند.
هنگامی که آماده ترک محیط Python خود هستید ، می توانید دستور غیرفعال کردن را اجرا کنید:
غیرفعال کردن محیط برنامه نویسی شما را به سمت فرمان نهایی ترمینال باز می گرداند.
نتیجه
در این آموزش شما با موفقیت Django را نصب کرده اید و یک محیط توسعه را برای شروع کار بر روی برنامه Django خود تنظیم کرده اید.
اکنون پایه و اساس لازم برای شروع کار در ساخت برنامه های وب Django را دارید.


Minecraft یک بازی ویدیویی محبوب sandbox است. در ابتدا در سال 2009 منتشر شد ، و امکان ساخت ، جستجو ، دستکاری ، و زنده ماندن در جهان تولید شده در بلوک سه بعدی را فراهم میکند. از اواخر سال 2019 ، به دومین بازی ویدیویی پرفروش در تمام دوران تبدیل شد. در این آموزش 

سرور مجازی Minecraft خود را ایجاد خواهید کرد تا با دوستانتان بتوانید بازی کنید. به طور خاص ، بسته های نرم افزاری لازم را برای اجرای Minecraft ، پیکربندی 

سرور مجازی برای اجرا ، و سپس استقرار بازی نصب خواهید کرد.
در این آموزش از نسخه جاوا Minecraft استفاده شده است. اگر نسخه Minecraft خود را از طریق Microsoft App Store خریداری کرده باشید ، نمی توانید به این 

سرور مجازی وصل شوید. اکثر نسخه های Minecraft خریداری شده در کنسول های بازی مانند PlayStation 4 ،Xbox One یا Nintendo Switch نیز نسخه مایکروسافت Minecraft هستند. این کنسول ها همچنین قادر به اتصال به 

سرور مجازی ساخته شده در این آموزش نیستند. می توانید نسخه جاوا Minecraft را از اینجا دریافت کنید.

پیش نیازها
برای دنبال کردن این راهنما ، به موارد زیر نیاز دارید:
⦁ 

سرور مجازی ی با نصب جدید اوبونتو 18.04 ، کاربر غیر ریشه با امتیازات sudo و SSH فعال شده. برای راه اندازی 

سرور مجازی خود و انجام این مراحل می توانید این راهنما را دنبال کنید. Minecraft می تواند منابع فشرده ای داشته باشد ، بنابراین هنگام انتخاب اندازه 

سرور مجازی خود ، این را بخاطر بسپارید.
⦁ یک کپی از Minecraft Java Edition که روی یک دستگاه محلی Mac ، Windows یا Linux نصب شده است.
مرحله 1 – نصب بسته های نرم افزاری لازم و پیکربندی فایروال
پس از مقداردهی اولیه 

سرور مجازی ، اولین قدم شما نصب جاوا میباشد. برای اجرای Minecraft به آن احتیاج خواهید داشت.
ایندکس بسته بندی را برای مدیر بسته APT به روز کنید:
⦁ $ sudo apt update

در مرحله بعد ، نسخه OpenJDK 8 جاوا ، به طور خاص JRE را نصب کنید. این یک نسخه حداقل از جاوا است که پشتیبانی از برنامه های GUI را از بین می برد. این ویژگی آن را برای اجرای برنامه های جاوا بر روی 

سرور مجازی ایده آل میکند:
⦁ $ sudo apt install openjdk-8-jre-headless

همچنین برای ایجاد بخش های متمایز 

سرور مجازی باید از نرم افزاری به نام screen  استفاده کنید. screen  به شما اجازه می دهد تا یک بخش پایانه ایجاد کرده و از آن جدا شوید و اجازه دهید روند کار روی آن شروع شود. این مسئله از این حیث مهم است که اگر می خواستید 

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

سرور مجازی شما متوقف شود. اکنون screen  را نصب کنید:
⦁ $ sudo apt install screen

اکنون که بسته های خود را نصب کردید ، باید فایروال را فعال کنیم تا ترافیک به 

سرور مجازی Minecraft وارد شود. در تنظیمات اولیه 

سرور مجازی که انجام داده اید ، فقط اجازه عبور از SSH را داده اید. اکنون باید اجازه دهید تا ترافیک از طریق پورت 25565 وارد شود ، که پورت پیش فرض مورد استفاده Minecraft برای اجازه اتصال است. با اجرای دستور زیر ، قانون فایروال لازم را اضافه کنید:
⦁ $ sudo ufw allow 25565

اکنون که جاوا را نصب کرده اید و فایروال خود را به درستی پیکربندی کرده است ، 

سرور مجازی Minecraft را از وب سایت Minecraft دانلود خواهید کرد.
مرحله 2 – دانلود آخرین نسخه Minecraft
حال باید نسخه فعلی 

سرور مجازی Minecraft را دانلود کنید. می توانید با رفتن به وب سایت Minecraft و کپی کردن لینکی تحت عنوان Download minecraft_server.X.X.X.jar ، که در آن X آخرین نسخه سرور است ، این کار را انجام دهید.
هم اکنون می توانید از wget و لینک کپی شده برای دانلود 

سرور مجازی استفاده کنید:
⦁ $ wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar

اگر قصد دارید 

سرور مجازی Minecraft خود را به روزرسانی کنید ، یا اگر می خواهید نسخه های مختلف Minecraft را اجرا کنید ، 

سرور مجازی دانلود شده را به minecraft_server_1.15.2.jar تغییر نام دهید ، که مطابق با شماره های نسخه هایلایت شده با هر نسخه ای که تازه دانلود کرده اید:
⦁ $ mv server.jar minecraft_server_1.15.2.jar

اگر می خواهید نسخه قدیمی تر Minecraft را دانلود کنید ، می توانید آنها را در mcversions.net بایگانی کنید. اما این آموزش بر آخرین نسخه فعلی تمرکز خواهد کرد. اکنون که دانلود را انجام داده اید، پیکربندی 

سرور مجازی Minecraft خود را شروع خواهیم کرد.
مرحله 3 – پیکربندی و اجرای 

سرور مجازی Minecraft
اکنون که Minecraft jar را دانلود کردید ، آماده اجرای آن هستید.
ابتدا با اجرای دستور screen  یک بخش screen را شروع کنید:
⦁ $ screen

پس از خواندن بنری که ظاهر شده است ، نوار SPACE را فشار دهید. screen به شما یک بخش ترمینال مانند حالت عادی ارائه می دهد. این بخش اکنون قابل جدا شدن است ، به این معنی که می توانید یک فرمان را از اینجا شروع کنید و آن را اجرا کنید.
اکنون می توانید پیکربندی اولیه خود را انجام دهید. وقتی این دستور بعدی با خطا مواجه میشود، نگران نشوید. Minecraft نصب خود را از این طریق طراحی کرده است که کاربران ابتدا باید موافقت نامه مجوز شرکت را قبول کنند. این کار را در ادامه انجام خواهید داد:
⦁ $ java -Xms1024M -Xmx1024M -jar minecraft_server_1.15.2.jar nogui

قبل از بررسی خروجی این دستور ، اجازه دهید نگاهی دقیق تر به همه این آرگومان های خط فرمان بیندازیم، که 

سرور مجازی شما را تنظیم میکند:
⦁ Xms1024M – 

سرور مجازی را پیکربندی می کند تا با اجرای 1024مگابایت یا 1 گیگابایت رم شروع به کار کند. اگر می خواهید 

سرور مجازی شما با RAM بیشتری شروع کند ، می توانید این حد را بالا ببرید. هم M برای مگابایت و هم G برای گیگابایت گزینه های پشتیبانی شده هستند. به عنوان مثال: Xms2G سرور را با 2 گیگابایت رم شروع می کند.
⦁ Xmx1024M – 

سرور مجازی را برای ما پیکربندی می کند، حداکثر 1024مگابایت رم . اگر می خواهید 

سرور مجازی تان در سایز بزرگتری اجرا شود و به بازیکنان بیشتری اجازه دهد، یا اگر احساس می کنید که سرور شما به کندی کار می کند می توانید این حد را افزایش دهید .
⦁ jar – این پرچم مشخص می کند که کدام فایل jar 

سرور مجازی اجرا شود.
⦁ nogui – به 

سرور مجازی می گوید که GUI را راه اندازی نکند زیرا یک 

سرور مجازی است ، و شما رابط کاربری گرافیکی ندارید.
اولین باری که این دستور را اجرا می کنید ، که به طور معمول 

سرور مجازی خود را راه اندازی می کند ، خطای زیر را ایجاد می کند:
Output
[22:05:31] [22:05:31] [main/ERROR]: Failed to load properties from file: server.properties
[22:05:31] [main/WARN]: Failed to load eula.txt
[22:05:31] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

این خطاها به این دلیل ایجاد شده اند که 

سرور مجازی نمی تواند دو فایل لازم برای اجرا را پیدا کند:EULA (توافق نامه مجوز کاربر نهایی) ، موجود در eula.txt ، و فایل پیکربندی server.properties. خوشبختانه از آنجا که 

سرور مجازی قادر به یافتن این فایل ها نبود ، آنها را در دیرکتوری کاری فعلی شما ایجاد کرد.
ابتدا ، eula.txt را در nano یا ویرایشگر متن مورد علاقه خود باز کنید:
⦁ $ nano eula.txt

در داخل این فایل ، پیوندی با Minecraft EULA مشاهده خواهید کرد. URL را کپی کنید.
~/eula.txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Tue Mar 24 22:05:31 UTC 2020
eula=false

URL را در مرورگر وب خود باز کنید و توافق نامه را بخوانید. سپس به ویرایشگر متن خود بازگردید و آخرین خط را در eula.txt پیدا کنید. در اینجا ، eula = false را به eula = true تغییر دهید. اکنون فایل را ذخیره کنید و ببندید.
اکنون که EULA را پذیرفتید ، زمان آن رسیده است که 

سرور مجازی را با مشخصات خود پیکربندی کنید.
در دیرکتوری کاری فعلی خود ، فایل جدید server.properties را نیز پیدا خواهید کرد. این فایل شامل همه گزینه های پیکربندی 

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

سرور مجازی را در Official Minecraft Wiki پیدا کنید. قبل از شروع 

سرور مجازی خود ، این فایل را با تنظیمات دلخواه خود تغییر دهید. این آموزش خصوصیات اساسی را شامل می شود:
⦁ $ nano server.properties

فایل شما به این صورت ظاهر می شود:
~/server.properties
#Minecraft server properties
#Thu Apr 30 23:42:29 UTC 2020
spawn-protection=16
max-tick-time=60000
query.port=25565
generator-settings=
force-gamemode=false
allow-nether=true
enforce-whitelist=false
gamemode=survival
broadcast-console-to-ops=true
enable-query=false
player-idle-timeout=0
difficulty=easy
spawn-monsters=true
broadcast-rcon-to-ops=true
op-permission-level=4
pvp=true
snooper-enabled=true
level-type=default
hardcore=false
enable-command-block=false
max-players=20
network-compression-threshold=256
resource-pack-sha1=
max-world-size=29999984
function-permission-level=2
rcon.port=25575
server-port=25565
server-ip=
spawn-npcs=true
allow-flight=false
level-name=world
view-distance=10
resource-pack=
spawn-animals=true
white-list=false
rcon.password=
generate-structures=true
online-mode=true
max-build-height=256
level-seed=
prevent-proxy-connections=false
use-native-transport=true
motd=A Minecraft Server
enable-rcon=false
بیایید نگاهی دقیق تر به برخی از مهمترین خصوصیات این لیست بیاندازیم:
⦁ difficulty (پیش فرض روی easy است) – سطح دشواری بازی را تعیین می کند ، از جمله اینکه چه میزان آسیب ایجاد شود و المان ها چگونه روی بازیکن شما تأثیر بگذارند. گزینه های موجود peaceful, easy, normal, و hard به ترتیب به معنی صلح آمیز ، آسان ، عادی و سخت هستند.
⦁ gamemode (پیش فرض روی survival قرار دارد) – این ویژگی حالت بازی را تنظیم می کند. گزینه ها شامل survival, creative,adventure, و spectator به معنی نجات ، خلاق ، ماجراجویی و تماشاگر هستند.
⦁ level-name (پیش فرض روی world) – نام 

سرور مجازی شما را نشان می دهد که در کلاینت ظاهر می شود. ممکن است نیاز به گذر از کاراکترهایی مانند آپوستروف با بک اسلش ( /) باشد.
⦁ motd (پیش فرض A Minecraft Server است) – پیامی که در لیست 

سرور مجازی کلاینت Minecraft نمایش داده می شود.
⦁ pvp (پیش فرض روی true) – بازیکن را در مقابل مبارزات فعال می کند. در صورت تنظیم روی true ، بازیکنان قادر به درگیری و آسیب رساندن به یکدیگر خواهند بود.
پس از تنظیم گزینه های مورد نظر ، فایل را ذخیره کنید و ببندید.
اکنون که EULA را به true تغییر داده و تنظیمات خود را پیکربندی کرده اید ، می توانید 

سرور مجازی خود را با موفقیت شروع کنید.
مانند آخرین بار ، بیایید 

سرور مجازی را با 1024مگابایت رم شروع کنیم. در حال حاضر ، بیایید به Minecraft امکان استفاده تا 4 گیگ رم را در صورت نیاز اعطا کنیم. به یاد داشته باشید ، میتوانید این شماره را متناسب با محدودیت های 

سرور مجازی یا نیازهای کاربر خود تنظیم می کنید:
⦁ $ java -Xms1024M -Xmx4G -jar minecraft_server_1.15.2.jar nogui

به مقدمات چند لحظه زمان دهید. به زودی 

سرور مجازی جدید Minecraft شما تولید خروجی شبیه به این را آغاز می کند:
Output
[21:08:14] [Server thread/INFO]: Starting minecraft server version 1.15.2
[21:08:14] [Server thread/INFO]: Loading properties
[21:08:14] [Server thread/INFO]: Default game type: SURVIVAL
[21:08:14] [Server thread/INFO]: Generating keypair
[21:08:15] [Server thread/INFO]: Starting minecraft server on *:25565

پس از به روزرسانی و راه اندازی 

سرور مجازی ، خروجی زیر را مشاهده خواهید کرد:
Output
[21:15:37] [Server thread/INFO]: Done (30.762s)! For help, type help”

اکنون 

سرور مجازی شما در حال اجرا است و شما به صفحه کنترل ادمین 

سرور مجازی وارد شده اید. اکنون help را تایپ کنید:
[21:15:37] [server thread/INFO] : help
خروجی مانند این ظاهر می شود:
Output
[21:15:37] [Server thread/INFO]: /advancement (grant|revoke)
[21:15:37] [Server thread/INFO]: /ban <targets> [<reason>]
[21:15:37] [Server thread/INFO]: /ban-ip <target> [<reason>]
[21:15:37] [Server thread/INFO]: /banlist [ips|players]

از این ترمینال می توانید دستورات ادمین را اجرا کرده و 

سرور مجازی Minecraft خود را کنترل کنید. اکنون بیایید از screen  استفاده کنیم تا 

سرور مجازی جدید شما، حتی پس از ورود به سیستم در حال اجرا باشد. سپس می توانید به کلاینت Minecraft خود متصل شوید و یک بازی جدید را شروع کنید.
مرحله 4 – در حال اجرا نگه داشتن 

سرور مجازی
اکنون که 

سرور مجازی خود را در حال اجرا دارید ، می خواهید که حتی پس از قطع شدن از بخش SSH خود ، همچنان کار خود را ادامه دهد. از آنجا که قبلاً از screen  استفاده کرده اید ، می توانید با فشار دادن Ctrl + A + Dاز این بخش جدا شوید. اکنون به پوسته اصلی خود برگشته اید.
برای دیدن همه بخ هاش screen خود این دستور را اجرا کنید:
⦁ $ screen -list

یک خروجی با شناسه بخش خود دریافت خواهید کرد ، که باید آن بخش را از سر بگیرید:
Output
There is a screen on:
26653.pts-0.minecraft (03/25/20 21:18:31) (Detached)
1 Socket in /run/screen/S-root.

برای از سرگیری بخش ، پرچم -r را به فرمان screen  وارد کنید و سپس شناسه بخش خود را وارد کنید:
⦁ $ screen -r 26653

هنگامی که آماده خروج از 

سرور مجازی خود هستید ، حتماً با زدن Ctrl + A + D از بخش جدا شوید و سپس از سیستم خارج شوید.
مرحله 5 – اتصال به 

سرور مجازی تان از طریق کلاینت Minecraft
اکنون که 

سرور مجازی شما در حال کار است ، اجازه دهید از طریق کلاینت Minecraft به آن وصل شویم. سپس می توانید بازی کنید!
کپی خود را از Minecraft Java Edition راه اندازی کنید و Multiplayer را از منو انتخاب کنید.

در مرحله بعد ، برای اتصال به یک 

سرور مجازی نیاز دارید ، بنابراین بر روی دکمه Add Server کلیک کنید.

در صفحه ویرایش اطلاعات 

سرور مجازی که نمایش داده میشود ، نامی به 

سرور مجازی خود بدهید و در آدرس IP 

سرور مجازی خود آن را تایپ کنید. این همان آدرس IP است که برای اتصال از طریق SSH استفاده می کنید.

پس از وارد کردن نام 

سرور مجازی و آدرس IP خود ، به صفحه Multiplayer که اکنون 

سرور مجازی شما در آن لیست شده است ، باز می گردید.

از این پس ، 

سرور مجازی شما همیشه در این لیست ظاهر می شود. آن را انتخاب کرده و روی Join Server کلیک کنید.

شما در 

سرور مجازی خود قرار گرفتید و آماده بازی هستید!
نتیجه
اکنون یک 

سرور مجازی Minecraft در اوبونتو 18.04 در حال اجرا دارید که با تمام دوستان خود بتوانید بازی کنید! با جستجو، نیرنگ زدن و تلاش برای بقا در دنیای خام سه بعدی لذت ببرید و به یاد داشته باشید: مراقب grieferها باشید.d

 

برچسب‌ها:


Node یک محیط زمان اجرا میباشد که امکان نوشتن JavaScript در سمت 

سرور مجازی را ممکن می کند. از زمان انتشار آن در سال 2011 به صورت گسترده پذیرفته شده است. نوشتن جاوا اسکریپت در سمت 

سرور مجازی می تواند چالش برانگیز باشد زیرا پایه کد به دلیل ماهیت زبان JavaScriptیعنی تایپ دینامیک و سست گسترده می شود.
توسعه دهندگان که از زبان های دیگر به سراغ JavaScript می آیند غالباً از عدم وجود تایپ استاتیک قوی شکایت دارند ، اما اینجاست که TypeScript به کار می آید تا این شکاف را برطرف کند.
TypeScript یک فوق مجموعه تایپ شده (اختیاری) از JavaScript است که می تواند در ساخت و مدیریت پروژه های بزرگ JavaScript کمک کند. می تواند به عنوان JavaScript با ویژگیهای اضافی مانند تایپ استاتیک قوی ، کامپایل و برنامه نویسی شی گرا در نظر گرفته شود.
توجه: از نظر فنی TypeScript مجموعه ای فوق العاده از JavaScript است ، بدین معنی که کلیه کد های JavaScript کدهای TypeScript معتبر هستند.

در اینجا مزایای استفاده از TypeScript آورده شده است:
1- تایپ استاتیک اختیاری.
2- استنباط تایپ.
3- امکان استفاده از رابط ها.
در این آموزش یک پروژه Node با TypeScript تنظیم می کنید. یک برنامه Express با استفاده از TypeScript ایجاد خواهید کرد و آن را به کد JavaScript شسته و رفته و معتبر تبدیل می کنید.
پیش نیازها
قبل از شروع این راهنما ، به Node.js نصب شده بر روی دستگاه تان نیاز خواهید داشت. شما می توانید این کار را با دنبال کردن آموزش نحوه نصب Node.js و ایجاد یک راهنمای توسعه محلی برای سیستم عامل خود انجام دهید.
مرحله 1 – شروع یک پروژه npm
برای شروع ، یک پوشه جدید با نام node_project ایجاد کنید و به آن دیرکتوری بروید.
⦁ $ mkdir node_project

⦁ $ cd node_project

سپس ، آن را به عنوان یک پروژه npm آغاز کنید:
⦁ $ npm init

بعد از اجرای npm init ، باید اطلاعاتی در مورد پروژه خود به npm ارائه کنید. اگر ترجیح می دهید npm پیش فرض های معقولی را تصور کند ، می توانید پرچم y را اضافه کنید تا اعلان های درخواست اطلاعات بیشتر را رد کند:
⦁ $ npm init -y

اکنون که فضای پروژه شما تنظیم شده است ، آماده هستید تا به نصب متعلقات لازم بپردازید.
مرحله 2 – نصب متعلقات
با شروع یک پروژه npm ، مرحله بعدی نصب متعلقاتی است که برای اجرای TypeScript لازم است.
برای نصب متعلقات دستورات زیر را از دیرکتوری پروژه خود اجرا کنید:
⦁ $ npm install -D typescript@3.3.3

⦁ $ npm install -D tslint@5.12.1

پرچم -D میانبر برای: –save-dev است. می توانید در مستندات npmjs اطلاعات بیشتری در مورد این پرچم کسب کنید.
اکنون زمان آن رسیده است که فریم ورک Express را نصب کنید:
⦁ $ npm install -S express@4.16.4

⦁ $ npm install -D ⦁ @types/express@4.16.1

دستور دوم انواع Express را برای پشتیبانی TypeScript نصب می کند. انواع در TypeScript فایلهایی هستند که معمولاً دارای پسوند .d.ts هستند. از فایل ها برای تهیه نوع اطلاعات در مورد یک API ، در این حالت چارچوب Express استفاده می شود.
این بسته لازم است زیرا TypeScript و Express بسته های مستقل هستند. بدون بسته @types/express ، هیچ راهی برای TypeScript برای اطلاع از انواع کلاس های Express وجود ندارد.
مرحله 3 – پیکربندی TypeScript
در این بخش TypeScript را تنظیم می کنید و linting را برای TypeScript پیکربندی می کنید. TypeScript برای پیکربندی گزینه های کامپایلر برای یک پروژه از فایلی به نام tsconfig.json استفاده می کند. یک فایل tsconfig.json را در ریشه دایرکتوری پروژه ایجاد کنید و در قسمت زیر جایگذاری کنید:
tsconfig.json
{
compilerOptions”: {
module”: commonjs”,
esModuleInterop”: true,
target”: es6”,
moduleResolution”: node”,
sourceMap”: true,
outDir”: dist”
},
lib”: [es2015”]
}

بیایید برخی از کلیدهای موجود در قسمت JSON را بررسی کنیم:
⦁ module: روش تولید کد ماژول را مشخص می کند. Node از Commonjs استفاده می کند.
⦁ target: سطح زبان خروجی را مشخص می کند.
⦁ moduleResolution: به کامپایلر کمک می کند تا بفهمد ورودی به چه چیزی اطلاق می شود. مقدار Node از مکانیزم وضوح ماژول Node تقلید می کند.
⦁ outDir: مکان خروجی فایل های .js پس از transpilation است. در این آموزش آن را به عنوان dist ذخیره می کنیم.
جایگزینی برای ایجاد و پر کردن فایل tsconfig.json به صورت دستی اجرای دستور زیر است:
⦁ tsc –init

این دستور یک فایل tsconfig.json به خوبی کامنت شده را تولید می کند.
برای کسب اطلاعات بیشتر در مورد گزینه های مقدار کلیدی موجود ، اسناد رسمی TypeScript توضیحات مربوط به هر گزینه را ارائه می دهد.
اکنون می توانید linting TypeScript را برای پروژه پیکربندی کنید. در ترمینالی که در ریشه دایرکتوری پروژه شما اجرا میشود ، و این آموزش آن را با عنوان node_project بنا نهاده است ، دستور زیر را برای تولید یک فایل tslint.json اجرا کنید:
⦁ $ ./node_modules/.bin/tslint –init

فایل tslint.json تازه تولید شده را باز کنید و قانون no-console را نیز بر این اساس اضافه کنید:
tslint.json
{
defaultSeverity”: error”,
extends”: [tslint:recommended”],
jsRules”: {},
rules”: {
no-console”: false
},
rulesDirectory”: []
}

به طور پیش فرض ،TypeScript linter مانع استفاده از اشکال زدایی با استفاده از عبارات console  می شود ، از این رو باید صراحتا به linter گفته شود که قانون پیش فرض no-console را باطل کند.
مرحله 4 – بروزرسانی فایل pack.json
در این مرحله از آموزش ، می توانید توابع را در ترمینال به صورت جداگانه اجرا کنید ، یا یک اسکریپت npm برای اجرای آنها ایجاد کنید.
در این مرحله یک اسکریپت شروع می کنید که کد TypeScript را کامپایل و transpile می کند ، و سپس برنامه .js حاصل را اجرا می کند.
فایل pack.json را باز کنید و بر این اساس آن را به روز کنید:
package.json
{
name”: node-with-ts”,
version”: 1.0.0”,
description”: ”,
main”: dist/app.js”,
scripts”: {
start”: tsc && node dist/app.js”,
test”: echo \”Error: no test specified\” && exit 1″
},
author”: ”,
license”: ISC”,
devDependencies”: {
@types/express”: ^4.16.1”,
tslint”: ^5.12.1”,
typescript”: ^3.3.3”
},
dependencies”: {
express”: ^4.16.4”
}
}

در قطعه کد بالا مسیر اصلی را به روز کردید و دستور start را به بخش اسکریپت ها اضافه کردید. هنگام مشاهده فرمان شروع ، خواهید دید که ابتدا دستور tsc اجرا می شود ، و سپس دستور node. این کار خروجی تولید شده را با node کامپایل و اجرا می کند.
دستور tsc به TypeScript می گوید که برنامه را کامپایل کرده و خروجی تولید شده .js را همانطور که در فایل tsconfig.json تنظیم شده است در دیرکتوری پوشه outDir قرار دهد.
مرحله 5 – ایجاد و اجرای یک 

سرور مجازی اصلی اکسپرس
اکنون که پیکربندی TypeScript و linter آن صورت گرفته است ، زمان آن رسیده که یک 

سرور مجازی Node Express بسازید.
ابتدا یک پوشه src در ریشه دیرکتوری پروژه خود ایجاد کنید:
⦁ $ mkdir src

سپس فایلی به نام app.ts را درون آن ایجاد کنید:
⦁ $ touch src/app.ts

در این مرحله ، ساختار پوشه باید به شکل زیر باشد:
├── node_modules/
├── src/
├── app.ts
├── package-lock.json
├── package.json
├── tsconfig.json
├── tslint.json

فایل app.ts را با یک ویرایشگر متن مورد نظر خود باز کنید و در قسمت کد زیر قرار دهید:
src/app.ts
import express from ‘express’;

const app = express();
const port = 3000;
app.get(‘/’, (req, res) => {
res.send(‘The sedulous hyena ate the antelope!’);
});
app.listen(port, err => {
if (err) {
return console.error(err);
}
return console.log(`server is listening on ${port}`);
});

کد بالا Node Server را ایجاد می کند که پورت 3000 را برای درخواست ها گوش می دهد. برنامه را با استفاده از دستور زیر اجرا کنید:
⦁ $ npm start

اگر با موفقیت اجرا شود ، پیامی به ترمینال وارد می شود:
Output
⦁ $ server is listening on 3000

اکنون می توانید در مرورگر خود از http: // localhost: 3000 بازدید کنید و باید این پیام را مشاهده کنید:
Output
⦁ $ The sedulous hyena ate the antelope!

فایل dist / app.js را باز کنید و نسخه تعویض شده کد TypeScript را پیدا خواهید کرد:
dist/app.js
use strict”;

var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { default”: mod };
};
Object.defineProperty(exports, __esModule”, { value: true });
const express_1 = __importDefault(require(express”));
const app = express_1.default();
const port = 3000;
app.get(‘/’, (req, res) => {
res.send(‘The sedulous hyena ate the antelope!’);
});
app.listen(port, err => {
if (err) {
return console.error(err);
}
return console.log(`server is listening on ${port}`);
});

//# sourceMappingURL=app.js.map

در این مرحله شما با موفقیت پروژه Node خود را برای استفاده از TypeScript تنظیم کرده اید.
نتیجه
در این آموزش ، آموختید که چرا TypeScript برای نوشتن کد قابل اعتماد JavaScript مفید است . همچنین در مورد برخی از مزایای کار با TypeScript اطلاعات کسب کردید.
سرانجام ، یک پروژه Node را با استفاده از چارچوب Express تنظیم کرده اید ، اما پروژه را با استفاده از TypeScript کامپایل و اجرا می کنید.

 

برچسب‌ها:


آخرین ارسال ها

آخرین جستجو ها