سرور



فراموش کردن رمزهای عبور برای اکثر ما اتفاق می افتد. اگر رمز عبور ریشه برای ورود به پایگاه داده 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 در اوبونتو .04 استفاده می کنید.
پیش نیازها
برای پیروی از این راهنما به موارد زیر نیاز دارید:
⦁ سرور مجازی Ubuntu .04 که با استفاده از راهنمای ستاپ اولیه سرور با Ubuntu .04 تنظیم و شامل یک کاربر غیر ریشه با امتیازات sudoباشد.
⦁ Apache ، MySQL و PHP که طبق راهنمای نحوه نصب پشته Linux ، Apache ، MySQL ، PHP (LAMP) در اوبونتو .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 در اوبونتو .04 استفاده کرده اید. همچنین مزایای پایه ذخیره کردن تصاویر در یک پایگاه داده را در مقایسه با ذخیره آنها در یک سیستم فایل مشاهده کردید. این موارد شامل قابلیت حمل ، امنیت و سهولت تهیه نسخه پشتیبان است. اگر در حال ساخت برنامه ای مانند پورتال دانشجویی یا بانک اطلاعاتی کارمندان هستید که نیاز به ذخیره سازی اطلاعات و تصاویر مرتبط دارد ، این فناوری می تواند برای شما بسیار مفید باشد.
برای اطلاعات بیشتر در مورد انواع داده پشتیبانی شده در MySQL ، راهنمای انواع داده MySQL را دنبال کنید. اگر علاقه مند به مطالب بیشتر مربوط به MySQL و PHP هستید، آموزش های زیر را بررسی کنید:
• نحوه پیاده سازی صفحه بندی در MySQL با PHP در اوبونتو .04
• نحوه استفاده از افزونه PDO PHP برای انجام تراکنش های MySQL در PHP در اوبونتو .04

 

برچسب‌ها:


Nginx یکی از محبوب ترین سرور مجازی های وب در جهان است و مسئولیت میزبانی برخی از بزرگترین و پر ترافیک ترین سایتها در اینترنت را دارد. یک انتخاب ساده است که می تواند به عنوان سرور مجازی وب یا پروکسی مع استفاده شود.
در این راهنما ، ما در مورد چگونگی نصب Nginx در سرور مجازی Ubuntu .04 صبت خواهیم کرد.
پیش نیازها
قبل از شروع این راهنما ، باید یک کاربر معمولی و غیر ریشه با امتیازات sudo در سرور مجازی خود تنظیم کنید. با پیروی از راهنمای ستاپ اولیه سرور مجازی برای اوبونتو .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 – بررسی سرور مجازی وب خود
در پایان مراحل نصب ، اوبونتو .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 20-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 در اوبونتو .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 در اوبونتو .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 برای مدیریت بارهای کاری برای علوم داده ، محاسبات علمی ، تجزیه و تحلیل و پردازش داده های بزرگ استفاده کنید. از اینجا ، می توانید آموزش های ما در مورد تجزیه و تحلیل داده ها و یادگیری ماشین را مطالعه تا در مورد ابزارهای مختلف موجود برای استفاده و پروژه هایی که می توانید انجام دهید اطلاعات بیشتری کسب کنید.

 

برچسب‌ها:


توسعه دهنده جاوا (JDK) را با استفاده از apt نصب خواهید کرد. همچنین OpenJDK و بسته های رسمی را از Oracle نصب خواهید کرد. سپس نسخه مورد نظر خود را برای پروژه های تان انتخاب خواهید کرد. پس از اتمام کار ، می توانید از JDK برای توسعه نرم افزار یا استفاده از Java Runtime برای اجرای نرم افزار استفاده کنید.
پیش نیازها
برای دنبال کردن این آموزش ، به موارد زیر نیاز دارید:
• یک سرور مجازی Ubuntu .04 که طبق آموزش راهنمای ستاپ اولیه سرور مجازی Ubuntu .04 تنظیم شده باشد و شامل یک کاربر sudo غیر ریشه و فایروال باشد.
نصب JRE / JDK پیش فرض
ساده ترین گزینه برای نصب جاوا استفاده از نسخه بسته بندی شده با اوبونتو است. به طور پیش فرض ، اوبونتو .04 شامل OpenJDK نسخه 11 است که متغیری منبع باز از JRE و JDK میباشد.
برای نصب این نسخه ، ابتدا ایندکس بسته را به روز کنید:
$ sudo apt update
سپس ، بررسی کنید که جاوا قبلاً نصب شده باشد:
$ java -version

اگر جاوا در حال حاضر نصب نشده است ، خروجی زیر را مشاهده خواهید کرد:

Output
Command ‘java’ not found, but can be installed with:

apt install default-jre
apt install openjdk-11-jre-headless
apt install openjdk-8-jre-headless
دستور زیر را برای نصب پیش فرض محیط اجرای جاوا (JRE) اجرا کنید که JRE را از OpenJDK 11 نصب خواهد کرد:
$ sudo apt install default-jre

JRE به شما امکان می دهد تقریباً تمام نرم افزارهای جاوا را اجرا کنید.
با دستور زیر نصب را تأیید کنید:
$ java -version
خروجی زیر را مشاهده خواهید کرد:
Output
openjdk version 11.0.7” 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu2.04)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu2.04, mixed mode, sharing)

برای تهیه و اجرای برخی از نرم افزارهای خاص مبتنی بر جاوا ممکن است علاوه بر JRE به کیت توسعه جاوا (JDK) نیاز داشته باشید. برای نصب JDK ، دستور زیر را اجرا کنید ، که JRE را نیز نصب می کند:
$ sudo apt install default-jdk
با بررسی نسخه javac ، کامپایلر جاوا ، JDK را نصب کنید:
$ javac -version

خروجی زیر را مشاهده خواهید کرد:
Output
javac 11.0.7

بعد ، بیایید ببینیم چگونه JDK و JRE رسمی Oracle را نصب کنیم.
نصب Oracle JDK 11
توافق مجوز Oracle برای جاوا اجازه نصب خودکار را از طریق مدیران بسته نمی دهد. برای نصب Oracle JDK ، که نسخه رسمی توزیع شده توسط Oracle است ، باید یک حساب Oracle ایجاد کنید و JDK را به صورت دستی دانلود کنید تا یک مخزن بسته جدید برای نسخه مورد نظر خود اضافه کنید. سپس می توانید با استفاده از apt و با کمک اسکریپت نصب شخص ثالث ، آن را نصب کنید.
نسخه JDK’s Oracle که باید دانلود کنید باید با نسخه اسکریپت نصب کننده مطابقت داشته باشد. برای اطلاع از اینکه به کدام نسخه نیاز دارید ، به صفحه oracle-java11-installer مراجعه کنید.
بسته بندی مربوط به Bionic را پیدا کنید ، همانطور که در شکل زیر نشان داده شده است:

در این تصویر نسخه اسکریپت 11.0.7 است. در این حالت ، به Oracle JDK 11.0.7 نیاز خواهید داشت. نیازی نیست چیزی را از این صفحه دانلود کنید. در ادامه اسکریپت نصب را به وسیله apt دانلود خواهید کرد.
سپس به صفحه دانلود ها مراجعه کرده و نسخه مورد نیاز خود را پیدا کنید.

بر روی دکمه JDK Download کلیک کنید و به صفحه ای منتقل می شوید که نسخه های موجود را نشان می دهد. روی بسته .tar.gz برای لینوکس کلیک کنید.

صفحه ای نمایش داده می شود که از شما می خواهد موافقت نامه مجوز Oracle را بپذیرید. کادر را انتخاب کنید تا توافق نامه مجوز را بپذیرید و دکمه دانلود را فشار دهید. دانلود شما شروع خواهد شد. شاید لازم باشد یک بار دیگر قبل از شروع دانلود به حساب Oracle خود وارد شوید.
پس از دانلود فایل ، باید آن را به سرور مجازی خود منتقل کنید. در دستگاه محلی خود ، فایل را روی سرور مجازی خود بارگذاری کنید. در macOS ، لینوکس یا ویندوز که از ساب سیستم ویندوز برای لینوکس استفاده می کند ، از دستور scp برای انتقال فایل به دیرکتوری اصلی کاربر sammy خود استفاده کنید. دستور زیر فرض می کند که شما فایل Oracle JDK را در پوشه دانلود دستگاه محلی خود ذخیره کرده اید:
$ scp Downloads/jdk-11.0.7_linux-x64_bin.tar.gz sammy@your_server_ip:~

پس از اتمام بارگذاری فایل ، به سرور مجازی خود برگردید و مخزن شخص ثالث را اضافه کنید که به شما در نصب جاوا Oracle کمک می کند.
بسته software-properties-common را نصب کنید که دستور add-apt-repository را به سیستم شما اضافه می کند :
$ sudo apt install software-properties-common

در مرحله بعد ، کلید امضای استفاده شده برای تأیید نرم افزاری را که قصد نصب آن را دارید وارد کنید:
$ sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys EA8CACC073C3DB2A

این خروجی را مشاهده خواهید کرد:
Output
gpg: key EA8CACC073C3DB2A: public key Launchpad PPA for Linux Uprising” imported
gpg: Total number processed: 1
gpg: imported: 1

سپس از دستور add-apt-repository استفاده کنید تا بتوانید دوباره به لیست منابع بسته خود اضافه کنید:
$ sudo add-apt-repository ppa:linuxuprising/java

این پیام را مشاهده خواهید کرد:
Output
Oracle Java 11 (LTS) and 12 installer for Ubuntu, Linux Mint and Debian.

Java binaries are not hosted in this PPA due to licensing. The packages in this PPA download and install Oracle Java 11, so a working Internet connection is required.

The packages in this PPA are based on the WebUpd8 Oracle Java PPA packages: https://launchpad.net/~webupd8team/+archive/ubuntu/java

Created for users of https://www.linuxuprising.com/

Installation instructions (with some tips), feedback, suggestions, bug reports etc.:

. . .

Press [ENTER] to continue or ctrl-c to cancel adding it

برای ادامه نصب ، ENTER را فشار دهید. ممکن است پیامی به صورت no valid OpenPGP data found مشاهده کنید ، اما می توانید با اطمینان ان را نادیده بگیرید.
لیست بسته های خود را به روز کنید تا نرم افزار جدید برای نصب در دسترس باشد:
$ sudo apt update

نصب کننده به دنبال Oracle JDK است که شما در / var / cache / oracle-jdk11-installer-local دانلود کرده اید. این دیرکتوری را ایجاد کنید و بایگانی Oracle JDK را به آنجا جابجا کنید:
⦁ $ sudo mkdir -p /var/cache/oracle-jdk11-installer-local/

⦁ $ sudo cp jdk-11.0.7_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/

در آخر ، بسته را نصب کنید:
$ sudo apt install oracle-java11-installer-local

نصب کننده ابتدا از شما می خواهد موافقت نامه مجوز Oracle را بپذیرید. توافق نامه را بپذیرید ، سپس نصب کننده، بسته جاوا را اکسترکت و نصب میکند.
اکنون ببینیم که چگونه نسخه ای از Java را که می خواهید استفاده کنید انتخاب نمایید.
مدیریت جاوا
می توانید چندین نصب جاوا روی یک سرور مجازی داشته باشید. با استفاده از دستور update-alternatives می توانید پیکربندی کنید که کدام نسخه به طور پیش فرض در خط فرمان استفاده شود.
$ sudo update-alternatives –config java

اگر در این آموزش هر دو نسخه جاوا را نصب کنید ، خروجی اینگونه خواهد بود:
Output
There are 2 choices for the alternative java (providing /usr/bin/java).

Selection Path Priority Status
————————————————————
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode

شماره مرتبط با نسخه جاوا را انتخاب کنید تا به عنوان پیش فرض استفاده شود، یا ENTER را فشار دهید تا تنظیمات فعلی به همان صورت خود باقی بماند.
می توانید این کار را برای سایر دستورات جاوا ، مانند کامپایلر (javac) انجام دهید:
$ sudo update-alternatives –config javac

دستورات دیگری که می توان این دستور را برایشان اجرا کرد شامل موارد زیر است:
keytool, javadoc و jarsigner
اما به همین فرمان ها محدود نمی شود.
تنظیم متغیر محیطی JAVA_HOME
بسیاری از برنامه هایی که با استفاده از جاوا نوشته شده اند از متغیر محیط JAVA_HOME برای تعیین محل نصب جاوا استفاده می کنند.
برای تنظیم این متغیر محیط ، ابتدا تعیین کنید جاوا در کجا نصب شود. از دستورupdate-alternatives استفاده کنید:
$ sudo update-alternatives –config java

این دستور هر نصب جاوا را به همراه مسیر نصب آن نشان می دهد:
Output
There are 2 choices for the alternative java (providing /usr/bin/java).

Selection Path Priority Status
————————————————————
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode

Press <enter> to keep the current choice[*], or type selection number:

در این حالت مسیرهای نصب به شرح زیر است:
⦁ OpenJDK 11 در /usr/lib/jvm/java-11-openjdk-amd64/bin/java قرار میگیرد.
⦁ Oracle Java در /usr/lib/jvm/java-11-oracle/jre/bin/java قرار میگیرد.
مسیر نصب مورد نظر خود را کپی کنید. سپس با استفاده از nano یا ویرایشگر متن مورد علاقه خود /etc/environment را باز کنید:
$ sudo nano /etc/environment

در پایان این فایل خط زیر را اضافه کنید ، مطمئن شوید که مسیر هایلایت شده را با مسیر کپی شده خود جایگزین کنید ، اما قسمت /bin را در مسیر درج نکنید:
/etc/environment
JAVA_HOME=”/usr/lib/jvm/java-11-openjdk-amd64″

با تغییر این فایل مسیر JAVA_HOME برای همه کاربران سیستم شما تنظیم می شود.
فایل را ذخیره کرده و از ویرایشگر خارج شوید.
اکنون این فایل را مجدد لود کنید تا تغییرات در بخش فعلی شما اعمال شود:
$ source /etc/environment

تأیید کنید که متغیر محیط تنظیم شده است:
$ echo $JAVA_HOME

مسیری را که تازه تعیین کرده اید خواهید دید:
Output
/usr/lib/jvm/java-11-openjdk-amd64

سایر کاربران برای اجرای این تنظیم نیاز به اجرای فرمان source /etc/environment یا خروج از سیستم و ورود دوباره به سیستم دارند.
نتیجه
در این آموزش چندین نسخه جاوا را نصب کردید و نحوه مدیریت آنها را یاد گرفتید. اکنون می توانید نرم افزاری را نصب کنید که بر روی جاوا اجرا می شود ، مانند Tomcat ، Jetty ، Glassfish ، Cassandra یا Jenkins.

 

برچسب‌ها:


تبلیغات

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

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

تولیدی مانتو چشمه باران(farsan ) پایش و مدیریت هوشمند نگهداری گیاهان خانگی ریاضی آنلاین وبلاگ الهه دارانی گنهرانی راهنمای ایرانیل و همراه اول kaspyn انلاین کده شکوفه darogiahiB