سرور مجازی

۱۱۰ مطلب در تیر ۱۳۹۹ ثبت شده است

  • ۰
  • ۰

ویژوال استودیو کد دارای قابلیت های داخلی زیادی است ، از جمله پشتیبانی برای برنامه های اشکال زدایی. در این مقاله ، با دانلود افزونه Debugger for Chrome ، ایجاد پیکربندی اشکال زدایی ، راه اندازی پیکربندی اشکال زدایی و تنظیم نقاط شکست ، VS Code را برای اشکال زدایی در Node.js پیکربندی می کنید.
پیش نیازها
برای تکمیل این آموزش ، به موارد زیر نیاز دارید:

Node.js که به صورت محلی نصب شده باشد ، که می توانید با دنبال کردن نحوه نصب Node.js و ایجاد یک محیط توسعه محلی ، ابن کار را انجام دهید.
⦁ آخرین نسخه کد ویژوال استودیو بر روی دستگاه شما نصب شده باشد.
⦁ افزونه Debugger for Chrome در ویژوال استودیو کد نصب شده باشد.

برای این آموزش می توانید دروس یکی از پروژه های جاوا اسکریپت خود را که می تواند روی سرور Node اجرا شود ، اعمال کنید.
در صورت تمایل گزینه استفاده از یک نمونه برنامه نیز وجود دارد.
مرحله 1 – ایجاد یک برنامه نمونه (اختیاری)
در این آموزش برنامه مثال به نام Quick Chat اشکال زدایی خواهد شد. اگر پروژه ای برای دنبال کردن ندارید ، می توانید این مرحله را برای ایجاد این برنامه دنبال کنید

از Git برای کلون کردن Design-and-Build-a-Chat-Application-with-Socket.io repo استفاده می کنید. همچنین می توانید فایل zip را دانلود کرده و محتویات را از حالت فشرده خارج کنید.

توجه: اگر به Git نصب شده خود نیاز دارید ، از آموزش شروع Git کمک بگیرید.

برای این آموزش از کدهای part-8 پروژه استفاده خواهید کرد. اندکی وقت بگذارید تا با نحوه عملکرد برنامه مورد نظر خود آشنا شوید.
با رفتن به دیرکتوری پروژه و سپس به دیرکتوری part-8 شروع کنید:
$ cd Design-and-Build-a-Chat-Application-with-Socket.io
$ cd part-8

سپس ، بسته های npm را برای پروژه نصب کنید:
$ npm install

سپس ، سرور را شروع کنید:
$ npm start

اگر از 127.0.0.1:3000 در Chrome بازدید کنید ، اعلان نام کاربری را مشاهده خواهید کرد. پس از ارائه نام کاربری و کلیک کردن روی دکمه Chat! ، به برنامه چت هدایت می شوید و خروجی زیر را مشاهده می کنید:
Output
⦁ User joined the chat…

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

مرحله 2 – ایجاد نقطه شکست (breakpoint)
اکنون ، بگذارید یک breakpoint در برنامه ایجاد کنیم. نقاط breakpoint به شما امکان می دهد کد خود را متوقف کرده و آن را بررسی کنید.
برنامه Quick Chat یک برنامه Node / Express است که با استفاده از Socket.io به کاربران امکان می دهد در زمان واقعی با یکدیگر چت کنند. ما یک نقطه شکست را اضافه می کنیم که یک کلاینت به سرور ما متصل شود.
برای ایجاد نقطه شکست در VS Code ، در شکاف یا فضای خالی سمت چپ شماره های خط کلیک کنید.
همانطور که در تصویر زیر نشان داده شده است ، یک breakpoint (حلقه قرمز) را درون تابع ایجاد کرده ایم که هر بار کاربر متصل می شود ، فراخوانی می شود.

part-8/server.js
// …
io.on(‘connection’, socket => {
console.log(‘a user connected’);
// …
});

صرف نظر از این که چه برنامه ای را برای اشکال زدایی استفاده می کنید ، یک breakpoint تنظیم کنید که به راحتی ایجاد شود ، مانند زمانی که برنامه دانلود می شود ، یک مسیر شروع می شود و غیره.

مرحله 3 – استفاده از پنل اشکال زدایی VS Code
برای باز کردن پنل اشکال زدایی ، روی نماد bug در نوار کناری (در سمت چپ به طور پیش فرض) کلیک کنید. خواهید دید که چهار بخش مختلف وجود دارد: variables, watch, call stack, و breakpoints.

در بالای پنل ، یک دکمه play سبز و یک منوی کشویی را مشاهده می کنید که اگر هنوز نیاز به ایجاد یک پیکربندی اشکال زدایی داشته باشید ، می گوید No Configurations. اگر قبلاً پیکربندی ایجاد کرده اید ، آن را در آنجا لیست می کنید.
VS Code پیکربندی های اشکال زدایی را در فایلی به نام launc.json درون پوشه ای به نام .vscode ذخیره می کند.VS Code به ما کمک می کند تا نه تنها آن پوشه و فایل را ایجاد کنیم بلکه به تولید پیکربندی های از پیش تعریف شده نیز کمک می کند. بیایید نگاهی به ایجاد اولین مورد خود بیندازیم.
برای ایجاد فایل اولیه start.json خود ، بر روی منوی کشویی No Configurations کلیک کنید و Add Configuration را انتخاب کنید. از اینجا ، popup ها را نادیده بگیرید و با ایجاد اولین پیکربندی خود شروع خواهیم کرد.
مؤلفه های اصلی پیکربندی اشکال زدایی

name – نام پیکربندی مطابق با منوی کشویی تنظیمات نمایش داده می شود.
⦁ request – نوع عملی که می خواهید انجام دهید
⦁ . type – نوع اشکال زدایی برای پیکربندی. این نوع می تواند Node ، Chrome ، PHP و غیره باشد.

همانطور که تنظیمات مختلفی را ایجاد می کنید ، VS Code همچنین IntelliSense را برای سایر خصوصیاتی که قابل تعریف هستند فراهم می کند.

مرحله 4 – اشکال زدایی با برنامه راه اندازی
این پیکربندی اول برنامه Node را در حالت اشکال زدایی راه اندازی می کند. اجرا در حالت اشکال زدایی بدان معنی است که VS Code از طریق یک پورت خاص برای اشکال زدایی به برنامه ما متصل خواهد شد. برای این پیکربندی باید فایل برنامه ای را که اجرا خواهد شد تعریف کنیم. پیکربندی اینگونه به نظر می رسد:
.vscode/launch.json
{
“type”: “node”,
“request”: “launch”,
“name”: “Launch Program”,
“program”: “${workspaceFolder}/app.js”
},

برای اجرای این پیکربندی ، آن را از لیست کشویی تنظیمات انتخاب کنید و بر روی دکمه سبز رنگ کلیک کنید. نوار عملکرد اشکال زدایی در دکمه های step, continue, restart و stop در بالا سمت راست ظاهر خواهد شد.

برای شروع یک برنامه Node در حالت اشکال زدایی ، از پرچم –inspect استفاده کنید.

مرحله 5 – اشکال زدایی با Attach توسط ID پردازش
پیکربندی دوم که به آن خواهیم پرداخت اتصال به یک فرآیند Node توسط پردازش ID است. این سناریو با برنامه ای که از قبل در محیط محلی شما اجرا شود ، مرتبط است.
.vscode/launch.json
{
“type”: “node”,
“request”: “attach”,
“name”: “Attach by Process ID”,
“processId”: “${command:PickProcess}”
},

برای این کار ، قبل از اجرای پیکربندی اشکال زدایی ، باید سرور Node را خودمان شروع کنیم. برای شروع سرور خود از دستور زیر استفاده کنید (با استفاده از –inspect همانطور که در ابتدا گفته شد) و app.js را با نام فایل سرور خود جایگزین کنید.
$ node –inspect app.js

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

مرحله 6 – اشکال زدایی با ضمیمه به پورت
برای پیکربندی سوم ، به یک برنامه node موجود در حال اجرا در یک پورت خاص متصل می شویم.
.vscode/launch.json
{
“type”: “node”,
“request”: “attach”,
“name”: “Attach to Port”,
“port”: 9229
},

9229 پورت پیش فرض برای اشکال زدایی هنگام استفاده از پرچم –inspect است ، بنابراین این چیزی است که ما می خواهیم از آن استفاده کنیم.
از آنجا که ما قبلاً سرور خود را با پیکربندی قبلی شروع کرده ایم ، می توانیم پیش برویم و پیکربندی اشکال زدایی را شروع کنیم. پیکربندی Attach to Port را انتخاب کنید و روی play کلیک کنید:

با تعیین یک port ، localRoot و remoteRoot نیز می توانید با اتصال به شبکه به یک دستگاه از راه دور ، اشکال زدایی کنید.

مرحله 7 – اشکال زدایی با اتصال به پورت با Nodemon
برای پیکربندی نهایی خود ، جهت پشتیبانی از دانلود مجدد خودکار با Nodemon ، می خواهیم روش قبلی را تغییر دهیم. Nodemon بسته ای است که به طور معمول در سراسر جهان از npm نصب می شود ، که با ذخیره کردن فایل های خود ، سرور Node شما را دوباره دانلود می کند. این امر باعث می شود تغییرات و آزمایش همزمان آسان تر شوند.
.vscode/launch.json
{
“type”: “node”,
“request”: “attach”,
“name”: “Nodemon Debug”,
“port”: 9229,
“restart”: true
},

توجه: نسخه های مدرن کد VS از یک پارامتر runtimeExohibable پشتیبانی می کند که می تواند برای پیکربندی متفاوت ‘Node.js Nodemon Setup استفاده شود.

برای نصب Nodemon از دستور زیر استفاده کنید:
$ npm install -g nodemon

از آنجا که Nodemon سرور ما را به طور خودکار مجدداً راه اندازی می کند ، ما در پیکربندی اشکال زدایی ، ویژگی restart را روی true تنظیم کردیم. به این ترتیب ، هنگام شروع مجدد سرور ، debugger دوباره وصل می شوند. برای آزمایش این ویژگی، سرور خود را با استفاده از این دستور راه اندازی کنید (node را با nodemon جایگزین کنید):
$ nodemon –inspect app.js

سپس پیکربندی خود را اجرا کنید:

از آنجا که ما از Nodemon استفاده می کنیم ، اگر تغییری در فایل سرور خود ایجاد کرده و آن را ذخیره کنیم ، سرور ما به طور خودکار بارگذاری می شود. برای مدیریت این سناریو و اتصال مجدد ، پیکربندی اشکال زدایی خود را تعریف کرده ایم. یک تغییر کوچک در فایل خود ایجاد کنید ، آن را ذخیره کنید و مطمئن شوید که هنگام ریستارت سرور debugger شما دوباره وصل می شود.

نتیجه
در این آموزش ، VS Code را برای اشکال زدایی در کد Node.js تنظیم کرده اید. اکنون تنظیمات مناسبی برای شروع اشکال زدایی دارید.
برای کسب اطلاعات بیشتر در مورد Node.js ، به مجموعه نحوه کد دهی در Node مراجعه کنید.

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

Elasticsearchروشی که به centralized logging شناخته می شود. centralized logging می تواند در هنگام تلاش برای شناسایی مشکلات سرورها یا برنامه های کاربردی مفید باشد ، زیرا این امکان را به شما می دهد تا از طریق تمام ورودهای خود در یک مکان جستجو کنید. این ویژگی همچنین از این لحاظ مفید است که به شما امکان می دهد با پیوند دادن ورودهای چند سرور در یک بازه زمانی خاص مسائلی را که آن سرورها را ارتباط میدهد شناسایی کنید.
Elastic Stack چهار مؤلفه اصلی دارد:
Elasticsearch: یک موتور جستجوی توزیع شده RESTful که تمام داده های جمع آوری شده را ذخیره می کند.
Logstash: مولفه پردازش داده ها از Stack Elastic که داده های ورودی را به Elasticsearch می فرستد.
Kibana: رابط وب برای جستجو و تجسم ورودها.
Beats: حمل و نقل داده های سبک و یک منظوره که می توانند داده ها را از صدها یا هزاران دستگاه به Logstash یا Elasticsearch ارسال کنند.
در این آموزش Elastic Stack را روی سرور Ubuntu 20.04 نصب خواهید کرد. یاد می گیرید که چگونه تمام مؤلفه های Elastic Stack – از جمله Filebeat را نصب کنید، که یک ضربان برای ارسال و متمرکز کردن ورود ها و فایل ها است – و آن ها را برای جمع آوری و تجسم ورودهای مربوط به سیستم پیکربندی میکند. علاوه بر این ، به دلیل اینکه معمولاً Kibana فقط در localhost موجود است ، ما از Nginx برای پروکسی استفاده می کنیم ، بنابراین از طریق مرورگر وب قابل دسترسی خواهد بود. همه این مؤلفه ها را روی یک سرور واحد نصب خواهیم کرد که به عنوان سرور Elastic Stack ما به آن اشاره خواهیم کرد.
توجه: هنگام نصب Elastic Stack ، باید از نسخه مشابه در کل پشته استفاده کنید. در این آموزش آخرین نسخه های کل پشته را نصب خواهیم کرد که در زمان نوشتن این مقاله ، Elasticsearch 7.7.1 ، Kibana 7.7.1 ، Logstash 7.7.1 و Filebeat 7.7.1 هستند.
پیش نیازها
برای تکمیل این آموزش به موارد زیر نیاز دارید:
⦁ سرور Ubuntu 20.04 با رم 4 گیگابایتی و دو CPU با کاربر sudo غیر ریشه. شما می توانید با پیروی از مقاله ستاپ اولیه سرور برای Ubuntu 20.04 به این هدف برسید. برای این آموزش ، ما با حداقل مقدار CPU و RAM مورد نیاز برای اجرای Elasticsearch کار خواهیم کرد. توجه داشته باشید که میزان CPU ، RAM و حافظه ذخیره شده مورد نیاز سرور Elasticsearch شما به حجم ورود هایی که انتظار دارید بستگی دارد.
⦁ OpenJDK 11 نصب شده باشد. برای انجام این کار به بخش نصب پیش فرض JRE / JDK نحوه نصب جاوا با Apt در اوبونتو 20.04 مراجعه کنید.
⦁ Nginx بر روی سرور شما نصب شده باشد ، که بعداً در این راهنما به عنوان یک پروکسی معکوس برای Kibana پیکربندی می کنیم. برای تنظیم این برنامه ، راهنمای ما در مورد نحوه نصب Nginx در اوبونتو 20.04 را دنبال کنید.
علاوه بر این ، از آنجا که از Elastic Stack برای دسترسی به اطلاعات ارزشمندی درباره سرور خود استفاده می کنید که نمی خواهید کاربران غیرمجاز به آنها دسترسی پیدا کنند ، مهم است که با نصب گواهی TLS / SSL ، سرور خود را ایمن نگه دارید. این کار اختیاری است اما به شدت توصیه میشود.
با این وجود ، از آن جا که در نهایت در طول این راهنما تغییراتی در بلوک سرور Nginx خود ایجاد خواهید کرد ، به احتمال زیاد منطقی تر خواهد بود که راهنمای Let’s Encrypt در Ubuntu 20.04 را در پایان مرحله دوم این آموزش پیگیری کنید. با توجه به این نکته ، اگر می خواهید پیکربندی Let’s Encrypt را روی سرور خود انجام دهید ، قبل از انجام این کار به موارد زیر نیاز دارید:
• نام دامنه کاملاً واجد شرایط ( (FQDN. در سراسر این آموزش از your_domain استفاده خواهد شد. می توانید نام دامنه را در Namecheap خریداری کنید ، یکی را به صورت رایگان در Freenom دریافت کنید ، یا از ثبت دامنه مورد نظر خود استفاده کنید.
• هر دو رکورد DNS زیر برای سرور شما تنظیم شده باشد. برای جزئیات بیشتر در مورد چگونگی اضافه کردن آنها می توانید این مقدمه را در vpsgol DNS دنبال کنید.
o یک رکورد A با your_domain که آدرس IP عمومی سرور شما را نشان می دهد.
o رکورد A با آدرس www.your_domain که به آدرس IP عمومی سرور شما اشاره کند.
مرحله 1 – نصب و پیکربندی Elasticsearch
مولفه های Elasticsearch در مخازن بسته پیش فرض اوبونتو در دسترس نیستند. اما می توانند پس از افزودن لیست منبع بسته بندی Elastic ، با APT نصب کنید.
به منظور محافظت از سیستم خود در مقابل جعل بسته ، همه بسته ها با کلید امضای Elasticsearch امضا شده اند. بسته هایی که با استفاده از کلید تأیید شده اند توسط مدیر بسته شما قابل اعتماد خواهند بود. در این مرحله ، کلید GPG عمومی Elasticsearch را وارد کرده و به منظور نصب Elasticsearch ، لیست منبع بسته بندی الاستیک را اضافه می کنید.
برای شروع ، از cURL ، ابزار خط فرمان برای انتقال داده با URL ، برای وارد کردن کلید عمومی GPG Elasticsearch در APT استفاده کنید. توجه داشته باشید که ما از آرگومان -fsSL برای غیر فعال کردن همه فرآیندها و خطاهای احتمالی (به جز عدم موفقیت سرور) استفاده می کنیم و به cURL اجازه می دهیم در صورت تغییر مسیر، یک درخواست در مکان جدید ایجاد کند. خروجی دستور cURL را در برنامه apt-key قرار دهید ، که کلید عمومی GPG را به APT اضافه می کند.
⦁ $ curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add –

در مرحله بعد ، لیست منبع الاستیک را به دیرکتوری Sources.list.d اضافه کنید ، جایی که APT در جستجوی منابع جدید است:
⦁ $ echo “deb https://artifacts.elastic.co/packages/7.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

سپس، لیست بسته های خود را به روز کنید تا APT منبع جدید الاستیک را بخواند:
⦁ $ sudo apt update

در مرحله بعد با این دستور Elasticsearch را نصب کنید:
⦁ $ sudo apt install elasticsearch

اکنون Elasticsearch نصب شده است و آماده پیکربندی است. از ویرایشگر متن دلخواه خود برای ویرایش فایل اصلی پیکربندی Elasticsearch ، elasticsearch.yml استفاده کنید. در اینجا ، ما از nano استفاده خواهیم کرد:
⦁ $ sudo nano /etc/elasticsearch/elasticsearch.yml

توجه: فایل پیکربندی Elasticsearch با فرمت YAML است ، به این معنی که ما باید قالب دندانه ای را حفظ کنیم. مطمئن شوید که با ویرایش این فایل هیچ فضای اضافی ایجاد نمی کنید.

فایل elasticsearch.yml گزینه های پیکربندی را برای خوشه ، گره ، مسیرها ، حافظه ، شبکه ، جستجو و گیت شما فراهم می کند. بسیاری از این گزینه ها در فایل از پیش تنظیم شده اند اما شما می توانید آنها را با توجه به نیاز خود تغییر دهید. برای اهداف نمایش پیکربندی تک سرور ، فقط تنظیمات میزبان شبکه را تنظیم خواهیم کرد.
Elasticsearch ترافیک را از هر جایی در پورت 9200 گوش می دهد. بهتر است دسترسی خارجی به نمونه Elasticsearch خود را محدود کنید تا از خوانده شدن اطلاعات توسط دیگر افراد یا خاموش کردن خوشه Elasticsearch از طریق REST API جلوگیری کنید. برای محدود کردن دسترسی و در نتیجه افزایش امنیت ، خطی را که شبکه را مشخص می کند ، پیدا کنید ، آن را حذف کنید و مقدار آن را با localhost مانند این جایگزین کنید:
/etc/elasticsearch/elasticsearch.yml
. . .
# ———————————- Network ———————————–
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: localhost
. . .

ما localhost را مشخص کرده ایم تا Elasticsearch در تمام رابط ها و IP های محدود گوش کند. اگر می خواهید فقط به یک رابط خاص گوش دهید ، می توانید IP آن را به جای localhost مشخص کنید. elasticsearch.ym را ذخیره کرده و ببندید. اگر از nano استفاده می کنید ، می توانید با فشار دادن CTRL + X ، به دنبال آن Y و سپس ENTER این کار را انجام دهید.
این حداقل تنظیماتی است که می توانید با استفاده از Elasticsearch انجام دهید. اکنون می توانید برای اولین بار Elasticsearch را شروع کنید.
سرویس Elasticsearch را با systemctl شروع کنید. برای شروع کار چند لحظه به الاستیک وقت بدهید. در غیر این صورت ، ممکن است با خطای عدم امکان اتصال مواجه شوید.
⦁ $ sudo systemctl start elasticsearch

سپس ، دستور زیر را اجرا کنید تا Elasticsearch بتواند هر بار که سرور خود را راه اندازی می کند اجرا شود:
⦁ $ sudo systemctl enable elasticsearch

با ارسال یک درخواست HTTP می توانید آزمایش کنید که آیا سرویس Elasticsearch شما اجرا شده است:
⦁ $ curl -X GET “localhost:9200”

پاسخی را مشاهده خواهید کرد که اطلاعات اصلی در مورد گره محلی شما را نشان می دهد ، مشابه این:
Output
{
“name” : “Elasticsearch”,
“cluster_name” : “elasticsearch”,
“cluster_uuid” : “qqhFHPigQ9e2lk-a7AvLNQ”,
“version” : {
“number” : “7.7.1”,
“build_flavor” : “default”,
“build_type” : “deb”,
“build_hash” : “ef48eb35cf30adf4db14086e8aabd07ef6fb113f”,
“build_date” : “2020-03-26T06:34:37.794943Z”,
“build_snapshot” : false,
“lucene_version” : “8.5.1”,
“minimum_wire_compatibility_version” : “6.8.0”,
“minimum_index_compatibility_version” : “6.0.0-beta1”
},
“tagline” : “You Know, for Search”
}

اکنون که Elasticsearch در حال اجرا و کار است ، بیایید Kibana ، مؤلفه بعدی Elastic Stack را نصب کنیم.
مرحله 2 – نصب و پیکربندی داشبورد Kibana
طبق مستندات رسمی ، باید Kibana را تنها پس از نصب Elasticsearch نصب کنید. نصب با این ترتیب این اطمینان را می دهد که مولفه های مربوط به هر محصول به طور صحیح در جای خود قرار دارند.
از آنجا که شما در مرحله قبل منبع بسته الاستیک را اضافه کرده اید ، می توانید با استفاده از apt فقط مولفه های باقیمانده Elastic Stack را نصب کنید:
⦁ $ sudo apt install kibana

سپس سرویس Kibana را فعال و راه اندازی کنید:
⦁ $ sudo systemctl enable kibana

⦁ $ sudo systemctl start kibana

از آنجا که Kibana پیکربندی شده است که فقط به localhost گوش کند ، ما باید یک پروکسی معکوس تنظیم کنیم تا دسترسی خارجی به آن امکان پذیر باشد. برای این منظور از Nginx استفاده خواهیم کرد که قبلاً باید روی سرور شما نصب شود.
ابتدا از دستور openssl برای ایجاد یک کاربر ادمین Kibana استفاده کنید که برای دسترسی به رابط وب Kibana استفاده خواهید کرد. به عنوان نمونه ما این حساب را kibanaadmin نامگذاری می کنیم ، اما برای اطمینان از امنیت بیشتر توصیه می کنیم برای کاربر خود یک نام غیر استاندارد انتخاب کنید که حدس زدن آن دشوار خواهد بود.
دستور زیر کاربر و پسورد ادمین Kibana را ایجاد کرده و آنها را در فایل htpasswd.users ذخیره می کند. Nginxرا پیکربندی می کنید تا این نام کاربری و رمز عبور را دریافت کرده و این فایل را لحظه به لحظه بخوانید:
⦁ $ echo “kibanaadmin:`openssl passwd -apr1`” | sudo tee -a /etc/nginx/htpasswd.users

با مشاهده اعلان، رمز عبور را وارد و تأیید کنید. این اطلاعات را به خاطر بسپارید یا یادداشت کنید ، زیرا برای دسترسی به رابط وب Kibana به آن نیاز خواهید داشت.
در مرحله بعد ، یک فایل بلوک سرور Nginx ایجاد خواهیم کرد. به عنوان نمونه ، ما این فایل را your_domain می نامیم ، گرچه ممکن است بهتر باشد یک نام توصیف کننده تر انتخاب کنید. به عنوان مثال ، اگر یک فایل FQDN و DNS برای این سرور تنظیم کرده اید ، می توانید این فایل را پس از FQDN خود نامگذاری کنید.
با استفاده از nano یا ویرایشگر متن مورد نظر خود ، فایل بلوک سرور Nginx را ایجاد کنید:
⦁ $ sudo nano /etc/nginx/sites-available/your_domain

بلوک کد زیر را در فایل اضافه کنید ، مطمئن شوید که your_domain خود را به روز می کنید تا با FQDN یا آدرس IP عمومی سرور شما مطابقت داشته باشد. این کد Nginx را پیکربندی می کند تا ترافیک HTTP سرور شما را به برنامه Kibana منتقل کند ، که در حال گوش دادن به localhost: 5601 است. علاوه بر این ، Nginx را برای خواندن فایل htpasswd.users پیکربندی می کند و احتیاج به احراز هویت اساسی دارد.
توجه داشته باشید که اگر از قبل آموزش Nginx را امتحان کرده اید ، ممکن است قبلاً این فایل را ایجاد کرده باشید و آن را با محتوای قبلی پر کرده اید. در این حالت ، قبل از اضافه کردن موارد زیر تمام محتوای موجود در فایل را حذف کنید:
/etc/nginx/sites-available/your_domain
server {
listen 80;

server_name your_domain;

auth_basic “Restricted Access”;
auth_basic_user_file /etc/nginx/htpasswd.users;

location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

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

سپس پیکربندی خطاهای نحوی را بررسی کنید:
⦁ $ sudo nginx -t

اگر خطایی در خروجی شما گزارش شده بود ، به عقب برگردید و بررسی کنید که محتوایی که در فایل پیکربندی خود قرار داده اید به درستی اضافه شده است. وقتی syntax is ok را در خروجی مشاهده کردید ، پیش بروید و سرویس Nginx را ریستارت کنید:
⦁ $ sudo systemctl reload nginx

اگر راهنمای ستاپ اولیه سرور را دنبال کرده باشید ، باید فایروال UFW را فعال کنید. برای اجازه اتصال به Nginx ، می توانیم قوانین را با تایپ دستور زیر تنظیم کنیم:
⦁ $ sudo ufw allow ‘Nginx Full’

توجه: اگر از آموزش مقدماتی Nginx پیروی کرده اید ، ممکن است یک قانون UFW ایجاد کرده باشید که مشخصات Nginx HTTP را از طریق فایروال امکان پذیر کند. از آنجا که پروفایل Nginx Full امکان عبور و مرور HTTP و HTTPS را از طریق فایروال فراهم می کند ، می توانید با خیال راحت قانونی را که در آموزش پیش نیاز ایجاد کرده اید حذف کنید. این کار را با دستور زیر انجام دهید:
⦁ $ sudo ufw delete allow ‘Nginx HTTP’

اکنون Kibana از طریق FQDN یا آدرس IP عمومی سرور Elastic Stack شما قابل دسترسی است. می توانید با رفتن به آدرس زیر و وارد کردن اطلاعات ورود به سیستم هنگام درخواست ، صفحه وضعیت سرور Kibana را بررسی کنید:
http://your_domain/status
این صفحه وضعیت اطلاعات مربوط به استفاده از منابع سرور را نشان می دهد و افزونه های نصب شده را لیست می کند.

توجه: همانطور که در بخش Preferences ذکر شد ، توصیه می شود SSL / TLS را روی سرور خود فعال کنید. برای به دست آوردن یک گواهینامه رایگان SSL برای Nginx در اوبونتو 20.04 می توانید از راهنمای Let’s Encrypt استفاده کنید. پس از اخذ گواهینامه های SSL / TLS ، می توانید دوباره به این مرحله برگردید و این آموزش را تکمیل کنید.
اکنون که داشبورد Kibana پیکربندی شده است ، بگذارید مؤلفه بعدی را نصب کنیم : Logstash .
مرحله 3 – نصب و پیکربندی Logstash
اگرچه ممکن است Beats داده را مستقیماً به پایگاه داده Elasticsearch ارسال کند ، استفاده از Logstash برای پردازش داده ها معمول است. این کار به شما امکان می دهد انعطاف پذیری بیشتری برای جمع آوری داده ها از منابع مختلف ، تبدیل آن به یک قالب مشترک و انتقال آن به پایگاه داده دیگری داشته باشید.
Logstash را با این دستور نصب کنید:
⦁ $ sudo apt install logstash

پس از نصب Logstash می توانید به پیکربندی آن بروید. فایل های پیکربندی Logstash در دیرکتوری /etc/logstash/conf.d مستقر هستند. برای اطلاعات بیشتر در مورد دستورات پیکربندی ، می توانید مرجع پیکربندی که Elastic ارائه می دهد را بررسی کنید. وقتی فایل را پیکربندی می کنید ، مفید است که به Logstash به عنوان خط اتصال فکر کنید که داده ها را در یک انتها می گیرد ، آن را به روشی پردازش می کند و سپس به مقصد می فرستد (در این حالت مقصد Elasticsearch است). رابط اتصال Logstash دارای دو عنصر مورد نیاز ، ورودی و خروجی ، و یک عنصر اختیاری ، یعنی فیلتر است. پلاگین های ورودی داده ها را از یک منبع استفاده می کنند ، پلاگین های فیلتر داده ها را پردازش می کنند و پلاگین های خروجی داده ها را در مقصد می نویسند.

یک فایل پیکربندی به نام 02-beats-input.conایجاد کنید که ورودی Filebeat خود را تنظیم کنید:
$ sudo nano /etc/logstash/conf.d/02-beats-input.conf

پیکربندی ورودی زیر را وارد کنید. این یک ورودی beats را مشخص می کند که پورت TCP 5044 را گوش خواهد /etc/logstash/conf.d/02-beats-input.conf
input {
beats {
port => 5044
}
}
کرد.
فایل را ذخیره کنید و ببندید.
در مرحله بعد ، یک فایل پیکربندی به نام 30-elasticsearch-output.conf ایجاد کنید:
⦁ $ sudo nano /etc/logstash/conf.d/30-elasticsearch-output.conf

پیکربندی خروجی زیر را وارد کنید. در اصل ، این خروجی Logstash را برای ذخیره داده های Beats در Elasticsearch ، که در localhost: 9200 در حال اجرا است ، در شاخصی به نام Beat استفاده می کند. بیت مورد استفاده در این آموزش Filebeat است:
/etc/logstash/conf.d/30-elasticsearch-output.conf
output {
if [@metadata][pipeline] {
elasticsearch {
hosts => [“localhost:9200”]
manage_template => false
index => “%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}”
pipeline => “%{[@metadata][pipeline]}”
}
} else {
elasticsearch {
hosts => [“localhost:9200”]
manage_template => false
index => “%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}”
}
}
}

فایل را ذخیره کنید و ببندید.
پیکربندی Logstash خود را با این دستور تست کنید:
⦁ $ sudo -u logstash /usr/share/logstash/bin/logstash –path.settings /etc/logstash -t

اگر خطایی در دستورات وجود نداشته باشد ، خروجی شما بعد از چند ثانیه Config Validation Result: OK. Exiting Logstash را نشان میدهد. اگر این را در خروجی خود مشاهده نمی کنید ، خطاهای ذکر شده در خروجی خود را بررسی کنید و پیکربندی را به روز کنید تا آنها را اصلاح کنید. توجه داشته باشید که از OpenJDK اخطار دریافت خواهید کرد ، اما نباید مشکلی ایجاد کنند و می توان آنها را نادیده گرفت.
اگر آزمایش پیکربندی شما موفقیت آمیز است ، Logstash را راه اندازی و فعال کنید تا تغییرات پیکربندی را به مرحله اجرا برساند:
⦁ $ sudo systemctl start logstash

⦁ $ sudo systemctl enable logstash

اکنون که Logstash به درستی کار کرده و کاملاً پیکربندی شده است ، بیایید Filebeat را نصب کنیم.
مرحله 4 – نصب و پیکربندی Filebeat
Elastic Stack از چندین فرستنده داده سبک به نام Beats برای جمع آوری داده ها از منابع مختلف و انتقال آنها به Logstash یا Elasticsearch استفاده می کند. در اینجا Beats که در حال حاضر از Elastic موجود است:
⦁ Filebeat: فایل های ورود را جمع آوری و ارسال می کند.
⦁ Metricbeat: معیارها را از سیستم ها و سرویس های شما جمع آوری می کند.
⦁ Packetbeat: داده های شبکه را جمع آوری و تجزیه و تحلیل می کند.
⦁ Winlogbeat: ورودهای مربوط به رویدادهای Windows را جمع می کند.
⦁ Auditbeat: داده های چارچوب حسابرسی لینوکس را جمع می کند و بر یکپارچگی فایل نظارت می کند.
⦁ Heartbeat: سرویس ها را برای دسترس پذیری آنها با استفاده از پروب فعال کنترل می کند.
در این آموزش از Filebeat استفاده خواهیم کرد تا ورود های محلی را به Stack Elastic ارسال کنیم.
Filebeat را با استفاده از apt نصب کنید:
⦁ $ sudo apt install filebeat

سپس ، Filebeat را پیکربندی کنید تا به Logstash وصل شوید. در اینجا ، فایل پیکربندی مثال را که همراه Filebeat است اصلاح خواهیم کرد.
فایل پیکربندی Filebeat را باز کنید:
⦁ $ sudo nano /etc/filebeat/filebeat.yml

توجه: مانند Elasticsearch ، فایل پیکربندی Filebeat به فرمت YAML است. این بدان معنی است که کنگره گذاری مناسب بسیار مهم است ، بنابراین حتماً از همان تعداد فضاهایی استفاده کنید که در این دستورالعمل ها ذکر شده است.

Filebeat از خروجی های بی شماری پشتیبانی می کند ، اما شما معمولاً فقط رویدادها را به طور مستقیم به Elasticsearch یا Logstash ارسال می کنید. در این آموزش ، ما از Logstash برای انجام پردازش بیشتر روی داده های جمع آوری شده توسط Filebeat استفاده خواهیم کرد.Filebeat به ارسال اطلاعات به طور مستقیم به Elasticsearc نیاز نخواهد داشت، بنابراین بیایید آن خروجی را غیرفعال کنیم. برای انجام این کار ، بخش input.elasticsearch را بیابید و خطوط زیر را با قرار دادن # قبل از آنها خارج کنید:
/etc/filebeat/filebeat.yml

#output.elasticsearch:
# Array of hosts to connect to.
#hosts: [“localhost:9200”]

سپس بخش output.logstash را پیکربندی کنید. خطوط out.logstash: و hosts: [“localhost:5044”] را با حذف # خارج کنید . با این کار Filebeat را برای پیوند دادن به Logstash در سرور Elastic Stack در پورت 5044 پیکربندی می کنید ، پورتی که برای آن ورودی Logstash را قبلاً مشخص کردیم:
/etc/filebeat/filebeat.yml
output.logstash:
# The Logstash hosts
hosts: [“localhost:5044”]

فایل را ذخیره کنید و ببندید.
قابلیت Filebeat را می توان با ماژول های Filebeat گسترش داد. در این آموزش از ماژول سیستم استفاده خواهیم کرد که ورود های ایجاد شده توسط سرویس ثبت ورود سیستم توزیع های رایج لینوکس را جمع آوری و تجزیه می کند.
بیایید آن را فعال کنیم:
⦁ $ sudo filebeat modules enable system

با اجرای لیست می توانید ماژول های فعال و غیرفعال را مشاهده کنید:
⦁ $ sudo filebeat modules list

لیستی مشابه موارد زیر را مشاهده خواهید کرد:
Output
Enabled:
system

Disabled:
apache2
auditd
elasticsearch
icinga
iis
kafka
kibana
logstash
mongodb
mysql
nginx
osquery
postgresql
redis
traefik

به طور پیش فرض ، Filebeat پیکربندی شده است تا از مسیرهای پیش فرض برای ورودهای مربوط به syslog و مجوزها استفاده کند. در مورد این آموزش نیازی به تغییر چیزی در پیکربندی نیست. پارامترهای ماژول را می توانید در فایل پیکربندی /etc/filebeat/modules.d/system.yml مشاهده کنید.
در مرحله بعد ، باید اتصالات ورودی Filebeat را تنظیم کنیم ، که داده های ورود را قبل از ارسال از طریق logstash به Elasticsearch تجزیه می کند. برای لود خط اتصال ورودی برای ماژول سیستم ، دستور زیر را وارد کنید:
⦁ $ sudo filebeat setup –pipelines –modules system

در مرحله بعد ، قالب فهرست را در Elasticsearch بارگذاری کنید. ایندکس Elasticsearch مجموعه ای از اسنادی است که دارای مشخصات مشابه است. ایندکس ها با یک نام مشخص می شوند که در هنگام انجام عملیات های مختلف درون آن ، به ایندکس اشاره می شود. الگوی ایندکس با ایجاد یک ایندکس جدید به طور خودکار اعمال می شود.
برای لود الگو ، از دستور زیر استفاده کنید:
⦁ $ sudo filebeat setup –index-management -E output.logstash.enabled=false -E ‘output.elasticsearch.hosts=[“localhost:9200”]’

Output
Index setup finished.

Filebeat با داشبورد نمونه Kibana بسته بندی شده است که به شما امکان می دهد داده های Filebeat را در Kibana تجسم کنید. قبل از استفاده از داشبورد ، باید الگوی ایندکس را ایجاد کرده و داشبورد را درون Kibana بارگذاری کنید.
با لود داشبورد ، Filebeat برای بررسی اطلاعات نسخه به Elasticsearch متصل می شود. برای لود داشبورد هنگام فعال شدن Logstash ، باید خروجی Logstash را غیرفعال کنید و خروجی Elasticsearch را فعال کنید:
⦁ $ sudo filebeat setup -E output.logstash.enabled=false -E output.elasticsearch.hosts=[‘localhost:9200’] -E setup.kibana.host=localhost:5601

باید خروجی مشابه این دریافت کنید:
Output
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling.

Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Setting up ML using setup –machine-learning is going to be removed in 8.0.0. Please use the ML app instead.
See more: https://www.elastic.co/guide/en/elastic-stack-overview/current/xpack-ml.html
Loaded machine learning job configurations
Loaded Ingest pipelines

اکنون می توانید Filebeat را شروع و فعال کنید:
⦁ $ sudo systemctl start filebeat

⦁ $ sudo systemctl enable filebeat

اگر به طور صحیح Elastic Stack خود تنظیم کرده باشید ، Filebeat شروع به ارسال syslog و ورودهای مجاز به Logstash می کند ، و سپس این داده ها را در Elasticsearch لود می کند.
برای تأیید اینکه Elasticsearch در واقع این داده ها را دریافت می کند ، شاخص Filebeat را با این دستور پرس و جو کنید:
⦁ $ curl -XGET ‘http://localhost:9200/filebeat-*/_search?pretty’

باید خروجی مشابه این دریافت کنید:
Output

{
{
“took” : 4,
“timed_out” : false,
“_shards” : {
“total” : 2,
“successful” : 2,
“skipped” : 0,
“failed” : 0
},
“hits” : {
“total” : {
“value” : 4040,
“relation” : “eq”
},
“max_score” : 1.0,
“hits” : [
{
“_index” : “filebeat-7.7.1-2020.06.04”,
“_type” : “_doc”,
“_id” : “FiZLgXIB75I8Lxc9ewIH”,
“_score” : 1.0,
“_source” : {
“cloud” : {
“provider” : “vpsgol”,
“instance” : {
“id” : “194878454”
},
“region” : “nyc1”
},
“@timestamp” : “2020-06-04T21:45:03.995Z”,
“agent” : {
“version” : “7.7.1”,
“type” : “filebeat”,
“ephemeral_id” : “cbcefb9a-8d15-4ce4-bad4-962a80371ec0”,
“hostname” : “june-ubuntu-20-04-elasticstack”,
“id” : “fbd5956f-12ab-4227-9782-f8f1a19b7f32”
},

اگر خروجی شما جمع کل 0 را نشان می دهد ، Elasticsearch در زیر ایندکسی که جستجو کرده اید ، هیچ فایلی را لود نمی کند ، و شما نیاز به بررسی تنظیمات خود برای رفع خطاها دارید. اگر خروجی مورد انتظار را دریافت کردید ، به مرحله بعدی بروید ، که در آن خواهیم دید که چگونه می توان از طریق داشبورد Kibana پیش رفت.
مرحله 5 – جستجو در داشبورد Kibana
بیایید به رابط وب Kibana که قبلاً نصب کردیم برگردیم.
در یک مرورگر وب ، به FQDN یا آدرس IP عمومی سرور Elastic Stack بروید. اگر بخش فعلی شما دچار اختلال شده است ، باید اعتبار خود را که در مرحله 2 تعریف کردید ، دوباره وارد کنید. پس از ورود به سیستم ، باید صفحه اصلی Kibana را دریافت کنید:

بر روی لینک Discover  در نوار پیمایش در سمت چپ کلیک کنید (برای دیدن موارد منوی ناوبری باید روی نماد Expand در پایین سمت چپ کلیک کنید). در صفحه Discover ، الگوی شاخص از پیش تعریف شده filebeat- * را انتخاب کنید تا داده های Filebeat را ببینید. به طور پیش فرض ، همه اطلاعات گزارش را در طول 15 دقیقه گذشته به شما نشان می دهد. یک هیستوگرام با گزارش ورود به سیستم و برخی از پیامهای ورود را در زیر مشاهده خواهید کرد:

در اینجا می توانید ورودهای خود را جستجو و مرور کنید و همچنین داشبورد خود را به صورت دلخواه تنظیم کنید. اگرچه در این مرحله موارد زیادی وجود نخواهد داشت زیرا شما فقط syslogs را از سرور Elastic Stack خود دریافت می کنید.
برای رفتن به صفحه داشبورد و جستجوی داشبورد Filebeat System از پنل سمت چپ استفاده کنید. پس از آنجا ، می توانید داشبورد نمونه ای را که با ماژول سیستم Filebeat همراه است ، انتخاب کنید.
به عنوان مثال ، می توانید آمار دقیق را بر اساس پیام های syslog خود مشاهده کنید:

همچنین می توانید مشاهده کنید که کدام کاربران و چه موقع از دستور sudo استفاده کرده اند:

Kibana بسیاری از ویژگی های دیگر ، مانند نمودار و فیلتر را دارد ، بنابراین به راحتی در آن جستجو کنید.
نتیجه
در این آموزش ، نحوه نصب و پیکربندی Elastic Stack را برای جمع آوری و تحلیل ورودهای مربوط به سیستم آموخته اید. به یاد داشته باشید که می توانید تقریباً هر نوع ورود به سیستم یا داده های ایندکس شده را با استفاده از Beats به Logstash برای Logstash ارسال کنید ، اما اگر با فیلتر Logstash تجزیه و ساختار بندی شود ، داده ها حتی مفیدتر خواهند شد ، زیرا این داده ها را به یک قالب پایدار تبدیل می کند که به راحتی توسط Elasticsearch قابل خواندن است.

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

TensorFlow یک کتابخانه نرم افزار یادگیری ماشین منبع باز است که برای آموزش شبکه های عصبی استفاده می شود. در قالب نمودارهای جریان داده وضعیتی، هر گره در نمودار بیانگر عملیات انجام شده توسط شبکه های عصبی در آرایه های چند بعدی است. این آرایه های چند بعدی معمولاً به عنوان “تانسور” شناخته می شوند ، از این رو نام TensorFlow استفاده میشود.
در این آموزش ، TensorFlow را در یک محیط مجازی پایتون با virtualenv نصب خواهید کرد. این رویکرد نصب TensorFlow را جدا می کند و سرعت کار را بالا میبرد. پس از اتمام نصب ، نصب خود را با وارد کردن Tensorflow تأیید کنید تا مطمئن شوید خطایی ندارید.
پیش نیازها
قبل از شروع این آموزش ، به موارد زیر نیاز خواهید داشت:
یک سرور Ubuntu 20.04 با حداقل 4 گیگابایت رم که با دنبال کردن راهنمای ستاپ اولیه سرور اوبونتو 20.04 تنظیم شده باشد، شامل کاربر غیر ریشه sudo و فایروال تنظیم شده باشد.
Python 3.8 یا بالاتر و virtualenv نصب شده باشد. برای پیکربندی Python و virtualenv نحوه نصب Python 3 را در اوبونتو 20.04 دنبال کنید.
مرحله 1 – ایجاد یک محیط برنامه نویسی
در این مرحله ، ما یک محیط مجازی ایجاد خواهیم کرد تا TensorFlow را در آن نصب کنیم بدون اینکه سایر پروژه های برنامه نویسی خود را به خطر بیاندازیم. اگر از قبل یک محیط برنامه نویسی تمیز تنظیم کرده اید ، از این مرحله رد شوید.
ابتدا یک دایرکتوری پروژه ایجاد کنید. برای اهداف نمایشی آن را tf-demo می نامیم ، اما نامی را برای دیرکتوری انتخاب کنید که برای شما معنی دار باشد:
$ mkdir ~/tf-demo

به دیرکتوری تازه ایجاد شده tf-demo بروید:
$ cd ~/tf-demo

سپس ، یک محیط مجازی جدید به عنوان مثال با نام tensorflow-dev ایجاد کنید. دستور زیر را برای ایجاد محیط اجرا کنید:
$ python3 -m venv tensorflow-dev

این یک دایرکتوری جدید tensorflow-dev ایجاد می کند که در صورت فعال شدن این محیط ، تمام بسته هایی را که نصب می کنید در آن قرار خواهد داد. همچنین شامل pip و نسخه مستقل پایتون است.
اکنون محیط مجازی خود را فعال کنید:
$ source tensorflow-dev/bin/activate

پس از فعال سازی ، اعلان ترمینال به شما نشان می دهد که در محیط مجازی قرار دارید:
(tensorflow-dev)username@hostname:~/tf-demo $
در این مرحله می توانید TensorFlow را در محیط مجازی خود نصب کنید.
مرحله 2 – نصب TensorFlow
در هنگام نصب TensorFlow ، می خواهیم مطمئن شویم که جدیدترین نسخه موجود در PyPi را نصب و به روز می کنیم.
بنابراین ، از دستور زیر با pip استفاده خواهیم کرد:
(tensorflow-dev) $ pip install –upgrade tensorflow

هنگامی که ENTER را فشار دهید ، TensorFlow نصب خواهد شد و شما باید خروجی دریافت کنید که نشان می دهد نصب به همراه هر بسته وابسته موفقیت آمیز بوده است.
Output

Successfully installed absl-py-0.7.1 astor-0.7.1 gast-0.2.2 grpcio-1.19.0 h5py-2.9.0 keras-applications-1.0.7 keras-preprocessing-1.0.9 markdown-3.0.1 mock-2.0.0 numpy-1.16.2 pbr-5.1.3 protobuf-3.7.0 setuptools-40.8.0 tensorboard-1.13.1 tensorflow-1.13.1 tensorflow-estimator-1.13.0 termcolor-1.1.0 werkzeug-0.15.0 wheel-0.33.1

Successfully installed bleach-1.5.0 enum34-1.1.6 html5lib-0.9999999 markdown-2.6.9 numpy-1.13.3 protobuf-3.5.0.post1 setuptools-38.2.3 six-1.11.0 tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc3 werkzeug-0.12.2 wheel-0.30.0

می توانید با استفاده از دستور زیر ، محیط مجازی خود را در هر زمان غیرفعال کنید:
$ deactivate

برای فعال سازی مجدد محیط بعداً به دایرکتوری پروژه خود بروید و source tensorflow-dev / bin / activate را اجرا کنید.
اکنون که TensorFlow را نصب کردید ، مطمئن شوید که نصب TensorFlow کار می کند.
مرحله 3 – اعتبارسنجی نصب
برای اعتبارسنجی نصب TensorFlow ، قصد داریم اطمینان حاصل کنیم که می توانیم بسته TensorFlow را وارد کنیم.
(tensorflow-dev) $python

اعلان زیر در ترمینال شما ظاهر می شود:
>>>
این اعلان برای مفسر پایتون است ، و نشان می دهد که آماده هستید تا وارد برخی اظهارات پایتون شوید.
ابتدا این خط را تایپ کنید تا بسته TensorFlow را وارد کنید و آن را به عنوان متغیر محلی tf در دسترس قرار دهید. ENTER را پس از تایپ کردن در خط کد فشار دهید:
<<< import tensorflow as tf

اگر هیچ خطایی دریافت نکردید ، TensorFlow را با موفقیت نصب کرده اید. اگر خطایی دریافت کردید ، باید اطمینان حاصل کنید که سرور شما به اندازه کافی قدرتمند است تا بتواند TensorFlow را اداره کند. ممکن است نیاز به تغییر اندازه سرور خود داشته باشید ، مطمئن شوید که حداقل 4 گیگ حافظه دارد.
نتیجه
در این آموزش ، TensorFlow را در یک محیط مجازی Python نصب کرده اید و تأیید کرده اید که TensorFlow با وارد کردن آن کار می کند.
راهنمای برنامه نویسان TensorFlow یک منبع و مرجع مفید برای توسعه TensorFlow فراهم می کند. همچنین می توانید در Kaggle جستجو کنید که یک محیط رقابتی را برای استفاده عملی از مفاهیم یادگیری ماشین فراهم میکند و شما را همراه علاقه مندان به یادگیری ماشین ، علوم داده و آمار هدایت می کند.

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

BGP protocol Border Gateway یکی از پروتکل های اصلی مسئول مسیریابی بسته ها از طریق اینترنت است ، بنابراین هنگامی که اشتباه پیش برود ، ممکن است قطعی های قابل توجهی رخ دهد. به عنوان مثال ، در سال 2019 ، یک ISP کوچک یک پیکربندی غلط BGP ایجاد کرد که متأسفانه در بالادست منتشر شد و بخش های بزرگی از Cloudflare و AWS را بصورت آفلاین بیش از یک ساعت در اختیار گرفت. همچنین ، یک سال قبل ، یک BGP به منظور رهگیری ترافیک یک ارائه دهنده مشهور کیف پول ارز رمزی ربوده شد و وجوه مشتریان مورد سرقت قرار گرفت.
BGPalerter ابزاری منبع باز برای نظارت بر شبکه BGP است که می تواند هشدارهایی را در مورد فعالیت BGP در زمان واقعی ارائه دهد ، از جمله قابلیت مشاهده مسیر و اعلام مسیر جدید و همچنین فعالیت های بالقوه نامناسب مانند ربودن مسیر یا وجود نشتی اطلاعات در مسیر.
توجه: BGPalerter به طور خودکار اطلاعات مسیریابی شبکه را در دسترس عموم قرار می دهد ، به این معنی که دیگر نیازی به سطح دسترسی ممتاز یا ادغام شبکه (هایی) که مایل به نظارت آن هستید نمیباشد. کلیه نظارت ها کاملاً مطابق با قانون سوءاستفاده رایانه ای ، قانون کلاهبرداری کامپیوتری و سایر قوانین مشابه است. با این حال ، توصیه می شود هرگونه یافته مرتبط با اپراتور شبکه آسیب دیده را افشا کنید.

در این آموزش ،BGPalerter را نصب و پیکربندی می کنید تا شبکه های مهم خود را برای فعالیت های مشکوک پایش کنید.
پیش نیازها
برای تکمیل این آموزش ، به موارد زیر نیاز دارید:
سرور مجازی Ubuntu 18.04 که طبق راهنمای ستاپ اولیه سرور مجازی با اوبونتو 18.04 راه اندازی، و شامل یک کاربر غیر ریشه sudo باشد.
یک یا چند شبکه یا دستگاهی که مایل به نظارت بر آن هستید، به عنوان مثال:
سرور مجازی که نگهداری می کنید
o شبکه شرکت تان
o ISP محلی تان
برای هر دستگاه یا شبکه باید آدرس IP شخصی ، محدوده آدرس IP یا شماره سیستم خودمختاری را که بخشی از آن است شناسایی کنید. این قسمت در مرحله 1 پوشانده شده است.
پس از آماده شدن ، به عنوان کاربر غیر ریشه خود وارد سرور مجازی شوید.
مرحله 1 – شناسایی شبکه ها برای نظارت
در این مرحله جزئیات مربوط به شبکه هایی که می خواهید نظارت کنید را مشخص می کنید.
BGPalerter می تواند بر اساس آدرسهای IP یا پیشوندهای شبکه نظارت کند. همچنین می تواند براساس شماره سیستم خودمختار (AS) ، که یک شناساگر جهانی منحصر به فرد برای شبکه متعلق به یک نهاد اداری خاص است ، کل شبکه ها را رصد کند.
برای یافتن این اطلاعات ، می توانید از سرویس جستجوی IP-to-ASN WHOIS ارائه شده توسط سرویس هوشمند تهدید Team Cymru استفاده کنید. درواقع یک سرور WHOIS سفارشی است که به دنبال جستجوی آدرس IP و اطلاعات مسیریابی شبکه است.
اگر قبلاً whois  را نصب نکرده اید ، می توانید آن را با استفاده از دستورات زیر نصب کنید:
$ sudo apt update

$ sudo apt install whois

پس از تأیید اینکه Whois نصب شده است ، با انجام جستجوی آدرس IP سرور مجازی خود ، با استفاده از آرگومان -h برای تعیین سرور مجازی اختصاصی ، شروع به کار کنید:
$ whois -h whois.cymru.com your-ip-address

با این کار نتیجه ای مشابه زیر حاصل می شود ، که نام و شماره AS را نشان می دهد که سرور مجازی شما بخشی از آن است. این معمولاً به عنوان ارائه دهنده میزبان سرور مجازی شما خواهد بود.
Output
AS | IP | AS Name
14061 | your-ip-address | vpsgol-ASN, US

در مرحله بعد ، می توانید برای شناسایی پیشوند / گستره شبکه ای که سرور مجازی شما بخشی از آن است ، یک جستجو انجام دهید. این کار را با اضافه کردن آرگومان -p به درخواست خود انجام می دهید:
$ whois -h whois.cymru.com ” -p your-ip-address”

خروجی بسیار شبیه به دستور قبلی خواهد بود ، اما پیشوند آدرس IP را که آدرس IP سرور مجازی شما به آن تعلق دارد نشان می دهد:
utput
AS | IP | BGP Prefix | AS Name
14061 | your-ip-address | 157.230.80.0/20 | vpsgol-ASN, US

در آخر ، می توانید جزئیات بیشتری از AS را که سرور مجازی شما بخشی از آن است ، جستجو کنید ، از جمله منطقه جغرافیایی و تاریخ تخصیص.
در شماره AS که با استفاده از دستورات قبلی مشخص کرده اید جایگزین کنید. شما از آرگومان -v برای فعال کردن خروجی طویل استفاده می کنید ، که تضمین می کند تمام جزئیات مربوطه نشان داده شده اند:
$ whois -h whois.cymru.com ” -v as14061″

خروجی اطلاعات بیشتری در مورد AS نشان می دهد:
Output
AS | CC | Registry | Allocated | AS Name
14061 | US | arin | 2012-09-25 | vpsgol-ASN, US

شما جزئیات اصلی در مورد شبکه (های) را که می خواهید نظارت کنید شناسایی کرده اید. یادداشتی از این جزئیات را در جایی نگه دارید ، زیرا بعداً به آنها احتیاج دارید. در مرحله بعد ، تنظیم BGPalerter را شروع می کنید.
مرحله 2 – ایجاد یک کاربر بدون امتیازت برای BGPalerter
در این مرحله ، یک حساب کاربری جدید بدون امتیازات برای BGPalerter ایجاد خواهید کرد ، زیرا این برنامه نیازی به اجرای امتیازات sudo / root ندارد.
در مرحله اول ، یک کاربر جدید با رمز عبور غیرفعال ایجاد کنید:
$ sudo adduser –disabled-password bgpalerter

نیازی به تنظیم گذرواژه یا کلیدهای SSH نیست ، زیرا از این کاربر فقط به عنوان یک حساب کاربری برای اجرا / نگهداری BGPalerter استفاده خواهید کرد.
با استفاده از su به کاربر جدید سوییچ کنید:
$ sudo su bgpalerter

اکنون به عنوان کاربر جدید وارد سیستم می شوید:
bgpalerter@droplet:/home/user$
برای رفتن به دیرکتوری اصلی کاربر جدید خود از دستور cd استفاده کنید:
bgpalerter@droplet:/home/user$ cd
bgpalerter@droplet:~$

یک کاربر جدید بدون امتیازت برای BGPalerter ایجاد کرده اید. در مرحله بعد ، BGPalerter را روی سیستم خود نصب و پیکربندی خواهید کرد.
مرحله 3 – نصب و پیکربندی BGPalerter
در این مرحله BGPalerter را نصب و پیکربندی می کنید. اطمینان حاصل کنید که هنوز به عنوان کاربر جدید بدون امتیازات خود وارد سیستم شده اید.
در مرحله اول ، برای اطمینان از دانلود جدیدترین نسخه ، باید آخرین نسخه BGPalerter را شناسایی کنید. به صفحه BGPalerter Releases بروید و یک کپی از لینک دانلود برای جدیدترین نسخه Linux x64 بگیرید.
اکنون می توانید یک کپی از BGPalerter را با استفاده از wget دانلود کنید ، مطمئن شوید که در لینک دانلود صحیح جایگزین می کنید:
$ wget https://github.com/nttgin/BGPalerter/releases/download/v1.24.0/bgpalerter-linux-x64

پس از اتمام دانلود فایل ، آن را به عنوان قابل اجرا علامت گذاری کنید:
$ chmod +x bgpalerter-linux-x64

در مرحله بعد ، با بررسی شماره نسخه ، بررسی کنید که BGPalerter دانلود و نصب شده است:
$ ./bgpalerter-linux-x64 –version

شماره نسخه فعلی را به خروجی می فرستد:
Output
1.24.0

قبل از اجرای صحیح BGPalerter ، باید شبکه هایی را که می خواهید نظارت کنید را در یک فایل پیکربندی مشخص کنید. فایل prefixes.yml را در ویرایشگر متن مورد علاقه خود ایجاد و باز کنید:
$ nano ~/prefixes.yml

در این فایل پیکربندی ، هر یک از آدرس های IP اختصاصی ، محدوده آدرس IP و شماره AS را که می خواهید نظارت کنید تعیین می کنید.
مثال زیر را اضافه کنید و مقادیر پیکربندی را مطابق نیاز با استفاده از اطلاعات شبکه ای که در مرحله 1 مشخص کرده اید تنظیم کنید:
~/prefixes.yml
your-ip-address/32:
description: My Server
asn:
– 14061
ignoreMorespecifics: false

157.230.80.0/20:
description: IP range for my Server
asn:
– 14061
ignoreMorespecifics: false

options:
monitorASns:
‘14061’:
group: default

شما می توانید بسیاری از محدوده های آدرس IP یا شماره AS را به صورت مورد نظر خود نظارت کنید. برای نظارت بر آدرسهای IP اختصاصی ، آنها را با استفاده از / 32 برای IPv4 و / 128 برای IPv6 نمایش دهید.
مقدار injoreMorespecifics برای این استفاده میشود که کنترل کند آیا BGPalerter باید فعالیت را برای مسیرهایی که خاص تر (کوچکتر) از مسیری که مشاهده می کنید ، هستند نادیده بگیرد یا خیر. به عنوان مثال ، اگر شما یک / 20 را رصد می کنید و یک تغییر مسیر برای یک / 24 در داخل آن تشخیص داده می شود ، به نظر می رسد خاص تر باشد. در بیشتر موارد ، نباید این موارد را نادیده بگیرید ، اما اگر در حال نظارت بر شبکه بزرگی با پیشوندهای مشتری نماینده متعدد هستید ، این کار ممکن است به کاهش نویز پس زمینه کمک کند.
اکنون می توانید برای اولین بار BGPalerter را برای شروع نظارت بر شبکه های خود اجرا کنید:
$ ./bgpalerter-linux-x64

اگر BGPalerter با موفقیت شروع شود ، خروجی مشابه زیر را مشاهده خواهید کرد. توجه داشته باشید که بعضی اوقات ممکن است چند دقیقه طول بکشد تا مانیتورینگ شروع شود:
Output
Impossible to load config.yml. A default configuration file has been generated.
BGPalerter, version: 1.24.0 environment: production
Loaded config: /home/bgpalerter/config.yml
Monitoring 157.230.80.0/20
Monitoring your-ip-address/32
Monitoring AS 14061

BGPalerter تا زمانی که با استفاده از Ctrl + C آن را متوقف کنید ، ادامه خواهد یافت.
در مرحله بعد برخی از هشدارهایی را که BGPalerter می تواند ایجاد کند ، تفسیر می کنید.
مرحله 4 – تفسیر هشدارهای BGPalerter
در این مرحله ، چند نمونه از هشدارهای BGPalerter را مرور می کنید. BGPalerter هشدارهایی را به عنوان منبع اصلی خروجی و همچنین به صورت اختیاری برای هر نقطه انتهایی گزارش اضافی ارسال می کند که می تواند در config.yml پیکربندی شود ، همانطور که در مستندات BGPalerter شرح داده شده است.
به طور پیش فرض ، BGPalerter در مورد موارد زیر هشدار می دهد:
ربوده شدن مسیر: هنگامی اتفاق می افتد که AS پیشوندی را که مجاز به آن نیست اعلام کند و باعث می شود ترافیک به اشتباه هدایت شود. این مسئله می تواند یک حمله عمدی باشد یا یک خطای پیکربندی تصادفی.
از دست رفتن دید در مسیر: وقتی اکثر روترهای BGP در اینترنت قادر به مسیریابی با اطمینان هستند ، یک مسیر قابل مشاهده است. از دست دادن دید به عدم امکان دسترسی شبکه شما مربوط می شود ، به عنوان مثال اگر همتای BGP شما متوقف شده باشد.
اطلاعیه های زیر پیشوند جدید: زمانی اتفاق میافتد که AS شروع به اعلام پیشوند می کند که از آنچه پیش بینی می شود کوچکتر باشد. این می تواند حاکی از تغییر پیکربندی عمدی ، پیکربندی غلط تصادفی یا در برخی موارد نشانگر حمله باشد.
فعالیت در AS: معمولاً به اطلاعیه های جدید مسیر اشاره می کند. اگر BGPalerter هنوز از آن آگاهی نداشته باشد ، به صورت “new” در نظر گرفته می شود.
در زیر برخی از هشدارهای مثال ، همراه با توضیحی کوتاه از معنای آنها آمده است:
Alert #1
The prefix 203.0.113.0/24 is announced by AS64496 instead of AS65540

این هشدار شواهدی از ربودن مسیر را نشان می دهد ، جایی که جایی که AS64496 ، 203.0.113.0/24 را اعلام کرده است ولی پیش بینی می شود این مسیر توسط AS65540اعلام شود. این یک نشانگر قوی از تنظیم نادرست منجر به نشت مسیر یا ربوده شدن عمدی توسط یک مهاجم میباشد.
Alert #2
The prefix 203.0.113.0/24 has been withdrawn. It is no longer visible from 6 peers

این هشدار نشان می دهد که شبکه 203.0.113.0/24 دیگر قابل مشاهده نیست. که ممکن است به دلیل یک مشکل مسیریابی در بالادست باشد یا یک روتر دچار نقص برق شده باشد.
Alert #3
A new prefix 203.0.113.0/25 is announced by AS64496. It should be instead 203.0.113.0/24 annou

این هشدار نشان می دهد که پیشوند خاص تری در جایی که پیش بینی نشده است اعلام شده است ، برای مثال با اعلام یک / 25 هنگامی که فقط یک / 24 انتظار می رود. به احتمال زیاد یک پیکربندی نادرست است ، اما در برخی موارد می تواند شواهدی از ربودن مسیر باشد.
Alert #4
AS64496 is announcing 192.0.2.0/24 but this prefix is not in the configured list of

در نهایت ، این هشدار نشان می دهد که AS64496 پیشوندی را اعلام کرده است که BGPalerter هنوز از آن چیزی نمی داند. این امر می تواند به این دلیل باشد که شما به طور قانونی پیشوند جدید را اعلام می کنید ، یا می تواند نشان دهنده پیکربندی غلط باشد و منجر به این شود که به طور اتفاقی پیشوند متعلق به شخص دیگری را اعلام کنید.
در این مرحله ، شما چندین نمونه از هشدارهای BGPalerter را مرور کردید. در مرحله بعد ، BGPalerter را پیکربندی می کنید تا به طور خودکار در بوت اجرا شود.
مرحله 5 – شروع BGPalerter در Boot
در این مرحله آخر ، BGPalerter را پیکربندی می کنید تا در بوت اجرا شود.
اطمینان حاصل کنید که هنوز به عنوان کاربر جدید بدون امتیازت در سیستم هستید و سپس ویرایشگر crontab را باز کنید:
$ crontab -e

در مرحله بعد ، ورودی زیر را در انتهای فایل crontab اضافه کنید:
crontab
@reboot sleep 10; screen -dmS bgpalerter “./bgpalerter-linux-x64”

هر بار که سیستم شما بوت می شود ، یک بخش screen جداشده با نام “bgpalerter” ایجاد می کند و BGPalerter را در داخل آن شروع می کنید.
ویرایشگر crontab را ذخیره کرده و از آن خارج شوید. اکنون می توانید سیستم خود را ریبوت کنید تا مطمئن شوید که BGPalerter به درستی از بوت شروع می شود.
ابتدا باید از کاربر BGPalerter خود خارج شوید:
$ logout

سپس با ریبوت عادی سیستم ادامه دهید:
$ sudo reboot

پس از ریبوت سیستم ، دوباره به سرور مجازی خود وارد شوید و برای دسترسی دوباره به کاربر BGPalerter خود ، از su استفاده کنید:
$ sudo su bgpalerter

سپس می توانید در هر زمان به بخش وصل شوید تا خروجی BGPalerter را مشاهده کنید:

$ screen -r bgpalerter

در این مرحله آخر ، شما BGPalerter را پیکربندی کرده اید تا در بوت اجرا شود.
نتیجه
در این مقاله BGPalerter را تنظیم کرده اید و از آن برای نظارت بر شبکه برای تغییرات مسیریابی BGP استفاده می کنید.
اگر می خواهید BGPalerter کاربر پسندتر شود ، می توانید آن را برای ارسال هشدار به کانال Slack از طریق یک webhook پیکربندی کنید:
Configure Slack Reporting for BGPalerter
اگر می خواهید در مورد خود BGP اطلاعات بیشتری کسب کنید ، اما به یک محیط تولید BGP دسترسی ندارید ، میتوانید از DN42 برای آزمایش BGP در یک محیط امن و منزوی بهره ببرید:
Decentralized Network 42

 

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

نصب و پیکربندی Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

کلمات کلیدی خرید سرور

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

 

 

 

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

در حالی که بسیاری از کاربران به عملکرد سیستم مدیریت دیتابیس مانند MySQL احتیاج دارند ، ممکن است از تعامل با سیستم فقط از طریق MySQL احساس راحتی نداشته باشند.
phpMyAdmin به گونه ای ایجاد شده است که کاربران بتوانند از طریق یک رابط وب با MySQL در تعامل باشند. در این راهنما ، ما در مورد نحوه نصب و ایمن سازی phpMyAdmin بحث خواهیم کرد تا بتوانید با اطمینان از آن استفاده کنید تا پایگاه های داده خود را بر روی سیستم Ubuntu 20.04 مدیریت کنید.
پیش نیازها
برای تکمیل این راهنما ، به موارد زیر نیاز دارید:
• سرور مجازی Ubuntu 20.04. این سرور مجازی باید دارای یک کاربر غیر ریشه با امتیازات ادمین و فایروال تنظیم شده با ufw باشد. برای تنظیم این برنامه ، راهنمای تنظیم اولیه سرور مجازی برای اوبونتو 20.04 را دنبال کنید.
• یک پشته LAMP (Linux ، Apache ، MySQL و PHP) که روی سرور مجازی Ubuntu 20.04 شما نصب شده باشد. اگر این کار هنوز انجام نشده است ، می توانید در مورد نصب پشته LAMP در اوبونتو 20.04 این راهنما را دنبال کنید.
علاوه بر این ، هنگام استفاده از نرم افزارهایی مانند phpMyAdmin ملاحظات امنیتی مهمی وجود دارد ، زیرا:
• به طور مستقیم با نصب MySQL شما ارتباط برقرار میکند
• احراز هویت را با استفاده از اعتبارات MySQL انجام می دهد
• نتایج را برای پرس و جوهای SQL دلخواه اجرا می کند و برمیگرداند
به همین دلایل ، و از آنجا که یک برنامه PHP با استقرار گسترده است که غالباً مورد حمله قرار می گیرد ، هرگز نباید phpMyAdmin را روی سیستم های از راه دور از طریق اتصال HTTP ساده اجرا کنید.
اگر دامنه موجود را با گواهی SSL / TLS پیکربندی نکرده اید ، می توانید این راهنما را در زمینه ایمن سازی Apache با Let’s encrypt در Ubuntu 20.04 دنبال کنید. با این کار شما نیاز به ثبت دامنه ، ایجاد رکوردهای DNS برای سرور مجازی خود و تنظیم یک هاست مجازی Apache دارید.
مرحله 1 – نصب phpMyAdmin
می توانید از APT برای نصب phpMyAdmin از مخازن پیش فرض اوبونتو استفاده کنید.
به عنوان کاربر sudo غیر ریشه شما ، ایندکس بسته سرور مجازی خود را به روز کنید:
⦁ $ sudo apt update

پس از آن می توانید بسته phpmyadmin را نصب کنید. در کنار این بسته ، مستندات رسمی همچنین به شما توصیه می کنند که چند پسوند PHP را روی سرور مجازی خود نصب کنید تا قابلیت های خاص و عملکرد آن را بهبود بخشید.
اگر آموزش پیش نیاز LAMP stack را دنبال کرده باشید ، چندین مورد از این ماژول ها به همراه بسته php نصب شده اند. با این حال ، توصیه می شود که این بسته ها را نیز نصب کنید:
⦁ php-mbstring: ماژولی برای مدیریت رشته های غیر ASCII و تبدیل رشته ها به رمزگذاری های مختلف
⦁ php-zip: این افزونه از آپلود فایلهای zip در phpMyAdmin پشتیبانی می کند
⦁ php-gd: پشتیبانی از کتابخانه GD Graphics را فعال می کند
⦁ php-json: پشتیبانی از PHP را برای سریال سازی JSON فراهم می کند
⦁ php-curl: به PHP اجازه می دهد تا با انواع مختلفی از سرور مجازی ها با استفاده از پروتکل های مختلف ارتباط برقرار کند
برای نصب این بسته ها روی سیستم خود دستور زیر را اجرا کنید. لطفاً توجه داشته باشید که مراحل نصب نیاز دارد انتخاب هایی را برای پیکربندی صحیح phpMyAdmin انجام دهید. مختصر این انتخاب ها را بررسی میکنیم:
⦁ $ sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

در اینجا گزینه هایی که باید هنگام درخواست از شما برای پیکربندی صحیح نصب خود انتخاب کنید، آمد اند:
• برای انتخاب سرور مجازی ، apache2 را انتخاب کنید
هشدار: هنگامی که اعلان ظاهر می شود ، “apache2” هایلایت می شود ، اما انتخاب نشده است. اگر برای انتخاب Apache ، SPACE نزنید ، نصب کننده هنگام نصب ، فایلهای لازم را جابجا نمی کند. برای انتخاب Apache ، کلید SPACE ، TAB و سپس ENTER را بزنید.
• وقتی از شما سؤال شد که آیا از dbconfig-Common برای راه‌اندازی پایگاه داده استفاده کنید ، yes را انتخاب کنید
• سپس از شما خواسته می شود رمزعبور برنامه MySQL را برای phpMyAdmin انتخاب و تأیید کنید
توجه: به فرض اینکه MySQL را با پیروی از مرحله 2 آموزش پیش نیاز پشته LAMP نصب کرده اید ، ممکن است تصمیم گرفته باشید که افزونه Validate Password را فعال کنید. همانند این مقاله ، هنگام تلاش برای تنظیم گذرواژه برای کاربر phpmyadmin ، فعال کردن این مؤلفه خطایی را ایجاد می کند:

برای برطرف کردن این گزینه گزینه abort را انتخاب کنید تا مراحل نصب متوقف شود. سپس اعلان MySQL را باز کنید:
⦁ $ sudo mysql

یا اگر احراز هویت رمز عبور را برای کاربر ریشه MySQL فعال کرده اید ، این دستور را اجرا کرده و در صورت درخواست ، رمزعبور خود را وارد کنید:
⦁ $ mysql -u root -p

از اعلان ، دستور زیر را برای غیرفعال کردن مؤلفه Validate Password اجرا کنید. توجه داشته باشید که این کار در واقع آن را حذف نمی کند ، بلکه فقط لود مؤلفه در سرور مجازی MySQL را متوقف میکند:
⦁ Mysql> UNINSTALL COMPONENT “file://component_validate_password”;

پس از آن ، می توانید کلاینت MySQL را ببندید:
⦁ Mysql> exit

سپس مجدداً بسته phpmyadmin را نصب کنید و مطابق آنچه انتظار می رود کار خواهد کرد:
⦁ $ sudo apt install phpmyadmin

پس از نصب phpMyAdmin ، می توانید یک بار دیگر MySQL را با sudo mysql یا mysql -u root -p باز کنید و سپس دستور زیر را اجرا کنید تا مجدداً Validate Password را فعال کنید:
⦁ Mysql> INSTALL COMPONENT “file://component_validate_password”;

فرآیند نصب فایل پیکربندی phpMyAdmin Apache را به دیرکتوری / etc / apache2 / conf-enabled / اضافه می کند ، جایی که به طور خودکار خوانده می شود. برای به پایان رساندن پیکربندی Apache و PHP برای کار با phpMyAdmin ، تنها کار باقیمانده در این بخش از آموزش این است که بطور صریح افزونه mbstring PHP را فعال کنید ، که می توانید با تایپ کردن این دستور این کار را انجام دهید:
⦁ $ sudo phpenmod mbstring

پس از آن ، Apache را مجدداً راه اندازی کنید تا تغییرات شما به رسمیت شناخته شود:
⦁ $ sudo systemctl restart apache2

اکنون phpMyAdmin برای کار با Apache نصب و تنظیم شده است. با این حال قبل از اینکه بتوانید وارد شوید و تعامل خود را با پایگاه داده های MySQL شروع کنید ، باید اطمینان حاصل کنید که کاربران MySQL از امتیازات لازم برای تعامل با برنامه برخوردار هستند.
مرحله 2 – تنظیم تأیید اعتبار و امتیازات کاربر
وقتی phpMyAdmin را بر روی سرور مجازی خود نصب کردید ، به طور خودکار کاربر پایگاه داده ای به نام phpmyadmin ایجاد کرد که فرآیندهای پایه خاصی را برای این برنامه انجام می دهد. به جای اینکه به عنوان این کاربر با گذرواژه اداری که در حین نصب تنظیم کرده اید وارد شوید ، توصیه می شود که به عنوان کاربر ریشه MySQL یا به عنوان کاربر اختصاصی برای مدیریت پایگاه داده از طریق رابط phpMyAdmin وارد شوید.
پیکربندی دسترسی رمز ورود برای حساب ریشه MySQL
در سیستم های اوبونتو که MySQL 5.7 (و نسخه های بعدی) را اجرا می کنند ، تأیید اعتبار کاربر ریشه MySQL بصورت پیش فرض با استفاده از افزونه auth_socket و نه با گذرواژه تنظیم شده است. این امر امکان امنیت و قابلیت استفاده بیشتر را در بسیاری از موارد فراهم می کند ، اما همچنین می تواند مواردی را پیچیده تر کند که شما نیاز به دسترسی به یک برنامه خارجی – مانند phpMyAdmin – برای دسترسی به کاربر دارید.
برای ورود به سیستم phpMyAdmin به عنوان کاربر ریشه MySQL ، باید روش احراز هویت آن را از auth_socket به شخصی که از رمز عبور استفاده می کند ، تغییر دهید ، اگر قبلاً این کار را نکرده اید. برای این کار ، اعلان MySQL را از پایانه خود باز کنید:
⦁ $ sudo mysql

سپس ، با دستور زیر بررسی کنید که هر یک از حسابهای کاربری MySQL از کدام روش تأیید اعتبار استفاده میکنند:
⦁ Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Output
+——————+——————————————-+———————–+———–+
| user | authentication_string | plugin | host |
+——————+——————————————-+———————–+———–+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost |
| phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost |
+——————+——————————————-+———————–+———–+
5 rows in set (0.00 sec)

در این مثال ، می بینید که کاربر اصلی با استفاده از افزونه auth_socket ، در واقع تأیید اعتبار می کند. برای پیکربندی حساب اصلی برای تأیید اعتبار با یک رمز عبور ، دستور ALTER USER زیر را اجرا کنید. حتما گذرواژه را به رمز عبور قوی تغییر دهید:
⦁ Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH caching_sha2_password BY ‘password’;

توجه: جمله قبلی ALTER USER کاربر ریشه MySQL را برای تأیید اعتبار با افزونه caching_sha2_password تنظیم می کند. طبق اسناد رسمی MySQL ، caching_sha2_password افزونه تأیید هویت MySQL است ، زیرا رمزگذاری پسورد ایمن تری نسبت به نسخه قدیمی ارائه میدهد ، اما هنوز به طور گسترده استفاده می شود ، mysql_native_password.
با این حال ، برخی از نسخه های PHP قابل اعتماد با caching_sha2_password کار نمی کنند. PHP گزارش داده است که این مشکل در PHP 7.4 رفع شده است ، اما اگر در هنگام تلاش برای ورود به سایت phpMyAdmin بعدا با خطایی روبرو شدید ، میتوانید به جای آن ،root را برای تأیید اعتبار خود تنظیم کنید.
⦁ Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;

سپس روش تأیید اعتبار استفاده شده توسط هریک از کاربران خود را دوباره بررسی کنید تا تأیید کنید که root دیگر با استفاده از افزونه auth_socket تایید اعتبار نمیکند:
⦁ Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Output
+——————+——————————————-+———————–+———–+
| user | authentication_string | plugin | host |
+——————+——————————————-+———————–+———–+
| root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | caching_sha2_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost |
| phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost |
+——————+——————————————-+———————–+———–+
5 rows in set (0.00 sec)

می توانید از این خروجی مشاهده کنید که کاربر اصلی با استفاده از یک رمز عبور تأیید اعتبار می کند. اکنون می توانید
به عنوان کاربر اصلی خود با گذرواژه ای که در اینجا برای آن تنظیم کرده اید وارد رابط phpMyAdmin شوید.
پیکربندی دسترسی رمز ورود برای یک کاربر اختصاصی MySQL
از طرف دیگر ، برخی ممکن است عقیده داشته باشند که اتصال به phpMyAdmin با یک کاربر اختصاصی ، بیشتر با گردش کار آن ها تناسب دارد. برای انجام این کار ، یکبار دیگر پوسته MySQL را باز کنید:
⦁ $ sudo mysql

اگر احراز هویت رمز عبور را برای کاربر اصلی خود فعال کرده اید ، همانطور که در قسمت قبل توضیح داده شد ، لازم است دستور زیر را اجرا کنید و در صورت درخواست ، رمز ورود خود را وارد کنید:
⦁ $ mysql -u root -p

از آنجا ، یک کاربر جدید ایجاد کرده و یک رمزعبور قوی به آن بدهید:
⦁ Mysql> CREATE USER ‘sammy’@’localhost’ IDENTIFIED WITH caching_sha2_password BY ‘password’;

توجه: باز هم بسته به نوع نسخه PHP که نصب کرده اید ، ممکن است بخواهید کاربر جدید خود را به جای caching_sha2_password ، با mysql_native_password تأیید هویت کنید:
⦁ Mysql> ALTER USER ‘sammy’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;

سپس به کاربر جدید خود امتیازات مناسب اعطا کنید. به عنوان مثال ، شما می توانید امتیازات کاربر را به تمام جداول موجود در دیتابیس و همچنین قدرت اضافه کردن ، تغییر و حذف امتیازهای کاربر با این دستور اعطا کنید:
⦁ Mysql> GRANT ALL PRIVILEGES ON *.* TO ‘sammy’@’localhost’ WITH GRANT OPTION;

پس از آن ، از پوسته MySQL خارج شوید:
⦁ Mysql> exit

اکنون می توانید با مراجعه به نام دامنه سرور مجازی یا آدرس IP عمومی و به دنبال آن / phpmyadmin به رابط وب دسترسی پیدا کنید:
https://your_domain_or_IP/phpmyadmin

به عنوان روت یا با نام کاربری و رمزعبور جدیدی که پیکربندی کرده اید ، وارد رابط شوید.
وقتی وارد سیستم می شوید ، رابط کاربری را مشاهده خواهید کرد که چیزی شبیه به این خواهد بود:

اکنون که می توانید به phpMyAdmin متصل شده و با آنها ارتباط برقرار کنید ، تمام کارهایی که انجام شده است ، تضمین امنیت سیستم شما برای محافظت از آن در برابر مهاجمان است.
مرحله 3 – ایمن سازی نمونه phpMyAdmin
phpMyAdmin به دلیل فراگیر بودن آن ، یک هدف محبوب برای مهاجمین است و برای جلوگیری از دسترسی غیرمجاز باید مراقبت بیشتری کنید. یکی از ساده ترین راه های انجام این کار ، قرار دادن یک دروازه در جلوی کل برنامه با استفاده از ویژگی های تأیید اعتبار داخلی .htaccessدر Apache است.
برای انجام این کار ، ابتدا باید فایل .htaccessرا که با ویرایش فایل پیکربندی Apache نصب phpMyAdmin لغو شده را فعال کنید.
از ویرایشگر متن دلخواه خود برای ویرایش فایل phpmyadmin.conf که در دیرکتوری تنظیمات Apache شما قرار گرفته است ، استفاده کنید. در اینجا ، ما از nano استفاده خواهیم کرد:
⦁ $ sudo nano /etc/apache2/conf-available/phpmyadmin.conf

یک دستورالعمل AllowOverride All را در بخش <Directory / usr / share / phpmyadmin> فایل پیکربندی ، مانند این اضافه کنید:
/etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .

وقتی این خط را اضافه کردید ، فایل را ذخیره کنید و ببندید. اگر از nano برای ویرایش فایل استفاده کرده اید ، این کار را با فشار دادن CTRL + X ، Y و سپس enter انجام دهید.
برای اجرای تغییراتی که ایجاد کرده اید ، Apache را مجدداً راه اندازی کنید:
⦁ $ sudo systemctl restart apache2

اکنون که استفاده از .htaccess را برای برنامه خود فعال کرده اید ، باید یک مورد از آن را ایجاد کنید تا در واقع برخی از اقدامات امنیتی را پیاده سازی کنید. برای موفقیت در این امر ، فایل باید در دیرکتوری برنامه کاربردی ایجاد شود. با تایپ کردن این دستور می توانید فایل لازم را ایجاد کرده و در ویرایشگر متن خود با امتیازات اصلی باز کنید:
⦁ $ sudo nano /usr/share/phpmyadmin/.htaccess

در این فایل اطلاعات زیر را وارد کنید:
/usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName “Restricted Files”
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

در اینجا منظور از هریک از این خطوط آورده شده است:
⦁ AuthType Basic: در این خط نوع تأیید هویت مورد استفاده شما مشخص می شود. این نوع، تأیید اعتبار رمز عبور را با استفاده از یک فایل رمز عبور پیاده سازی می کند.
⦁ AuthName: پیام را برای کادر گفتگوی تأیید اعتبار تنظیم می کند. شما باید آن را سری نگه دارید تا کاربران غیرمجاز هیچ اطلاعاتی درباره چیزی که محافظت می شود کسب نکنند.
⦁ AuthUserFile: مکان فایل رمز عبور را که برای تأیید اعتبار استفاده می شود را تعیین می کند. باید خارج از دایرکتوری هایی باشد که ارائه می شوند. به زودی این فایل را ایجاد خواهیم کرد.
⦁ Require valid-user : مشخص می کند که فقط کاربران معتبر باید به این منبع دسترسی داشته باشند. همان چیزی است که در واقع ورود کاربران غیرمجاز را متوقف می کند.
پس از اتمام ، فایل را ذخیره کنید و ببندید.
محلی که برای فایل رمز عبور خود انتخاب کردید /etc/phpmyadmin/.htpasswd بود. اکنون می توانید این فایل را ایجاد کرده و آن را به عنوان کاربر اولیه با ابزار htpasswd وارد کنید:
⦁ $ sudo htpasswd -c /etc/phpmyadmin/.htpasswd username

از شما خواسته می شود یک رمز عبور را برای کاربر مورد نظر خود انتخاب و تأیید کنید. پس از آن ، فایل با رمز عبور hashed که وارد کرده اید ایجاد می شود.
از شما خواسته می شود یک رمز عبور برای کاربر مورد نظر خود انتخاب و تأیید کنید. پس از آن ، فایل با رمز عبور hashed که وارد کرده اید ایجاد می شود.
⦁ $ sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

اگر می خواهید یک کاربر اضافی وارد کنید ، باید بدون پرچم -c این کار را انجام دهید ، مانند این:
https://domain_name_or_IP/phpmyadmin

پس از وارد کردن شناسه Apache ، برای وارد کردن اعتبار MySQL به صفحه تأیید صحت phpMyAdmin منتقل می شوید. این تنظیم، لایه امنیتی بیشتری را اضافه می کند ، که از آنجایی که phpMyAdmin قبلا آسیب پذیر بود ، مطلوب خواهد بود.
نتیجه
اکنون باید phpMyAdmin را در سرور مجازی Ubuntu 20.04 خود تنظیم و آماده استفاده کرده باشید. با استفاده از این رابط ، می توانید به راحتی پایگاه داده ، کاربران ، جداول و غیره ایجاد کرده و عملیات معمول مانند حذف و اصلاح ساختارها و داده ها را انجام دهید.

 

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

نصب و پیکربندی Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

کلمات کلیدی خرید سرور

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

 

 

 

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

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 ، چگونگی گنجاندن متعلقات جدید در یک پروژه و نحوه به روزرسانی این متعلقات را در صورت وجود نسخه های جدید ، بررسی کردیم.

 

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

نصب و پیکربندی Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

کلمات کلیدی خرید سرور

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

 

 

 

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

فراموش کردن رمزهای عبور برای اکثر ما اتفاق می افتد. اگر رمز عبور ریشه برای ورود به پایگاه داده 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 بازگردانی شده است. اطمینان حاصل کنید که رمزعبور ریشه جدیدی که انتخاب کرده اید قوی و ایمن است و آن را در جای امن نگه دارید.

 

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

نصب و پیکربندی Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

کلمات کلیدی خرید سرور

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

 

 

 

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

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

 

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

نصب و پیکربندی Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

کلمات کلیدی خرید سرور

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

 

 

 

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

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 را بررسی کنید.

 

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

نصب و پیکربندی Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

کلمات کلیدی خرید سرور

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

 

 

 

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

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 برای مدیریت بارهای کاری برای علوم داده ، محاسبات علمی ، تجزیه و تحلیل و پردازش داده های بزرگ استفاده کنید. از اینجا ، می توانید آموزش های ما در مورد تجزیه و تحلیل داده ها و یادگیری ماشین را مطالعه تا در مورد ابزارهای مختلف موجود برای استفاده و پروژه هایی که می توانید انجام دهید اطلاعات بیشتری کسب کنید.

 

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

نصب و پیکربندی Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

کلمات کلیدی خرید سرور

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

 

 

 

 

برچسب‌ها:

  • behnam gol mohamadi