Tumgik
vpsgold-blog · 4 years
Text
ساخت و استقرار سرور GraphQL با Node.js و MongoDB
GraphQL در سال 2015 توسط فیس بوک به عنوان یک زبان پرس و جو برای API ها منتشر شد که پرس و جو و جهش داده ها از مجموعه داده های مختلف را آسان می کند. از یک نقطه پایانی واحد ، می توانید چندین منبع داده را با یک درخواست POST منفرد جستجو کنید و به جش واردارید. GraphQL برخی از نقص طراحی معمول در معماری REST API را برطرف می کند ، مانند موقعیت هایی که نقطه انتهایی اطلاعات بیشتری را نسبت به آنچه در واقع لازم دارید برمی گرداند. همچنین ، هنگام استفاده از API های REST ممکن است برای جمع آوری تمام اطلاعات مورد نیاز خود، ممکن است نیاز به ارسال درخواست به چند مورد از نقاط انتهایی REST داشته باشید – وضعیتی که به آن مشکل n + 1 گفته می شود. نمونه ای از این موارد وقتی پیش می آید که می خواهید اطلاعات کاربر را نشان دهید ، اما باید اطلاعاتی از قبیل جزئیات شخصی و آدرس ها را از نقاط مختلف جمع آوری کنید. این مشکلات برای GraphQL اعمال نمی شوند زیرا تنها یک نقطه پایانی دارد که می تواند داده ها را از چندین مجموعه بازگرداند. داده بازگشتی به پرس و جویی که به این نقطه پایانی ارسال شده بستگی دارد. در این پرس و جو ساختار داده ای را که می خواهید دریافت کنید ، از جمله هر مجموعه داده تو در تو را تعریف می کنید. علاوه بر یک پرس و جو ، می توانید از یک جهش برای تغییر داده ها روی یک سرور مجازی GraphQL و یک اشتراک نیز برای مشاهده تغییرات در داده استفاده کنید. برای کسب اطلاعات بیشتر در مورد GraphQL و مفاهیم آن ، می توانید به مطالب موجود در وب سایت رسمی مراجعه کنید. از آنجا که GraphQL یک زبان پرس و جو با انعطاف پذیری زیاد است ، به خصوص با داده های مبتنی بر مستندات مانند MongoDB ترکیب می شود. هر دو فناوری مبتنی بر طرحواره های سلسله مراتبی ، تایپ شده هستند و در جامعه جاوا اسکریپت محبوب میباشند. همچنین ، داده های MongoDB به عنوان اشیاء JSON ذخیره می شوند ، بنابراین هیچ تجزیه و تحلیل اضافی در سرور مجازی GraphQL لازم نیست. در این آموزش ، یک سرور مجازی GraphQL با Node.js ایجاد خواهید کرد و می توانید داده ها را از یک پایگاه داده MongoDB که در اوبونتو 18.04 در حال اجرا است ، پرس و جو کنید و جهش دهید. در پایان این آموزش ، شما می توانید با استفاده از یک نقطه پایانی واحد، هم با ارسال درخواست به سرور مجازی به طور مستقیم از طریق ترمینال و هم با استفاده از رابط پیش ساخته playground در GraphiQL به داده های موجود در بانک اطلاعاتی خود دسترسی داشته باشید. با استفاده از این playground می توانید محتویات سرور مجازی GraphQL را با ارسال پرس و جوها ، جهش ها و اشتراک ها کشف کنید. همچنین ، می توانید نمایش های بصری از طرح هایی را که برای این سرور مجازی تعریف شده است ، پیدا کنید. در پایان این آموزش ، شما از playground GraphiQL برای ارتباط سریع سرور مجازی GraphQL خود استفاده خواهید کرد:
پیش نیازها قبل از شروع این راهنما به موارد زیر نیاز خواهید داشت: ⦁ سرور مجازی Ubuntu 18.04 که با پیروی از راهنمای تنظیم اولیه سرور مجازی Ubuntu 18.04 تنظیم شده باشد، شامل یک کاربر sudo غیر ریشه و فایروال نیز باشد. ⦁ نصب MongoDB و اجرای آن در اوبونتو 18.04 که می توانید با دنبال کردن آموزش نحوه نصب MongoDB در اوبونتو 18.04 آن را تنظیم کنید. ⦁ Nginx نصب شده ، همانطور که در نحوه نصب Nginx در Ubuntu 18.04 مشاهده می شود ، از جمله مرحله 4 – تنظیم بلوک های سرور مجازی. ⦁ برای دسترسی از راه دور به سرور مجازی GraphQL ، به یک نام دامنه کاملاً واجد شرایط (FQDN) و یک رکورد A نیاز دارید که به IP سرور مجازی شما اشاره کند. در صورت داشتن حساب vpsgol ، می توانید اطلاعات بیشتری در مورد این مورد با خواندن طریق مقدمه DNS اصطلاحات ، مؤلفه ها و مفاهیم ، یا اسناد دامنه و DNS کسب کنید. ⦁ آشنایی با JavaScript ، که می توانید از مجموعه نحوه کدنویسی در جاواسکریپت بیاموزید. مرحله 1 – تنظیم بانک اطلاعاتی MongoDB قبل از ایجاد سرور مجازی GraphQL ، اطمینان حاصل کنید که پایگاه داده شما درست پیکربندی شده باشد ، تأیید هویت آن فعال باشد و با داده های نمونه پر شده باشد. برای این کار باید از اعلان خط فرمان به سرور مجازی Ubuntu 18.04 که پایگاه داده MongoDB است متصل شوید. کلیه مراحل این آموزش در این سرور مجازی انجام خواهد شد. بعد از برقراری اتصال ، دستور زیر را اجرا کنید تا بررسی کنید که آیا MongoDB فعال و روی سرور مجازی شما فعال است: ⦁ $ sudo systemctl status mongodb ⦁ خروجی زیر را در ترمینال خود مشاهده خواهید کرد ، نشان می دهد که بانک اطلاعاتی MongoDB به طور فعال در حال اجرا است: Output ● mongodb.service – An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-02-23 12:23:03 UTC; 1 months 13 days ago Docs: man:mongod(1) Main PID: 2388 (mongod) Tasks: 25 (limit: 1152) CGroup: /system.slice/mongodb.service └─2388 /usr/bin/mongod –unixSocketPrefix=/run/mongodb –config /etc/mongodb.conf
قبل از ایجاد دیتابیس که داده های نمونه را در آن ذخیره می کنید ، ابتدا باید یک کاربر ادمین ایجاد کنید ، زیرا کاربران عادی در یک پایگاه داده خاص قرار می گیرند. می توانید با اجرای دستور زیر که پوسته MongoDB را باز می کند ، این کار را انجام دهید: ⦁ $ mongo ⦁ با پوسته MongoDB دسترسی مستقیم به پایگاه داده MongoDB خواهید داشت و می توانید کاربران یا بانکهای اطلاعاتی و داده های پرس و جو ایجاد کنید. در داخل این پوسته ، دستور زیر را اجرا کنید که یک کاربر ادمین جدید را به MongoDB اضافه می کند. می توانید کلمات کلیدی هایلایت شده را با نام کاربری و رمز ورود خود جایگزین کنید ، اما فراموش نکنید که آنها را در جایی بنویسید. ⦁ mongo> use admin ⦁ ⦁ mongo> db.createUser({ ⦁ ⦁ mongo> user: “admin_username”, ⦁ mongo> pwd: “admin_password”, ⦁ ⦁ mongo> roles: [{ role: “root”, db: “admin”}] ⦁ ⦁ mongo> })
خط اول دستور قبلی دیتابیس را با نام ادمین انتخاب می کند ، یعنی همان دیتابیسی که تمام نقش های ادمین در آن ذخیره می شود. با روش db.createUser () می توانید کاربر واقعی ایجاد کرده و نام کاربری ، رمزعبور و نقش های آن را تعریف کنید. اجرای این فرمان خروجی زیر را برمی گرداند: Output Successfully added user: { “user” : “admin_username”, “roles” : [ { “role” : “root”, “db” : “admin” } ] }
اکنون می توانید پوسته MongoDB را با تایپ کردن exit ببندید. در مرحله بعد ، دوباره وارد پوسته MongoDB شوید ، اما این بار با کاربر adminجدید: ⦁ $ mongo -u “admin_username” -p “admin_password” –authenticationDatabase “admin” ⦁ این دستور پوسته MongoDB را به عنوان یک کاربر خاص باز می کند، که در آن پرچم -u نام کاربری و پرچم -p رمز عبور آن کاربر را مشخص می کند. پرچم اضافی –authenticationDatabase مشخص می کند که می خواهید به عنوان ادمین وارد شوید. در مرحله بعد ، به یک بانک اطلاعاتی جدید می روید و سپس از روش db.createUser () برای ایجاد یک کاربر جدید دارای مجوز برای ایجاد تغییر در این پایگاه داده استفاده می کنید. بخش هایلایت شده را با اطلاعات مورد نظر خود جایگزین کنید ، حتما این مدارک را یادداشت کنید. دستور زیر را در پوسته MongoDB اجرا کنید: ⦁ mongo> use database_name ⦁ ⦁ mongo> db.createUser({ ⦁ ⦁ mongo> user: “username”, ⦁ ⦁ mongo> pwd: “password”, ⦁ ⦁ mongo> roles: [“readWrite”] ⦁ ⦁ mongo> })
با این کار خروجی زیر باز می گردد: Output Successfully added user: { “user” : “username”, “roles” : [“readWrite”] }
پس از ایجاد دیتابیس و کاربر ، این بانک اطلاعاتی را با داده های نمونه ای پر کنید که بعداً در این آموزش توسط سرور مجازی GraphQL می توانید جستجو کنید. برای این کار ، می توانید از نمونه مجموعه bios از وب سایت MongoDB استفاده کنید. با اجرای دستورات در قطعه کد زیر ، نسخه کوچکتری از این مجموعه داده bios را در پایگاه داده خود وارد می کنید. می توانید بخش های هایلایت شده را با اطلاعات شخصی خود جایگزین کنید ، اما برای اهداف این آموزش ، نام مجموعه را bios بگذارید: ⦁ mongo> db.bios.insertMany([ ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “_id” : 1,
⦁ mongo> “name” : { ⦁ ⦁ mongo> “first” : “John”, ⦁ ⦁ mongo> “last” : “Backus” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> “birth” : ISODate(“1924-12-03T05:00:00Z”), ⦁ mongo> “death” : ISODate(“2007-03-17T04:00:00Z”), ⦁ ⦁ mongo> “contribs” : [ ⦁ ⦁ mongo> “Fortran”, ⦁ ⦁ mongo> “ALGOL”, ⦁ ⦁ mongo> “Backus-Naur Form”, ⦁ ⦁ mongo> “FP” ⦁ ⦁ mongo> ], ⦁ ⦁ mongo> “awards” : [ ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “award” : “W.W. McDowell Award”, ⦁ ⦁ mongo> “year” : 1967, ⦁ ⦁ mongo> “by” : “IEEE Computer Society” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “award” : “National Medal of Science”, ⦁ ⦁ mongo> “year” : 1975, ⦁ ⦁ mongo> “by” : “National Science Foundation” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “award” : “Turing Award”, ⦁ ⦁ mongo> “year” : 1977, ⦁ ⦁ mongo> “by” : “ACM” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “award” : “Draper Prize”, ⦁ ⦁ mongo> “year” : 1993, ⦁ ⦁ mongo> “by” : “National Academy of Engineering” ⦁ ⦁ mongo> } ⦁ ⦁ mongo> ] ⦁ mongo> }, ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “_id” : ObjectId(“51df07b094c6acd67e492f41”), ⦁ ⦁ mongo> “name” : { ⦁ ⦁ mongo> “first” : “John”, ⦁ mongo> “last” : “McCarthy” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> “birth” : ISODate(“1927-09-04T04:00:00Z”), ⦁ ⦁ mongo> “death” : ISODate(“2011-12-24T05:00:00Z”), ⦁ ⦁ mongo> “contribs” : [ ⦁ ⦁ mongo> “Lisp”, ⦁ ⦁ mongo> “Artificial Intelligence”, ⦁ ⦁ mongo> “ALGOL” ⦁ ⦁ mongo> ], ⦁ ⦁ mongo> “awards” : [ ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “award” : “Turing Award”, ⦁ ⦁ mongo> “year” : 1971, ⦁ ⦁ mongo> “by” : “ACM” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> { ⦁ mongo> “award” : “Kyoto Prize”, ⦁ ⦁ mongo> “year” : 1988, ⦁ ⦁ mongo> “by” : “Inamori Foundation” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “award” : “National Medal of Science”, ⦁ ⦁ mongo> “year” : 1990, ⦁ ⦁ mongo> “by” : “National Science Foundation” ⦁ ⦁ mongo> } ⦁ ⦁ mongo> ] ⦁ ⦁ mongo> } ⦁ ⦁ mongo> ]);
این بلوک کد آرایه ای از آبجکت های مختلفی است که حاوی اطلاعات مربوط به دانشمندان موفق گذشته میباشد. پس از اجرای این دستورات برای وارد کردن این مجموعه به پایگاه داده خود ، پیام زیر را دریافت خواهید کرد که نشان می دهد داده ها اضافه شده اند: Output { “acknowledged” : true, “insertedIds” : [ 1, ObjectId(“51df07b094c6acd67e492f41”) ] }
پس از مشاهده پیام موفقیت ، می توانید پوسته MongoDB را با تایپ کردن exit ببندید. در مرحله بعد ، نصب MongoDB را پیکربندی کنید تا مجوز را فعال کنید و فقط کاربران معتبر بتوانند به داده ها دسترسی پیدا کنند. برای ویرایش پیکربندی نصب MongoDB ، فایل حاوی تنظیمات این نصب را باز کنید: ⦁ $ sudo nano /etc/mongodb.conf ⦁ برای فعال کردن مجوز ، خط هایلایت شده را در کد زیر را باطل کنید: /etc/mongodb.conf … # Turn on/off security. Off is currently the default #noauth = true auth = true …
برای فعال کردن این تغییرات ، MongoDB را مجدداً راه اندازی کنید: ⦁ $ Sudo systemctl restart mongodb ⦁ با اجرای دستور مطمئن شوید که پایگاه داده دوباره در حال اجرا است: ⦁ $ sudo systemctl status mongodb ⦁ خروجی زیر را مشاهده خواهید کرد: Output ● mongodb.service – An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-02-23 12:23:03 UTC; 1 months 13 days ago Docs: man:mongod(1) Main PID: 2388 (mongod) Tasks: 25 (limit: 1152) CGroup: /system.slice/mongodb.service └─2388 /usr/bin/mongod –unixSocketPrefix=/run/mongodb –config /etc/mongodb.conf
برای اطمینان از اینکه کاربر شما می تواند به دیتابیسی که ایجاد کرده اید وصل شود ، سعی کنید پوسته MongoDB را به عنوان یک کاربر معتبر با دستور زیر باز کنید: ⦁ $ mongo -u “username” -p “password” –authenticationDatabase “database_name” ⦁
از همان پرچم های قبلی استفاده میکند، فقط این بار –authenticationDatabase روی پایگاه داده ای که ایجاد کرده اید تنظیم میشود و با داده های نمونه پر میگردد. اکنون با موفقیت یک کاربر ادمین و کاربر دیگری را اضافه کرده اید که دسترسی به خواندن / نوشتن اطلاعات پایگاه داده با داده های نمونه را دارد. همچنین ، پایگاه داده دارای مجوزهای فعال است به این معنی که یک نام کاربری و رمزعبور برای دسترسی به آن نیاز دارید. در مرحله بعد سرور مجازی GraphQL را ایجاد خواهید کرد که بعداً در آموزش به این پایگاه داده وصل می شود. مرحله دوم – ایجاد سرور مجازی GraphQL با پیکربندی پایگاه داده و پر شدن با داده های نمونه ، زمان آن رسیده که یک سرور مجازی GraphQL ایجاد کنیم که بتواند این داده ها را پرس و جو کند و جهش دهد. برای این کار از Express و express-Graphql استفاده می کنید ، که هر دو در Node اجرا می شوند. Express یک چارچوب سبک برای ایجاد سریع سرور مجازی های HTTP Node.js است و Express-Graphql میان افزار را برای ایجاد سریع سرور مجازی های GraphQL امکان پذیر می کند. اولین قدم اطمینان از به روزرسانی دستگاه شما است: ⦁ $ sudo apt update ⦁ در مرحله بعد با اجرای دستورات زیر Node.js را روی سرور مجازی خود نصب کنید. به همراه Node.js همچنین npm را نصب خواهید کرد ، یک مدیر بسته برای JavaScript که روی Node.js. اجرا می شود. ⦁ $ sudo apt install nodejs npm ⦁ پس از طی مراحل نصب ، بررسی کنید که آیا نسخه Node.js که اخیراً نصب کرده اید v8.10.0 یا بالاتر است: ⦁ $ node -v ⦁ با این کار خروجی زیر باز می گردد: Output v8.10.0
برای شروع یک پروژه جدید JavaScript ، دستورات زیر را به عنوان کاربر sudo روی سرور مجازی اجرا کنید و کلمات کلیدی هایلایت شده را با نامی برای پروژه خود جایگزین کنید. ابتدا وارد دیرکتوری اصلی سرور مجازی خود شوید: ⦁ $ cd ⦁ پس از آنجا دایرکتوری جدیدی به همراه نام پروژه خود ایجاد کنید: ⦁ $ mkdir project_name ⦁ به این دیرکتوری بروید: ⦁ $ cd project_name ⦁ در آخر ، یک بسته npm جدید را با دستور زیر تنظیم کنید: ⦁ $ sudo npm init -y ⦁ بعد از اجرای npm init- پیام موفقیتی را دریافت خواهید کرد که فایل pack.json زیر ایجاد شده است: Output Wrote to /home/username/project_name/package.json:
{ “name”: “project_name”, “version”: “1.0.0”, “description”: “”, “main”: “index.js”, “scripts”: { “test”: “echo \”Error: no test specified\” && exit 1″ }, “keywords”: [], “author”: “”, “license”: “ISC” }
توجه: همچنین می توانید npm init را بدون پرچم -y اجرا کنید ، که پس از آن به سؤالات مختلفی برای تنظیم نام پروژه ، نویسنده ، و غیره پاسخ می دهید. می توانید جزئیات را وارد کنید یا فقط برای ادامه کلید Enter را بزنید.
اکنون که پروژه را آغاز کردید ، بسته های لازم برای راه اندازی سرور مجازی GraphQL را نصب کنید: ⦁ $ sudo npm install –save express express-graphql graphql ⦁ یک فایل جدید با نام index.js ایجاد کنید و متعاقباً با اجرای دستور زیر این فایل را باز کنید: ⦁ $ sudo nano index.js ⦁ در مرحله بعد ، بلوک کد زیر را در فایل تازه ایجاد شده برای تنظیم سرور مجازی GraphQL اضافه کنید: index.js const express = require(‘express’); const graphqlHTTP = require(‘express-graphql’); const { buildSchema } = require(‘graphql’);
// Construct a schema, using GraphQL schema language const schema = buildSchema(` type Query { hello: String } `);
// Provide resolver functions for your schema fields const resolvers = { hello: () => ‘Hello world!’ };
const app = express(); app.use(‘/graphql’, graphqlHTTP({ schema, rootValue: resolvers })); app.listen(4000);
console.log(`🚀 Server ready at http://localhost:4000/graphql`);
این بلوک کد از چندین بخش تشکیل شده است که همه مهم هستند. ابتدا شمای داده هایی را که توسط GraphQL API برگردانده شده است شرح می دهید: index.js … // Construct a schema, using GraphQL schema language const schema = buildSchema(` type Query { hello: String } `); … نوع Query تعریف می کند چه پرس و جوهایی میتوانند اجرا شوند و به چه فرمتی می توانند نتیجه را برگردانند. همانطور که مشاهده می کنید ، تنها پرس و جوی تعریف شده hello است که داده ها را با فرمت String برمی گرداند. در بخش بعدی ، resolvers تعیین می شوند ، جایی که داده ها با طرح هایی که می توانید پرس و جو کنند ، هماهنگ می شوند: index.js … // Provide resolver functions for your schema fields const resolvers = { hello: () => ‘Hello world!’ }; …
این resolverها مستقیماً با طرحواره ها مرتبط هستند و داده هایی را که با این طرح ها مطابقت دارد ، برمی گردانند. قسمت پایانی این بلاک کد سرور مجازی GraphQL را آغاز می کند ، نقطه پایانی API را با Express ایجاد می کند و پورتی را که انتهای GraphQL در آن در حال اجرا است توضیح می دهد: index.js … const app = express(); app.use(‘/graphql’, graphqlHTTP({ schema, rootValue: resolvers })); app.listen(4000);
console.log(`🚀 Server ready at http://localhost:4000/graphql`);
بعد از افزودن این خطوط ، ذخیره کنید و از index.js خارج شوید. در مرحله بعد ، برای اجرای سرور مجازی GraphQL ، باید فایل index.js را با Node.js. اجرا کنید. این کار به صورت دستی از خط فرمان قابل انجام است ، اما معمول است که فایل pack.json را تنظیم کنید تا این کار برای شما انجام شود. فایل pack.json را باز کنید: ⦁ $ sudo nano package.json ⦁ خط هایلایت شده زیر را به این فایل اضافه کنید: package.json { “name”: “project_name”, “version”: “1.0.0”, “description”: “”, “main”: “index.js”, “scripts”: { “start”: “node index.js”, “test”: “echo \”Error: no test specified\” && exit 1″ }, “keywords”: [], “author”: “”, “license”: “ISC” } فایل را ذخیره کنید و از آن خارج شوید. برای راه اندازی سرور مجازی GraphQL ، دستور زیر را در ترمینال اجرا کنید: ⦁ $ npm start ⦁ پس از اجرای این برنامه ، اعلان ترمینال ناپدید می شود و پیامی برای تأیید سرور مجازی GraphQL ظاهر می شود: Output 🚀 Server ready at http://localhost:4000/graphql
اگر اکنون بخش ترمینال دیگری را باز کرده اید ، می توانید با اجرای دستور زیر آزمایش کنید که آیا سرور مجازی GraphQL در حال اجرا است. این کار درخواست POST curlرا با بدنه JSON پس از پرچم –data که شامل پرس و جوی GraphQL شما به نقطه انتهایی محلی است ارسال می کند: ⦁ $ curl -X POST -H “Content-Type: application/json” –data ‘{ “query”: “{ hello }” }’ http://localhost:4000/graphql ⦁ با این کار پرس و جو همانطور که در شمای GraphQL در کد شما شرح داده شده است اجرا می شود و داده ها را با فرمت JSON قابل پیش بینی که یکسان با داده های برگشت یافته در resolver هاست، اجرا می کند: Output { “data”: { “hello”: “Hello world!” } }
توجه: در صورت خراب شدن یا گیر نکردن سرور مجازی اکسپرس ، باید فرایند node که روی سرور مجازی اجرا می شود را به صورت دستی از بین ببرید. برای لغو همه این مراحل ، می توانید موارد زیر را اجرا کنید: ⦁ $ killall node ⦁ پس از آن می توانید با دستور زیر، سرور مجازی GraphQL مجدداً راه اندازی کنید: ⦁ $ npm start ⦁ در این مرحله شما اولین نسخه از سرور مجازی GraphQL را ایجاد کرده اید که هم اکنون در یک نقطه پایانی محلی اجرا می شود که به سرور مجازی شما قابل دسترسی است. در مرحله بعد ، resolver های خود را به پایگاه داده MongoDB وصل خواهید کرد. مرحله 3 – اتصال به بانک اطلاعاتی MongoDB با نظم گیری سرور مجازی GraphQL ، اکنون می توانید ارتباط را با پایگاه داده MongoDB که قبلاً پیکربندی کرده و پر از داده کرده اید ، تنظیم نمایید و یک طرح جدید ایجاد کنید که مطابق با این داده ها باشد. برای اینکه بتوانید از سرور مجازی GraphQL به MongoDB متصل شوید ، بسته JavaScript را برای MongoDB از npm نصب کنید: ⦁ $ sudo npm install –save mongodb ⦁ پس از نصب ، index.js را در ویرایشگر متن خود باز کنید: ⦁ $ sudo nano index.js ⦁ سپس ، کد هایلایت شده زیر را درست بعد از متعلقات وارد شده به index.js اضافه کنید و مقادیر هایلایت شده را با جزئیات اتصال خود به پایگاه داده محلی MongoDB پر کنید. نام کاربری ، رمز عبور و نام پایگاه داده همان مواردی هستند که در مرحله اول این آموزش ایجاد کرده اید. index.js const express = require(‘express’); const graphqlHTTP = require(‘express-graphql’); const { buildSchema } = require(‘graphql’); const { MongoClient } = require(‘mongodb’);
const context = () => MongoClient.connect(‘mongodb://username:password@localhost:27017/database_name’, { useNewUrlParser: true }).then(client => client.db(‘database_name’)); …
این خطوط اتصال به پایگاه داده محلی MongoDB را به تابعی به نام context اضافه می کنند. این تابع context در دسترس هر resolver خواهد بود ، به همین دلیل شما از این گزینه برای تنظیم اتصالات بانک اطلاعاتی استفاده می کنید. در مرحله بعد ، در فایل index.js ، با وارد کردن خطوط هایلایت شده زیر ، تابع context را برای مقداردهی اولیه سرور مجازی GraphQL اضافه کنید: index.js … const app = express(); app.use(‘/graphql’, graphqlHTTP({ schema, rootValue: resolvers, context })); app.listen(4000);
console.log(`🚀 Server ready at http://localhost:4000/graphql`);
اکنون می توانید این تابع context را از طریق resolver های خود فراخوانی کنید و از این طریق متغیرهایی را از پایگاه داده MongoDB بخوانید. اگر به مرحله اول این آموزش بازگردید ، می توانید ببینید که کدام مقادیر در پایگاه داده وجود دارد. از اینجا ، یک طرح جدید GraphQL را تعریف کنید که با این ساختار داده مطابقت دارد. مقدار قبلی را برای طرحواره ثابت با خطوط هایلایت شده زیر بازنویسی کنید: index.js … // Construct a schema, using GrahQL schema language const schema = buildSchema(` type Query { bios: [Bio] } type Bio { name: Name, title: String, birth: String, death: String, awards: [Award] } type Name { first: String, last: String }, type Award { award: String, year: Float, by: String } `); …
نوع Query تغییر کرده است و اکنون مجموعه ای از نوع جدید Bio را برمی گرداند. این نوع جدید شامل چندین نوع از جمله دو نوع غیر اسکالر دیگر name و awards است ، به این معنی که این نوع ها با یک قالب از پیش تعریف شده مانند String یا Float مطابقت ندارند. برای اطلاعات بیشتر در مورد تعریف طرح های GraphQL می توانید به مستندات مربوط به GraphQL مراجعه کنید. همچنین ، از آنجا که resolver ها داده را از دیتابیس به شماتیک گره می زنند ، هنگام ایجاد تغییر در طرح ، کد را برای resolver ها به روز کنید. یک resolver جدید ایجاد کنید که به آن bios گفته می شود ، , برابر با Query است که می توانید در طرحواره و نام مجموعه در بانک اطلاعاتی پیدا کنید. توجه داشته باشید که در این حالت ، نام مجموعه در db.collection (“bios”) ، bios است ، اما اگر نام دیگری به مجموعه خود اختصاص داده باشید ، این نام تغییر خواهد کرد. خط هایلایت شده زیر را به index.js اضافه کنید: index.js … // Provide resolver functions for your schema fields const resolvers = { bios: (args, context) => context().then(db => db.collection(‘bios’).find().toArray()) }; …
این تابع از تابع context استفاده می کند ، که می توانید برای بازیابی متغیرها از پایگاه داده MongoDB استفاده کنید. پس از انجام این تغییرات در کد ، index.js را ذخیره کنید و از آن خارج شوید. برای فعال سازی این تغییرات ، باید سرور مجازی GraphQL را مجدداً راه اندازی کنید. با استفاده از ترکیب صفحه کلید CTRL + C می توانید روند فعلی را متوقف کرده و با اجرای دستور زیر، سرور مجازی GraphQL را شروع کنید: ⦁ $ npm start ⦁ اکنون می توانید از طرحواره به روز شده استفاده کرده و داده هایی را که درون پایگاه داده است ، جستجو کنید. اگر به طرحواره نگاه کنید ، خواهید دید که Query برای bios نوع Bio را برمی گرداند. همچنین می تواند type name را برگرداند. برای بازگرداندن تمام اسامی اول و خانوادگی برای همه bioها در پایگاه داده ، درخواست زیر را در یک پنجره ترمینال جدید به سرور مجازی GraphQL بفرستید: ⦁ curl -X POST -H “Content-Type: application/json” –data ‘{ “query”: “{ bios { name { first, last } } }” }’ http://localhost:4000/graphql ⦁ دوباره یک آبجکت JSON را که مطابق با ساختار طرح است برمی گرداند: Output {“data”:{“bios”:[{“name”:{“first”:”John”,”last”:”Backus”}},{“name”:{“first”:”John”,”last”:”McCarthy”}}]}}
به راحتی می توانید با گسترش پرس و جو با هر یک از انواع توصیف شده در نوع Bio ، متغیرهای بیشتری را از بایوس بازیابی کنید. همچنین ، می توانید با مشخص کردن یک id ، bio را بازیابی کنید. برای انجام این کار باید نوع دیگری به Query اضافه کنید و resolver ها را گسترش دهید. به این منظور ، index.js را در ویرایشگر متن خود باز کنید: ⦁ $ sudo nano index.js ⦁ خطوط هایلایت شده کد را اضافه کنید: index.js … // Construct a schema, using GrahQL schema language const schema = buildSchema(` type Query { bios: [Bio] bio(id: Int): Bio }
// Provide resolver functions for your schema fields const resolvers = { bios: (args, context) => context().then(db => db.collection(‘bios’).find().toArray()), bio: (args, context) => context().then(db => db.collection(‘bios’).findOne({ _id: args.id })) }; …
فایل را ذخیره کنید و از آن خارج شوید. در ترمینالی که سرور مجازی GraphQL شما در حال اجراست ، CTRL + C را فشار دهید تا آن را از حالت اجرا متوقف کنید، سپس دستور زیر را برای راه اندازی مجدد آن اجرا کنید: ⦁ $ npm start ⦁ در پنجره ترمینال دیگر ، درخواست GraphQL زیر را اجرا کنید:
⦁ $ curl -X POST -H “Content-Type: application/json” –data ‘{ “query”: “{ bio(id: 1) { name { first, last } } }” }’ http://localhost:4000/graphql ⦁
ورودی برای bio که دارای شناسه برابر با 1 است را برمی گرداند: Output { “data”: { “bio”: { “name”: { “first”: “John”, “last”: “Backus” } } } }
توانایی جستجوی داده ها از یک پایگاه داده تنها ویژگی GraphQL نیست. همچنین می توانید داده ها را در دیتابیس تغییر دهید. برای انجام این کار ، index.js را باز کنید: ⦁ $ sudo nano index.js ⦁ در کنار نوع Query می توانید از نوع Mutation نیز استفاده کنید که به شما امکان می دهد پایگاه داده را جهش دهید. برای استفاده از این نوع ، آن را به طرح اضافه کنید و همچنین با وارد کردن این خطوط هایلایت شده ، انواع ورودی را ایجاد کنید: index.js … // Construct a schema, using GraphQL schema language const schema = buildSchema(` type Query { bios: [Bio] bio(id: Int): Bio } type Mutation { addBio(input: BioInput) : Bio } input BioInput { name: NameInput title: String birth: String death: String } input NameInput { first: String last: String } …
این نوع ورودی ها تعریف می کنند که کدام متغیرها می توانند به عنوان ورودی استفاده شوند ، که می توانید به آنها در resolver ها دسترسی داشته باشید و از آنها برای درج یک سند جدید در بانک اطلاعاتی استفاده کنید. این کار را با اضافه کردن سطرهای زیر به index.js انجام دهید: index.js … // Provide resolver functions for your schema fields const resolvers = { bios: (args, context) => context().then(db => db.collection(‘bios’).find().toArray()), bio: (args, context) => context().then(db => db.collection(‘bios’).findOne({ _id: args.id })), addBio: (args, context) => context().then(db => db.collection(‘bios’).insertOne({ name: args.input.name, title: args.input.title, death: args.input.death, birth: args.input.birth})).then(response => response.ops[0]) }; …
درست همانطور که در مورد resolver ها برای جستارهای معمول گفته شد ، شما باید یک مقدار از resolver در index.js را برگردانید. در مورد جهش که نوع Bio در آن جهش یافته است ، مقدار bio جهش یافته را برمی گردانید. در این مرحله ، فایل index.js شما شامل سطرهای زیر خواهد بود: index.js iconst express = require(‘express’); const graphqlHTTP = require(‘express-graphql’); const { buildSchema } = require(‘graphql’); const { MongoClient } = require(‘mongodb’);
const context = () => MongoClient.connect(‘mongodb://username:password@localhost:27017/database_name’, { useNewUrlParser: true }) .then(client => client.db(‘GraphQL_Test’));
// Construct a schema, using GraphQL schema language const schema = buildSchema(` type Query { bios: [Bio] bio(id: Int): Bio } type Mutation { addBio(input: BioInput) : Bio } input BioInput { name: NameInput title: String birth: String death: String } input NameInput { first: String last: String } type Bio { name: Name, title: String, birth: String, death: String, awards: [Award] } type Name { first: String, last: String }, type Award { award: String, year: Float, by: String } `);
// Provide resolver functions for your schema fields const resolvers = { bios: (args, context) =>context().then(db => db.collection(‘Sample_Data’).find().toArray()), bio: (args, context) =>context().then(db => db.collection(‘Sample_Data’).findOne({ _id: args.id })), addBio: (args, context) => context().then(db => db.collection(‘Sample_Data’).insertOne({ name: args.input.name, title: args.input.title, death: args.input.death, birth: args.input.birth})).then(response => response.ops[0]) };
const app = express(); app.use(‘/graphql’, graphqlHTTP({ schema, rootValue: resolvers, context })); app.listen(4000);
console.log(`🚀 Server ready at http://localhost:4000/graphql`);
ذخیره کنید و از index.js خارج شوید. برای بررسی اینکه جهش جدید شما در حال کار است ، با فشار دادن CTRL + c و اجرای npm در ترمینالی که سرور مجازی GraphQL شما را اجرا می کند ، سرور مجازی GraphQL را مجدداً راه اندازی کنید ، سپس یک بخش ترمینال دیگر را برای اجرای درخواست curl زیر باز کنید. درست مانند درخواست curl برای پرس و جو ، بدنه در پرچم –data به سرور مجازی GraphQL ارسال می شود. قسمت های هایلایت شده به دیتابیس اضافه می شود: ⦁ $ curl -X POST -H “Content-Type: application/json” –data ‘{ “query”: “mutation { addBio(input: { name: { first: \”test\”, last: \”user\” } }) { name { first, last } } }” }’ http://localhost:4000/graphql ⦁ نتیجه زیر را به همراه دارد ، بدین معنی که شما یک bio جدید را به بانک اطلاعاتی وارد کرده اید: Output { “data”: { “addBio”: { “name”: { “first”: “test”, “last”: “user” } } } }
در این مرحله ارتباط خود را با MongoDB و سرور مجازی GraphQL ایجاد کردید و با اجر��ی پرس و جوهای GraphQL می توانید داده ها را از این پایگاه داده بازیابی کنید و جهش دهید. در مرحله بعد ، این سرور مجازی GraphQL را برای دسترسی از راه دور قرار می دهید. مرحله 4 – اجازه دسترسی از راه دور با راه اندازی بانک اطلاعاتی و سرور مجازی GraphQL ، اکنون می توانید سرور مجازی GraphQL را پیکربندی کنید تا امکان دسترسی از راه دور فراهم شود. برای این کار از Nginx استفاده می کنید ، که در آموزش پیش نیاز نحوه نصب Nginx در اوبونتو 18.04 این کار را انجام دادید. این پیکربندی Nginx را می توان در فایل /etc/nginx/sites-available/example.com یافت ، جایی که example.com نام سرور مجازی ی است که در آموزش پیش نیاز اضافه کردید. این فایل را برای ویرایش باز کنید و نام دامنه خود را در example.com جایگزین کنید: ⦁ $ sudo nano /etc/nginx/sites-available/example.com ⦁ در این فایل می توانید یک بلوک سرور مجازی پیدا کنید که به پورت 80 گوش می دهد ، جایی که در حال حاضر مقداری برای server_name در آموزش پیش نیاز تنظیم کرده اید. در داخل این بلوک سرور مجازی ، مقدار root را تغییر دهید تا دایرکتوری باشد که در آن کد را برای سرور مجازی GraphQL ایجاد کرده و index.js را به عنوان فهرست اضافه می کنید. همچنین ، در بلوک لوکیشن ، یک proxy_pass تنظیم کنید تا بتوانید از IP سرور مجازی یا نام دامنه دلخواه خود برای مراجعه به سرور مجازی GraphQL استفاده کنید: /etc/nginx/sites-available/example.com server { listen 80; listen [::]:80;
root /project_name; index index.js;
server_name example.com;
location / { proxy_pass http://localhost:4000/graphql; } }
با اجرای دستور زیر مطمئن شوید که هیچ خطای نحوی Nginx در این فایل پیکربندی وجود ندارد: ⦁ $ sudo nginx -t ⦁ خروجی زیر را دریافت خواهید کرد: Output nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
هنگامی که هیچ خطایی برای فایل پیکربندی یافت نشد ، Nginx را مجدداً راه اندازی کنید: ⦁ $ sudo systemctl restart nginx ⦁ اکنون می توانید با اجرا و جایگزین کردن example.com توسط IP سرور مجازی یا نام دامنه شخصی خود به سرور مجازی GraphQL خود از هر تب بخش ترمینال دسترسی داشته باشید: ⦁ $ curl -X POST -H “Content-Type: application/json” –data ‘{ “query”: “{ bios { name { first, last } } }” }’ http://example.com ⦁ همان آبجکت JSON به شیوه مرحله قبلی را برمی گرداند که شامل هر داده اضافی است که ممکن است با استفاده از یک جهش ، اضافه کرده باشید. Output {“data”:{“bios”:[{“name”:{“first”:”John”,”last”:”Backus”}},{“name”:{“first”:”John”,”last”:”McCarthy”}},{“name”:{“first”:”test”,”last”:”user”}}]}}
اکنون که سرور مجازی GraphQL را از راه دور در دسترس قرار داده اید ، هنگام بستن ترمینال یا راه اندازی مجدد سرور مجازی ، مطمئن شوید که سرور مجازی GraphQL شما متوقف نمیشود. به این ترتیب ، هر زمان که بخواهید درخواست کنید ، پایگاه داده MongoDB شما از طریق سرور مجازی GraphQL قابل دسترسی خواهد بود. برای انجام این کار ، از بسته npm forever استفاده کنید ، یک ابزار CLI که تضمین می کند اسکریپت های خط فرمان شما به طور مداوم اجرا میشوند یا در صورت بروز هرگونه خرابی مجدداً راه اندازی می شوند. Forever را با npm نصب کنید: ⦁ $ sudo npm install forever -g ⦁ پس از انجام کار نصب ، آن را به فایل pack.json اضافه کنید: package.json { “name”: “project_name”, “version”: “1.0.0”, “description”: “”, “main”: “index.js”, “scripts”: { “start”: “node index.js”, “deploy”: “forever start –minUptime 2000 –spinSleepTime 5 index.js”, “test”: “echo \”Error: no test specified\” && exit 1″ }, …
برای راه اندازی سرور مجازی GraphQL با forever فعال ، دستور زیر را اجرا کنید: ⦁ $ npm run deploy ⦁ با این کار فایل index.js حاوی سرور مجازی GraphQL با forever شروع می شود و اطمینان حاصل می کند که در صورت عدم موفقیت ، با حداقل زمان اجرای 2000 میلی ثانیه و 5 میلی ثانیه در هر راه اندازی مجدد کار خود را ادامه می دهید. سرور مجازی GraphQL اکنون به طور مداوم در پس زمینه اجرا می شود ، بنابراین دیگر وقتی می خواهید یک درخواست به سرور مجازی ارسال کنید ، دیگر نیازی به باز کردن تب جدید ندارید. اکنون یک سرور مجازی GraphQL ایجاد کرده اید که از MongoDB برای ذخیره داده استفاده می کند و برای دسترسی به سرور مجازی از راه دور تنظیم شده است. در مرحله بعدی می توانید playground را درGraphiQL را فعال کنید ، که این امکان را برای شما فراهم می کند که سرور مجازی GraphQL را بازرسی کنید. مرحله 5 – فعال کردن playground GraphiQL توانایی ارسال درخواستهای cURL به سرور مجازی GraphQL بسیار عالی است ، اما با داشتن یک رابط کاربری که بتواند بلافاصله درخواستهای GraphQL را اجرا کند ، به خصوص هنگام توسعه ، سریعتر خواهد بود. برای این کار می توانید از GraphiQL ، واسط پشتیبانی شده توسط بسته express-Graphql استفاده کنید. برای فعال کردن GraphiQL ، فایل index.js را ویرایش کنید: ⦁ $ sudo nano index.js ⦁ خطوط هایلایت شده زیر را اضافه کنید: index.js const app = express(); app.use(‘/graphql’, graphqlHTTP({ schema, rootValue: resolvers, context, graphiql: true })); app.listen(4000);
console.log(`🚀 Server ready at http://localhost:4000/graphql`);
فایل را ذخیره کنید و از آن خارج شوید. برای اینکه این تغییرات قابل مشاهده باشند ، با اجرای دستور زیر forever را متوقف شوید: ⦁ $ forever stop index.js ⦁ سپس ، دوباره forever را شروع کنید تا آخرین نسخه سرور مجازی QL در حال اجرا را ببینید ⦁ $ npm run deploy ⦁
یک مرورگر به آدرس http://example.com باز کنید ، و جایگزین example.com را با نام دامنه یا IP سرور مجازی خود جایگزین کنید. playground GraphiQL را خواهید دید که در آن می توانید درخواست های GraphQL را تایپ کنید.
در سمت چپ این playground می توانید پرس و جوهای GraphQL و جهش ها را تایپ کنید ، در حالی که خروجی در سمت راست playground نشان داده خواهد شد. برای آزمایش اینکه آیا کار می کند ، عبارت زیر را در سمت چپ تایپ کنید: query { bios { name { first last } } }
نتیجه مشابه در سمت راست playground ، دوباره با فرمت JSON را نشان میدهد:
اکنون می توانید درخواست های GraphQL را با استفاده از ترمینال و playground GraphiQL ارسال کنید. نتیجه در این آموزش پایگاه داده MongoDB را تنظیم کرده و داده ها را از این پایگاه داده با استفاده از GraphQL ، Node.js و Express برای سرور مجازی بازیابی می کنید و جهش میدهید. علاوه بر این ، Nginx را پیکربندی کردید تا امکان دسترسی از راه دور به این سرور مجازی را فراهم کند. نه تنها می توانید درخواست ها را به طور مستقیم به این سرور مجازی GraphQL ارسال کنید ، بلکه می توانید از GraphiQL به عنوان یک رابط GraphQL در مرورگر GraphQL نیز استفاده کنید. اگر می خواهید در مورد GraphQL اطلاعات کسب کنید ، می توانید فیلم ضبط شده از ارائه من در GraphQL را در NDC {London watch} مشاهده کنید یا برای آموزش در مورد GraphQL به وب سایت howtographql.com مراجعه کنید. برای مطالعه چگونگی تعامل GraphQL با سایر فناوری ها ، به آموزش نحوه تنطیم دستی سرور مجازی Prisma در اوبونتو 18.04 نگاهی بیاندازید، و برای کسب اطلاعات بیشتر در مورد ساخت برنامه های کاربردی با MongoDB ، به نحوه ایجاد بلاگ با Nest.js ، MongoDB و Vue.js مراجعه کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
GraphQL
,
MongoDB
,
Node.js
0 notes
vpsgold-blog · 4 years
Text
نصب و ایمن سازی phpMyAdmin با Nginx در سرور
در حالی که بسیاری از کاربران به عملکرد سیستم دیتابیس مانند MySQL نیاز دارند ، تعامل با سیستم صرفاً از طریق سرویس دهنده خط فرمان MySQL نیاز به آشنایی با زبان SQL دارد ، بنابراین ممکن است برای بعضی ها رابط ارجح نباشد. phpMyAdmin به گونه ای ایجاد شده است که کاربران بتوانند از طریق یک رابط وب بصری با MySQL در تعامل باشند که در کنار یک محیط توسعه PHP اجرا شود. در این راهنما ، در مورد نحوه نصب phpMyAdmin روی سرور Nginx و نحوه پیکربندی سرور برای افزایش امنیت بحث خواهیم کرد. توجه: در هنگام استفاده از نرم افزاری مانند phpMyAdmin ملاحظات امنیتی مهمی وجود دارد ، از آنجا که بر روی سرور پایگاه داده اجرا می شود ، با اعتبارات پایگاه داده در ارتباط است ، و کاربر را قادر می سازد تا به راحتی پرس و جوهای SQL دلخواه را در پایگاه داده شما اجرا کند. از آنجا که phpMyAdmin یک برنامه PHP با استقرار گسترده است ، اغلب مورد حمله قرار می گیرد. در این آموزش برخی اقدامات امنیتی که می توانید انجام دهید را مرور خواهیم کرد تا بتوانید تصمیماتی آگاهانه بگیرید.
پیش نیازها قبل از شروع این راهنما ، به موارد زیر نیاز خواهید داشت: • سرور Ubuntu 18.04 که دارای یک پشته LEMP (Linux ، Nginx ، MySQL و PHP) و ایمن شده با ufw باشد ، همانطور که در راهنمای تنظیم اولیه سرور برای اوبونتو 18.04 شرح داده شده است. اگر هنوز سرور خود را تنظیم نکرده اید ، می توانید راهنمای نصب پشته LEMP در اوبونتو 18.04 را دنبال کنید. • دستر��ی به این سرور به عنوان یک کاربر غیر ریشه با امتیازات sudo. از آنجا که phpMyAdmin احراز هویت را با استفاده از اعتبار MySQL انجام می دهد ، توصیه می شود یک SSL / TLS نصب کنید تا بتوانید ترافیک رمزگذاری شده بین سرور و کلاینت را فعال کنید. اگر دامنه موجود که با گواهی معتبر پیکربندی شده باشد ندارید ، می توانید این راهنما را در مورد ایمن سازی Nginx با let’s Encrypt در Ubuntu 18.04 دنبال کنید. هشدار: اگر گواهی SSL / TLS را روی سرور نصب نکرده اید و همچنان مایل به ادامه کار هستید ، لطفاً دسترسی از طریق تونل های SSH را همانطور که در مرحله 5 این راهنما توضیح داده شده است ، در نظر بگیرید. هنگامی که این پیش نیازها را انجام دادید ، می توانید با ادامه این راهنما پیش بروید. مرحله 1 – نصب phpMyAdmin اولین کاری که باید انجام دهیم نصب phpMyAdmin روی سرور LEMP است. ما می خواهیم از مخازن پیش فرض اوبونتو برای رسیدن به این هدف استفاده کنیم. بیایید با به روزرسانی فهرست بسته سرور با دستور زیر شروع کنیم: ⦁ $ sudo apt update ⦁ اکنون می توانید phpMyAdmin را با این دستور نصب کنید: ⦁ $ sudo apt install phpmyadmin ⦁ در طی مراحل نصب ، از شما خواسته می شود تا وب سرور (Apache یا Lighthttp) را برای پیکربندی انتخاب کنید. از آنجا که ما از Nginx به عنوان وب سرور استفاده می کنیم ، نباید اینجا انتخابی انجام دهیم. برای رفتن به مرحله بعدی ، tab را فشار داده و سپس OK را بزنید. در مرحله بعد ، از شما خواسته می شود كه برای پیكربندی پایگاه داده برنامه از dbconfig-common استفاده شود یا خیر. yes را انتخاب کنید. این کار پایگاه داده داخلی و کاربر admin را برای phpMyAdmin تنظیم می کند. از شما خواسته می شود رمز جدید را برای کاربر phpmyadmin MySQL تعریف کنید. همچنین می توانید آن را خالی بگذارید و به phpMyAdmin اجازه دهید بطور تصادفی یک رمز عبور ایجاد کند. اکنون نصب تمام می شود. برای اینکه سرور وب Nginx به درستی فایلهای phpMyAdmin را پیدا و ارائه کند ، باید یک لینک نمادین از فایلهای نصب به دیرکتوری اصلی سند Nginx بسازیم: ⦁ $ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin ⦁ نصب phpMyAdmin شما اکنون عملیاتی است. برای دسترسی به رابط ، به نام دامنه یا آدرس IP عمومی سرور خود که پس از آن / phpmyadmin در مرورگر وب وجود دارد ، بروید: https://server_domain_or_IP/phpmyadmin
همانطور که قبلاً نیز گفته شد ، phpMyAdmin با استفاده از اعتبار MySQL ، احراز هویت را کنترل می کند ، به این معنی که شما باید از همان نام کاربری و رمز عبوری که معمولاً برای اتصال به بانک اطلاعاتی از طریق کنسول یا از طریق API استفاده می کنید ، استفاده نمایید. اگر در ایجاد کاربران MySQL به کمک نیاز دارید ، این راهنما را در مورد نحوه مدیریت بانک اطلاعاتی SQL بررسی کنید. توجه: ورود به سیستم phpMyAdmin به عنوان کاربر ریشه MySQL توصیه نمی شود زیرا خطرات امنیتی قابل توجهی را به همراه دارد. در مرحله بعدی این راهنما نحوه غیرفعال کردن ورود به سیستم ریشه را مشاهده خواهیم کرد. نصب phpMyAdmin شما باید در این مرحله کاملاً عملی باشد. اما ، با نصب یک رابط وب ، سرور پایگاه داده MySQL خود را در معرض دنیای خارج قرار می دهیم. به دلیل محبوبیت phpMyAdmin و مقادیر زیادی از داده هایی که ممکن است به آنها دسترسی پیدا کند ، نصب های این چنینی ، اهداف متداول برای حملات هستند. در بخش های بعدی این راهنما ، چند روش مختلف را مشاهده خواهیم کرد که با استفاده از آن می توانیم نصب phpMyAdmin را ایمن تر کنیم. مرحله 2 – تغییر موقعیت پیش فرض phpMyAdmin یکی از اساسی ترین راه های محافظت از نصب phpMyAdmin ، دشوار نمودن دسترسی به آن است. رباتها مسیرهای متداول مانند phpmyadmin ، pma ، admin ، mysql و مواردی از این دست را اسکن می کنند. تغییر آدرس URL رابط از / phpmyadmin به چیزی غیر استاندارد ، اسکریپت های خودکار را برای پیدا کردن نصب و راه اندازی phpMyAdmin و تلاش برای حملات مخرب را دشوارتر می کند. با نصب phpMyAdmin ، پیوندی نمادین ایجاد کرده ایم که به / usr / share / phpmyadmin اشاره دارد، جایی که فایل های برنامه واقعی قرار دارند. برای تغییر URL رابط phpMyAdmin ، این پیوند نمادین را تغییر نام خواهیم داد. ابتدا ، اجازه دهید به دیرکتوری اصلی سند Nginx برویم و لیست فایل هایی که در آن قرار دارد را فهرست کنیم تا درک بهتری از تغییراتی که ایجاد خواهیم کرد داشته باشیم: ⦁ $ cd /var/www/html/ ⦁ ⦁ $ ls -l خروجی زیر را دریافت خواهید کرد: Output total 8 -rw-r–r– 1 root root 612 Apr 8 13:30 index.nginx-debian.html lrwxrwxrwx 1 root root 21 Apr 8 15:36 phpmyadmin -> /usr/share/phpmyadmin
خروجی نشان می دهد که ما یک لینک نمادین به نام phpmyadmin در این دیرکتوری داریم. می توانیم این نام پیوند را به هر آنچه دوست داریم تغییر دهیم. که به نوبه خود URL دسترسی phpMyAdmin را تغییر می دهد ، و می تواند به پنهان کردن نقطه انتهایی از دسترس رباتهای رمزگذاری شده برای جستجوی نام نقاط پایانی معمول کمک کند. نامی را انتخاب کنید که هدف نقطه پایانی را مبهم کند. در این راهنما ، نقطه پایانی را /nothingtosee می نامیم ، اما شما باید یک نام جایگزین انتخاب کنید. برای انجام این کار ، پیوند را تغییر نام می دهیم: ⦁ $ sudo mv phpmyadmin nothingtosee ⦁ ⦁ $ ls -l
پس از اجرای دستورات فوق ، این خروجی را دریافت خواهید کرد: Output total 8 -rw-r–r– 1 root root 612 Apr 8 13:30 index.nginx-debian.html lrwxrwxrwx 1 root root 21 Apr 8 15:36 nothingtosee -> /usr/share/phpmyadmin
اکنون ، اگر به URL قدیمی بروید ، خطای 404 را دریافت خواهید کرد: https://server_domain_or_IP/phpmyadmin
رابط phpMyAdmin شما اکنون با URL جدیدی که تازه پیکربندی کرده ایم در دسترس خواهد بود: https://server_domain_or_IP/nothingtosee
با ایجاد موقعیت واقعی phpMyAdmin در سرور ، رابط کاربری آن را در برابر اسکن خودکار و حملات دستی محافظت می کنید. مرحله 3 – غیرفعال کردن ورود به عنوان ریشه در MySQL و همچنین در سیستم های معمول لینوکس ، حساب اصلی یک حساب کاربری ویژه با دسترسی نامحدود به سیستم است. علاوه بر اینکه یک حساب ممتاز است ، یک نام ورود به سیستم شناخته شده است ، و آن را به یک هدف آشکار برای حملات مخرب تبدیل می کند. برای به حداقل رساندن خطرات ، phpMyAdmin را به گونه ای پیکربندی می کنیم تا هرگونه تلاش برای ورود به سیستم از سوی کاربر ریشه را رد کنیم. به این ترتیب ، حتی اگر اعتبارات معتبری برای ریشه کاربر ارائه دهید ، باز هم یک خطای ” access denied ” دریافت خواهید کرد و مجاز به ورود به سیستم نخواهید بود. از آنجا که ما برای پیکربندی و ذخیره تنظیمات phpMyAdmin از dbconfig-common استفاده کردیم ، پیکربندی پیش فرض در حال حاضر در بانک اطلاعاتی ذخیره می شود. برای تعریف تنظیمات سفارشی باید یک فایل config.inc.php جدید ایجاد کنیم. حتی اگر فایلهای PHP برای phpMyAdmin در داخل / usr / share / phpmyadmin قرار داشته باشند ، برنامه از فایلهای پیکربندی مستقر در / etc / phpmyadmin استفاده می کند. یک فایل تنظیمات سفارشی جدید را در داخل /etc/phpmyadmin/conf.d ایجاد خواهیم کرد و نام آن را pma_secure.php مینامیم: ⦁ $ sudo nano /etc/phpmyadmin/conf.d/pma_secure.php ⦁ فایل پیکربندی زیر شامل تنظیمات لازم برای غیرفعال کردن ورودهای بدون رمز (AllowNoPassword روی false تنظیم شده است) و ورود ریشه به سیستم است (AllowRoot روی false تنظیم شده است): /etc/phpmyadmin/conf.d/pma_secure.php <?php
# PhpMyAdmin Settings # This should be set to a random string of at least 32 chars $cfg[‘blowfish_secret’] = ‘3!#32@3sa(+=_4?),5XP_:U%%8\34sdfSdg43yH#{o’;
$i=0; $i++;
$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’; $cfg[‘Servers’][$i][‘AllowNoPassword’] = false; $cfg[‘Servers’][$i][‘AllowRoot’] = false;
?>
پس از ویرایش فایل ، با فشار دادن CTRL + X سپس y ، تغییرات را تأیید کنید و ENTER را بزنید. تغییرات بطور خودکار اعمال می شوند. اگر اکنون صفحه ورود را مجدد لود کنید و سعی کنید به عنوان root وارد شوید ، یک خطای Access Denied دریافت خواهید کرد:
اکنون ورود به سیستم به عنوان ریشه در نصب phpMyAdmin شما ممنوع است. این اقدامات امنیتی باعث می شود جلوی اسکریپت های مخرب در تلاش برای حدس زدن رمزعبور پایگاه داده اصلی روی سرور شما گرفته شود. علاوه بر این ، استفاده از حسابهای MySQL با امتیازات کمتر را برای دسترسی به رابط وب phpMyAdmin اعمال می کند ، که به خودی خود یک روش مهم امنیتی است. مرحله 4 – ایجاد یک دروازه احراز هویت پنهان کردن نصب phpMyAdmin در یک مکان غیرمعمول ممکن است برخی از ربات های خودکار را که در حال اسکن شبکه هستند ، گمراه کند ، اما در برابر حملات هدفمند بی فایده است. برای محافظت بهتر از یک برنامه وب با دسترسی محدود ، به طور کلی متوقف کردن مهاجمان قبل از اینکه حتی بتوانند به برنامه دسترسی پیدا کنند، مفیدتر است. به این ترتیب ، آنها نمی توانند از سوء استفاده های عمومی و حملات مخرب برای حدس زدن اعتبارات دسترسی استفاده کنند. در مورد خاص phpMyAdmin ، محفوظ نگه داشتن رابط ورود به سیستم حتی مهمتر نیز هست. با در دسترس نگه داشتن آن به صورت جهانی ، یک بستر آماده برای مهاجمین ارائه می دهید تا اعتبارات بانک اطلاعاتی شما را حدس بزنند. افزودن یک لایه اضافی تأیید اعتبار به نصب phpMyAdmin شما را قادر می سازد امنیت را افزایش دهید. کاربران باید قبل از دیدن صفحه ورود به سایت phpMyAdmin از اعلان تأیید هویت HTTP عبور کنند. اکثر سرور های وب ، از جمله Nginx ، این قابلیت را به صورت بومی ارائه می دهند. برای انجام این کار ، ابتدا باید یک فایل رمز عبور برای ذخیره اعتبارات تأیید ایجاد کنیم. Nginx مستلزم رمزگذاری پسوردها با استفاده از تابع crypt () است. مجموعه OpenSSL ، که باید از قبل روی سرور شما نصب باشد ، این قابلیت را دارد. برای ایجاد پسورد رمزگذاری شده ، این دستور را تایپ کنید: ⦁ $ openssl passwd ⦁ از شما خواسته می شود رمز عبوری را که می خواهید استفاده کنید وارد کنید و آن را تأیید نمایید. سپس این ابزار نسخه رمزگذاری شده رمزعبور را نمایش می دهد که چیزی شبیه به این خواهد بود: Output O5az.RSPzd.HE این عبارت را کپی کنید ، زیرا لازم است که آن را در فایل تأیید اعتبار مورد استفاده قرار دهید. اکنون ، یک فایل تأیید اعتبار ایجاد کنید. ما این فایل را pma_pass می نامیم و آن را در دیرکتوری تنظیمات Nginx قرار می دهیم: ⦁ $ sudo nano /etc/nginx/pma_pass ⦁ در این فایل ، نام کاربری مورد نظر خود را مشخص می کنید و به دنبال آن یک کولون (:) و سپس نسخه رمزگذاری شده پسورد را که از برنامه Openwl passwd دریافت کرده اید ، قرار دهید. ما میخواهیم نام کاربر خود را Sammy قرار دهیم ، اما شما باید نام کاربری دیگری را انتخاب کنید. فایل باید به صورت زیر باشد: /etc/nginx/pma_pass sammy:O5az.RSPzd.HE پس از انجام این کار ، فایل را ذخیره کنید و ببندید. اکنون ما آماده اصلاح فایل پیکربندی Nginx هستیم. برای این راهنما ، از فایل پیکربندی واقع در /etc/nginx/sites-available/example.com استفاده خواهیم کرد. شما باید از فایل پیکربندی مربوط به Nginx برای مکان وب استفاده کنید که phpMyAdmin در حال حاضر میزبان آن است. این فایل را در ویرایشگر متن خود باز کنید تا کار را شروع کنید: ⦁ $ sudo nano /etc/nginx/sites-available/example.com ⦁
بلوک سرور و بخش location / را در آن قرار دهید. برای مطابقت با مسیر فعلی phpMyAdmin در سرور ، باید یک بخش location جدید در این بلوک ایجاد کنیم. در این راهنما ، مکان phpMyAdmin نسبت به ریشه وب /nothingtosee است: /etc/nginx/sites-available/default server { . . .
location / { try_files $uri $uri/ =404; }
location /nothingtosee { # Settings for phpMyAdmin will go here }
. . . }
در این بلوک ، باید دو دستورالعمل مختلف را تنظیم کنیم: auth_basic ، که پیامی را که در اعلان تأیید نمایش داده می شود معرفی میکند، و auth_basic_user_file ، که به فایلی که ایجاد کردیم ، اشاره می کند. فایل پیکربندی شما پس از اتمام اینگونه به نظر می رسد: /etc/nginx/sites-available/default server { . . .
location /nothingtosee { auth_basic “Admin Login”; auth_basic_user_file /etc/nginx/pma_pass; }
. . . }
سپس ، فایل را ذخیره کنید و ببندید. برای بررسی صحت فایل پیکربندی ، می توانید این دستور را اجرا کنید: ⦁ $ sudo nginx -t ⦁ خروجی زیر پیش بینی می شود: Output nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
برای فعال کردن دروازه احراز هویت جدید ، باید سرور وب را مجدد لود کنید: ⦁ $ sudo systemctl reload nginx ⦁ حال اگر از URL phpMyAdmin در مرورگر وب خود بازدید می کنید ، نام کاربری و رمز عبوری که به فایل pma_pass اضافه کرده اید ، از شما خواسته میشود: https://server_domain_or_IP/nothingtosee
هنگامی که اعتبارات خود را وارد کردید ، به صفحه استاندارد ورود به سیستم phpMyAdmin منتقل می شوید. توجه: اگر ریفرش صفحه کار نمی کند ، ممکن است مجبور شوید حافظه نهان خود را پاک کنید یا اگر قبلاً از phpMyAdmin استفاده کرده اید ، از یک مرورگر دیگر استفاده کنید. این دروازه علاوه بر فراهم کردن یک لایه امنیتی بیشتر ، به حفظ فایل های MySQL در برابر تلاش برای تأیید اعتبارات Spammy کمک می کند. مرحله 5 – تنظیم دسترسی از طریق تونل های رمزگذاری شده (اختیاری) برای افزایش امنیت ، میتوان نصب phpMyAdmin را فقط برای هاست های مجاز قفل نکرد. می توانید هاست های مجاز را در فایل تنظیمات Nginx خود لیست کنید تا هرگونه درخواست از آدرس IP که در لیست موجود نیست ، رد شود. حتی اگر این ویژگی در برخی موارد استفاده کافی باشد ، همیشه بهترین راه حل طولانی مدتی نیست ، عمدتا به این دلیل که اکثر افراد از آدرس های IP ایستا به اینترنت دسترسی ندارند. به محض دریافت یک آدرس IP جدید از Internet provider خود ، نمی توانید به رابط phpMyAdmin دسترسی پیدا کنید تا زمانی که فایل پیکربندی Nginx را با آدرس IP جدید خود به روز کنید. برای یک راه حل طولانی مدت قوی تر ، می توانید از کنترل دسترسی مبتنی بر IP استفاده کنید تا تنظیماتی را ایجاد کنید که در آن کاربران فقط در صورت دسترسی به یک آدرس IP مجاز یا محلی از طریق تونل سازی SSH به رابط phpMyAdmin شما دسترسی داشته باشند. در بخش های زیر خواهیم دید که چگونه این کار را انجام دهیم. ترکیب کنترل دسترسی مبتنی بر IP با تونل SSH امنیت را به شدت افزایش می دهد زیرا دسترسی از طریق اینترنت عمومی (به جز IP های مجاز) را کاملاً مسدود می کند و علاوه بر این کانال ایمن بین کاربر و سروراز طریق تونل های رمزگذاری شده فراهم میکند. تنظیم کنترل دسترسی مبتنی بر IP در Nginx در Nginx ، كنترل دسترسی مبتنی بر IP را می توان در بلوك location مربوطه یك سایت معین ، با استفاده از بخشنامه های allow و deny تعریف كرد. به عنوان مثال ، اگر فقط می خواهیم درخواست هایی را از یک هاست معین دریافت کنیم ، باید دو خط زیر را در این قسمت ، داخل بلوک location مربوطه برای سایت قرار دهیم که می خواهیم از آن محافظت کنیم: allow hostname_or_IP; deny all;
شما می توانید هر تعداد هاست که می خواهید اجازه دهید ، فقط باید یک خط allow برای هر هاست / IP مجاز در داخل بلوک location مربوطه برای سایتی که از آن محافظت می کنید درج کنید. دستورالعملها به همان ترتیبی که ذکر شده اند ارزیابی می شوند ، تا زمانی که تطابق پیدا شود یا درخواست به دلیل deny all رد شود. اکنون Nginx را پیکربندی خواهیم کرد تا فقط به درخواستهایی که از localhost یا آدرس IP فعلی شما آمده اند اجازه ورود دهیم. ابتدا ، باید آدرس IP فعلی عمومی را که دستگاه محلی شما برای اتصال به اینترنت استفاده می کند ، بدانید. روش های مختلفی برای به دست آوردن این اطلاعات وجود دارد. برای سا��گی ، می خواهیم از خدمات ارائه ��ده توسط ipinfo.io استفاده کنیم. می توانید URL https://ipinfo.io/ip را در مرورگر خود باز کنید ، یا دستور زیر را از دستگاه محلی خود اجرا کنید: ⦁ $ curl https://ipinfo.io/ip ⦁ باید یک آدرس IP ساده به عنوان خروجی دریافت کنید ، مانند این: Output 203.0.113.111
این آدرس IP عمومی فعلی شما است. ما بلوک موقعیت مکانی phpMyAdmin را پیکربندی خواهیم کرد تا فقط به درخواستهایی که از آن IP می آیند ، علاوه بر localhost ، اجازه دهیم. باید بار دیگر پیکربندی phpMyAdmin را در داخل /etc/nginx/sites-available/example.com ویرایش کنیم. فایل پیکربندی Nginx را با استفاده از ویرایشگر خط فرمان مورد نظر خود باز کنید: ⦁ $ sudo nano /etc/nginx/sites-available/example.com ⦁ از آنجا که از قبل یک قانون دسترسی در پیکربندی فعلی خود داریم ، باید آن را با کنترل دسترسی مبتنی بر IP ترکیب کنیم و از دستور satisfy all استفاده نماییم. به این ترتیب ، می توانیم تأیید هویت فعلی HTTP را برای افزایش امنیت سریع انجام دهیم. به این ترتیب پیکربندی phpMyAdmin Nginx شما پس از انجام ویرایش اینگونه به نظر می رسد: /etc/nginx/sites-available/example.com server { . . .
location /nothingtosee { satisfy all; #requires both conditions
allow 203.0.113.111; #allow your IP allow 127.0.0.1; #allow localhost via SSH tunnels deny all; #deny all other sources
auth_basic “Admin Login”; auth_basic_user_file /etc/nginx/pma_pass; }
. . . }
به یاد داشته باشید که nothingtosee را با مسیر واقعی جایی که phpMyAdmin در آن قرار دارد ، و آدرس IP هایلایت شده را با آدرس IP عمومی فعلی خود جایگزین کنید. هنگام کار ، فایل را ذخیره کنید و ببندید. برای بررسی صحت فایل پیکربندی ، می توانید این دستور را اجرا کنید: ⦁ $ sudo nginx -t ⦁ خروجی زیر پیش بینی می شود: Output nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
اکنون سرور وب را مجدد لود کنید تا تغییرات اعمال شوند: ⦁ $ sudo systemctl reload nginx ⦁ از آنجا که آدرس IP شما صریحاً به عنوان هاست مجاز ذکر شده است ، دسترسی شما نباید مختل شود. هر کس دیگری که سعی در دسترسی به نصب phpMyAdmin داشته باشد، یک خطای 403 (ممنوعه) دریافت میکند: https://server_domain_or_IP/nothingtosee
در بخش بعدی ، نحوه استفاده از تونل SSH برای دسترسی به سرور وب را از طریق درخواست های محلی خواهیم دید. به این ترتیب ، شما حتی می توانید آدرس IP خود را تغییر دهید و به رابط phpMyAdmin دسترسی پیدا کنید. دسترسی به phpMyAdmin از طریق یک تونل رمزگذاری شده تونل زنی SSH به عنوان روشی جهت هدایت ترافیک شبکه از طریق کانال های رمزگذاری شده کار می کند. با اجرای یک دستور ssh مشابه آنچه برای ورود به سرور استفاده می کنید ، می توانید یک “تونل” ایمن بین دستگاه محلی و آن سرور ایجاد کنید. همه ترافیک هایی که وارد یک پورت محلی خاص میشوند، می توانند از طریق تونل رمزگذاری شده هدایت شوند و قبل از دسترسی به اینترنت ، از سرور راه دور به عنوان یک پروکسی استفاده کنند. مشابه چیزی است که هنگام استفاده از VPN (شبکه خصوصی مجازی) اتفاق می افتد ، با این حال تنظیم تونل SSH بسیار ساده تر است. ما از تونل سازی SSH استفاده خواهیم کرد تا درخواستهای خود را به سرور وب از راه دور که phpMyAdmin را اجرا می کند ، پروکسی کنیم. با ایجاد یک تونل بین دستگاه محلی و سرور که phpMyAdmin در آن نصب شده است ، می توانید درخواست های محلی را به سرور وب از راه دور هدایت کنید ، و مهمتر از همه ، ترافیک رمزگذاری می شود و درخواست ها به Nginx می رسند انگار که از localhost می آیند. به این ترتیب ، مهم نیست که از چه آدرس IP به آن وصل شوید ، می توانید به طور ایمن به رابط phpMyAdmin دسترسی پیدا کنید. از آنجا که ترافیک بین دستگاه محلی شما و سرور وب از راه دور رمزگذاری می شود ، این گزینه جایگزین مناسبی برای موقعیت هایی است که نمی توانید گواهی SSL / TLS را در سرور وبی نصب کنید که دارای phpMyAdmin است. از دستگاه محلی خود ، این دستور را هر زمان که نیاز به دسترسی به phpMyAdmin داشتید، اجرا کنید: بگذارید هر بخش از دستور را بررسی کنیم: ⦁ ssh user@server_domain_or_IP -L 8000:localhost:80 -L 8443:localhost:443 -N ⦁ ⦁ user: کاربر SSH برای اتصال به سرور ی که phpMyAdmin در آن کار می کند ⦁ hostname_or_IP: هاست SSH که phpMyAdmin در آن اجرا می شود ⦁ -L 8000: localhost: 80 مسیر HTTP را در پورت 8000 تغییر مسیر می دهد ⦁ -L 8443: localhost: 443 مسیر ترافیک HTTPS در پورت 8443 را تغییر میدهد ⦁ -N: دستورات از راه دور را اجرا نمی کند توجه: این دستور تا زمانی که با CTRL + C قطع نشود ، ترمینال را مسدود می کند ، در این صورت اتصال SSH پایان می یابد و تغییر مسیر بسته را متوقف می کند. اگر ترجیح می دهید این دستور را در حالت پس زمینه اجرا کنید ، می توانید از گزینه –f SSH استفاده کنید.
اکنون به مرورگر خود بروید و server_domain_or_IP را با localhost:PORT جایگزین کنید، جایی که PORT برای HTTP ، 8000 و برای HTTPS، 8443 است: http://localhost:8000/nothingtosee https://localhost:443/nothingtosee
توجه: اگر از طریق https به phpMyAdmin دسترسی دارید ، ممکن است یک پیام هشدار دریافت کنید که امنیت گواهی SSL را سؤال می کند. این اتفاق به این دلیل است که نام دامنه ای که شما در آن استفاده می کنید (localhost) با آدرس ثبت شده در گواهی نامه (دامنه ای که phpMyAdmin در واقع در آن ارائه می شود) مطابقت ندارد. در این صورت ادامه کار بی خطر خواهد بود.
اکنون همه درخواست های localhost: 8000 (HTTP) و localhost: 8443 (HTTPS) از طریق یک تونل امن به برنامه راه دور phpMyAdmin خود هدایت می شوند. نه تنها با غیرفعال کردن دسترسی عمومی به phpMyAdmin ، امنیت را افزایش داده اید ، بلکه با استفاده از یک تونل رمزگذاری شده برای ارسال و دریافت داده ، از تمام ترافیک بین رایانه محلی و سرور از راه دور نیز محافظت می کنید. اگر می خواهید استفاده از تونل زنی SSH را برای هرکسی که می خواهد به رابط phpMyAdmin شما (از جمله خودتان) دسترسی داشته باشد ، اعمال کنید ، می توانید با حذف سایر IPهای مجاز دیگر از فایل پیکربندی Nginx این کار را انجام دهید و 127.0.0.1 را به عنوان تنها هاست مجاز برای دسترسی به آن لوکیشن در نظر بگیرید. با توجه به اینکه هیچ کس قادر به درخواست مستقیم به phpMyAdmin نیست ، می توانید تأیید هویت HTTP را برای ساده سازی ستاپ خود حذف کنید. فایل پیکربندی شما در چنین سناریویی این گونه خواهد بود: /etc/nginx/sites-available/example.com server { . . .
location /nothingtosee { allow 127.0.0.1; #allow localhost only deny all; #deny all other sources }
. . . }
هنگامی که پیکربندی Nginx را با sudo systemctl reload nginx مجدد لود کنید ، نصب phpMyAdmin شما قفل می شود و کاربران برای دسترسی به رابط phpMyAdmin از طریق درخواست های هدایت شده ، باید از تونل های SSH استفاده کنند. نتیجه در این آموزش ، ما شاهد نحوه نصب phpMyAdmin در Ubuntu 18.04 در حال اجرای Nginx به عنوان سرور وب بودیم. همچنین روشهای پیشرفته ای را برای تأمین امنیت نصب phpMyAdmin در اوبونتو ، مانند غیرفعال کردن ورود کاربر ریشه به سیستم ، ایجاد یک لایه بیشتر تأیید اعتبار ، و استفاده از تونل SSH برای دسترسی به نصب phpMyAdmin فقط از طریق درخواست های محلی را پوشش داده ایم. پس از اتمام این آموزش ، باید بتوانید پایگاه داده MySQL خود را از یک رابط وب ایمن مدیریت کنید. این رابط کاربری بیشتر عملکردهای موجود از طریق خط فرمان MySQL را در معرض دید شما قرار می دهد. می توانید پایگاه های داده و شماتیک را بررسی کنید ، پرس و جوها را اجرا کنید و مجموعه ها و ساختارهای جدید داده ایجاد کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
Lighthttp
,
Nginx
,
phpMyAdmin
,
pma
,
SSH
0 notes
vpsgold-blog · 4 years
Text
نصب Python 3 و تنظیم یک محیط برنامه نویسی
پایتون یک زبان برنامه نویسی انعطاف پذیر و همه کاره است که می تواند در بسیاری از موارد به خاطر داشتن نقاط قوت در اسکریپت ، اتوماسیون ، تجزیه و تحلیل داده ها ، یادگیری ماشین و توسعه back-end مورد استفاده قرار گیرد. تیم توسعه پایتون برای اولین بار در سال 1991 با نامی الهام گرفته از گروه طنز بریتانیایی مونتی پایتون، آن را منتشر کردند و میخواستند پایتون را به زبانی تبدیل کنند که استفاده از آن بسیار جالب باشد. ستاپ سریع و سبک نسبتاً ساده و بازخورد فوری در مورد خطاها، پایتون را به یک انتخاب عالی برای مبتدیان و توسعه دهندگان با تجربه تبدیل کرده است. پایتون 3 جدیدترین نسخه این زبان است و آینده پایتون به حساب می آید. در این آموزش سرور مجازی Ubuntu 18.04 شما با یک محیط برنامه نویسی Python 3 تنظیم می شود. برنامه نویسی روی سرور مجازی مزایای بسیاری دارد و از همکاری در پروژه های توسعه پشتیبانی می کند. اصول کلی این آموزش در مورد هرگونه توزیع Debian Linux کاربرد دارد. پیش نیازها برای تکمیل این آموزش ، باید یک کاربر غیر root با امتیازات sudo در سرور مجازی Ubuntu 18.04 داشته باشید. برای یادگیری چگونگی دستیابی به این تنظیمات ، راهنمای راه اندازی سرور مجازی اولیه ما را دنبال کنید یا اسکریپت خودکار خود را اجرا کنید. اگر از قبل با محیط ترمینال آشنایی ندارید ، می توانید مقاله “مقدمه ای بر ترمینال لینوکس” را برای کارکردن بهتر با ترمینال بخوانید. با راه اندازی سرور مجازی و کاربر ، آماده شروع کار هستید. مرحله 1 – تنظیم پایتون 3 اوبونتو 18.04 و سایر نسخه های دبیان لینوکس هم Python 3 و هم Python 2 را از قبل نصب شده دارند. برای اطمینان از به روز بودن نسخه های خود ، بیایید سیستم را با دستور apt به روزرسانی کنیم تا با ابزار بسته بندی پیشرفته اوبونتو کار کند: $ sudo apt update
$ sudo apt -y upgrade پرچم -y تأیید خواهد کرد که ما موافق نصب همه موارد هستیم ، اما بسته به نسخه لینوکس شما ، ممکن است لازم باشد که در به روزرسانی و ارتقای سیستم ، اعلان های بیشتری را تأیید کنید. پس از اتمام روند ، می توانیم با تایپ کردن دستور زیر، نسخه پایتون 3 که در سیستم نصب شده است را بررسی کنیم: $ python3 -V
در پنجره ترمینال، خروجی دریافت خواهید کرد که شماره نسخه را به شما اطلاع می دهد. در حالی که ممکن است این عدد متفاوت باشد ، خروجی مشابه این خواهد بود: Output Python 3.6.7
برای مدیریت بسته های نرم افزاری برای پایتون ، بیایید pip را نصب کنیم ، ابزاری که بسته های برنامه نویسی را که ممکن است بخواهیم در پروژه های توسعه خود استفاده کنیم ، نصب و مدیریت خواهد کرد. می توانید با خواندن مقاله “چگونگی وارد کردن ماژول ها در پایتون 3” در مورد ماژول ها یا بسته هایی که می توانید آنها را نصب کنید اطلاعات کسب کنید. $ sudo apt install -y python3-pip
بسته های پایتون با تایپ دستور زیر قابل نصب هستند: $ pip3 install package_name
در اینجا ، pack_name می تواند به هر بسته یا کتابخانه Python مانند Django برای توسعه وب یا NumPy برای محاسبات علمی مراجعه کند. بنابراین اگر می خواهید NumPy را نصب کنید ، می توانید با دستور pip3 install numpy این کار را انجام دهید. چند بسته و ابزار توسعه دیگر وجود دارد که باید اطمینان حاصل شود که یک مجموعه قوی برای محیط برنامه نویسی خود داریم: $ sudo apt install build-essential libssl-dev libffi-dev python3-dev
پس از راه اندازی پایتون و نصب pip و سایر ابزارها ، می توانیم یک محیط مجازی برای پروژه های توسعه خود تنظیم کنیم. مرحله 2 – تنظیم یک محیط مجازی محیط های مجازی شما را قادر می سازد برای پروژه های پایتون فضایی مجزا در سرور مجازی خود داشته باشید ، اطمینان حاصل کنید که هر یک از پروژه های شما می توانند مجموعه ای از متعلقات خاص خود را داشته باشند که هیچ یک از پروژه های دیگر شما را مختل نمی کند. تنظیم یک محیط برنامه نویسی ، کنترل بیشتری بر روی پروژه های Python و نحوه دستیابی به نسخه های مختلف بسته ها برای ما فراهم می کند. این امر به ویژه هنگام کار با بسته های شخص ثالث بسیار مهم است. می توانید همانطور که می خواهید محیط برنامه نویسی Python را تنظیم کنید. هر محیط در واقع یک دیرکتوری یا پوشه ای در سرور مجازی شماست که چندین اسکریپت در آن وجود دارد تا بتواند به عنوان یک محیط عمل کند. در حالی که چند روش برای دستیابی به یک محیط برنامه نویسی در پایتون وجود دارد ، ما در اینجا از ماژول venv استفاده می کنیم که بخشی از کتابخانه استاندارد Python 3 است. بگذارید venv را با تایپ کردن دستور زیر نصب کنیم: $ sudo apt install -y python3-venv
با نصب آن، آماده ایجاد محیط هستیم. بیایید انتخاب کنیم که می خواهیم محیط های برنامه نویسی پایتون را در کدام دایرکتوری قرار دهیم ، یا یک دیرکتوری جدید با mkdir ایجاد کنیم ، مانند: $ mkdir environments
$ cd environments وقتی در دایرکتوری قرار گرفتید که میخواهید محیط در آنجا قرار گیرد ، می توانید با اجرای دستور زیر محیطی ایجاد کنید: $ python3.6 -m venv my_env
در اصل ، pyvenv یک دیرکتوری جدید ایجاد می کند که شامل چند مورد است که می توانیم با دستور ls آنها را مشاهده کنیم: $ ls my_env
Output bin include lib lib64 pyvenv.cfg share
این فایلها با هم کار می کنند تا اطمینان حاصل کنند که پروژه های شما از بستر وسیع تر دستگاه محلی تان جدا شده اند ، به گونه ای که فایل های سیستم و فایل های پروژه مخلوط نشوند. این روش خوبی برای کنترل نسخه و اطمینان از دسترسی هر یک از پروژه های شما به بسته های خاص مورد نیاز خود است. Python Wheels ، یک فرمت بسته ای ساخته شده برای Python است که می تواند با کاهش تعداد دفعات لازم برای تهیه کامپایل ، سرعت تولید نرم افزار شما را بالا ببرد و در دایرکتوری share Ubuntu 18.04 قرار خواهد گرفت. برای استفاده از این محیط ، باید آن را فعال کنید ، که می توانید با تایپ دستور زیر که اسکریپت فعال سازی را فراخوانی می کند به آن دست پیدا کنید: $ source my_env/bin/activate
خط فرمان شما اکنون با نام محیط شما پیشوند داده می شود ، در این حالت my_env نام دارد. بسته به اینکه کدام نسخه Debian Linux در حال اجرا است ، پیشوند شما ممکن است تا حدودی متفاوت به نظر برسد ، اما نام محیط شما در پرانتز باید اولین چیزی باشد که در خط خود مشاهده می کنید: (my_env) Sammy@ubuntu:~/environments$ این پیشوند به ما اطلاع می دهد که محیط my_env در حال حاضر فعال است ، به این معنی که وقتی ما در اینجا برنامه هایی را ایجاد می کنیم آنها فقط از تنظیمات و بسته های خاص این محیط استفاده می کنند. توجه: در محیط مجازی می توانید به جای python3 از فرمان python استفاده کنید و در صورت تمایل به جای pip3 از pip استفاده کنید. اگر در خارج از محیط از پایتون 3 در دستگاه خود استفاده می کنید ، لازم است که از دستورات python3 و pip3 استفاده کنید.
بعد از طی کردن این مراحل ، محیط مجازی شما آماده استفاده است. مرحله 3 – ایجاد یک برنامه ” hello, world” اکنون که محیط مجازی ما تنظیم شده است ، بیایید یک برنامه ” hello, world!” معمول ایجاد کنیم. این برنامه به ما امکان می دهد تا محیط خود را مورد آزمایش قرار دهیم و اگر قبلاً با پایتون کار نکرده ایم، بیشتر با آن آشنا شویم. برای این کار ، یک ویرایشگر متن خط فرمان مانند nano را باز خواهیم کرد و یک فایل جدید ایجاد می کنیم: (my_env) Sammy@ubuntu:~/environments$ nano hello.py
پس از باز شدن فایل متنی در پنجره ترمینال ، برنامه خود را تایپ می کنیم: print(“Hello, World!”) Copy با تایپ کلیدهای CTRL و X از nano خارج شوید و هنگامی که از شما خواسته شد فایل را ذخیره کنید، y را فشار دهید. پس از بیرون آمدن از nano و بازگشت به پوسته خود ، اجازه دهید برنامه را اجرا کنیم: (my_env) Sammy@ubuntu:~/environments$ python hello.py
برنامه hello.py که به تازگی ایجاد کرده اید باید باعث شود ترمینال شما خروجی زیر را تولید کند: Output Hello, World!
برای ترک محیط ، به سادگی فرمان deactivate را تایپ کنید و به فهرست اصلی خود باز خواهید گشت. نتیجه در این مرحله شما یک محیط برنامه نویسی پایتون 3 در سرور مجازی Debian Linux خود تنظیم کرده اید و هم اکنون می توانید یک پروژه رمزگذاری را شروع کنید! اگر از دستگاه محلی به جای سرور مجازی استفاده می کنید ، به مجموعه آموزشهای مربوط به سیستم عامل خود در سری “نحوه نصب و تنظیم یک محیط برنامه نویسی محلی برای پایتون 3” مراجعه کنید. با آماده سازی سرور مجازی خود برای توسعه نرم افزار ، می توانید با خواندن کتاب رایگان نحوه کدنویسی در Python 3 ، یا مشاوره گرفتن از آموزش های پروژه برنامه نویسی ما ، اطلاعات بیشتری درباره کد نویسی در پایتون کسب کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
back-end
,
Debian Linux
,
Python
,
Python 2
,
Python 3
0 notes
vpsgold-blog · 4 years
Text
راه اندازی سرور Prisma روی اوبونتو 18.04
Prisma یک لایه داده است که جایگزین ابزارهای object-relational mapping (ORM) قبلی در برنامه شما است. Prisma با ارائه پشتیبانی هم برای سرور مجازی ساخت GraphQL و هم API های REST ، دسترسی به پایگاه داده را با تمرکز بر ایمنی نوع (type safety)، ساده می کند و جا به جایی های اعلامی دیتابیس را امکان پذیر می نماید. ایمنی نوع به کاهش خطاها و ناسازگاری های احتمالی کد کمک می کند ، در حالی که جا به جایی اعلامی پایگاه داده به شما امکان می دهد تا مدل داده های خود را در کنترل نسخه ذخیره کنید. این ویژگی ها به توسعه دهندگان کمک می کند تا زمان متمرکز خود را برای تنظیم دسترسی به پایگاه داده ، جا به جایی و گردش کار مدیریت داده ها کاهش دهند. می توانید سرور مجازی Prisma را به چند روش مستقر کنید تا بعنوان پروکسی برای پایگاه داده شما عمل کند ، و آن را از راه دور یا محلی میزبانی کنید. با استفاده از سرویس Prisma می توانید به داده های خود دسترسی پیدا کرده و با API GraphQL به بانک اطلاعاتی خود متصل شوید ، این کار امکان عملیات زمان واقعی و امکان ایجاد، به روزرسانی و حذف داده ها را فراهم میکند. GraphQL یک زبان پرس و جو برای API ها است که به کاربران امکان می دهد برای دسترسی به اطلاعات دقیق مورد نیاز از سرور مجازی خود ، پرس و جوهایی ارسال کنند. سرور مجازی Prisma یک جزء مستقل است که در بانک اطلاعاتی شما قرار دارد. در این آموزش شما به صورت دستی یک سرور مجازی Prisma را در Ubuntu 18.04 نصب کرده و یک پرس و جوی تستی GraphQL را در playground GraphQL اجرا می کنید. در حالی که Prisma را روی سرور مجازی راه دور خود اجرا می کنید ، هاست کد ستاپ و توسعه محلی Prisma هستید – جایی که در واقع برنامه خود را ایجاد خواهید کرد . با اجرای دستی نصب ، درک عمیق تری از زیرساخت های اساسی ستاپ خود خواهید داشت. در حالی که این آموزش مراحل دستی استقرار Prisma در سرور مجازی اوبونتو 18.04 را در بر می گیرد ، می توانید با دنبال کردن این لینک در سایت Prisma این کار را به صورت خودکار تر با دستگاه Docker انجام دهید. توجه: تنظیمات شرح داده شده در این بخش شامل ویژگی هایی نیست که شما معمولاً از سرور مجازی های آماده تولید مانند پشتیبان گیری خودکار و failover فعال انتظار دارید. پیش نیازها برای تکمیل این آموزش ، به موارد زیر نیاز دارید: ⦁ سرور مجازی Ubuntu 18.04 که با دنبال کردن راهنمای اولیه تنظیم سرور مجازی راه اندازی شده باشد، شامل کاربر غیر ریشه و امتیازات sudo باشد. ⦁ Docker نصب شده روی سرور مجازی شما. می توانید با دنبال کردن مرحله 1 آموزش نصب Docker در اوبونتو 18.04 ، به این هدف برسید. ⦁ Docker Compose نصب شده باشد. در مرحله 1 نصب Docker Compose می توانید دستورالعمل های لازم را برای این کار بیابید. ⦁ Node.js روی سرور مجازی شما نصب شده باشد. می توانید با دنبال کردن بخش PPA آموزش نصب Node.js این کار را انجام دهید. مرحله 1 – راه اندازی سرور مجازی Prisma Prisma CLI ابزار اولیه ای است که برای استقرار و مدیریت خدمات Prisma شما استفاده می شود. برای شروع خدمات باید زیرساخت های لازم را تنظیم کنید که شامل سرور مجازی Prisma و یک بانک اطلاعاتی برای اتصال به آن می باشد. Docker Compose به شما امکان می دهد برنامه های چند کانتینری را مدیریت و اجرا کنید. شما می توانید از آن برای تنظیم زیرساخت های مورد نیاز سرویس Prisma استفاده کنید. با ایجاد فایل docker-compose.yml شروع به کار می کنید تا پیکربندی سرویس Prisma را در سرور مجازی خود ذخیره کنید. از این فایل برای چرخش خودکار Prisma ، یک پایگاه داده مرتبط و پیکربندی جزئیات لازم ، همه در یک مرحله استفاده خواهید کرد. پس از چرخش فایل با Docker Compose ، رمزهای عبور داده های شما را پیکربندی می کند ، بنابراین حتماً کلمات عبور را برای مدیریتAPIsecret و MYSQL_ROOT_PASSWORD با مقادیر ایمن جایگزین کنید. دستور زیر را برای ایجاد و ویرایش فایل docker-compose.yml اجرا کنید: ⦁ $ sudo nano docker-compose.yml ⦁ برای تعریف خدمات و حجم های مربوط به تنظیم Prisma ، محتوای زیر را به فایل اضافه کنید: docker-compose.yml version: “3” services: prisma: image: prismagraphql/prisma:1.20 restart: always ports: – “4466:4466” environment: PRISMA_CONFIG: | port: 4466 managementApiSecret: my-secret databases: default: connector: mysql host: mysql port: 3306 user: root password: prisma migrations: true mysql: image: mysql:5.7 restart: always environment: MYSQL_ROOT_PASSWORD: prisma volumes: – mysql:/var/lib/mysql volumes: mysql:
این پیکربندی موارد زیر را انجام می دهد: • دو سرویس راه اندازی می کند: prisma-db و db. • آخرین نسخه از Prisma را واکشی می کند. در این مقاله ، همان Prisma 1.20 است. • پورت هایی را تنظیم می کند که Prisma در دسترس خواهد بود و تمام اعتبارات را برای اتصال به پایگاه داده MySQL در بخش دیتابیس ها مشخص می کند. فایل docker-compose.yml ، managementApiSecret را تنظیم می کند ، که از دسترسی دیگران به اطلاعات شما به واسطه دانستن نقطه پایانی جلوگیری می کند. اگر از این آموزش برای هر چیزی به جز استقرار تستی استفاده می کنید ، باید managementApiSecret را به چیزی ایمن تر تغییر دهید. وقتی این کار را کردید ، حتماً آن را به خاطر بسپارید که بعداً بتوانید در طی مراحل prisma init وارد آن شوید. این فایل همچنین تصویر MySQL Docker را به در داخل خود قرار میدهد و اعتبارات آن را نیز تعیین می کند. برای اهداف این آموزش ، این فایل Docker Compose یک تصویر MySQL را می چرخاند ، اما می توانید از PostgreSQL با Prisma نیز استفاده کنید. هر دو تصویر Docker در Docker hub موجود است: ⦁ MySQL ⦁ PostgreSQL. فایل را ذخیره کنید و از آن خارج شوید. اکنون که تمام جزئیات را ذخیره کرده اید ، می توانید کانتینرهای Docker را شروع کنید. دستور -d به کانتینرها می گوید که در حالت جداگانه اجرا شوند ، به این معنی که در پس زمینه اجرا می شوند: ⦁ $ sudo docker-compose up -d ⦁ با این کار تصاویر Docker هم برای Prisma و هم برای mysql دریافت می شوند. با دستور زیر می توانید تأیید کنید که کانتینرهای Docker اجرا می شوند: ⦁ $ sudo docker ps ⦁ خروجی را مشاهده خواهید کرد که شبیه به این است: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 24f4dd6222b1 prismagraphql/prisma:1.12 “/bin/sh -c /app/sta…” 15 seconds ago Up 1 second 0.0.0.0:4466->4466/tcp root_prisma_1 d8cc3a393a9f mysql:5.7 “docker-entrypoint.s…” 15 seconds ago Up 13 seconds 3306/tcp root_mysql_1
با تنظیم سرور مجازی Prisma و پایگاه داده خود ، اکنون آماده کار به صورت محلی برای استقرار سرویس Prisma هستید. مرحله 2 – نصب Prisma بصورت محلی سرور مجازی Prisma محیط های زمان اجرا را برای خدمات Prisma شما فراهم می کند. اکنون که سرور مجازی Prisma خود را راه اندازی کرده اید ، می توانید سرویس Prisma را مستقر کنید. این مراحل را به صورت محلی و نه بر روی سرور مجازی خود اجرا خواهید کرد. برای شروع ، یک پوشه جداگانه ایجاد کنید تا همه فایل های Prisma را شامل شود: ⦁ $ mkdir prisma ⦁ سپس به آن پوشه بروید: ⦁ $ cd prisma ⦁ اگر از MacOS استفاده می کنید ، می توانید Prisma را با Homebrew نصب کنید. برای این کار ، دستور زیر را برای اضافه کردن مخزن Prisma اجرا کنید: ⦁ $ brew tap prisma/prisma ⦁ سپس می توانید Prisma را با دستور زیر نصب کنید: ⦁ $ brew install prisma ⦁ یا با npm نصب کنید: ⦁ $ npm install -g prisma ⦁
با نصب Prisma به صورت محلی ، آماده هستید تا سرویس جدید Prisma را راه اندازی کنید. مرحله 3 – ایجاد پیکربندی برای یک سرویس جدید Prisma پس از نصب ، می توانید از prisma init برای ایجاد ساختار فایل برای یک API پایگاه داده جدید Prisma استفاده کنید ، که فایلهای لازم برای ساختن برنامه شما را با Prisma تولید می کند. نقطه پایانی شما به طور خودکار در فایل prisma.yml خواهد بود و datamodel.prisma از قبل یک مدل داده نمونه را در اختیار شما خواهد داشت که می توانید در مرحله بعد پرس و جو کنید. datamodel به عنوان پایه API Prisma شما عمل می کند و الگوی برنامه را مشخص می کند. در این مرحله ، شما فقط فایل ها و مدل داده نمونه را ایجاد می کنید. تا زمانی که بعداً در این مرحله prisma deploy را اجرا کنید، تغییراتی انجام نخواهید داد. اکنون می توانید دستور زیر را بصورت محلی اجرا کنید تا ساختار فایل جدید ایجاد شود: ⦁ $ prisma init hello-world ⦁ پس از اجرای این دستور ، اعلان تعاملی را مشاهده خواهید کرد. وقتی از شما پرسیده شد ، Use other server را انتخاب کرده و ENTER را فشار دهید: Output Set up a new Prisma server or deploy to an existing server?
You can set up Prisma for local development (based on docker-compose) Use existing database Connect to existing database Create new database Set up a local database using Docker
Or deploy to an existing Prisma server: Demo server Hosted demo environment incl. database (requires login) ❯ Use other server Manually provide endpoint of a running Prisma server
سپس نقطه پایانی سرور مجازی خود را که به عنوان سرور مجازی Prisma عمل می کند ارائه می دهید. چیزی مانند: http: // SERVER_IP_ADDRESS: 4466. به نظر می رسد. مهم است که نقطه پایانی با http (یا https) شروع شود و شماره پورت را نشان دهد. Output Enter the endpoint of your Prisma server http://SERVER_IP_ADDRESS:4466
برای سری نگه داشتن مدیریت API ، عبارت یا رمز عبوری را که قبلاً در فایل پیکربندی اعلام کرده اید وارد کنید: Output Enter the management API secret my-secret
برای گزینه های بعدی می توانید با فشار دادن ENTER برای نام سرویس و مرحله خدمات ، متغیرهای پیش فرض را انتخاب کنید: Output Choose a name for your service hello-world Choose a name for your stage dev
همچنین برای کلاینت Prisma یک انتخاب روی یک زبان برنامه نویسی به شما داده می شود. در این حالت می توانید زبان دلخواه خود را انتخاب کنید. می توانید اطلاعات بیشتری در مورد کلاینت را در این لینک بخوانید. Output Select the programming language for the generated Prisma client (Use arrow keys) ❯ Prisma TypeScript Client Prisma Flow Client Prisma JavaScript Client Prisma Go Client Don’t generate
پس از تکمیل اعلان ، خروجی زیر را مشاهده می کنید که انتخاب های شما را تأیید می کند: Output Created 3 new files:
prisma.yml Prisma service definition datamodel.prisma GraphQL SDL-based datamodel (foundation for database) .env Env file including PRISMA_API_MANAGEMENT_SECRET
Next steps:
1. Open folder: cd hello-world 2. Deploy your Prisma service: prisma deploy 3. Read more about deploying services: http://bit.ly/prisma-deploy-services
به دیرکتوری HELLO-WORLD بروید: ⦁ $ cd hello-world ⦁ این تغییرات در سرور مجازی خود را با prisma deploy همگام سازی کنید. این کار اطلاعات را از دستگاه محلی شما به سرور مجازی Prisma می فرستد و سرویس Prisma را روی سرور مجازی Prisma ایجاد می کند: ⦁ $ prisma deploy ⦁ توجه: اجرای مجدد prisma دوباره خدمات Prisma را به روز می کند. خروجی شما چیزی شبیه به این خواهد بود: Output Creating stage dev for service hello-world ✔ Deploying service `hello-world` to stage ‘dev’ to server ‘default’ 468ms
Changes:
User (Type) + Created type `User` + Created field `id` of type `GraphQLID!` + Created field `name` of type `String!` + Created field `updatedAt` of type `DateTime!` + Created field `createdAt` of type `DateTime!`
Applying changes 716ms
Your Prisma GraphQL database endpoint is live:
HTTP: http://SERVER_IP_ADDRESS:4466/hello-world/dev WS: ws://SERVER_IP_ADDRESS:4466/hello-world/dev
خروجی نشان می دهد که Prisma پایگاه داده شما را مطابق با datamodel (که در مرحله prisma init ایجاد شده ) با یک کاربر TYPE به روز کرده است. Type ها قسمت اصلی یک پایگاه داده هستند. آنها یک آیتم از برنامه شما را نشان می دهند ، و هر نوع شامل چندین فیلد است. برای Datamodel فیلدهای مرتبط که کاربر را توصیف می کنند عبارتند از: شناسه کاربر ، نام ، زمان ایجاد و زمان بروزرسانی آنها. اگر در این مرحله به مشکلاتی برخورد کردید و خروجی دیگری را دریافت کردید ، دوبار بررسی کنید که در اعلان تعاملی به درستی همه فیلدها را وارد نموده اید. می توانید با مرور مطالب فایل prisma.yml این کار را انجام دهید. با اجرای سرویس Prisma ، می توانید به دو نقطه پایانی مختلف وصل شوید: ⦁ رابط مدیریت ، موجود در http://SERVER_IP_ADDRESS:4466/management ، که در آن می توانید خدمات Prisma را مدیریت و استقرار دهید. ⦁ APP GraphQL برای سرویس Prisma شما ، که در آدرس http://SERVER_IP_ADDRESS:4466/hello-world/dev موجود است. شما با موفقیت سرور مجازی Prisma خود را راه‌اندازی و مستقر کردید. اکنون می توانید پرس و جوها و جهش ها را در GraphQL جستجو کنید. مرحله 4 – اجرای یک پرس و جوی مثال برای جستجوی یکی دیگر از موارد استفاده Prisma ، می توانید با ابزار playground GraphQL که یک محیط توسعه یکپارچه GraphQL منبع باز (IDE) روی سرور مجازی شما است ، این کار را آزمایش کنید. برای دستیابی به آن ، از نقطه پایانی مرورگر خود در از مرحله قبلی بازدید کنید: http://SERVER_IP_ADDRESS:4466/hello-world/dev جهش (mutation ) یک اصطلاح GraphQL است که روشی برای اصلاح – ایجاد ، به روزرسانی یا حذف (CRUD) – داده های موجود در پس زمینه از طریق GraphQL را توصیف می کند. برای ایجاد یک کاربر جدید و کشف قابلیت ها می توانید جهشی ارسال کنید. برای این کار ، جهش زیر را در سمت چپ صفحه اجرا کنید: mutation { createUser(data: { name: “Alice” }) { id name } }
پس از فشردن دکمه play ، نتایج را در سمت راست صفحه مشاهده خواهید کرد.
پس از آن ، اگر می خواهید با استفاده از ستون ID در دیتابیس به جستجوی کاربر بپردازید ، می توانید پرس و جو زیر را اجرا کنید: query { user(where: { id: “cjkar2d62000k0847xuh4g70o” }) { id name } }
اکنون یک سرور مجازی Prisma و سرویسی فعال و در حال اجرا در سرور مجازی خود دارید و پرس و جوهای تستی را در IDE GraphQL اجرا کرده اید. نتیجه شما یک ستاپ Prisma در سرور مجازی خود دارید. می توانید موارد استفاده بیشتر از Prisma و مراحل بعدی را در راهنمای شروع به کار مشاهده کنید یا ویژگی های Prisma را که در Doc Prisma قرار داده شده است ، جستجو کنید. پس از اتمام مراحل کلی در این آموزش ، گزینه های مختلفی برای تأیید اتصال خود به دیتابیس دارید ، یکی از احتمالات استفاده از کلاینت Prisma میباشد.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
datamodel
,
Doc Prisma
,
IDE GraphQL
,
Prisma
,
Prisma 1.20
0 notes
vpsgold-blog · 4 years
Text
نصب و پیکربندی pgAdmin 4 در Server Mode
pgAdmin یک پلتفرم توسعه و اجرای منبع باز برای PostgreSQL و سیستم های مدیریت پایگاه داده مرتبط با آن است. از آنجا که در Python و jQuery نوشته شده، تمام ویژگی های موجود در PostgreSQL را پشتیبانی می کند. می توانید از pgAdmin برای انجام همه کارها از نوشتن پرس و جوهای SQL پایه گرفته تا نظارت بر پایگاه های داده خود و پیکربندی معماری های پیشرفته پایگاه داده استفاده کنید. در این آموزش ، مراحل نصب و پیکربندی آخرین نسخه pgAdmin را روی یک سرور مجازی Ubuntu 18.04 ، دسترسی به pgAdmin از طریق یک مرورگر وب ، و اتصال آن به یک پایگاه داده PostgreSQL در سرور مجازی شما را بررسی خواهیم کرد. پیش نیازها برای تکمیل این آموزش ، به موارد زیر نیاز دارید: • سرور مجازی ی که اوبونتو 18.04 را اجرا می کند. این سرور مجازی باید دارای یک کاربر غیر ریشه با امتیازات sudo و همچنین فایروال تنظیم شده با ufw داشته باشد. برای راهنمایی در مورد این تنظیمات ، راهنمای اولیه راه اندازی سرور مجازی ما برای اوبونتو 18.04 را دنبال کنید. • سرور مجازی وب Apache که بر روی سرور مجازی شما نصب شده باشد. برای پیکربندی این روی ماشین خود، راهنمای ما در مورد نحوه نصب وب سرور مجازی Apache در Ubuntu 18.04 را دنبال کنید. • PostgreSQL که بر روی سرور مجازی شما نصب شده باشد. با دنبال کردن راهنمای ما در مورد نحوه نصب و استفاده از PostgreSQL در اوبونتو 18.04 می توانید این تنظیمات را انجام دهید. همانطور که این راهنما را دنبال می کنید ، حتماً یک نقش جدید و بانک اطلاعاتی ایجاد کنید ، زیرا برای اتصال pgAdmin به نمونه PostgreSQL خود به هر دو نیاز خواهید داشت. • Python 3 و venv که بر روی سرور مجازی شما نصب شده باشد. برای نصب این ابزارها و تنظیم یک محیط مجازی ، نحوه نصب Python 3 و تنظیم یک محیط برنامه نویسی روی یک سرور مجازی Ubuntu 18.04 را دنبال کنید. مرحله 1 – نصب pgAdmin و متعلقات آن د زمان نوشتن این مقاله ، جدیدترین نسخه pgAdmin ،pgAdmin 4 است ، در حالی که جدیدترین نسخه موجود در مخازن رسمی اوبونتو pgAdmin3 است. ما مراحل نصب آخرین نسخه pgAdmin 4 را در یک محیط مجازی (همانطور که توسط تیم توسعه پروژه توصیه می شود) انجام خواهیم داد و متعلقات آن را با استفاده از apt نصب می کنیم. برای شروع ، اگر اخیراً این کار را نکرده اید ، فهرست بسته سرور مجازی خود را به روز کنید: ⦁ $ sudo apt update ⦁ در مرحله بعد ، متعلقات زیر را نصب کنید. اینها شامل libgmp3-dev ، یک کتابخانه محاسباتی دقیق، libpq-dev شامل فایل های هدر و یک کتابخانه ثابت هستند که به ارتباط با پس زمینه PostgreSQL کمک می کند. و libapache2-mod-wsgi-py3 ، یک ماژول Apache که به شما امکان می دهد میزبان برنامه های وب مستقر در پایتون در Apache باشید: پس از این ، چند دایرکتوری ایجاد کنید که pgAdmin داده های بخش های خود ، داده های ذخیره و ورود ها را ذخیره کند: ⦁ $ sudo mkdir -p /var/lib/pgadmin4/sessions ⦁ ⦁ $ sudo mkdir /var/lib/pgadmin4/storage ⦁ ⦁ $ sudo mkdir /var/log/pgadmin4
سپس ، مالکیت این دایرکتوری ها را به کاربر و گروه غیر ریشه خود تغییر دهید. این امر از این منظر ضروری است که آنها در حال حاضر متعلق به کاربر ریشه شما هستند ، اما ما pgAdmin را از یک محیط مجازی متعلق به کاربر غیر ریشه شما نصب خواهیم کرد و مراحل نصب شامل ایجاد برخی فایل ها در این دیرکتوری ها است. با این وجود ، پس از نصب ، ما مالکیت را به کاربر و گروه www-data تغییر می دهیم تا بتواند به وب ارائه شود: ⦁ $ sudo chown -R sammy:sammy /var/lib/pgadmin4 ⦁ ⦁ $ sudo chown -R sammy:sammy /var/log/pgadmin4
سپس ، محیط مجازی خود را باز کنید. به دیرکتوری بروید که محیط برنامه نویسی شما در آن قرار دارد و آن را فعال کنید. پس از کنوانسیون های نامگذاری آموزش پیش نیاز پایتون 3 ، به دیرکتوری environments رفته و محیط my_env را فعال می کنیم: ⦁ $ cd environments/ ⦁ ⦁ $ source my_env/bin/activate
پس از این ، کد منبع pgAdmin 4 را روی دستگاه خود دانلود کنید. برای یافتن آخرین نسخه از کد منبع ، به صفحه دانلود pgAdmin 4 (Python Wheel) بروید و روی آخرین نسخه (v3.4 ، مطابق با این نوشتار) کلیک کنید. این کار شما را به یک صفحه دانلود در وب سایت PostgreSQL می برد. پس از آن ، پیوند فایلی را که به .whl ختم می شود ، کپی کنید – قالب استاندارد بسته ساخته شده است که برای توزیع های پایتون میشود. سپس به ترمینال خود برگردید و دستور wget زیر را اجرا کنید ، تا مطمئن شوید که پیوند را با پیوندی که از سایت PostgreSQL کپی کردید ، جایگزین کرده اید تا فایل. WHL را روی سرور مجازی شما دانلود کند: ⦁ (my_env) Sammy@server:~$ wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v3.4/pip/pgadmin4-3.4-py2.py3-none-any.whl ⦁ سپس بسته wheel ، اجرای مرجع استاندارد بسته بندی wheel را نصب کنید. این پکیج ، یک کتابخانه Python را به عنوان افزونه ای برای wheel های ساخته شده ارائه میدهد و شامل یک ابزار خط فرمان برای کار با فایل های .whl است: ⦁ (my_env) Sammy@server:~$ python -m pip install wheel ⦁ سپس بسته pgAdmin 4 را با دستور زیر نصب کنید: ⦁ (my_env) Sammy@server:~$ python -m pip install pgadmin4-3.4-py2.py3-none-any.whl ⦁ این از نصب pgAdmin و متعلقات آن مراقبت میکند. با این وجود قبل از اتصال آن به پایگاه داده خود ، چند تغییر وجود دارد که باید در پیکربندی برنامه انجام دهید. مرحله 2 – پیکربندی pgAdmin 4 اگرچه pgAdmin روی سرور مجازی شما نصب شده است ، اما هنوز چند مرحله برای اطمینان از داشتن مجوزها و تنظیمات لازم جهت استفاده صحیح از رابط وب ، وجود دارد. فایل پیکربندی اصلی pgAdmin ، config.py ، قبل از هر فایل پیکربندی دیگر خوانده می شود. از محتویات آن می توان به عنوان یک مرجع برای تنظیمات پیکربندی بیشتر استفاده کرد که می تواند در سایر فایل های پیکربندی pgAdmin مشخص شود ، اما برای جلوگیری از خطاهای پیش بینی نشده ، نباید خود فایل config.py را ویرایش کنید. ما چند تغییر به فایل جدید به نام config_local.py اضافه خواهیم کرد که پس از فایل اصلی خوانده می شود. اکنون این فایل را با استفاده از ویرایشگر متن مورد نظر خود ایجاد کنید. در اینجا ، ما از nano استفاده خواهیم کرد: ⦁ (my_env) Sammy@server:~$ nano my_env/lib/python3.6/site-packages/pgadmin4/config_local.py ⦁ در ویرایشگر خود ، محتوای زیر را اضافه کنید: environments/my_env/lib/python3.6/site-packages/pgadmin4/config_local.py LOG_FILE = ‘/var/log/pgadmin4/pgadmin4.log’ SQLITE_PATH = ‘/var/lib/pgadmin4/pgadmin4.db’ SESSION_DB_PATH = ‘/var/lib/pgadmin4/sessions’ STORAGE_DIR = ‘/var/lib/pgadmin4/storage’ SERVER_MODE = True
در اینجا کاری که این پنج دستورالعمل انجام میدهند آمده است: ⦁ LOG_FILE: فایلی را که در آن ورودهای pgAdmin ذخیره می شود ، تعریف می کند. ⦁ SQLITE_PATH: pgAdmin داده های مربوط به کاربر را در یک پایگاه داده SQLite ذخیره می کند ، و این دستورالعمل نرم افزار pgAdmin را به این پایگاه داده ارجاع میدهد. از آنجا که این فایل در دیرکتوری / var / lib / pgadmin4 / قرار دارد ، پس از به روزرسانی اطلاعات کاربر شما از بین نمی رود. ⦁ SESSION_DB_PATH: مشخص می کند که کدام دایرکتوری برای ذخیره داده های بخش استفاده خواهد شد. ⦁ STORAGE_DIR: مشخص می کند که pgAdmin داده های دیگر مانند پشتیبان گیری و مجوزهای امنیتی را ذخیره می کند. ⦁ SERVER_MODE: تنظیم این دستورالعمل روی True به pgAdmin می گوید که در حالت سرور مجازی اجرا شود ، بر خلاف حالت دسکتاپ. توجه کنید که هر یک از این مسیرهای فایل به دایرکتوری هایی که در مرحله 1 ایجاد کرده اید ، اشاره می کنند. پس از افزودن این خطوط ، فایل را ذخیره کرده و ببندید (CTRL + X را فشار داده و سپس Y و ENTER را فشار دهید). با استفاده از این تنظیمات ، اسکریپت تنظیم pgAdmin را اجرا کنید تا اعتبار ورود به سیستم را تنظیم کنید: ⦁ (my_env) Sammy@server:~$ python my_env/lib/python3.6/site-packages/pgadmin4/setup.py ⦁ پس از اجرای این دستور ، اعلانی را مشاهده می کنید که آدرس ایمیل و رمز عبور شما را درخواست می کند. وقتی بعدا به pgAdmin دسترسی پیدا کنید ، این مقادیر به عنوان اعتبارات ورود به سیستم شما استفاده می شوند ، بنابراین حتماً آنچه را که در اینجا وارد می کنید به خاطر داشته باشید یا یادداشت کنید: Output . . . Enter the email address and password to use for the initial pgAdmin user account:
Email address: [email protected] Password: Retype password:
سپس ، محیط مجازی خود را غیرفعال کنید: ⦁ (my_env) Sammy@server:~$ deactivate ⦁ مسیرهای فایلی را که در فایل config_local.py مشخص کرده اید به یاد بیاورید. این فایل ها درون دایرکتوری هایی که در مرحله 1 ایجاد کردید نگهداری می شوند ، که در حال حاضر متعلق به کاربر غیر ریشه شما هستند. با این حال ، باید توسط کاربر و گروهی که سرور مجازی وب شما را اجرا می کند ، در دسترس باشند. به طور پیش فرض در اوبونتو 18.04 ، این ها کاربر و گروه www-data هستند ، بنابراین مجوزهای موجود در دیرکتوری های زیر را به روز کنید تا مالکیت www-data را به هر دوی آنها بدهید: ⦁ $ sudo chown -R www-data:www-data /var/lib/pgadmin4/ ⦁ ⦁ $ sudo chown -R www-data:www-data /var/log/pgadmin4/
با این کار ، pgAdmin کاملاً پیکربندی شده است. با این حال ، این برنامه هنوز از سرور مجازی شما ارائه نمی شود ، بنابراین قابل دسترسی نیست. برای حل این مشکل ، ما Apache را برای ارائه pgAdmin پیکربندی می کنیم تا بتوانید از طریق یک مرورگر وب به رابط کاربری آن دسترسی پیدا کنید. مرحله 3 – پیکربندی Apache سرور مجازی وب Apache از هاست های مجازی برای کپسوله کردن جزئیات پیکربندی و میزبانی بیش از یک دامنه از یک سرور مجازی واحد استفاده می کند. اگر آموزش پیش نیاز Apache را دنبال کردید ، ممکن است یک فایل هاست مجازی نمونه را با نام your_domain.conf تنظیم کرده باشید ، اما در این مرحله ما یک مورد جدید ایجاد خواهیم کرد که از طریق آن می توانیم رابط وب pgAdmin را ارائه دهیم. برای شروع ، مطمئن شوید که در دیرکتوری ریشه خود قرار دارید: ⦁ $ cd / ⦁
سپس یک فایل جدید در دیرکتوری /sites-available/ با نام pgadmin4.conf ایجاد کنید. این فایل هاست مجازی سرور مجازی شما خواهد بود: ⦁ $ sudo nano /etc/apache2/sites-available/pgadmin4.conf ⦁ محتوای زیر را به این فایل اضافه کنید ، حتما بخش های هایلایت شده را به روز کنید تا با پیکربندی خودتان هماهنگ شوید: /etc/apache2/sites-available/pgadmin4.conf <VirtualHost *> ServerName your_server_ip
WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/home/sammy/environments/my_env WSGIScriptAlias / /home/sammy/environments/my_env/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi
<Directory “/home/sammy/environments/my_env/lib/python3.6/site-packages/pgadmin4/”> WSGIProcessGroup pgadmin WSGIApplicationGroup %{GLOBAL} Require all granted </Directory> </VirtualHost>
فایل هاست مجازی را ذخیره کنید و ببندید. سپس ، از اسکریپت a2dissite استفاده کنید تا فایل هاست مجازی پیش فرض ، 000-default.conf را غیرفعال کنید: ⦁ $ sudo a2dissite 000-default.conf ⦁ توجه: اگر از آموزش پیش نیاز Apache استفاده کرده اید ، ممکن است قبلاً 000-default.conf را غیرفعال کرده و یک فایل پیکربندی هاست مجازی نمونه (به نام your_domain.conf را در پیش نیاز) تنظیم کرده باشید. در این صورت ، باید فایل میزبان مجازی your_domain.conf را با دستور زیر غیرفعال کنید: ⦁ $ sudo a2dissite your_domain.conf ⦁ سپس از اسکریپت a2ensite استفاده کنید تا فایل هاست مجازی pgadmin4.conf خود را فعال کنید. با این کار یک لینک نمادین از فایل هاست مجازی در دیرکتوری /sites-available/ به دیرکتوری /sites-enabled/ ایجاد می شود: ⦁ $ sudo a2ensite pgadmin4.conf ⦁ پس از این ، بررسی کنید که دستور فایل پیکربندی شما صحیح باشد: ⦁ $ apachectl configtest ⦁ اگر فایل پیکربندی شما به صورت کامل درست باشد ، Syntax OK را خواهید دید. اگر خطایی در خروجی مشاهده کردید ، فایل pgadmin4.conf را مجدداً باز کنید و دوبار بررسی کنید که آدرس IP و مسیر فایل شما صحیح باشند ، سپس به configtest بازگردید. وقتی Syntax OK را در خروجی خود مشاهده کردید ، سرویس Apache را مجدداً راه اندازی کنید تا فایل هاست مجازی جدید شما را بخواند: ⦁ $ sudo systemctl restart apache2 ⦁ pgAdmin اکنون کاملاً نصب و پیکربندی شده است. در مرحله بعد ، نحوه دسترسی به pgAdmin را از یک مرورگر پیش از اتصال به پایگاه داده PostgreSQL خود مرور خواهیم کرد. مرحله 4 – دسترسی به pgAdmin در دستگاه محلی خود ، مرورگر وب مورد نظر خود را باز کرده و به آدرس IP سرور مجازی خود بروید: http://your_server_ip
پس از آن، صفحه ورود به سیستم شبیه زیر به شما نشان داده خواهد شد:
اطلاعات ورود به سیستم را که در مرحله 2 تعریف کردید وارد کنید و به صفحه خوش آمد گویی pgAdmin منتقل می شوید:
اکنون که تأیید کردید که می توانید به رابط pgAdmin دسترسی پیدا کنید ، تنها کاری که باید انجام دهید اتصال pgAdmin به پایگاه داده PostgreSQL است. قبل از انجام این کار ، باید یک تغییر جزئی در پیکربندی فوق کاربر PostgreSQL ایجاد کنید. مرحله 5 – پیکربندی کاربر PostgreSQL اگر آموزش پیش نیاز PostgreSQL را دنبال کرده باشید ، باید PostgreSQL را با نقش جدید ابرکاربر و پایگاه داده تنظیم شده بر روی سرور مجازی خود نصب داشته باشید. به طور پیش فرض در PostgreSQL ، شما به عنوان کاربران پایگاه داده با استفاده از روش تأیید هویت “پروتکل شناسایی” یا “شناسایی” تأیید اعتبار می شوید. این روند به این گونه است که PostgreSQL نام کاربری اوبونتو کلاینت را میگیرد و از آن به عنوان نام کاربری مجاز پایگاه داده استفاده می کند. این کار می تواند در بیشتر موارد امنیت بیشتری را ایجاد کند ، اما همچنین می تواند در مواردی که مایل به اتصال یک برنامه خارجی مانند pgAdmin به یکی از بانکهای اطلاعاتی خود هستید، باعث ایجاد مشکل شود. برای حل این مشکل ، ما یک رمز عبور برای این نقش PostgreSQL تعیین می کنیم که به pgAdmin امکان اتصال به پایگاه داده شما را می دهد. از ترمینال خود ، اعلان PostgreSQL را تحت نقش ابرکاربر خود باز کنید: ⦁ $ sudo -u sammy psql ⦁ از اعلان PostgreSQL ، نمایه کاربر را به روز کنید تا یک رمز عبور قوی به انتخاب شما داشته باشد: ⦁ Sammy=# ALTER USER sammy PASSWORD ‘password’ سپس از اعلان PostgreSQL خارج شوید: ⦁ Sammy=# \q ⦁
در مرحله بعد ، به رابط pgAdmin 4 در مرورگر خود برگردید و منوی مرورگر را در سمت چپ پیدا کنید. برای باز کردن یک منوی زمینه ، روی سرور مجازیها کلیک راست کنید ، موس خود را روی ایجاد حرکت داده و روی سرور مجازی … کلیک کنید.
این کار باعث می شود پنجره ای در مرورگر شما ظاهر شود که در آن می توانید اطلاعات مربوط به سرور مجازی ، نقش و پایگاه داده خود را وارد کنید. در تب General نام این سرور مجازی را وارد کنید. این نام می تواند هر چیزی که دوست دارید باشد ، اما بهتر است نامی توصیفی برای آن انتخاب کنید. در مثال ما سرور مجازی Sammy-server-1 نامگذاری شده است.
سپس ، بر روی تب Connection کلیک کنید. در فیلد Host name/address ، localhost را وارد کنید. پورت باید به طور پیش فرض روی 5432 تنظیم شود ، که برای این ستاپ کار خواهد کرد ، زیرا پورت پیش فرض استفاده شده توسط PostgreSQL میباشد. در قسمت Maintenance Database ، نام بانک اطلاعاتی را که می خواهید به آن متصل شوید ، وارد کنید. توجه داشته باشید که این بانک اطلاعاتی از قبل باید روی سرور مجازی شما ایجاد ��ود. سپس به ترتیب نام کاربری و رمز عبوری را که قبلاً پیکربندی کرده اید در قسمت های Username و Password وارد کنید.
قسمت های خالی در سربرگ های دیگر اختیاری است ، و فقط لازم است که در صورت داشتن یک ستاپ خاص در ذهن تان ، آنها را پر کنید. بر روی دکمه ذخیره کلیک کنید ، و پایگاه داده در زیر سرور مجازی ها در فهرست مرورگر ظاهر می شود. شما با موفقیت pgAdmin4 را به پایگاه داده PostgreSQL خود وصل کردید. می توانید تقریباً هر کاری را که از اعلان PostgreSQL مدیریت میکردید، از داشبورد pgAdmin انجام دهید. برای نشان دادن این امر، یک جدول مثال ایجاد می کنیم و آن را با برخی از داده های نمونه از طریق رابط وب پر می کنیم. مرحله 6 – ایجاد جدول در داشبورد pgAdmin از داشبورد pgAdmin ، منوی مرورگر را در سمت چپ پنجره پیدا کنید. بر روی علامت مثبت (+) در کنار سرور مجازی (1) کلیک کنید تا منوی درختی درون آن باز شود. سپس ، روی علامت مثبت در سمت چپ سرور مجازی ی که در مرحله قبل اضافه کرده اید کلیک کنید (در مثال ما Sammy-server-1بود) ، سپس Databases ، نام دیتابیسی که اضافه کرده اید (sammy ، در مثال ما) ، و سپس طرحواره (1) را باز کنید. باید یک منوی درختی مانند زیر را ببینید:
بر روی گزینه لیست جداول کلیک راست کنید، و سپس مکان نما روی create حرکت دهید و روی Table … کلیک کنید.
با این کار یک پنجره ایجاد جدول باز می شود. در زیر تب General این پنجره ، یک نام برای جدول وارد کنید. این نام می تواند هر چیزی باشد ، اما برای ساده سازی ، ما آن را جدول شماره 01 می نامیم.
سپس به تب columns بروید و روی علامت + در گوشه سمت راست بالای پنجره کلیک کنید تا چند ستون اضافه شود. هنگام افزودن ستون ، لازم است که نام و نوع داده را به آن بدهید ، و در صورت نیاز به نوع داده ای که انتخاب کرده اید ، لازم است یک طول را انتخاب کنید. علاوه بر این ، مطالب رسمی PostgreSQL بیان می کند که اضافه کردن کلید اصلی به جدول معمولاً بهترین روش است. کلید اصلی محدودیتی است که یک ستون یا مجموعه ستون خاص را نشان می دهد که می تواند به عنوان شناگر ویژه ردیف های جدول استفاده شود. این مسئله الزامی نیست ، اما اگر می خواهید یک یا چند ستون خود را به عنوان کلید اصلی تنظیم کنید ، سوئیچ را در سمت راست از no به yes تغییر دهید. برای ایجاد جدول بر روی دکمه ذخیره کلیک کنید.
تا این مرحله ، شما یک جدول ایجاد کرده و ستون هایی را به آن اضافه کرده اید. با این حال ، ستون ها هنوز داده ای را دراختیار ندارند. برای افزودن داده به جدول جدید خود ، بر روی نام جدول در منوی مرورگر راست کلیک کنید ، مکان نمای خود را روی اسکریپت ها بگیرید و بر روی INSERT Script کلیک کنید.
با این کار پانل جدیدی روی داشبورد باز می شود. در بالا عبارت INSERT نصفه تکمیل شده ، با نام های مناسب جدول و ستون را مشاهده خواهید کرد. پیش بروید و علامت سؤال (؟) را با برخی از داده های ساختگی جایگزین کنید ، مطمئن شوید که داده اضافه شده با انواع داده ای که برای هر ستون انتخاب کرده اید هماهنگ باشد. توجه داشته باشید که می توانید با افزودن هر ردیف در یک مجموعه جدید از پرانتزها ، چندین ردیف داده اضافه کنید ، که هر مجموعه پرانتز همانطور که در مثال زیر نشان داده شده است با یک کاما جدا میشوند. در صورت تمایل ، اسکریپت INSERT را که به طور جزیی تکمیل شده است با این عبارت مثال INSERT جایگزین کنید: INSERT INTO public.”table-01″( col1, col2, col3) VALUES (‘Juneau’, 14, 337), (‘Bismark’, 90, 2334), (‘Lansing’, 51, 556);
برای اجرای عبارت INSERT روی نماد رعد و برق (⚡) کلیک کنید. برای مشاهده جدول و تمام داده های موجود در آن ، یک بار دیگر بر روی نام جدول خود در فهرست مرورگر کلیک راست کنید ، مکان نما خود را روی View / edit data حرکت دهید و All Rows را انتخاب کنید.
پانل جدید دیگری را باز خواهد کرد که در زیر آن ، در سربرگ Data Output پانل پایین ، می توانید تمام داده های آن جدول را مشاهده کنید.
با این کار ، شما با موفقیت جدول ایجاد کرده اید و آن را با برخی از داده ها از طریق رابط وب pgAdmin پر کرده اید. البته این تنها روشی است که می توانید از آن برای ایجاد یک جدول از طریق pgAdmin استفاده کنید. به عنوان مثال ، می توانید به جای روش مبتنی بر GUI که در این مرحله شرح داده شده است ، جدول را با استفاده از SQL ایجاد و پر کنید. نتیجه در این راهنما یاد گرفتید که چگونه pgAdmin 4 را از یک محیط مجازی Python نصب کنید ، آن را پیکربندی کنید ، با Apache آن را به وب ارائه کنید و چگونه به یک پایگاه داده PostgreSQL در وب سرویس متصل نمایید . علاوه بر این ، این راهنما فراتر از روشی است که می تواند برای ایجاد و جمع آوری جدول استفاده شود ، بلکه pgAdmin می تواند بسیار فراتر از ایجاد و ویرایش جداول استفاده شود. برای کسب اطلاعات بیشتر در مورد چگونگی استفاده بیشتر از همه ویژگی های pgAdmin ، شما را به مطالعه مطالب پروژه تشویق می کنیم. همچنین می توانید اطلاعات بیشتری در مورد PostgreSQL از طریق آموزش های انجمن ما در مورد این موضوع کسب کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
pgAdmin 4
,
Server Mode
0 notes
vpsgold-blog · 4 years
Text
نصب و پیکربندی pgAdmin 4 در Server Mode
pgAdmin یک پلتفرم توسعه و اجرای منبع باز برای PostgreSQL و سیستم های مدیریت پایگاه داده مرتبط با آن است. از آنجا که در Python و jQuery نوشته شده، تمام ویژگی های موجود در PostgreSQL را پشتیبانی می کند. می توانید از pgAdmin برای انجام همه کارها از نوشتن پرس و جوهای SQL پایه گرفته تا نظارت بر پایگاه های داده خود و پیکربندی معماری های پیشرفته پایگاه داده استفاده کنید. در این آموزش ، مراحل نصب و پیکربندی آخرین نسخه pgAdmin را روی یک سرور مجازی Ubuntu 18.04 ، دسترسی به pgAdmin از طریق یک مرورگر وب ، و اتصال آن به یک پایگاه داده PostgreSQL در سرور مجازی شما را بررسی خواهیم کرد. پیش نیازها برای تکمیل این آموزش ، به موارد زیر نیاز دارید: • سرور مجازی ی که اوبونتو 18.04 را اجرا می کند. این سرور مجازی باید دارای یک کاربر غیر ریشه با امتیازات sudo و همچنین فایروال تنظیم شده با ufw داشته باشد. برای راهنمایی در مورد این تنظیمات ، راهنمای اولیه راه اندازی سرور مجازی ما برای اوبونتو 18.04 را دنبال کنید. • سرور مجازی وب Apache که بر روی سرور مجازی شما نصب شده باشد. برای پیکربندی این روی ماشین خود، راهنمای ما در مورد نحوه نصب وب سرور مجازی Apache در Ubuntu 18.04 را دنبال کنید. • PostgreSQL که بر روی سرور مجازی شما نصب شده باشد. با دنبال کردن راهنمای ما در مورد نحوه نصب و استفاده از PostgreSQL در اوبونتو 18.04 می توانید این تنظیمات را انجام دهید. همانطور که این راهنما را دنبال می کنید ، حتماً یک نقش جدید و بانک اطلاعاتی ایجاد کنید ، زیرا برای اتصال pgAdmin به نمونه PostgreSQL خود به هر دو نیاز خواهید داشت. • Python 3 و venv که بر روی سرور مجازی شما نصب شده باشد. برای نصب این ابزارها و تنظیم یک محیط مجازی ، نحوه نصب Python 3 و تنظیم یک محیط برنامه نویسی روی یک سرور مجازی Ubuntu 18.04 را دنبال کنید. مرحله 1 – نصب pgAdmin و متعلقات آن د زمان نوشتن این مقاله ، جدیدترین نسخه pgAdmin ،pgAdmin 4 است ، در حالی که جدیدترین نسخه موجود در مخازن رسمی اوبونتو pgAdmin3 است. ما مراحل نصب آخرین نسخه pgAdmin 4 را در یک محیط مجازی (همانطور که توسط تیم توسعه پروژه توصیه می شود) انجام خواهیم داد و متعلقات آن را با استفاده از apt نصب می کنیم. برای شروع ، اگر اخیراً این کار را نکرده اید ، فهرست بسته سرور مجازی خود را به روز کنید: ⦁ $ sudo apt update ⦁ در مرحله بعد ، متعلقات زیر را نصب کنید. اینها شامل libgmp3-dev ، یک کتابخانه محاسباتی دقیق، libpq-dev شامل فایل های هدر و یک کتابخانه ثابت هستند که به ارتباط با پس زمینه PostgreSQL کمک می کند. و libapache2-mod-wsgi-py3 ، یک ماژول Apache که به شما امکان می دهد میزبان برنامه های وب مستقر در پایتون در Apache باشید: پس از این ، چند دایرکتوری ایجاد کنید که pgAdmin داده های بخش های خود ، داده های ذخیره و ورود ها را ذخیره کند: ⦁ $ sudo mkdir -p /var/lib/pgadmin4/sessions ⦁ ⦁ $ sudo mkdir /var/lib/pgadmin4/storage ⦁ ⦁ $ sudo mkdir /var/log/pgadmin4
سپس ، مالکی�� این دایرکتوری ها را به کاربر و گروه غیر ریشه خود تغییر دهید. این امر از این منظر ضروری است که آنها در حال حاضر متعلق به کاربر ریشه شما هستند ، اما ما pgAdmin را از یک محیط مجازی متعلق به کاربر غیر ریشه شما نصب خواهیم کرد و مراحل نصب شامل ایجاد برخی فایل ها در این دیرکتوری ها است. با این وجود ، پس از نصب ، ما مالکیت را به کاربر و گروه www-data تغییر می دهیم تا بتواند به وب ارائه شود: ⦁ $ sudo chown -R sammy:sammy /var/lib/pgadmin4 ⦁ ⦁ $ sudo chown -R sammy:sammy /var/log/pgadmin4
سپس ، محیط مجازی خود را باز کنید. به دیرکتوری بروید که محیط برنامه نویسی شما در آن قرار دارد و آن را فعال کنید. پس از کنوانسیون های نامگذاری آموزش پیش نیاز پایتون 3 ، به دیرکتوری environments رفته و محیط my_env را فعال می کنیم: ⦁ $ cd environments/ ⦁ ⦁ $ source my_env/bin/activate
پس از این ، کد منبع pgAdmin 4 را روی دستگاه خود دانلود کنید. برای یافتن آخرین نسخه از کد منبع ، به صفحه دانلود pgAdmin 4 (Python Wheel) بروید و روی آخرین نسخه (v3.4 ، مطابق با این نوشتار) کلیک کنید. این کار شما را به یک صفحه دانلود در وب سایت PostgreSQL می برد. پس از آن ، پیوند فایلی را که به .whl ختم می شود ، کپی کنید – قالب استاندارد بسته ساخته شده است که برای توزیع های پایتون میشود. سپس به ترمینال خود برگردید و دستور wget زیر را اجرا کنید ، تا مطمئن شوید که پیوند را با پیوندی که از سایت PostgreSQL کپی کردید ، جایگزین کرده اید تا فایل. WHL را روی سرور مجازی شما دانلود کند: ⦁ (my_env) Sammy@server:~$ wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v3.4/pip/pgadmin4-3.4-py2.py3-none-any.whl ⦁ سپس بسته wheel ، اجرای مرجع استاندارد بسته بندی wheel را نصب کنید. این پکیج ، یک کتابخانه Python را به عنوان افزونه ای برای wheel های ساخته شده ارائه میدهد و شامل یک ابزار خط فرمان برای کار با فایل های .whl است: ⦁ (my_env) Sammy@server:~$ python -m pip install wheel ⦁ سپس بسته pgAdmin 4 را با دستور زیر نصب کنید: ⦁ (my_env) Sammy@server:~$ python -m pip install pgadmin4-3.4-py2.py3-none-any.whl ⦁ این از نصب pgAdmin و متعلقات آن مراقبت میکند. با این وجود قبل از اتصال آن به پایگاه داده خود ، چند تغییر وجود دارد که باید در پیکربندی برنامه انجام دهید. مرحله 2 – پیکربندی pgAdmin 4 اگرچه pgAdmin روی سرور مجازی شما نصب شده است ، اما هنوز چند مرحله برای اطمینان از داشتن مجوزها و تنظیمات لازم جهت استفاده صحیح از رابط وب ، وجود دارد. فایل پیکربندی اصلی pgAdmin ، config.py ، قبل از هر فایل پیکربندی دیگر خوانده می شود. از محتویات آن می توان به عنوان یک مرجع برای تنظیمات پیکربندی بیشتر استفاده کرد که می تواند در سایر فایل های پیکربندی pgAdmin مشخص شود ، اما برای جلوگیری از خطاهای پیش بینی نشده ، نباید خود فایل config.py را ویرایش کنید. ما چند تغییر به فایل جدید به نام config_local.py اضافه خواهیم کرد که پس از فایل اصلی خوانده می شود. اکنون این فایل را با استفاده از ویرایشگر متن مورد نظر خود ایجاد کنید. در اینجا ، ما از nano استفاده خواهیم کرد: ⦁ (my_env) Sammy@server:~$ nano my_env/lib/python3.6/site-packages/pgadmin4/config_local.py ⦁ در ویرایشگر خود ، محتوای زیر را اضافه کنید: environments/my_env/lib/python3.6/site-packages/pgadmin4/config_local.py LOG_FILE = ‘/var/log/pgadmin4/pgadmin4.log’ SQLITE_PATH = ‘/var/lib/pgadmin4/pgadmin4.db’ SESSION_DB_PATH = ‘/var/lib/pgadmin4/sessions’ STORAGE_DIR = ‘/var/lib/pgadmin4/storage’ SERVER_MODE = True
در اینجا کاری که این پنج دستورالعمل انجام میدهند آمده است: ⦁ LOG_FILE: فایلی را که در آن ورودهای pgAdmin ذخیره می شود ، تعریف می کند. ⦁ SQLITE_PATH: pgAdmin داده های مربوط به کاربر را در یک پایگاه داده SQLite ذخیره می کند ، و این دستورالعمل نرم افزار pgAdmin را به این پایگاه داده ارجاع میدهد. از آنجا که این فایل در دیرکتوری / var / lib / pgadmin4 / قرار دارد ، پس از به روزرسانی اطلاعات کاربر شما از بین نمی رود. ⦁ SESSION_DB_PATH: مشخص می کند که کدام دایرکتوری برای ذخیره داده های بخش استفاده خواهد شد. ⦁ STORAGE_DIR: مشخص می کند که pgAdmin داده های دیگر مانند پشتیبان گیری و مجوزهای امنیتی را ذخیره می کند. ⦁ SERVER_MODE: تنظیم این دستورالعمل روی True به pgAdmin می گوید که در حالت سرور مجازی اجرا شود ، بر خلاف حالت دسکتاپ. توجه کنید که هر یک از این مسیرهای فایل به دایرکتوری هایی که در مرحله 1 ایجاد کرده اید ، اشاره می کنند. پس از افزودن این خطوط ، فایل را ذخیره کرده و ببندید (CTRL + X را فشار داده و سپس Y و ENTER را فشار دهید). با استفاده از این تنظیمات ، اسکریپت تنظیم pgAdmin را اجرا کنید تا اعتبار ورود به سیستم را تنظیم کنید: ⦁ (my_env) Sammy@server:~$ python my_env/lib/python3.6/site-packages/pgadmin4/setup.py ⦁ پس از اجرای این دستور ، اعلانی را مشاهده می کنید که آدرس ایمیل و رمز عبور شما را درخواست می کند. وقتی بعدا به pgAdmin دسترسی پیدا کنید ، این مقادیر به عنوان اعتبارات ورود به سیستم شما استفاده می شوند ، بنابراین حتماً آنچه را که در اینجا وارد می کنید به خاطر داشته باشید یا یادداشت کنید: Output . . . Enter the email address and password to use for the initial pgAdmin user account:
Email address: [email protected] Password: Retype password:
سپس ، محیط مجازی خود را غیرفعال کنید: ⦁ (my_env) Sammy@server:~$ deactivate ⦁ مسیرهای فایلی را که در فایل config_local.py مشخص کرده اید به یاد بیاورید. این فایل ها درون دایرکتوری هایی که در مرحله 1 ایجاد کردید نگهداری می شوند ، که در حال حاضر متعلق به کاربر غیر ریشه شما هستند. با این حال ، باید توسط کاربر و گروهی که سرور مجازی وب شما را اجرا می کند ، در دسترس باشند. به طور پیش فرض در اوبونتو 18.04 ، این ها کاربر و گروه www-data هستند ، بنابراین مجوزهای موجود در دیرکتوری های زیر را به روز کنید تا مالکیت www-data را به هر دوی آنها بدهید: ⦁ $ sudo chown -R www-data:www-data /var/lib/pgadmin4/ ⦁ ⦁ $ sudo chown -R www-data:www-data /var/log/pgadmin4/
با این کار ، pgAdmin کاملاً پیکربندی شده است. با این حال ، این برنامه هنوز از سرور مجازی شما ارائه نمی شود ، بنابراین قابل دسترسی نیست. برای حل این مشکل ، ما Apache را برای ارائه pgAdmin پیکربندی می کنیم تا بتوانید از طریق یک مرورگر وب به رابط کاربری آن دسترسی پیدا کنید. مرحله 3 – پیکربندی Apache سرور مجازی وب Apache از هاست های مجازی برای کپسوله کردن جزئیات پیکربندی و میزبانی بیش از یک دامنه از یک سرور مجازی واحد استفاده می کند. اگر آموزش پیش نیاز Apache را دنبال کردید ، ممکن است یک فایل هاست مجازی نمونه را با نام your_domain.conf تنظیم کرده باشید ، اما در این مرحله ما یک مورد جدید ایجاد خواهیم کرد که از طریق آن می توانیم رابط وب pgAdmin را ارائه دهیم. برای شروع ، مطمئن شوید که در دیرکتوری ریشه خود قرار دارید: ⦁ $ cd / ⦁
سپس یک فایل جدید در دیرکتوری /sites-available/ با نام pgadmin4.conf ایجاد کنید. این فایل هاست مجازی سرور مجازی شما خواهد بود: ⦁ $ sudo nano /etc/apache2/sites-available/pgadmin4.conf ⦁ محتوای زیر را به این فایل اضافه کنید ، حتما بخش های هایلایت شده را به روز کنید تا با پیکربندی خودتان هماهنگ شوید: /etc/apache2/sites-available/pgadmin4.conf <VirtualHost *> ServerName your_server_ip
WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/home/sammy/environments/my_env WSGIScriptAlias / /home/sammy/environments/my_env/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi
<Directory “/home/sammy/environments/my_env/lib/python3.6/site-packages/pgadmin4/”> WSGIProcessGroup pgadmin WSGIApplicationGroup %{GLOBAL} Require all granted </Directory> </VirtualHost>
فایل هاست مجازی را ذخیره کنید و ببندید. سپس ، از اسکریپت a2dissite استفاده کنید تا فایل هاست مجازی پیش فرض ، 000-default.conf را غیرفعال کنید: ⦁ $ sudo a2dissite 000-default.conf ⦁ توجه: اگر از آموزش پیش نیاز Apache استفاده کرده اید ، ممکن است قبلاً 000-default.conf را غیرفعال کرده و یک فایل پیکربندی هاست مجازی نمونه (به نام your_domain.conf را در پیش نیاز) تنظیم کرده باشید. در این صورت ، باید فایل میزبان مجازی your_domain.conf را با دستور زیر غیرفعال کنید: ⦁ $ sudo a2dissite your_domain.conf ⦁ سپس از اسکریپت a2ensite استفاده کنید تا فایل هاست مجازی pgadmin4.conf خود را فعال کنید. با این کار یک لینک نمادین از فایل هاست مجازی در دیرکتوری /sites-available/ به دیرکتوری /sites-enabled/ ایجاد می شود: ⦁ $ sudo a2ensite pgadmin4.conf ⦁ پس از این ، بررسی کنید که دستور فایل پیکربندی شما صحیح باشد: ⦁ $ apachectl configtest ⦁ اگر فایل پیکربندی شما به صورت کامل درست باشد ، Syntax OK را خواهید دید. اگر خطایی در خروجی مشاهده کردید ، فایل pgadmin4.conf را مجدداً باز کنید و دوبار بررسی کنید که آدرس IP و مسیر فایل شما صحیح باشند ، سپس به configtest بازگردید. وقتی Syntax OK را در خروجی خود مشاهده کردید ، سرویس Apache را مجدداً راه اندازی کنید تا فایل هاست مجازی جدید شما را بخواند: ⦁ $ sudo systemctl restart apache2 ⦁ pgAdmin اکنون کاملاً نصب و پیکربندی شده است. در مرحله بعد ، نحوه دسترسی به pgAdmin را از یک مرورگر پیش از اتصال به پایگاه داده PostgreSQL خود مرور خواهیم کرد. مرحله 4 – دسترسی به pgAdmin در دستگاه محلی خود ، مرورگر وب مورد نظر خود را باز کرده و به آدرس IP سرور مجازی خود بروید: http://your_server_ip
پس از آن، صفحه ورود به سیستم شبیه زیر به شما نشان داده خواهد شد:
اطلاعات ورود به سیستم را که در مرحله 2 تعریف کردید وارد کنید و به صفحه خوش آمد گویی pgAdmin منتقل می شوید:
اکنون که تأیید کردید که می توانید به رابط pgAdmin دسترسی پیدا کنید ، تنها کاری که باید انجام دهید اتصال pgAdmin به پایگاه داده PostgreSQL است. قبل از انجام این کار ، باید یک تغییر جزئی در پیکربندی فوق کاربر PostgreSQL ایجاد کنید. مرحله 5 – پیکربندی کاربر PostgreSQL اگر آموزش پیش نیاز PostgreSQL را دنبال کرده باشید ، باید PostgreSQL را با نقش جدید ابرکاربر و پایگاه داده تنظیم شده بر روی سرور مجازی خود نصب داشته باشید. به طور پیش فرض در PostgreSQL ، شما به عنوان کاربران پایگاه داده با استفاده از روش تأیید هویت “پروتکل شناسایی” یا “شناسایی” تأیید اعتبار می شوید. این روند به این گونه است که PostgreSQL نام کاربری اوبونتو کلاینت را میگیرد و از آن به عنوان نام کاربری مجاز پایگاه داده استفاده می کند. این کار می تواند در بیشتر موارد امنیت بیشتری را ایجاد کند ، اما همچنین می تواند در مواردی که مایل به اتصال یک برنامه خارجی مانند pgAdmin به یکی از بانکهای اطلاعاتی خود هستید، باعث ایجاد مشکل شود. برای حل این مشکل ، ما یک رمز عبور برای این نقش PostgreSQL تعیین می کنیم که به pgAdmin امکان اتصال به پایگاه داده شما را می دهد. از ترمینال خود ، اعلان PostgreSQL را تحت نقش ابرکاربر خود باز کنید: ⦁ $ sudo -u sammy psql ⦁ از اعلان PostgreSQL ، نمایه کاربر را به روز کنید تا یک رمز عبور قوی به انتخاب شما داشته باشد: ⦁ Sammy=# ALTER USER sammy PASSWORD ‘password’ سپس از اعلان PostgreSQL خارج شوید: ⦁ Sammy=# \q ⦁
در مرحله بعد ، به رابط pgAdmin 4 در مرورگر خود برگردید و منوی مرورگر را در سمت چپ پیدا کنید. برای باز کردن یک منوی زمینه ، روی سرور مجازیها کلیک راست کنید ، موس خود را روی ایجاد حرکت داده و روی سرور مجازی … کلیک کنید.
این کار باعث می شود پنجره ای در مرورگر شما ظاهر شود که در آن می توانید اطلاعات مربوط به سرور مجازی ، نقش و پایگاه داده خود را وارد کنید. در تب General نام این سرور مجازی را وارد کنید. این نام می تواند هر چیزی که دوست دارید باشد ، اما بهتر است نامی توصیفی برای آن انتخاب کنید. در مثال ما سرور مجازی Sammy-server-1 نامگذاری شده است.
سپس ، بر روی تب Connection کلیک کنید. در فیلد Host name/address ، localhost را وارد کنید. پورت باید به طور پیش فرض روی 5432 تنظیم شود ، که برای این ستاپ کار خواهد کرد ، زیرا پورت پیش فرض استفاده شده توسط PostgreSQL میباشد. در قسمت Maintenance Database ، نام بانک اطلاعاتی را که می خواهید به آن متصل شوید ، وارد کنید. توجه داشته باشید که این بانک اطلاعاتی از قبل باید روی سرور مجازی شما ایجاد شود. سپس به ترتیب نام کاربری و رمز عبوری را که قبلاً پیکربندی کرده اید در قسمت های Username و Password وارد کنید.
قسمت های خالی در سربرگ های دیگر اختیاری است ، و فقط لازم است که در صورت داشتن یک ستاپ خاص در ذهن تان ، آنها را پر کنید. بر روی دکمه ذخیره کلیک کنید ، و پایگاه داده در زیر سرور مجازی ها در فهرست مرورگر ظاهر می شود. شما با موفقیت pgAdmin4 را به پایگاه داده PostgreSQL خود وصل کردید. می توانید تقریباً هر کاری را که از اعلان PostgreSQL مدیریت میکردید، از داشبورد pgAdmin انجام دهید. برای نشان دادن این امر، یک جدول مثال ایجاد می کنیم و آن را با برخی از داده های نمونه از طریق رابط وب پر می کنیم. مرحله 6 – ایجاد جدول در داشبورد pgAdmin از داشبورد pgAdmin ، منوی مرورگر را در سمت چپ پنجره پیدا کنید. بر روی علامت مثبت (+) در کنار سرور مجازی (1) کلیک کنید تا منوی درختی درون آن باز شود. سپس ، روی علامت مثبت در سمت چپ سرور مجازی ی که در مرحله قبل اضافه کرده اید کلیک کنید (در مثال ما Sammy-server-1بود) ، سپس Databases ، نام دیتابیسی که اضافه کرده اید (sammy ، در مثال ما) ، و سپس طرحواره (1) را باز کنید. باید یک منوی درختی مانند زیر را ببینید:
بر روی گزینه لیست جداول کلیک راست کنید، و سپس مکان نما روی create حرکت دهید و روی Table … کلیک کنید.
با این کار یک پنجره ایجاد جدول باز می شود. در زیر تب General این پنجره ، یک نام برای جدول وارد کنید. این نام می تواند هر چیزی باشد ، اما برای ساده سازی ، ما آن را جدول شماره 01 می نامیم.
سپس به تب columns بروید و روی علامت + در گوشه سمت راست بالای پنجره کلیک کنید تا چند ستون اضافه شود. هنگام افزودن ستون ، لازم است که نام و نوع داده را به آن بدهید ، و در صورت نیاز به نوع داده ای که انتخاب کرده اید ، لازم است یک طول را انتخاب کنید. علاوه بر این ، مطالب رسمی PostgreSQL بیان می کند که اضافه کردن کلید اصلی به جدول معمولاً بهترین روش است. کلید اصلی محدودیتی است که یک ستون یا مجموعه ستون خاص را نشان می دهد که می تواند به عنوان شناگر ویژه ردیف های جدول استفاده شود. این مسئله الزامی نیست ، اما اگر می خواهید یک یا چند ستون خود را به عنوان کلید اصلی تنظیم کنید ، سوئیچ را در سمت راست از no به yes تغییر دهید. برای ایجاد جدول بر روی دکمه ذخیره کلیک کنید.
تا این مرحله ، شما یک جدول ایجاد کرده و ستون هایی را به آن اضافه کرده اید. با این حال ، ستون ها هنوز داده ای را دراختیار ندارند. برای افزودن داده به جدول جدید خود ، بر روی نام جدول در منوی مرورگر راست کلیک کنید ، مکان نمای خود را روی اسکریپت ها بگیرید و بر روی INSERT Script کلیک کنید.
با این کار پانل جدیدی روی داشبورد باز می شود. در بالا عبارت INSERT نصفه تکمیل شده ، با نام های مناسب جدول و ستون را مشاهده خواهید کرد. پیش بروید و علامت سؤال (؟) را با برخی از داده های ساختگی جایگزین کنید ، مطمئن شوید که داده اضافه شده با انواع داده ای که برای هر ستون انتخاب کرده اید هماهنگ باشد. توجه داشته باشید که می توانید با افزودن هر ردیف در یک مجموعه جدید از پرانتزها ، چندین ردیف داده اضافه کنید ، که هر مجموعه پرانتز همانطور که در مثال زیر نشان داده شده است با یک کاما جدا میشوند. در صورت تمایل ، اسکریپت INSERT را که به طور جزیی تکمیل شده است با این عبارت مثال INSERT جایگزین کنید: INSERT INTO public.”table-01″( col1, col2, col3) VALUES (‘Juneau’, 14, 337), (‘Bismark’, 90, 2334), (‘Lansing’, 51, 556);
برای اجرای عبارت INSERT روی نماد رعد و برق (⚡) کلیک کنید. برای مشاهده جدول و تمام داده های موجود در آن ، یک بار دیگر بر روی نام جدول خود در فهرست مرورگر کلیک راست کنید ، مکان نما خود را روی View / edit data حرکت دهید و All Rows را انتخاب کنید.
پانل جدید دیگری را باز خواهد کرد که در زیر آن ، در سربرگ Data Output پانل پایین ، می توانید تمام داده های آن جدول را مشاهده کنید.
با این کار ، شما با موفقیت جدول ایجاد کرده اید و آن را با برخی از داده ها از طریق رابط وب pgAdmin پر کرده اید. البته این تنها روشی است که می توانید از آن برای ایجاد یک جدول از طریق pgAdmin استفاده کنید. به عنوان مثال ، می توانید به جای روش مبتنی بر GUI که در این مرحله شرح داده شده است ، جدول را با استفاده از SQL ایجاد و پر کنید. نتیجه در این راهنما یاد گرفتید که چگونه pgAdmin 4 را از یک محیط مجازی Python نصب کنید ، آن را پیکربندی کنید ، با Apache آن را به وب ارائه کنید و چگونه به یک پایگاه داده PostgreSQL در وب سرویس متصل نمایید . علاوه بر این ، این راهنما فراتر از روشی است که می تواند برای ایجاد و جمع آوری جدول استفاده شود ، بلکه pgAdmin می تواند بسیار فراتر از ایجاد و ویرایش جداول استفاده شود. برای کسب اطلاعات بیشتر در مورد چگونگی استفاده بیشتر از همه ویژگی های pgAdmin ، شما را به مطالعه مطالب پروژه تشویق می کنیم. همچنین می توانید اطلاعات بیشتری در مورد PostgreSQL از طریق آموزش های انجمن ما در مورد این موضوع کسب کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
pgAdmin 4
,
Server Mode
0 notes
vpsgold-blog · 4 years
Text
نصب Jitsi Meet در Ubuntu 18.04
Jitsi Meet یک برنامه کنفرانس ویدئویی منبع باز مبتنی بر WebRTC است. سرور مجازی Jitsi Meet اتاقهای کنفرانس ویدئویی چند نفره را در اختیار شما قرار می دهد که می توانید با استفاده از تنها یک مرورگر به آنها دسترسی داشته باشید و عملکرد قابل مقایسه ای را با یک گفتگوی کنفرانسی مثل zoom یا skype ارائه دهید. مزیت کنفرانس Jitsi این است که تمام داده های شما فقط از طریق سرور مجازی شما عبور می کند ، و رمزگذاری TLS به صورت end-to-end تضمین می کند که هیچ کس نمی تواند تماس را شنود کند. با وجود Jitsi می توانید مطمئن باشید که اطلاعات خصوصی شما به همان صورت باقی می مانند. در این آموزش ، سرور مجازی Jitsi Meet را روی Ubuntu 18.04 نصب و پیکربندی خواهید کرد. پیکربندی پیش فرض به هر کسی امکان ایجاد یک اتاق کنفرانس جدید را می دهد. اما برای سرور مجازی ی که در اینترنت در دسترس عموم باشد ایده آل نیست بنابراین شما Jitsi Meet را نیز به گونه ای پیکربندی میکنید تا فقط کاربران ثبت نام شده بتوانند اتاق های کنفرانس جدید ایجاد کنند. بعد از ایجاد اتاق کنفرانس ، هر کاربر می تواند عضویت داشته باشد ، مادامی که آدرس منحصر به فرد و رمز اختیاری را داشته باشد. پیش نیازها قبل از شروع این راهنما به موارد زیر نیاز خواهید داشت: • یک سرور مجازی Ubuntu 18.04 که با دنبال کردن راهنمای ستاپ اولیه سرور مجازی با اوبونتو 18.04 راه اندازی شده باشد، و شامل کاربر غیر ریشه فعال با sudo باشد. اندازه سرور مجازی مورد نیاز شما بیشتر به پهنای باند موجود و تعداد شرکت کننده ای که انتظار دارید از سرور مجازی استفاده کنند بستگی دارد. جدول زیر ایده های لازم را به شما ارائه می دهد. • نام دامنه پیکربندی شده برای اشاره به سرور مجازی شما. می توانید با دنبال کردن آموزش نحوه چگونگی تنظیم نام هاست با آموزش vpsgol ، چگونگی اشاره دامنه به دراپلت های vpsgol را بیاموزید. در سراسر این راهنما ، از نام دامنه jitsi.your-domain استفاده می شود. هنگامی که شما یک سرور مجازی را برای اجرای نمونه Jitsi Meet انتخاب می کنید ، باید منابع مورد نیاز سیستم برای میزبانی اتاق های کنفرانس را در نظر بگیرید. اطلاعات معیار زیر از یک ماشین مجازی تک هسته ای با استفاده از تنظیمات ویدیویی با کیفیت بالا جمع آوری شده است:
CPU پهنای باند سرور مجازی 2 شرکت کننده 3% 30Kbps Up, 100Kbps Down 3 شرکت کننده 15% 7Mbps Up, 6.5Mbps Down
پرش در استفاده از منابع بین دو تا سه شرکت کننده به این دلیل است که Jitsi داده های تماس را مستقیماً بین کلاینت ها در صورت وجود دو نفر، هدایت می کند. هنگامی که بیش از دو کلاینت وجود دارند ، داده های تماس از طریق سرور مجازی Jitsi Meet هدایت می شوند. مرحله 1 – تنظیم نام هاست سیستم در این مرحله ، نام هاست سیستم را تغییر میدهید تا با نام دامنه ای که قصد دارید برای مثال Jitsi Meet خود استفاده کنید مطابقت داشته باشد و آن نام هاست را به IP localhost ، 127.0.0.1 تغییر می دهید. Jitsi Meet هنگام نصب و تولید فایل های پیکربندی خود از هر دو تنظیمات استفاده می کند. ابتدا نام هاست سیستم را روی نام دامنه ای که برای نمونه Jitsi خود استفاده خواهید کرد تنظیم کنید. دستور زیر نام هاست فعلی را تنظیم کرده و /etc/hostname را تغییر میدهد که نام هاست سیستم را در بین ریبوت ها نگه میدارد: ⦁ $ sudo hostnamectl set-hostname jitsi.your-domain ⦁ فرمانی که اجرا کردید به شرح زیر است: • hostnamectl ابزاری است از مجموعه ابزارهای systemd برای مدیریت نام هاست سیستم استفاده میکند. • set-hostname نام هاست سیستم را تنظیم می کند. با اجرای موارد زیر بررسی کنید که این کار موفقیت آمیز بوده است: ⦁ $ hostname ⦁ با این کار نام هاست شما با دستور hostnamectl برمی گردد: Output jitsi.your-domain
در مرحله بعد ، نگاشت محلی از نام هاست سرور مجازی را بر روی حلقه بازگشت آدرس IP ، 127.0.0.1 تنظیم خواهید کرد. این کار را با باز کردن فایل / etc / hosts با ویرایشگر متن انجام دهید: ⦁ $ sudo nano /etc/hosts ⦁ سپس خط زیر را اضافه کنید: /etc/hosts 127.0.0.1 jitsi.your-domain
نگاشت نام دامنه سرور مجازی Jitsi Meet روی 127.0.0.1 به سرور مجازی Jitsi Meet شما اجازه می دهد تا از چندین فرآیند شبکه ای استفاده کند که اتصالات محلی را از یکدیگر در آدرس IP 127.0.0.1 قبول می کنند. این اتصالات با گواهی TLS که در نام دامنه شما ثبت شده است ، تأیید و رمزگذاری می شوند. نگاشت محلی نام دامنه روی 127.0.0.1 امکان استفاده از گواهینامه TLS برای این اتصالات شبکه محلی را فراهم می آورد. فایل خود را ذخیره کنید و از آن خارج شوید. اکنون سرور مجازی شما دارای نام هاست است که Jitsi برای نصب به آن نیاز دارد. در مرحله بعد ، پورت های فایروال مورد نیاز Jitsi و نصب کننده گواهینامه TLS را باز خواهید کرد. مرحله 2 – پیکربندی فایروال هنگامی که راهنمای راه اندازی اولیه سرور مجازی با اوبونتو 18.04 را دنبال کردید ، فایروال UFW را فعال کرده و پورت SSH را باز نموده اید. سرور مجازی Jitsi به برخی از پورت های باز شده نیاز دارد تا بتواند با کلاینت ها تماس برقرار کند. همچنین ، فرایند نصب TLS نیاز به پورت باز دارد تا بتواند درخواست گواهی را تأیید کند. پورت هایی که باز خواهید کرد به شرح زیر است: ⦁ 80 / tcp که در درخواست گواهینامه TLS مورد استفاده قرار میگیرد. ⦁ 443 / TCP برای صفحه وب ایجاد اتاق کنفرانس استفاده میشود. ⦁ 4443 / tcp ، 10000 / udp که برای انتقال و دریافت ترافیک تماس رمزگذاری شده استفاده می شود. دستورات ufw زیر را برای باز کردن این پورت ها اجرا کنید: ⦁ $ sudo ufw allow 80/tcp ⦁ ⦁ $ sudo ufw allow 443/tcp ⦁ ⦁ $ sudo ufw allow 4443/tcp ⦁ ⦁ $ sudo ufw allow 10000/udp
بررسی کنید که همه آنها با دستور ufw status اضافه شده اند: ⦁ $ sudo ufw status ⦁ در صورت باز بودن این پورت ها ، خروجی زیر را مشاهده خواهید کرد: Output Status: active
To Action From — —— —- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere 4443/tcp ALLOW Anywhere 10000/udp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) 4443/tcp (v6) ALLOW Anywhere (v6) 10000/udp (v6) ALLOW Anywhere (v6)
اکنون سرور مجازی آماده نصب Jitsi است که در مرحله بعدی آن را کامل خواهید کرد. مرحله 3 – نصب Jitsi Meet در این مرحله مخزن پایدار Jitsi را به سرور مجازی خود اضافه می کنید و سپس بسته Jitsi Meet را ز آن مخزن نصب می کنید. با این کار اطمینان حاصل می شود که همیشه آخرین بسته پایدار Jitsi Meet را اجرا می کنید. ابتدا کلید Jitsi GPG را با ابزار wget دانلود کنید: ⦁ $ wget https://download.jitsi.org/jitsi-key.gpg.key ⦁ مدیر بسته apt از این کلید GPG برای اعتبارسنجی بسته هایی که از مخزن Jitsi دانلود می کنید ، استفاده خواهد کرد. در مرحله بعد ، کلید GPG را که با استفاده از ابزارهای key-apt دانلود کرده اید اضافه نمایید کلید: ⦁ $ sudo apt-key add jitsi-key.gpg.key ⦁ اکنون می توانید فایل کلید GPG را حذف کنید زیرا دیگر نیازی به آن نیست: ⦁ $ rm jitsi-key.gpg.key ⦁ اکنون با ایجاد یک فایل منبع جدید که حاوی مخزن Jitsi است ، مخزن Jitsi را به سرور مجازی خود اضافه می کنید. با ویرایشگر خود فایل جدید را باز و ایجاد کنید: ⦁ $ sudo nano /etc/apt/sources.list.d/jitsi-stable.list ⦁
این خط را به فایل مخزن Jitsi اضافه کنید: /etc/apt/sources.list.d/jitsi-stable.list deb https://download.jitsi.org stable/ ویرایشگر خود را ذخیره کرده و از آن خارج شوید. سرانجام برای جمع آوری لیست بسته ها از مخزن Jitsi یک به روزرسانی سیستم انجام دهید و سپس بسته jitsi-meet را نصب کنید: ⦁ $ sudo apt update ⦁ ⦁ $ sudo apt install jitsi-meet
در حین نصب jitsi-meet از شما خواسته می شود نام دامنه (مثلاً jitsi.your-domain) را که می خواهید برای نمونه Jitsi Meet خود استفاده کنید وارد کنید.
توجه: شما مکان نما را از قسمت نام هاست حرکت می دهید تا دکمه <OK> را با کلید TAB هایلایت کنید. هنگامی که <OK> هایلایت شد برای ارسال نام هاست ، ENTER را فشار دهید.
سپس کادر جعبه گفتگوی جدیدی به شما نشان داده می شود که آیا می خواهید Jitsi یک گواهی TLS امضا شده را استفاده کند یا از یک گواهی موجود که خودتان در اختیار دارید استفاده نماید:
اگر گواهی TLS برای دامنه Jitsi ندارید ، اولین مورد یعنی Generate a new self-signed certificate را انتخاب کنید. نمونه Jitsi Meet شما اکنون با استفاده از گواهی TLS خود امضا شده نصب شده است. این باعث اخطار مرورگر می شود ، بنابراین در مرحله بعدی یک گواهی TLS امضا شده دریافت خواهید کرد. مرحله 4 – اخذ گواهینامه TLS امضا شده Jitsi Meet از گواهینامه های TLS برای رمزگذاری ترافیک تماس استفاده می کند تا هیچ کس نتواند هنگام استفاده از اینترنت به تماس شما گوش کند. گواهینامه های TLS همان گواهینامه هایی هستند که توسط وب سایت ها برای فعال کردن آدرس های HTTPS استفاده می شوند. Jitsi Meet برنامه ای را برای دانلود خودکار گواهی TLS برای نام دامنه شما تهیه می نماند که از ابزار Certbot استفاده می کند. قبل از اجرای اسکریپت نصب گواهی ، باید این برنامه را نصب کنید. ابتدا مخزن Certbot را به سیستم خود اضافه کنید تا از آخرین نسخه Certbot برخوردار شوید. دستور زیر را برای اضافه کردن مخزن جدید و به روزرسانی سیستم خود اجرا کنید: ⦁ $ sudo add-apt-repository ppa:certbot/certbot ⦁ سپس ، بسته ی certbot را نصب کنید: ⦁ $ sudo apt install certbot ⦁ اکنون سرور مجازی شما آماده اجرای برنامه نصب گواهینامه TLS تهیه شده توسط Jitsi Meet است: ⦁ $ sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh ⦁ هنگامی که اسکریپت را اجرا می کنید ، اعلان زیر برای آدرس ایمیل نشان داده می شود: Output ————————————————————————- This script will: – Need a working DNS record pointing to this machine(for domain jitsi.example.com) – Download certbot-auto from https://dl.eff.org to /usr/local/sbin – Install additional dependencies in order to request Let’s Encrypt certificate – If running with jetty serving web content, will stop Jitsi Videobridge – Configure and reload nginx or apache2, whichever is used – Configure the coturn server to use Let’s Encrypt certificate and add required deploy hooks – Add command in weekly cron job to renew certificates regularly
You need to agree to the ACME server’s Subscriber Agreement (https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf) by providing an email address for important account notifications Enter your email and press [ENTER]:
این آدرس ایمیل به صادرکننده گواهینامه https://letsencrypt.org ارسال می شود و برای اطلاع دادن به شما درباره امنیت و سایر موارد مرتبط با گواهینامه TLS استفاده می شود. برای ادامه کار باید یک آدرس ایمیل را وارد کنید. پس از آن نصب بدون هیچ گونه درخواست دیگری انجام می شود. پس از اتمام ، نمونه Jitsi Meet شما پیکربندی می شود تا از یک گواهی TLS امضا شده برای نام دامنه خود استفاده کنید. تمدید گواهینامه به طور خودکار اتفاق می افتد زیرا نصب کننده، یک اسکریپت تجدید را در /etc/cron.weekly/letsencrypt-renew قرار داده است که هر هفته اجرا می شود. نصب کننده TLS از پورت 80 برای تأیید کنترل نام دامنه خود استفاده کرده است. اکنون که گواهی نامه را به دست آورده اید ، دیگر نیازی به باز کردن پورت 80 ندارید زیرا از پورت 80 برای ترافیک منظم و غیر رمزگذاری شده HTTP استفاده می شود. Jitsi Meet فقط از طریق HTTPS در پورت 443 وب سایت خود را ارائه می دهد. با دستور ufw زیر این پورت را در فایروال خود ببندید: ⦁ $ sudo ufw delete allow 80/tcp ⦁ سرور مجازی Jitsi Meet شما اکنون آماده و در حال اجرا است و برای آزمایش در دسترس میباشد. یک مرورگر باز کرده و نام دامنه خود را به آن معرفی کنید. قادر خواهید بود یک اتاق کنفرانس جدید ایجاد کنید و دیگران را نیز دعوت کنید تا به شما بپیوندند. تنظیمات پیش فرض برای Jitsi Meet این گونه است که هرکسی که صفحه اصلی سرور مجازی Jitsi Meet شما را مشاهده می کند می تواند یک اتاق کنفرانس جدید ایجاد کند. با این کار از منابع سیستم سرور مجازی شما برای اجرای اتاق کنفرانس استفاده می شود و به خاطر استفاده کاربران غیرمجاز مطلوب نیست. در مرحله بعد ، شما نمونه Jitsi Meet را به گونه ای پیکربندی می کنید که فقط کاربران عضو شده قادر به ایجاد اتاق کنفرانس باشند. مرحله 5 – ایجاد قفل کنفرانس در این مرحله ، شما سرور مجازی Jitsi Meet را پیکربندی می کنید تا فقط کاربران ثبت نام شده بتوانند اتاق کنفرانس ایجاد کنند. فایل هایی که ویرایش می کنید توسط نصب کننده ایجاد شده اند و با نام دامنه شما پیکربندی میشوند. متغیر your_domain به جای نام دامنه در مثالهای زیر استفاده خواهد شد. ابتدا ، sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua را با یک ویرایشگر متن باز کنید: ⦁ $ sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua ⦁ این خط را ویرایش کنید: /etc/prosody/conf.avail/your_domain.cfg.lua … authentication = “anonymous” …
به صورت زیر: /etc/prosody/conf.avail/your_domain.cfg.lua … authentication = “internal_plain” …
این پیکربندی به Jitsi Meet می گوید تا قبل از اجازه ایجاد اتاق کنفرانس توسط یک بازدید کننده جدید ، مجبور به تأیید اعتبار نام کاربری و رمز عبور شود. سپس در همان فایل قسمت زیر را به انتهای فایل اضافه کنید: /etc/prosody/conf.avail/your_domain.cfg.lua … VirtualHost “guest.your_domain” authentication = “anonymous” c2s_require_encryption = false
این پیکربندی به کاربران ناشناس اجازه می دهد تا به اتاق های کنفرانس که توسط یک کاربر معتبر ایجاد شده اند بپیوندند. با این حال ، میهمان باید یک آدرس منحصر به فرد و رمز عبور اختیاری برای ورود به اتاق داشته باشد. در اینجا ، شما guest. را به جلوی نام دامنه خود اضافه کردید به عنوان مثال ، برای jitsi.your-domain، guest.jitsi.your-domain را قرار دهید. نام هاست guest. فقط به صورت داخل توسط Jitsi Meet استفاده می شود. شما هرگز آن را وارد مرورگر نخواهید کرد و یا نیازی به ایجاد رکورد DNS برای آن ندارید. فایل پیکربندی دیگری را در /etc/jitsi/meet/your_domain-config.js با یک ویرایشگر متن باز کنید: ⦁ $ sudo nano /etc/jitsi/meet/your_domain-config.js ⦁ این خط را ویرایش کنید: /etc/jitsi/meet/your_domain-config.js … // anonymousdomain: ‘guest.example.com’, …
تا به این صورت درآید: /etc/jitsi/meet/your_domain-config.js … anonymousdomain: ‘guest.your_domain’, …
مجدداً ، با استفاده از نام هاست guest.your_domain که قبلاً از این پیکربندی استفاده کرده اید ، به Jitsi می گوید چه نام هاست داخلی را برای مهمانان تأیید نشده استفاده کند. سپس ، /etc/jitsi/jicofo/sip-communicator.properties را باز کنید: ⦁ $ sudo nano /etc/jitsi/jicofo/sip-communicator.properties ⦁ و خط زیر را برای تکمیل تغییرات پیکربندی اضافه کنید: /etc/jitsi/jicofo/sip-communicator.properties org.jitsi.jicofo.auth.URL=XMPP:your_domain
این پیکربندی یکی از فرایندهای Jitsi Meet را به سرور مجازی محلی نشان می دهد که تأیید اعتبار کاربر را که اکنون لازم است انجام می دهد. نمونه Jitsi Meet شما اکنون پیکربندی شده است و فقط کاربران ثبت نام شده می توانند اتاق کنفرانس ایجاد کنند. بعد از ایجاد یک اتاق کنفرانس ، هر کسی می تواند بدون نیاز به کاربر ثبت نام شده به آن بپیوندد. تنها آنچه نیاز دارند آدرس اتاق کنفرانس منحصر به فرد و رمزعبور اختیاری است که توسط فردی که اتاق را اجیجاد کرده تنظیم شده است. اکنون که Jitsi Meet پیکربندی شده است و برای ایجاد اتاق نیاز به کاربران معتبر دارد ، باید این کاربران و رمزهای عبور خود را ثبت کنید. برای این کار از ابزار prosodyctl استفاده خواهید کرد. دستور زیر را برای افزودن کاربر به سرور مجازی خود اجرا کنید: ⦁ $ sudo prosodyctl register user your_domain password ⦁ کاربری که شما در اینجا اضافه می کنید کاربر سیستم نیست. آنها فقط قادر به ایجاد یک اتاق کنفرانس هستند و از طریق SSH قادر به ورود به سرور مجازی شما نیستند. در آخر ، مراحل Jitsi Meet را ریستارت کنید تا پیکربندی جدید لود شود: ⦁ $ sudo systemctl restart prosody.service ⦁ ⦁ $ sudo systemctl restart jicofo.service ⦁ ⦁ $ sudo systemctl restart jitsi-videobridge2.service
به طور مثال Jitsi Meet هنگام ایجاد یک اتاق کنفرانس ، نام کاربری و رمزعبور را با جعبه گفتگو درخواست می کند.
سرور مجازی Jitsi Meet شما اکنون تنظیم و ایمن شده است. نتیجه در این مقاله ، شما سرور مجازی Jitsi Meet را مستقر کرده اید که می توانید از آنها برای میزبانی اتاق های کنفرانس ویدیویی ایمن و خصوصی استفاده کنید. می توانید نمونه Jitsi Meet خود را با دستورالعمل Jitsi Meet Wiki گسترش دهید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
Jitsi Meet
,
skype
,
WebRTC
0 notes
vpsgold-blog · 4 years
Text
نصب و پیکربندی Ansible در اوبونتو 18.04
سیستم های مدیریت پیکربندی به منظور ساده سازی فرایند کنترل تعداد زیادی سرور مجازی ، برای مدیران و تیم های عملیاتی طراحی شده اند. آنها به شما اجازه می دهند بسیاری از سیستم های مختلف را به صورت خودکار از یک مکان مرکزی کنترل کنید. در حالی که بسیاری از ابزارهای مدیریت پیکربندی محبوب برای سیستمهای لینوکس مانند Chef و Puppet در دسترس هستند ، اینها معمولاً پیچیده تر از چیزی هستند که افراد می خواهند یا نیاز دارند. Ansible یک گزینه عالی برای این منظور است زیرا معماری ساده ای را ارائه می دهد که نیازی به نصب نرم افزار ویژه روی nodes ندارد ، از SSH برای انجام کارهای اتوماسیون و فایل های YAML برای تعریف جزئیات تهیه استفاده می کند. در این راهنما ، به چگونگی نصب Ansible در سرور مجازی Ubuntu 18.04 میپردازیم و در مورد اصول استفاده از این نرم افزار به صورت جزیی میپردازیم. Ansible چگونه کار می کند؟ Ansible با پیکربندی ماشینهای کلاینت کار میکند ، که به nodes managed شناخته میشوند ، از رایانه ای که اجزای Ansible را نصب و پیکربندی کرده است، که به آن گره ی کنترل Ansible گفته می شود. برای بازیابی اطلاعات از سیستمهای از راه دور ، صدور دستورات و کپی کردن فایلها ، از طریق کانالهای عادی SSH ارتباط برقرار می کند. به همین دلیل ، یک سیستم Ansible نیازی به نصب هیچ نرم افزار اضافی بر روی رایانه های کلاینت ندارد. این روشی است که Ansible مدیریت سرور مجازی ها را ساده تر می کند. هر سرور مجازی ی که درگاه SSH را در معرض دید دارد ، می تواند صرف نظر از اینکه در چه مرحله ای از چرخه زندگی خود قرار دارد ، تحت حوزه پیکربندی Ansible قرار گیرد. این بدان معناست که هر رایانه ای که بتوانید از طریق SSH مدیریت کنید ، می توانید از طریق Ansible نیز مدیریت کنید. Ansible یک رویکرد مدولار را در پیش می گیرد و شما را قادر می سازد تا ویژگی های سیستم اصلی را برای مقابله با سناریوهای خاص گسترش دهید. ماژول ها را می توان به هر زبانی نوشت و با JSON استاندارد ارتباط برقرار کرد. فایل های پیکربندی به دلیل ماهیت تاثیرگذار و شباهت آن با زبانهای نشانه گذاری محبوب ، عمدتاً در قالب سریال سازی داده های YAML نوشته شده اند. Ansible میتواند از طریق ابزارهای خط فرمان یا اسکریپت های پیکربندی آن ، که به Playbooks شناخته می شوند ، با هاست تعامل برقرار کند. پیش نیازها برای دنبال کردن این آموزش ، به موارد زیر نیاز دارید: یک node کنترل Ansible: node کنترل Ansible ماشینی است که ما برای اتصال و کنترل هاست های Ansible روی SSH از آن استفاده خواهیم کرد. node کنترل Ansible شما یا می تواند دستگاه محلی شما باشد یا یک سرور مجازی اختصاص داده شده برای اجرای Ansible ، اگرچه این راهنما فرض می کند که node کنترل شما یک سیستم اوبونتو 18.04 است. اطمینان حاصل کنید که node کنترل دارای موارد زیر است: o یک کاربر غیر ریشه با امتیازات sudo. برای تنظیم این گزینه ، می توانید مراحل 2 و 3 راهنمای اولیه راه اندازی سرور مجازی ما برای اوبونتو 18.04 را دنبال کنید. با این وجود ، لطفاً توجه داشته باشید که اگر از سرور مجازی راه دور به عنوان node کنترل Ansible خود استفاده می کنید ، باید هر مرحله از این راهنما را دنبال کنید. با این کار فایروال روی سرور مجازی با ufw پیکربندی شده و دسترسی خارجی به پروفایل کاربر غیر ریشه شما امکان پذیر خواهد شد ، که هر دو به حفظ امنیت سرور مجازی از راه دور کمک می کنند. o صفحه کلید SSH مرتبط با این کاربر. برای انجام این کار ، می توانید مرحله 1 راهنمای ما درباره نحوه تنظیم کلیدهای SSH در اوبونتو 18.04 را دنبال کنید. یک یا چند هاست Ansible: هاست Ansible هر دستگاهی است که node کنترل Ansible شما برای خودکار سازی آن تنظیم شده باشد. این راهنما فرض می کند که هاست های Ansible شما سرور مجازی های Ubuntu 18.04 از راه دور هستند. اطمینان حاصل کنید که هر هاست Ansible دارای موارد زیر است: o کلید عمومی SSH node کنترل Ansible به authorized_keys کاربر سیستم اضافه شده باشد. این کاربر می تواند یا root یا یک کاربر معمولی با امتیازات sudo باشد. برای تنظیم این گزینه ، می توانید مرحله 2 نحوه تنظیم کلیدهای SSH را در اوبونتو 18.04 دنبال کنید. مرحله 1 – نصب Ansible برای شروع استفاده از Ansible به عنوان ابزاری برای مدیریت زیرساخت های سرور مجازی خود ، باید نرم افزار Ansible را روی دستگاه نصب کنید که به عنوان node کنترل Ansible عمل خواهد کرد. از node کنترل خود ، دستور زیر را اجرا کنید تا PPA (بایگانی بسته شخصی) پروژه رسمی را در لیست منابع سیستم خود وارد کنید: $ sudo apt-add-repository ppa:ansible/ansible
هنگامی که از شما خواسته شد افزودن PPA را بپذیرید ، ENTER را فشار دهید. سپس ، فهرست بسته بندی سیستم خود را ریفرش کنید تا از بسته های موجود در PPA که اخیراً در آن قرار گرفته آگاهی پیدا کنید: $ sudo apt update
پس از این بروزرسانی ، می توانید نرم افزار Ansible را با دستور زیر نصب کنید: $ sudo apt install ansible
node کنترلی Ansible شما اکنون تمامی نرم افزارهای مورد نیاز برای مدیریت هاست شما را دارد. در مرحله بعد ، به نحوه اضافه کردن هاست ها به فایل موجودی node کنترل خواهیم پرداخت تا بتواند آنها را کنترل کند. مرحله 2 – تنظیم فایل موجودی فایل موجودی (Inventory) شامل اطلاعات مربوط به هاست هایی است که با Ansible آنها را مدیریت خواهید کرد. شما می توانید از یک تا چند صد سرور مجازی در فایل موجودی خود داشته باشید و هاست ها را می توانید در گروه ها و زیر گروه ها سازماندهی کنید. فایل موجودی نیز اغلب برای تنظیم متغیرهایی مورد استفاده قرار می گیرد که فقط برای هاست یا گروه های خاص معتبر باشند ، تا در playbookها و قالب ها مورد استفاده قرار گیرند. برخی از متغیرها همچنین می توانند بر نحوه اجرای یک playbook اثر بگذارند ، مانند متغیر ansible_python_interpreter که به زودی مشاهده خواهیم کرد. برای ویرایش محتوای موجودی پیش فرض Ansible ، فایل / etc / ansible / hosts را با استفاده از ویرایشگر متن مورد نظر خود، در node کنترل Ansible باز کنید: $ sudo nano /etc/ansible/hosts
توجه: برخی از نصب های Ansible فایل موجودی پیش فرض را ایجاد نمی کنند. اگر این فایل در سیستم شما وجود ندارد ، می توانید یک فایل جدید را در / etc / ansible / hosts ایجاد کنید یا یک مسیر موجودی سفارشی را با استفاده از پارامتر -i هنگام اجرای دستورات و playbooks تهیه کنید.
فایل موجودی پیش فرض موجود توسط نصب Ansible شامل تعدادی مثال است که می توانید از آنها به عنوان مرجع برای تنظیم موجودی خود استفاده کنید. مثال زیر گروهی را به نام [servers] با سه سرور مجازی مختلف در آن تعریف می کند که هر یک توسط یک نام مستعار مشخص شده اند: server1 ،server2 و server3. حتما IP های هایلایت شده را با آدرس های IP هاست های Ansible جایگزین کنید. /etc/ansible/hosts [servers] server1 ansible_host=203.0.113.111 server2 ansible_host=203.0.113.112 server3 ansible_host=203.0.113.113
[all:vars] ansible_python_interpreter=/usr/bin/python3
زیر گروهall: vars پارامتر هاست ansible_python_interpreter را تعیین می کند که برای همه هاست های موجود در این موجودی معتبر خواهد بود. این پارامتر اطمینان حاصل می کند که سرور مجازی راه دور به جای / usr / bin / python (Python 2.7) از / usr / bin / python3 (Python 3) قابل اجرا استفاده می کند که در نسخه های اخیر اوبونتو وجود ندارد. پس از اتمام ، فایل را با فشار دادن CTRL + X سپس Y و ENTER ذخیره کرده و آن را ببندید تا تغییرات خود را تأیید کنید. هر زمان که می خواهید موجودی خود را بررسی کنید ، می توانید این دستور را اجرا کنید: $ ansible-inventory –list -y
خروجی شبیه به این را خواهید دید ، اما زیرساخت سرور مجازی خود را مطابق با فایل موجودی خود تعریف می کنید: Output all: children: servers: hosts: server1: ansible_host: 203.0.113.111 ansible_python_interpreter: /usr/bin/python3 server2: ansible_host: 203.0.113.112 ansible_python_interpreter: /usr/bin/python3 server3: ansible_host: 203.0.113.113 ansible_python_interpreter: /usr/bin/python3 ungrouped: {}
اکنون که فایل موجودی خود را پیکربندی کرده اید ، همه چیز لازم برای آزمایش اتصال به هاست های Ansible خود را دارید. مرحله 3 – آزمایش اتصال پس از تنظیم فایل موجودی برای شامل شدن سرور مجازیهای خود، زمان آن است که بررسی کنیم آیا Ansible قادر به اتصال به این سرور مجازیها و اجرای دستورات از طریق SSH است یا خیر. برای این راهنما ، ما از حساب ریشه Ubuntu استفاده خواهیم کرد زیرا این تنها حساب موجود به طور پیش فرض در سرور مجازی های تازه ایجاد شده است. اگر هاست های Ansible شما قبلاً یک کاربر sudo معمولی ایجاد کرده اند ، به شما توصیه می شود که به جای ریشه از آن حساب استفاده کنید. برای مشخص کردن کاربر سیستم از راه دور می توانید از آرگومان -u استفاده کنید. در صورت عدم ارائه ، Ansible سعی خواهد کرد که به عنوان کاربر فعلی سیستم شما در node کنترل متصل شود. از دستگاه محلی یا node کنترل Ansible خود این دستور را اجرا کنید: $ ansible all -m ping -u root
این دستورالعمل از ماژول داخلی پینگ Ansible برای انجام یک تست اتصال در همه nodes از موجودی پیش فرض شما ، به عنوان root استفاده می کند. ماژول ping موارد زیر را تست خواهد کرد: آیا هاست ها در دسترس هستند. آیا اعتبار SSH معتبری دارید؛ آیا هاست ها قادرند ماژول های Ansible را با استفاده از پایتون اجرا کنند. شما باید خروجی مشابه این دریافت کنید: Output server1 | SUCCESS => { “changed”: false, “ping”: “pong” } server2 | SUCCESS => { “changed”: false, “ping”: “pong” } server3 | SUCCESS => { “changed”: false, “ping”: “pong” }
اگر این اولین بار است که از طریق SSH به این سرور مجازیها وصل می شوید ، از شما خواسته می شود که صحت هاست هایی را که از طریق Ansible به آنها وصل می شوید ، تأیید کنید. وقتی از شما خواسته شد ، yes را تایپ کنید و سپس برای تأیید ENTER را بزنید. هنگامی که پاسخ “pong” را از هاست دریافت کردید ، به این معنی است که شما آماده اجرای دستورات و playbookهای Ansible در آن سرور مجازی هستید. توجه: اگر نمی توانید پاسخ موفقی از سرور مجازیهای خود دریافت کنید ، برای اطلاعات بیشتر در مورد نحوه اجرای دستورات Ansible با گزینه های مختلف اتصال ، راهنمای برگه تقلب Ansible ما را بررسی کنید.
مرحله 4 – اجرای دستورات Ad-Hoc (اختیاری) پس از تأیید اینکه node کنترل Ansible شما قادر به برقراری ارتباط با هاست شماست ، می توانید دستورات ad-hoc و playbooks را روی سرور مجازی های خود اجرا کنید. هر دستوری که معمولاً بر روی SSH از سرور مجازی راه دور اجرا می کنید می تواند با Ansible در سرور مجازی های مشخص شده در فایل موجودی شما اجرا شود. به عنوان نمونه ، می توانید میزان استفاده از دیسک را در همه سرورها با دستور زیر بررسی کنید: $ ansible all -a “df -h” -u root
Output
server1 | CHANGED | rc=0 >> Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 798M 624K 798M 1% /run /dev/vda1 155G 2.3G 153G 2% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/vda15 105M 3.6M 101M 4% /boot/efi tmpfs 798M 0 798M 0% /run/user/0
server2 | CHANGED | rc=0 >> Filesystem Size Used Avail Use% Mounted on udev 2.0G 0 2.0G 0% /dev tmpfs 395M 608K 394M 1% /run /dev/vda1 78G 2.2G 76G 3% / tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/vda15 105M 3.6M 101M 4% /boot/efi tmpfs 395M 0 395M 0% /run/user/0
فرمان هایلایت شده df -h را می توان با هر دستوری که دوست دارید جایگزین کنید. همچنین می توانید ماژول های Ansible را از طریق دستورات ad-hoc ، مشابه آنچه قبلاً با ماژول ping برای آزمایش اتصال انجام داده ایم ، اجرا کنید. به عنوان مثال ، در اینجا چگونگی استفاده از ماژول apt برای نصب جدیدترین نسخه vim بر روی همه سرور مجازیهای موجود در موجودی شما آورده شده است: $ ansible all -m apt -a “name=vim state=latest” -u root
همچنین هنگام اجرای دستورات Ansible می توانید هاست های فردی و همچنین گروه ها و زیر گروه ها را هدف قرار دهید. به عنوان مثال ، به این ترتیب شما می توانید uptime هر هاست در گروه سرور مجازیها را بررسی کنید: $ ansible servers -a “uptime” -u root
ما می توانیم هاست های مختلفی را با جدا کردن آنها با دو نقطه مشخص کنیم: $ ansible server1:server2 -m ping -u root
برای کسب اطلاعات بیشتر در مورد نحوه استفاده از Ansible ، از جمله نحوه اجرای playbooks برای اتوماسیون تنظیم سرور مجازی ، می توانید راهنمای مرجع Ansible ما را بررسی کنید. نتیجه در این راهنما ، شما Ansible را نصب کردید و یک فایل موجودی را برای اجرای دستورات ad-hoc از یک node کنترل Ansible اجرا کردید. هنگامی که تأیید کردید که قادر هستید زیرساختهای خود را از یک دستگاه کنترلر مرکزی Ansible متصل کرده و کنترل کنید ، می توانید هر دستور یا palybook مورد نظر را در مورد آن هاست اجرا کنید. برای سرور مجازیهای جدید ، playbook ستاپ اولیه سرور مجازی نقطه شروع خوبی است. همچنین می توانید نحوه نوشتن playbookهای خود را با راهنمای ما در مورد مدیریت پیکربندی 101: نوشتن کتابهای Ansible بیاموزید. برای کسب اطلاعات بیشتر در مورد نحوه استفاده از Ansible ، راهنمای کمکی در صفحه ما را ببینید.
برچسب‌ها:
YAML
0 notes
vpsgold-blog · 4 years
Text
نصب MySQL در اوبونتو 18.04
MySQL یک سیستم مدیریت پایگاه داده منبع باز است که معمولاً به عنوان بخشی از پشته محبوب LAMP (Linux ، Apache ، MySQL ، PHP / Python / Perl) نصب می شود. برای مدیریت داده های خود از یک پایگاه داده رابطه ای و SQL (زبان پرس و جوی ساختار یافته) استفاده می کند. نصب نسخه کوتاه ساده است: فهرست بسته خود را به روز کنید ، بسته mysql-server را نصب کنید و سپس اسکریپت امنیتی گنجانده شده را اجرا کنید. $ sudo apt update
$ sudo apt install mysql-server
$ sudo mysql_secure_installation
در این آموزش نحوه نصب MySQL نسخه 5.7 در سرور مجازی Ubuntu 18.04 توضیح داده خواهد شد. با این حال ، اگر به دنبال به روزرسانی نصب MySQL موجود به نسخه 5.7 هستید ، می توانید به جای این راهنما، مقاله به روزرسانی MySQL 5.7 را مطالعه کنید. پیش نیازها برای دنبال کردن این آموزش ، به موارد زیر نیاز دارید: • یک سرور مجازی Ubuntu 18.04 که طبق راهنمای تنظیم اولیه سرور مجازی تنظیم شده باشد و شامل یک کاربر غیر ریشه با امتیازات sudo و فایروال باشد. مرحله 1 – نصب MySQL در اوبونتو 18.04 ، فقط آخرین نسخه MySQL بصورت پیش فرض در مخزن بسته APT گنجانده شده است. در زمان نوشتن این مقاله نسخه MySQL 5.7 است . برای نصب آن ، ایندکس بسته را بر روی سرور مجازی خود با apt به روز کنید: $ sudo apt update
سپس بسته پیش فرض را نصب کنید: $ sudo apt install mysql-server
این کار MySQL را نصب می کند ، اما از شما خواسته نمی شود که رمز عبوری را تنظیم کنید یا تغییرات دیگری در پیکربندی ایجاد کنید. از آنجا که این کار باعث می شود نصب MySQL ناامن باشد ، در ادامه به این موضوع خواهیم پرداخت. مرحله 2 – پیکربندی MySQL برای ریفرش کردن نصب ها، بهتر است اسکریپت امنیتی موجود را اجرا کنید. این کار برخی از گزینه های پیش فرض با ایمنی کمتر را برای مواردی مانند ورود به سیستم ریشه از راه دور و کاربران نمونه تغییر میدهد. در نسخه های قدیمی MySQL ، ��ما باید دایرکتوری داده را به صورت دستی نیز تنظیم کنید ، اما اکنون این کار به صورت خودکار انجام می شود. اسکریپت امنیتی را اجرا کنید: $sudo mysql_secure_installation
این امر یک سری اعلان به شما نشان میدهد که می توانید برخی از گزینه های امنیتی نصب MySQL خود را تغییر دهید. اولین سؤال از شما میپرسد که آیا می خواهید افزونه Validate Password را تنظیم کنید ، که می تواند برای تست قدرت رمز ورود MySQL استفاده شود. صرف نظر از انتخاب شما ، اعلان بعدی تنظیم رمز عبور برای کاربر ریشه MySQL خواهد بود. رمز عبور مطمئن مورد نظر خود را وارد کرده و سپس تأیید کنید. از آنجا ، می توانید Y و سپس ENTER را فشار دهید تا پیش فرض برای همه سؤالات بعدی را بپذیرید. با این کار برخی از کاربران ناشناس و بانک اطلاعاتی آزمایشی حذف می شوند ، ورود به سیستم ریشه از راه دور غیرفعال می شود و این قوانین جدید را لود می کنند تا MySQL فوراً با تغییراتی که ایجاد کرده اید منطبق شود. برای مقدار دهی اولیه دایرکتوری داده MySQL ، می توانید از mysql_install_db برای نسخه های قبل از 5.7.6 ، و از mysqld –initialize برای 5.7.6 و بعد از آن استفاده کنید. با این حال ، اگر MySQL را از توزیع Debian نصب کردید ، همانطور که در مرحله 1 توضیح داده شد ، دایرکتوری داده به طور خودکار آغاز می شود. شما مجبور نیستید کاری انجام دهید. اگر به هر حال سعی کنید دستور را اجرا کنید ، خطای زیر را مشاهده خواهید کرد: Output mysqld: Can’t create directory ‘/var/lib/mysql/’ (Errcode: 17 – File exists) . . . 2018-04-23T13:48:00.572066Z 0 [ERROR] Aborting
توجه داشته باشید که حتی اگر یک رمز عبور برای کاربر ریشه MySQL تنظیم کرده اید ، این کاربر برای تأیید اعتبار با گذرواژه هنگام اتصال به پوسته MySQL پیکربندی نشده است. در صورت تمایل می توانید با دنبال کردن مرحله 3 این کار را انجام دهید. مرحله 3 – تنظیم تأیید اعتبار و امتیازات کاربر (اختیاری) در سیستم های اوبونتو که MySQL 5.7 (و نسخه های بعدی) را اجرا می کند ، تأیید اعتبار کاربر ریشه MySQL بصورت پیش فرض با استفاده از افزونه auth_socket و نه با گذرواژه تنظیم شده است. این امر امنیت و قابلیت استفاده بیشتر را در بسیاری از موارد امکان پذیر می کند ، اما همچنین می تواند مواردی را که نیاز دارید به یک برنامه خارجی (مانند phpMyAdmin) برای دسترسی به کاربر اجازه بدهید، پیچیده تر کند. به منظور استفاده از رمز عبور برای اتصال به MySQL به عنوان root ، باید روش تأیید اعتبار آن را از auth_socket به mysql_native_password تغییر دهید. برای این کار ، اعلان 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 | mysql_native_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost | +——————+——————————————-+———————–+———–+ 4 rows in set (0.00 sec)
در این مثال ، می بینید که کاربر ریشه با استفاده از افزونه auth_socket ، تأیید اعتبار می کند. برای پیکربندی حساب ریشه برای تأیید اعتبار با رمز عبور ، دستور ALTER USER زیر را اجرا کنید. مطمئن شوید که رمز عبور را به رمز عبوری قوی به انتخاب خود تغییر می دهید و توجه داشته باشید که این دستور رمز اصلی را که در مرحله 2 تنظیم کرده اید تغییر می دهد: Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
سپس ، FLUSH PRIVILEGES را اجرا کنید که به سرور مجازی می گوید جداول اعطای امتیاز را لود مجدد کند و تغییرات جدید شما را اعمال کند: Mysql> FLUSH PRIVILEGES;
روش های تأیید اعتبار استفاده شده توسط هر یک از کاربران خود را دوباره بررسی کنید تا تأیید کنید که ریشه دیگر با استفاده از افزونه auth_socket احراز هویت نمی کند: Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Output +——————+——————————————-+———————–+———–+ | user | authentication_string | plugin | host | +——————+——————————————-+———————–+———–+ | root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost | +——————+——————————————-+———————–+———–+ 4 rows in set (0.00 sec)
در این مثال می توانید مشاهده کنید که کاربر ریشه MySQL اکنون با استفاده از یک رمز عبور تأیید اعتبار می کند. پس از تأیید این موضوع روی سرور مجازی خود ، می توانید از پوسته MySQL خارج شوید: Mysql> exit
از طرف دیگر ، برخی ممکن است دریابند که اتصال به MySQL با یک کاربر اختصاصی برای جریان کاری آن ها مناسب تر است. برای ایجاد چنین کاربری ، بار دیگر پوسته MySQL را باز کنید: $ sudo mysql
توجه: اگر احراز هویت رمز عبور را برای ریشه فعال کرده اید ، همانطور که در پاراگراف های قبلی توضیح داده شد ، برای دسترسی به پوسته MySQL باید از دستور دیگری استفاده کنید. موارد زیر کلاینت MySQL شما را با امتیازات کاربری معمول اجرا می کند و شما فقط با تأیید اعتبار ، امتیازات ادمین را در بانک اطلاعاتی دریافت خواهید کرد: $ mysql -u root -p
از آنجا ، یک کاربر جدید ایجاد کنید و رمزعبور قوی به آن بدهید: Mysql> CREATE USER ‘sammy’@’localhost’ IDENTIFIED BY ‘password’;
سپس امتیازات مناسب را به کاربر جدید خود اعطا کنید. به عنوان مثال ، شما می توانید امتیازات کاربر را به تمام جداول موجود در دیتابیس بدهید و همچنین قدرت اضافه کردن ، تغییر و حذف امتیازات کاربر را با این دستور اعطا کنید: Mysql>GRANT ALL PRIVILEGES ON *.* TO ‘sammy’@’localhost’ WITH GRANT OPTION;
توجه داشته باشید که در این مرحله ، دیگر نیازی به اجرای فرمان FLUSH PRIVILEGES ندارید. این دستور فقط در صورت تغییر جدول های اعطای امتیاز با استفاده از عباراتی مانند INSERT ، UPDATE یا DELETE مورد نیاز است. از آنجا که شما به جای تغییر کاربر موجود، یک کاربر جدید ایجاد کرده اید ، FLUSH PRIVILEGES در اینجا لازم نیست. پس از آن ، از پوسته MySQL خارج شوید: Mysql>exit
در آخر ، بیایید نصب MySQL را آزمایش کنیم. مرحله 4 – تست MySQL صرف نظر از نحوه نصب آن ، MySQL باید به صورت خودکار شروع به کار کند. برای آزمایش این موضوع ، وضعیت آن را بررسی کنید. $ systemctl status mysql.service
خروجی مشابه زیر را مشاهده خواهید کرد: Output ● mysql.service – MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: en Active: active (running) since Wed 2018-04-23 21:21:25 UTC; 30min ago Main PID: 3754 (mysqld) Tasks: 28 Memory: 142.3M CPU: 1.994s CGroup: /system.slice/mysql.service └─3754 /usr/sbin/mysqld
اگر MySQL در حال اجرا نیست ، می توانید آن را با sudo systemctl start mysql راه اندازی کنید. برای بررسی بیشتر ، می توانید با استفاده از ابزار mysqladmin ، که یک کلاینت است و به شما امکان اجرای دستورات ادمین را می دهد ، به پایگاه داده وصل شوید. به عنوان مثال ، این دستور می گوید به عنوان ریشه (-u root) به MySQL متصل شوید، اعلان گذرواژه را پر کنید (-p) ، و نسخه را برگردانید. $ sudo mysqladmin -p -u root version
باید خروجی مشابه این را ببینید: Output mysqladmin Ver 8.42 Distrib 5.7.21, for Linux on x86_64 Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Server version 5.7.21-1ubuntu1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 30 min 54 sec
Threads: 1 Questions: 12 Slow queries: 0 Opens: 115 Flush tables: 1 Open tables: 34 Que
این بدان معنی است که MySQL در حال کار است. نتیجه اکنون یک ستاپ ساده MySQL روی سرور مجازی خود نصب کرده اید. در اینجا چند نمونه از مراحل بعدی که می توانید انجام دهید آورده شده است: اجرای برخی اقدامات امنیتی اضافی جابجایی دایرکتوری داده ها مدیریت سرور مجازی های MySQL خود با SaltStack
برچسب‌ها:
SQL
,
sudo
0 notes
vpsgold-blog · 4 years
Text
نظارت بر سلامت سرور با Checkmk در اوبونتو
به عنوان یک ادمین سیستم ، بهترین کار شناخت وضعیت فعلی زیرساخت ها و خدمات خود میباشد. در حالت ایده آل ، می خواهید قبل از اینکه کاربران کاری کنند ، دیسک های خراب یا مشکلات برنامه را متوجه شوید. ابزارهای نظارتی مانند Checkmk می توانند به مدیران کمک کنند تا این مشکلات را پیدا کرده و سرور مجازی های سالم را حفظ کنند. به طور کلی ، نرم افزار مانیتورینگ می تواند وضعیت سخت افزاری ، زمان فعالیت و وضعیت سرور مجازی های شما را ردیابی کند و در صورت بروز هر مشکلی هشدار دهد. در یک حالت بسیار ساده ، یک سیستم نظارتی در صورت متوقف شدن هرگونه خدمات به شما هشدار می دهد. در یک حالت قوی تر ، هشدار بلافاصله بعد از بروز هرگونه علائم مشکوک ، مانند افزایش استفاده از حافظه یا میزان غیرطبیعی اتصالات TCP ، به وجود می آید. راه حل های مانیتورینگ بسیاری وجود دارد که درجات مختلف پیچیدگی و ویژگی های مختلف ، هم رایگان و هزینه بر را ارائه می دهد. در بسیاری از موارد ، نصب ، پیکربندی و مدیریت این ابزارها دشوار و وقت گیر است. با این حال Checkmk ، یک روش نظارتی است که هم قوی میباشد و هم نصب آن ساده است. یک بسته نرم افزاری خود شمول است که شامل Nagios (یک سرویس هشدار دهنده محبوب و منبع باز) با افزونه هایی برای جمع آوری ، نظارت و نمودار سازی داده ها است. همچنین رابط وب Checkmk را به همراه دارد – ابزاری جامع که بسیاری از کاستی های Nagios را برطرف می کند. این دستگاه داشبورد کاربر پسند ، یک سیستم نوتیفیکیشن همه منظوره و یک مخزن دارای عوامل نظارتی آسان قابل نصب را در بسیاری از توزیع های لینوکس ارائه می دهد. اگر رابط وب Checkmk را نداشته باشد ، باید برای کارهای مختلف از نماهای مختلف استفاده کنیم و امکان استفاده از این ویژگی ها بدون استفاده از اصلاحات گسترده فایل امکان پذیر نیست. در این راهنما Checkmk را روی یک سرور مجازی Ubuntu 18.04 تنظیم می کنیم و دو هاست جداگانه را مانیتور می کنیم. خود سرور مجازی اوبونتو و همچنین یک سرور مجازی جداگانه CentOS 7 را رصد خواهیم کرد ، اما می توانیم از همین روش استفاده کنیم تا تعداد هاست های بیشتری را به پیکربندی مانیتورینگ خود اضافه کنیم. پیش نیازها • یک سرور مجازی Ubuntu 18.04 با یک کاربر معمولی و غیر ریشه و دارای امتیازات sudo. با پیروی از این آموزش اولیه راه اندازی سرور مجازی می توانید نحوه آماده سازی سرور مجازی خود را بیاموزید. • یک سرور مجازی CentOS 7 با یک کاربر معمولی و غیر ریشه و دارای امتیازات sudo. برای تهیه این سرور مجازی می توانید این آموزش اولیه تنظیم سرور مجازی را دنبال کنید. مرحله 1 – نصب Checkmk در اوبونتو برای استفاده از سایت مانیتور خود ابتدا باید Checkmk را روی سرور مجازی اوبونتو نصب کنیم. این کار ابزارهای لازم را به ما می دهد. Checkmk فایلهای رسمی بسته آماده استفاده برای اوبونتو را فراهم می کند که می توانیم برای نصب بسته نرم افزاری از آنها استفاده کنیم. ابتدا ، لیست بسته ها را به روز می کنیم تا جدیدترین نسخه از لیست مخازن را داشته باشیم: ⦁ $ sudo apt update ⦁ برای جستجوی بسته ها می توانیم به سایت لیست بسته ها برویم. اوبونتو 18.04 را می توان در فهرست صفحه انتخاب کرد. اکنون بسته را دانلود کنید: ⦁ $ wget https://checkmk.com/support/1.6.0p8/check-mk-raw-1.6.0p8_0.bionic_amd64.deb ⦁ سپس بسته تازه دانلود شده را نصب کنید: ⦁ $ sudo apt install -y ./check-mk-raw-1.6.0p8_0.bionic_amd64.deb ⦁ این دستور بسته Checkmk را به همراه تمام متعلقات لازم از جمله وب سرور مجازی Apache که برای دسترسی به وب به رابط مانیتورینگ استفاده می شود ، نصب می کند. پس از اتمام نصب ، اکنون می توانیم به دستور omd دسترسی پیدا کنیم. آن را امتحان کنید: ⦁ $ sudo omd ⦁ این دستور omd به شرح زیر است: Output Usage (called as root):
omd help Show general help
. . .
General Options: -V <version> set specific version, useful in combination with update/create omd COMMAND -h, –help show available options of COMMAND
دستور omd می تواند تمام موارد Checkmk را در سرور مجازی ما مدیریت کند. می تواند همه خدمات نظارت را به طور همزمان شروع و متوقف کند ، و ما از آن برای ایجاد نمونه Checkmk استفاده خواهیم کرد. با این حال ، ابتدا ، باید تنظیمات فایروال خود را به روز کنیم تا به خارج از پورت پیش فرض دسترسی پیدا کنیم. مرحله 2 – تعیین تنظیمات فایروال قبل از اینکه بتوانیم با Checkmk کار کنیم ، لازم است در پیکربندی فایروال اجازه دسترسی خارجی به سرور مجازی وب را فراهم کنیم. با فرض اینکه مراحل پیش فرض تنظیمات فایروال را دنبال کرده باشید ، فایروال UFW را برای محدود کردن دسترسی به سرور مجازی خود تنظیم کرده اید. در حین نصب ، Apache خود را با UFW ثبت می کند تا راهی آسان برای فعال یا غیرفعال کردن دسترسی به Apache از طریق فایروال فراهم کند. برای دسترسی به Apache ، از دستور زیر استفاده کنید: ⦁ $ sudo ufw allow Apache ⦁ اکنون تغییرات را تأیید کنید: ⦁ $ sudo ufw status ⦁ خواهید دید که Apache در بین سرویس های مجاز ذکر شده است: Output Status: active
To Action From — —— —- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
این به ما امکان دسترسی به رابط وب Checkmk را می دهد. در مرحله بعدی ، اولین نمونه مانیتورینگ Checkmk را ایجاد خواهیم کرد. مرحله 3 – ایجاد یک نمونه مانیتورینگ Checkmk Checkmk برای جداسازی چندین نسخه Checkmk روی یک سرور مجازی از مفهوم نمونه ها یا نصب های فردی استفاده می کند. در بیشتر موارد ، تنها یک نسخه از Checkmk کافی است و اینگونه است که ما در این راهنما نرم افزار را پیکربندی می کنیم. ابتدا باید یک نمونه جدید را نامگذاری کنیم و در تمام این متن از monitoring استفاده خواهیم کرد. برای ایجاد نمونه ، این دستور را تایپ کنید: ⦁ $ sudo omd create monitoring ⦁ ابزار omd همه چیز را بطور خودکار برای ما تنظیم می کند. خروجی فرمان شبیه به زیر خواهد بود: Output Adding /opt/omd/sites/monitoring/tmp to /etc/fstab. Creating temporary filesystem /omd/sites/monitoring/tmp…OK Restarting Apache…OK Created new site monitoring with version 1.6.0p8.cre.
The site can be started with omd start monitoring. The default web UI is available at http://your_ubuntu_server/monitoring/
The admin user for the web applications is cmkadmin with password: your-default-password (It can be changed with ‘htpasswd -m ~/etc/htpasswd cmkadmin’ as site user.) Please do a su – monitoring for administration of this site.
در این خروجی آدرس URL ، نام کاربری پیش فرض و رمز عبور برای دسترسی به رابط مانیتورینگ ما هایلایت می شوند. نمونه اکنون ایجاد شده است ، اما هنوز شروع نشده است. برای شروع مثال ، تایپ کنید: ⦁ $ sudo omd start monitoring ⦁ در حال حاضر تمام ابزارها و سرویس های لازم به طور همزمان آغاز می شوند. در پایان خروجی را مشاهده خواهیم کرد که تایید میکند همه سرویس های ما با موفقیت شروع شده است: Output Starting mkeventd…OK Starting rrdcached…OK Starting npcd…OK Starting nagios…OK Starting apache…OK Initializing Crontab…OK
نمونه به روز و در حال اجرا است. برای دسترسی به نمونه Checkmk ، در مرورگر وب http: // your_ubuntu_server_ip / monitor / را باز کنید. از شما خواسته می شود که یک رمز عبور وارد کنید. از اعتبارات پیش فرض چاپ شده روی صفحه استفاده کنید. بعداً این پیش فرض ها را تغییر خواهیم داد. صفحه Checkmk با یک داشبورد باز می شود ، که تمام خدمات و وضعیت سرور مجازی های ما را در لیست ها نشان می دهد و از نمودارهای عملی شبیه کره زمین استفاده می کند. بلافاصله پس از نصب ، این موارد خالی است ، اما به زودی آن را برای نمایش سرویس ها و سیستم های خود ایجاد خواهیم کرد.
در مرحله بعد رمزعبور پیش فرض را برای ایمن سازی سایت با استفاده از این رابط تغییر خواهیم داد. مرحله 4 – تغییر رمز عبور ادمین در حین نصب ، Checkmk یک رمز عبور تصادفی برای کاربر ادمین cmkadmin ایجاد می کند. این گذرواژه قرار است هنگام نصب تغییر یابد و به همین دلیل اغلب کوتاه است و چندان ایمن نیست. ما می توانیم این رمز را از طریق رابط وب تغییر دهیم. ابتدا ، صفحه کاربران را از منوی WATO – Configuration در سمت چپ باز کنید. در این لیست کلیه کاربرانی که در حال حاضر به سایت Checkmk دسترسی دارند نشان داده میشوند. در نصب جدید فقط دو کاربر لیست می شوند. اولین مورد ، automation ، برای استفاده با ابزارهای خودکار در نظر گرفته شده است. دومی کاربر cmkadmin است که ما برای ورود به سایت استفاده می کردیم.
برای تغییر جزئیات آن از جمله رمز عبور ، روی آیکون مداد کنار کاربر cmkadmin کلیک کنید.
گذرواژه را به روز کنید ، یک ایمیل ادمین اضافه کنید و هرگونه تغییر دلخواه دیگری میخواهید انجام دهید. پس از ذخیره تغییرات ، از ما خواسته می شود دوباره با استفاده از اعتبار جدید خود وارد سیستم شوید. این کار را انجام دهید و به داشبورد برگردید ، جایی که باید برای پیاده سازی کامل پیکربندی جدید خود یک کار دیگر نیز انجام دهیم. یکبار دیگر از منوی WATO – Configuration پیکربندی در سمت چپ ، صفحه کاربران را باز کنید. دکمه نارنجی در گوشه بالا سمت چپ با عنوان 1 Change به ما می گوید که ما در پیکربندی Checkmk تغییراتی ایجاد کرده ایم و باید آنها را ذخیره و فعال کنیم. این اتفاق هر بار که می خواهیم پیکربندی سیستم نظارت خود را تغییر دهیم ، تکرار میشود و نه تنها پس از ویرایش اطلاعات کاربری. برای ذخیره و فعال کردن تغییرات در حال انتظار ، باید روی این دکمه کلیک کرده و با فعال سازی تغییرات ذکر شده با استفاده از گزینه ” Activate affected” در صفحه زیر موافقت کنید.
پس از فعال سازی تغییرات ، داده های کاربر جدید در فایل های پیکربندی نوشته شده و توسط همه اجزای سیستم استفاده می شود. Checkmk به طور خودکار مراقب اجزای سیستم مانیتورینگ فردی ، لود مجدد آنها در صورت لزوم و مدیریت کلیه فایل های پیکربندی مورد نیاز است. نصب Checkmk اکنون آماده استفاده است. در مرحله بعد ، هاست اول را به سیستم نظارت خود اضافه خواهیم کرد. مرحله 5 – نظارت بر هاست اول اکنون آماده مانیتورینگ هاست اول هستیم. برای انجام این کار ، ابتدا check-mk-agent را روی سرور مجازی اوبونتو نصب خواهیم کرد. سپس ، دسترسی به داده های مانیتورینگ را با استفاده از xinetd محدود خواهیم کرد. مؤلفه های نصب شده با Checkmk وظیفه دریافت ، ذخیره و ارائه اطلاعات نظارت را دارند. آنها خود اطلاعات را ارائه نمی دهند. برای جمع آوری داده های واقعی ، از عامل Checkmk استفاده خواهیم کرد. از آنجا که عامل Checkmk به طور خاص برای این کار طراحی شده ، قادر به نظارت بر همه اجزای حیاتی سیستم به طور همزمان و گزارش آن اطلاعات به نمونه Checkmk است. نصب عامل اولین هاستی که مانیتور خواهیم کرد your_ubuntu_server خواهد بود – سرور مجازی ی که ما خود نمونه Checkmk را نصب کرده ایم. برای شروع ، باید عامل Checkmk را نصب کنیم. بسته های مربوط به همه توزیع های عمده ، از جمله اوبونتو ، مستقیماً از رابط وب موجود است. صفحه Monitoring Agents را از منوی WATO – Configuration در سمت چپ باز کنید. دانلودهای موجود با محبوب ترین بسته ها را در قسمت اول با برچسب Packaged agents مشاهده خواهید کرد.
بسته check-mk-agent_1.6.0p8-1_all.deb مناسب برای توزیع های مبتنی بر دبیان ، از جمله اوبونتو است. لینک دانلود آن بسته را از مرورگر وب کپی کنید و از آن آدرس برای دانلود بسته استفاده کنید. $ wget http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent_1.6.0p8-1_all.deb ⦁ پس از دانلود ، بسته را نصب کنید: ⦁ $ apt install -y ./check-mk-agent_1.6.0p8-1_all.deb ⦁ اکنون تأیید کنید که عامل با موفقیت نصب شده است: ⦁ $ check_mk_agent ⦁
این دستور متن بسیار طولانی را به نمایش می گذارد که به نظر می رسد مانند gibberish اما همه اطلاعات حیاتی درباره سیستم را در یک جا جمع می کند. Output <<<check_mk>>> Version: 1.6.0p8 AgentOS: linux . . . [“monitoring”] <<<job>>> <<<local>>>
این خروجی این دستور است که Checkmk برای جمع آوری داده های وضعیت از هاست های مانیتور شده، از آن استفاده می کند. اکنون ، دسترسی به داده های مانیتورینگ را با xinetd محدود خواهیم کرد. محدود کردن دسترسی به داده های مانیتورینگ با استفاده از xinetd به طور پیش فرض ، داده های check_mk_agent با استفاده از xinetd ارائه می شوند، مکانیزمی که پس از دستیابی به آن ، داده ها را از پورت شبکه خاص خارج می کند. این بدان معنی است که ما می توانیم با استفاده از telnet به پورت 6556 (پورت پیش فرض Checkmk) از هر رایانه دیگری در اینترنت به check_mk_agent دسترسی پیدا کنیم ، مگر اینکه پیکربندی فایروال ما آن را مجاز نداند. این حالت رویکرد امنیتی خوبی برای انتشار اطلاعات حیاتی در مورد سرور مجازی ها به هر کسی در اینترنت نیست. ما فقط باید هاست هایی را مجاز کنیم که Checkmk را اجرا می کنند و برای دستیابی به این داده ها تحت نظارت ما هستند ، به طوری که فقط سیستم نظارت ما بتواند آن را جمع کند. اگر آموزش اولیه راه اندازی سرور مجازی شامل مراحل تنظیم فایروال را دنبال کرده اید ، دسترسی به عامل Checkmk به طور پیش فرض مسدود شده است. با این وجود ، یک راه این است که این محدودیت های دسترسی را مستقیماً در پیکربندی سرویس اعمال کنید و برای محافظت از آن فقط به فایروال اعتماد نکنید. برای محدود کردن دسترسی به داده های عامل ، باید فایل پیکربندی را در /etc/xinetd.d/check_mk ویرایش کنیم. فایل پیکربندی را در ویرایشگر مورد علاقه خود باز کنید. برای استفاده از nano ، تایپ کنید: ⦁ $ sudo nano /etc/xinetd.d/check_mk ⦁ این بخش را پیدا کنید: /etc/xinetd.d/check_mk . . . # configure the IP address(es) of your Nagios server here: #only_from = 127.0.0.1 10.0.20.1 10.0.20.2 . . .
تنظیم only_from مسئولیت محدود کردن دسترسی به آدرسهای IP خاص را دارد. از آنجا که ما اکنون در حال کار بر روی نظارت بر سرور مجازی ی هستیم که Checkmk روی آن کار می کند ، بهتر است فقط به localhost اجازه اتصال دهیم. تنظیمات پیکربندی را باطل و به روز کنید: /etc/xinetd.d/check_mk . . . # configure the IP address(es) of your Nagios server here: only_from = 127.0.0.1 . . . فایل را ذخیره کنید و از آن خارج شوید. برای تغییراتی که باید انجام شود ، باید daemon xinetd را مجدداً راه اندازی کنیم. اکنون این کار را انجام دهید: ⦁ $ sudo systemctl restart xinetd ⦁ اکنون عامل ما در حال اجراست و محدود به پذیرش اتصالات محلی است. ما می توانیم با استفاده از Checkmk ، مانیتورینگ را برای هاست پیکربندی کنیم. پیکربندی هاست در رابط وب Checkmk ابتدا ، برای اضافه کردن یک هاست جدید جهت نظارت ، باید به منوی هاست ها در فهرست WATO – Configuration در سمت چپ برویم. از اینجا روی ایجاد هاست جدید کلیک کنید. برخی اطلاعات هاست از ما خواسته می شود. نام هاست نامی آشناست که Checkmk برای نظارت از آن استفاده خواهد کرد. ممکن است یک نام دامنه کاملاً واجد شرایط باشد ، اما لازم نیست. در این مثال ، ما دقیقاً مانند نام نمونه Checkmk ، هاست را monitoring نامیدیم. از آنجا که onitoring برای آدرس IP ما قابل حل نیست ، باید آدرس IP سرور مجازی خود را نیز ارائه کنیم. و از آنجا که ما هاست محلی را رصد می کنیم ، IP به سادگی 127.0.0.1 خواهد بود. برای فعال کردن ورودی دستی IP ، جعبه آدرس IPv4 را بررسی کنید و مقدار را در قسمت متن وارد کنید. پیکربندی پیش فرض بخش Data Source به عامل Checkmk برای ارائه داده های نظارت متکی است ، که مسئله خوبی است. تنظیمات Networking Segment برای مشخص کردن هاست ها در شبکه های از راه دور استفاده می شود ، که با تاخیر قابل انتظار بیشتری مشخص می شوند که نشانه ای از نقص نیست. از آنجا که این یک هاست محلی است ، تنظیم پیش فرض نیز مناسب خواهد بود. برای ذخیره هاست و پیکربندی کنترل سرویس ها ، روی دکمه Save & go to services کلیک کنید.
Checkmk موجودی خودکار را انجام می دهد. این بدان معناست که خروجی عامل را دریافت می کند و آن را رمزگشایی می کند تا بداند چه نوع خدماتی را می تواند نظارت کند. کلیه خدمات در دسترس برای نظارت در لیست خواهد بود از جمله لود CPU ، استفاده از حافظه و فضای خالی روی دیسک ها. برای فعال کردن نظارت بر همه خدمات یافت شده ، باید روی دکمه Monitor در بخش خدمات Undecided (currently not monitored) کلیک کنید. صفحه ریفرش میشود ، اما اکنون همه سرویس ها در زیر بخش خدمات مانیتور شده قرار می گیرند و به ما اطلاع می دهند که در واقع تحت نظارت هستند. همانطور که در هنگام تغییر رمزعبور کاربر خود ، این تغییرات جدید قبل از اجرای زنده باید ذخیره و فعال شوند. دکمه 2 change را فشار داده و با استفاده از دکمه Activate affected ، تغییرات را بپذیرید. پس از آن ، مانیتور هاست به حالت آماده اجرا می شود. اکنون آماده همکاری با داده های سرور مجازی خود هستید. با استفاده از منوی Overview/Main Overview در سمت چپ نگاهی به داشبورد اصلی بیاندازید. کار با داده های مانیتورینگ اکنون با استفاده از مورد منوی Overview/Main Overview در سمت چپ نگاهی به داشبورد اصلی خواهیم انداخت:
کره زمین اکنون کاملاً سبز است و جدول می گوید که یک هاست بدون هیچ مشکلی در حال اجرا است. ما می توانیم لیست کامل هاست ، که اکنون از یک هاست واحد تشکیل شده است ، در نمای Hosts/All hosts (با استفاده از منوی سمت چپ) مشاهده کنیم.
در آنجا خواهیم دید که چه تعداد خدمات مطلوبی وجود دارند (به رنگ سبز نشان داده شده است) ، چه تعداد از آنها شکست خورده اند و چه تعداد از آنها در انتظار بررسی هستند. بعد از کلیک بر روی نام هاست ، قادر خواهیم بود لیست کلیه خدمات را با وضعیت کامل و Perf-O-Meter آنها مشاهده کنیم. Perf-O-Meter عملکرد یک سرویس منفرد را نسبت به آنچه Checkmk مطلوب میداند ، نشان می دهد.
کلیه خدماتی که داده های قابل بازگشت را نشان می دهند ، یک نماد گراف را در کنار نام خود نشان می دهند. ما می توانیم از آن نماد برای دسترسی به نمودارهای مرتبط با سرویس استفاده کنیم. از آنجا که نظارت هاست تازه است ، تقریباً هیچ چیزی روی نمودارها وجود ندارد – اما بعد از مدتی نمودارها اطلاعات ارزشمندی در مورد تغییر عملکرد سرویس ما با گذشت زمان ارائه می دهند.
هنگامی که هر یک از این خدمات خراب یا بازیابی نشوند ، اطلاعات در داشبورد نشان داده می شود. برای عدم موفقیت در خدمات خطای قرمز نشان داده می شود و بروز مشکل در نمودار کره زمین نیز قابل مشاهده خواهد بود.
پس از ریکاوری ، همه چیز به صورت سبز نشان داده می شود ، اما وضعیت ورود به سیستم در سمت راست حاوی اطلاعاتی درباره مشکلات گذشته خواهد بود.
اکنون که کمی داشبورد را کاوش کرده ایم ، بیایید هاست دوم را به عنوان نمونه مانیتورینگ خود اضافه کنیم. مرحله 6 – نظارت بر هاست CentOS دوم وقتی هاست های مختلفی دارید ، مانیتورینگ واقعاً کارآمد خواهد بود. اکنون سرور مجازی دوم را به نمونه Checkmk اضافه خواهیم کرد ، این بار CentOS 7 در حال اجرا را اضافه میکنیم. مانند سرور مجازی Ubuntu ، نصب عامل Checkmk برای جمع آوری داده های نظارت بر CentOS ضروری است. اما این بار به یک صفحه rpm از صفحه Monitoring Agents در رابط وب ، با نام check-mk-agent-1.6.0p8-1.noarch.rpm ، احتیاج خواهیم داشت. ابتدا باید xinetd را نصب کنیم که به طور پیش فرض در نصب CentOS موجود نیست. به یاد خواهیم آورد ، Xinetd یک Daemon است که وظیفه تهیه داده های مانیتورینگ ارائه شده توسط check_mk_agent از طریق شبکه را دارد. در سرور مجازی CentOS خود ، ابتدا xinetd را نصب کنید: ⦁ $ sudo yum install -y xinetd ⦁ اکنون می توانیم بسته عامل نظارتی مورد نیاز سرور مجازی CentOS خود را دانلود و نصب کنیم: ⦁ $ sudo yum install -y http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent-1.6.0p8-1.noarch.rpm ⦁ درست مانند قبل ، با اجرای check_mk_agent می توانیم تأیید کنیم که عامل به درستی کار می کند: ⦁ $ sudo check_mk_agent خروجی مشابه سرور مجازی اوبونتو خواهد بود. اکنون دسترسی به عامل را محدود خواهیم کرد. محدود کردن دسترسی این بار یک هاست محلی را نظارت نخواهیم کرد ، بنابراین xinetd باید امکاناتی را برای جمع آوری داده ها از سرور مجازی اوبونتو ، که Checkmk در آن نصب است ، فراهم آورد. برای انجام این کار، ابتدا فایل پیکربندی خود را باز کنید: ⦁ $ sudo vi /etc/xinetd.d/check_mk ⦁ در اینجا پیکربندی سرویس check_mk خود را مشاهده می کنید ، چگونگی دستیابی به عامل Checkmk از طریق Daemon xinetd را می توانید مشخص کنید. دو خط زیر را پیدا کنید: /etc/xinetd.d/check_mk . . . # configure the IP address(es) of your Nagios server here: #only_from = 127.0.0.1 10.0.20.1 10.0.20.2 . . .
اکنون خط دوم را حذف کنید و آدرس های IP محلی را با آدرس__ubuntu_server_ip خود جایگزین کنید: /etc/xinetd.d/check_mk . . . # configure the IP address(es) of your Nagios server here: only_from = your_ubuntu_server_ip . . .
با تایپ:x و سپس ENTER فایل را ذخیره کنید و خارج شوید. سرویس xinetd را با استفاده از دستور زیر ریستارت کنید: ⦁ $ sudo systemctl restart xinetd ⦁ اکنون می توانیم Checkmk را پیکربندی کنیم تا هاست CentOS 7 خود را کنترل کنیم. پیکربندی هاست جدید در Checkmk برای اضافه کردن هاست های اضافی به Checkmk ، مانند گذشته از منوی هاست ها استفاده می کنیم. این بار می خواهیم نام هاست را centos مینامیم ، آدرس IP آن را پیکربندی میکنیم و WAN (با تأخیر زیاد) را در زیر کادر انتخاب Networking Segment انتخاب میکنیم ، زیرا هاست در شبکه دیگری قرار دارد. اگر از این مرحله عبور کردیم و آن را به صورت محلی رها کردیم ، Checkmk به زودی به ما هشدار می دهد که هاست از کار افتاده است ، زیرا انتظار می ر��د خیلی سریعتر از آنچه ممکن است از طریق اینترنت به پرس و جوهای عامل پاسخ دهد.
روی Save & go to servicesکلیک کنید ، که خدمات موجود برای نظارت بر روی سرور مجازی CentOS را نشان می دهند. لیست بسیار شبیه به لیست هاست اول خواهد بود. این بار نیز باید روی Monitor کلیک کرده و سپس با استفاده از دکمه نارنجی در گوشه بالا سمت چپ تغییرات را فعال کنیم. پس از فعال سازی تغییرات ، می توانیم تأیید کنیم که هاست در صفحه All hosts نظارت می شود. به آنجا بروید. اکنون دو هاست ، monitoring و centos قابل مشاهده خواهند بود.
اکنون یک سرور مجازی اوبونتو و یک سرور مجازی CentOS را با Checkmk نظارت می کنید. حتی امکان نظارت بر هاست های بیشتر وجود دارد. در واقع ، هیچ حد بالایی غیر از عملکرد سرور وجود ندارد ، که تا زمانی که تعداد هاست شما در محدود چند صد مورد باشد ، مشکلی ایجاد نمی شود. علاوه بر این ، فرآیند برای هر هاست دیگر یکسان است. عاملین Checkmk در بسته های deb و rpm روی Ubuntu ، CentOS و اکثر توزیع های لینوکس کار می کنند. نتیجه در این راهنما دو سرور مجازی با دو توزیع مختلف لینوکس تنظیم می کنیم: ubuntu و CentOS. سپس برای کنترل هر دو سرور مجازی ، Checkmk را نصب و پیکربندی کردیم و رابط وب قدرتمند Checkmk را بررسی کردیم. Checkmk امکان تنظیم آسان سیستم مانیتورینگ کامل و همه کاره را فراهم می کند ، که تمام سختی کار پیکربندی دستی را در یک رابط کاربری وب آسان و پر از گزینه ها و ویژگی های مختلف جمع میکند. با استفاده از این ابزارها می توان چندین هاست را کنترل کرد، ایمیل ، پیام کوتاه یا نوتیفیکیشن های بروز مشکل را تنظیم نمود، بررسی های چندگانه برای خدمات بیشتر تنظیم کرد، بر دسترسی و عملکرد نظارت کرد و غیره. برای کسب اطلاعات بیشتر در مورد Checkmk ، حتماً به مطالب رسمی مراجعه کنید.
برچسب‌ها:
Apache
,
Checkmk
,
Monitoring
,
Nagios
,
sudo
,
URL
0 notes
vpsgold-blog · 4 years
Text
اجرای چند نسخه PHP بر روی یک سرور
سرور وب Apache از هاست های مجازی برای مدیریت دامنه های متعدد بر روی یک نمونه واحد استفاده می کند. به طور مشابه ، PHP-FPM از یک Daemon برای مدیریت چندین نسخه PHP در یک نمونه واحد استفاده می کند. می توانید از Apache و PHP-FPM با هم استفاده کنید تا هاست چند برنامه وب PHP باشید که هر یک از نسخه متفاوت PHP استفاده میکند و همه روی یک سرور یکسان و به طور همزمان کار کنند. این ویژگی از این لحاظ مفید است که برنامه های مختلف ممکن است به نسخه های مختلف PHP نیاز داشته باشند ، اما برخی از پشته های سرور ، مانند پشته LAMP که به طور معمول پیکربندی شده است ، فقط می توانند یکی را مدیریت کنند. ترکیب Apache با PHP-FPM همچنین یک راه حل مقرون به صرفه تر از میزبانی هر برنامه به طور خاص است. PHP-FPM همچنین گزینه های پیکربندی برای ورود به سیستم stderr و stdout ، ریستارت اضطراری و spawning روند تطبیقی ​​را ارائه می دهد ، که برای سایت های دارای بار سنگین مفید است. در حقیقت ، استفاده از Apache با PHP-FPM یکی از بهترین پشته ها برای هاستینگ برنامه های PHP ، به خصوص از لحاظ عملکرد میباشد. در این آموزش دو سایت PHP را به صورت یکجا تنظیم خواهید کرد. هر سایت از دامنه خود استفاده می کند و هر دامنه نسخه PHP خود را مستقر می کند. اولی ، site1.your_domain ، PHP 7.0 را مستقر می کند. دومی ، site2.your_domain ، PHP 7.2 را مستقر می کند. پیش نیازها • یک سرور CentOS 7 با حداقل 1 گیگابایت رم که طبق راهنمای راه اندازی سرور اولیه با تنظیم شده باشد ، شامل کاربر sudo غیر ریشه و فایروال. •وب سرور Apache که با دنبال کردن آموزش نحوه نصب وب سرور Apache در CentOS 7 راه اندازی شود. • نام دامنه پیکربندی شده برای اشاره به سرور CentOS 7 شما. برای اهداف این آموزش ، از دو زیر دامنه استفاده خواهیم کرد که هر یک با یک رکورد A در تنظیمات DNS ما مشخص شده اند: site1.your_domain و site2.your_domain. مرحله 1 – نصب PHP ورژن های 7.0 و 7.2 با PHP-FPM با تکمیل پیش نیازها، اکنون نسخه های PHP 7.0 و 7.2 را نصب خواهید کرد. مخزن SCL )مجموعه نرم افزار) نسخه های بیشماری از پشته PHP را برای سیستم CentOS 7 نگه می دارد. اگر به جدیدترین نسخه PHP نیاز دارید و در SCL موجود نیست ، به جای آن ، Remi PPA (بایگانی بسته شخصی) را بررسی کنید. با نصب مخزن SCL در سیستم خود شروع کنید: ⦁ $ sudo yum install centos-release-scl -y ⦁ ابتدا بیابیم جستجو کنیم که نسخه های PHP 7 در SCL در دسترس هستند: ⦁ $ sudo yum list rh-php7[0-9].x86_64
خروجی مانند این را خواهید دید: Output Available Packages rh-php70.x86_64 2.3-1.el7 centos-sclo-rh rh-php71.x86_64 1-1.el7 centos-sclo-rh rh-php72.x86_64 1-2.el7 centos-sclo-rh rh-php73.x86_64 1-1.el7
توجه داشته باشید که جدیدترین نسخه ، PHP 7.3 نیز موجود است. برای مثال ما نسخه های 7.0 و 7.2 را نصب خواهیم کرد. بیایید با نسخه قدیمی تر شروع کنیم. rh-php70 و rh-php70-php-fpm را نصب کنید: ⦁ $ sudo yum install rh-php70 rh-php70-php-fpm -y ⦁ ⦁ rh-php70 متابسته ای است که برنامه های PHP را اجرا می کند. ⦁ rh-php70-php-fpm مترجم Fast Manager Manager را فراهم می کند که به عنوان یک Daemon اجرا می شود و درخواست های Fast / CGI را دریافت می کند. حالا فرایند را برای نسخه PHP 7.2 تکرار کنید. rh-php72 و rh-php72-php-fpm را نصب کنید. ⦁ $ sudo yum install rh-php72 rh-php72-php-fpm -y ⦁ در مرحله بعدی ، دستورات زیر را برای شروع استفاده از هر دو مجموعه نرم افزار اجرا کنید: ⦁ $ sudo scl enable rh-php70 bash ⦁ ⦁ $ sudo scl enable rh-php72 bash
به طور پیش فرض ، هر دو نسخه PHP پورت 9000 را گوش می دهند. اما در این آموزش می خواهیم دو نسخه را همزمان اجرا کنیم. بنابراین ، بیایید دو پورت جدید را تعیین کنیم: برای تحقق این امر می توانید /etc/opt/rh/rh-php70/php-fpm.d/www.conf را در ویرایشگر متن مورد علاقه خود باز کرده و هر عدد 9000 را به 9002 تغییر دهید. سپس فایل را ذخیره کرده و ببندید و فرآیند را برای /etc/opt/rh/rh-php72/php-fpm.d/www.conf تکرار کنید ، اکنون 9000 را با 9003 جایگزین کنید. در غیر این صورت ، می توانید از این دو دستور sed برای انجام جایگزینی استفاده کنید: ⦁ $ sudo sed -i ‘s/:9000/:9002/’ /etc/opt/rh/rh-php70/php-fpm.d/www.conf ⦁ ⦁ $ sudo sed -i ‘s/:9000/:9003/’ /etc/opt/rh/rh-php72/php-fpm.d/www.conf
اکنون برای هر یک از خدمات PHP خود پورت اختصاصی تعیین کرده اید. با این حال ، قبل از این که این تغییرات کار کنند ، باید پورت ها را به پیکربندی SELinux اضافه کنید. SELinux مخفف Security Enhanced Linux است و به طور پیش فرض در CentOS 7 فعال می شود. شما باید پورت های جدید 9002 و 9003 خود را به پایگاه داده SELinux اضافه کنید و آنها را به خدمات httpd خود اختصاص دهید ، در غیر این صورت برنامه های شما اجرا نمی شوند. برای انجام این کار از دستور semanage استفاده کنید: ⦁ $ sudo semanage port -a -t http_port_t -p tcp 9002 ⦁ ⦁ $ sudo semanage port -a -t http_port_t -p tcp 9003
پرچم -a مشخص می کند که شما یک آبجکت را به بانک اطلاعاتی اضافه می کنید. پرچم -t نوع آبجکت را مشخص می کند ، که در این حالت http_port_t است. و پرچم -p پروتکل tcp را تعیین می کند. می توانید در این آموزش و یا با مراجعه به مطالب رسمی SELinux درباره SELinux و فرمان semanage اطلاعات بیشتری کسب کنید. اکنون آماده شروع و فعال کردن خدمات PHP خود هستید. با سرویس rh-php70-php-fpm خود شروع کنید و آن را فعال کنید تا در بوت شروع شود: ⦁ $ sudo systemctl start rh-php70-php-fpm ⦁ ⦁ $ sudo systemctl enable rh-php70-php-fpm
در مرحله بعدی ، وضعیت سرویس rh-php70-php-fpm خود را تأیید کنید: ⦁ $ sudo systemctl status rh-php70-php-fpm ⦁ خروجی مانند این را خواهید دید: Output ● rh-php70-php-fpm.service – The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/rh-php70-php-fpm.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2020-04-18 04:49:59 UTC; 1min 6s ago Main PID: 1852 (php-fpm) Status: “Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec” CGroup: /system.slice/rh-php70-php-fpm.service ├─1852 php-fpm: master process (/etc/opt/rh/rh-php70/php-fpm.conf) ├─1853 php-fpm: pool www ├─1854 php-fpm: pool www ├─1855 php-fpm: pool www ├─1856 php-fpm: pool www └─1857 php-fpm: pool www
Apr 18 04:49:59 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Starting The PHP FastCGI Process Manager… Apr 18 04:49:59 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Started The PHP FastCGI Process Manager.
با تکرار این فرایند ، سرویس rh-php72-php-fpm را راه اندازی کنید و آن را فعال کنید تا از بوت شروع شود: ⦁ $ sudo systemctl start rh-php72-php-fpm ⦁ ⦁ $ sudo systemctl enable rh-php72-php-fpm
در مرحله بعد ، وضعیت سرویس rh-php72-php-fpm خود را تأیید کنید: ⦁ $ sudo systemctl status rh-php72-php-fpm ⦁ خروجی دیگری مانند این را مشاهده خواهید کرد: Output ● rh-php72-php-fpm.service – The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/rh-php72-php-fpm.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2020-04-18 04:50:04 UTC; 1min 59s ago Main PID: 1876 (php-fpm) Status: “Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec” CGroup: /system.slice/rh-php72-php-fpm.service ├─1876 php-fpm: master process (/etc/opt/rh/rh-php72/php-fpm.conf) ├─1877 php-fpm: pool www ├─1878 php-fpm: pool www ├─1879 php-fpm: pool www ├─1880 php-fpm: pool www └─1881 php-fpm: pool www
Apr 18 04:50:04 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Starting The PHP FastCGI Process Manager… Apr 18 04:50:04 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Started The PHP FastCGI Process Manager.
در این مرحله شما دو نسخه PHP را روی سرور خود نصب کرده اید. در مرحله بعد ، برای هر وب سایتی که می خواهید مستقر کنید ، یک ساختار دایرکتوری ایجاد خواهید کرد. مرحله 2 – ایجاد ساختارهای دیرکتوری برای هر دو وب سایت در این بخش یک دایرکتوری ریشه مستند و یک صفحه ایندکس برای هر یک از وب سایت ها ایجاد می کنید ابتدا دایرکتوری های ریشه مستندات را برای هر دوی site1.your_domain و site2.your_domain ایجاد کنید: ⦁ $ sudo mkdir /var/www/site1.your_domain ⦁ ⦁ $ sudo mkdir /var/www/site2.your_domain
به طور پیش فرض ، وب سرور Apache به عنوان یک کاربر Apache و یک گروه Apache اجرا می شود. بنابراین / var / www / و کلیه فایل ها و زیرشاخه های آن نیز باید متعلق به آنها باشد. دستورالعمل های زیر را برای تأیید صحت مالکیت و مجوزهای دیرکتوری های ریشه وب سایت خود اجرا کنید: ⦁ $ sudo chown -R apache:apache /var/www/site1.your_domain ⦁ ⦁ $ sudo chown -R apache:apache /var/www/site2.your_domain ⦁ ⦁ $ sudo chmod -R 755 /var/www/site1.your_domain ⦁ ⦁ $ sudo chmod -R 755 /var/www/site2.your_domain
دستور chown مالکیت دو دایرکتوری وب سایت شما را به کاربر apache و گروه apache تغییر می دهد. دستور chmod مجوزهای مرتبط با آن کاربر و گروه و سایر افراد را تغییر می دهد. در مرحله بعد یک فایل info.php را در هر فهرست ریشه وب سایت ایجاد خواهید کرد. با این کار اطلاعات نسخه PHP هر وب سایت نمایش داده می شود. با site1 شروع کنید: ⦁ $ sudo vi /var/www/site1.your_domain/info.php ⦁ خط زیر را اضافه کنید: /var/www/site1.your_domain/info.php <?php phpinfo(); ?>
فایل را ذخیره کنید و ببندید. اکنون فایل info.php که در site2 ایجاد کرده اید را کپی کنید: ⦁ $ sudo cp /var/www/site1.your_domain/info.php /var/www/site2.your_domain/info.php ⦁
سرور وب شما اکنون دارای دیرکتوری های ریشه مستند است که هر سایت برای ارائه داده ها به بازدید کنندگان به آن نیاز دارد. در مرحله بعدی ، وب سرور Apache خود را پیکربندی خواهید کرد تا با دو نسخه مختلف PHP کار کند. مرحله 3 – پیکربندی Apache برای هر دو وب سایت در این بخش دو فایل پیکربندی هاست مجازی ایجاد خواهید کرد. با این کار دو وب سایت شما قادر خواهند بود همزمان با دو نسخه مختلف PHP کار کنند. برای اینکه Apache بتواند این محتوا را ارائه دهد ، باید یک فایل هاست مجازی با دستورالعمل های صحیح ایجاد کنید. شما دو فایل پیکربندی هاست مجازی جدید را درون دیرکتوری (/etc/httpd/conf.d/) ایجاد خواهید کرد. ابتدا یک فایل پیکربندی هاست مجازی جدید برای وب سایت site1.your_domain ایجاد کنید. در اینجا Apache را برای ارائه محتوا با استفاده از PHP 7.0 هدایت می کنید: ⦁ $ sudo vi /etc/httpd/conf.d/site1.your_domain.conf ⦁ محتوای زیر را اضافه کنید. اطمینان حاصل کنید که مسیر فهردیرکتوریست وب سایت ، نام سرور ، پورت �� نسخه PHP با تنظیمات شما مطابقت دارد: /etc/httpd/conf.d/site1.your_domain.conf
<VirtualHost *:80> ServerAdmin [email protected]_domain ServerName site1.your_domain DocumentRoot /var/www/site1.your_domain DirectoryIndex info.php SetHandler “proxy:fcgi://127.0.0.1:9002 ScriptAlias /cgi-bin/ “/var/www/cgi-bin/” AddHandler php70-fcgi .php Action php70-fcgi /cgi-bin/php70.fcgi ErrorLog /var/log/httpd/site1.your_domain_error.log CustomLog /var/log/httpd/site1.your_domain_access.log combined </VirtualHost>
برای DocumentRoot مسیر دایرکتوری ریشه وب سایت خود را مشخص می کنید. برای ServerAdmin ایمیلی را اضافه می کنید که مدیر سایت your_domain بتواند به آن دسترسی پیدا کند. برای ServerName آدرس url زیر دامنه خود را اضافه می کنید. برای SetHandler پورت9002 را مشخص می کنید. دستورالعمل های باقیمانده نیز خدمات شما را برای پیاده سازی PHP 7.0 پیکربندی می کنند. فایل را ذخیره کنید و ببندید. در مرحله بعدی ، یک فایل پیکربندی هاست مجازی جدید برای وب سایت site2.your_domain ایجاد کنید. شما برای استقرار PHP 7.2 این زیر دامنه را مشخص می کنید: ⦁ $ sudo vi /etc/httpd/conf.d/site2.your_domain.conf ⦁ محتوای زیر را اضافه کنید. دوباره مطمئن شوید که مسیر دیرکتوری وب سایت ، نام سرور ، پورت و نسخه PHP با اطلاعات منحصر به فرد شما مطابقت دارد: /etc/httpd/conf.d/site2.your_domain.conf <VirtualHost *:80> ServerAdmin [email protected]_domain ServerName site2.your_domain DocumentRoot /var/www/site2.your_domain DirectoryIndex info.php SetHandler “proxy:fcgi://127.0.0.1:9003 ScriptAlias /cgi-bin/ “/var/www/cgi-bin/” AddHandler php72-fcgi .php Action php72-fcgi /cgi-bin/php72.fcgi ErrorLog /var/log/httpd/site2.your_domain_error.log CustomLog /var/log/httpd/site2.your_domain_access.log combined </VirtualHost>
پس از اتمام فایل را ذخیره کنید و ببندید. سپس فایل پیکربندی Apache را برای هرگونه خطای نحوی بررسی کنید: ⦁ sudo apachectl configtest ⦁ خروجی زیر را مشاهده خواهید کرد : Output ⦁ Syntax OK
در آخر ، سرویس Apache را ریستارت کنید تا تغییرات خود را به اجرا درآورید: ⦁ $ sudo systemctl restart httpd ⦁
اکنون که Apache را برای سرویس دهی به هر سایت پیکربندی کرده اید ، آنها را آزمایش می کنید تا مطمئن شوید که نسخه های مناسب PHP در حال اجرا هستند. مرحله 4 – آزمایش هر دو وب سایت در این مرحله ، شما برای اجرای دو نسخه مختلف از PHP ، دو وب سایت پیکربندی کرده اید. حالا نتایج را آزمایش کنید. مرورگر وب خود را باز کنید و از هر دو سایت http: //site1.your_domain و http: //site2.your_domain بازدید کنید. دو صفحه را مشاهده خواهید کرد که به شکل زیر است:
به عناوین توجه کنید. صفحه اول نشان می دهد که site1.your_domain نسخه 7.0 را مستقر کرده است. دومی نشان می دهد که site1.your_domain نسخه 7.2 را مستقر کرده است. اکنون که سایت های خود را آزمایش کرده اید ، فایل های info.php را حذف کنید. از آنجا که آنها حاوی اطلاعات حساس در مورد سرور شما هستند و در دسترس کاربران غیرمجاز قرار میگیرند ، آسیب پذیری امنیتی ایجاد می کنند. فایل ها را حذف کنید: ⦁ $ sudo rm -rf /var/www/site1.your_domain/info.php ⦁ ⦁ $ sudo rm -rf /var/www/site2.your_domain/info.php
اکنون یک سرور CentOS 7 واحد دارید که دو وب سایت با دو نسخه مختلف PHP را اداره می کند. با این حال PHP-FPM به این یک برنامه محدود نمی شود. نتیجه اکنون هاست های مجازی و PHP-FPM را برای ارائه خدمات به چندین وب سایت و نسخه های مختلف PHP در یک سرور واحد ترکیب کرده اید. تنها محدودیت عملی روی تعداد سایت های PHP و نسخه های PHP که سرویس Apache شما قادر به کنترل آن است ، قدرت پردازش نمونه شماست. از اینجا شما ممکن است به کاوش در مورد ویژگی های پیشرفته تر PHP-FPM بپردازید ، مانند فرآیند spawning تطبیقی یا اینکه چگونه می تواند sdtout و stderr را وارد کند. اکنون می توانید وب سایت های خود را ایمن کنید. برای دستیابی به این هدف ، می توانید آموزش ما در مورد چگونگی تأمین امنیت سایتهای خود با مجوزهای رایگان TLS / SSL از Let’s Encrypt را دنبال کنید.
برچسب‌ها:
Daemon
,
PHP-FPM
,
Remi PPA
,
stdout
0 notes
vpsgold-blog · 4 years
Text
نصب Nginx، MySQL، PHP در CentOS 7
یک پشته نرم افزاری LEMP گروهی از نرم افزارهای منبع باز است که به طور معمول در کنار هم نصب می شوند تا سرور بتواند میزبان وب سایت های پویا و برنامه های وب باشد. این اصطلاح در واقع حاصل یک مخفف است که سیستم عامل لینوکس ، با سرور وب ENginx (که جایگزین مولفه Apache یک پشته LAMP می شود) را نشان میدهد. داده های سایت در یک پایگاه داده مبتنی بر MySQL ذخیره می شوند و محتوای پویا توسط PHP پردازش می شود. در این راهنما ، یک پشته LEMP را با PHP 7.4 که روی یک سرور CentOS 7 نصب شده است ، با استفاده از MariaDB به عنوان سیستم مدیریت پایگاه داده ، دریافت خواهیم کرد. MariaDB به عنوان یک جایگزین برای سرور اصلی MySQL کار می کند ، که در عمل به این معنی است که می توانید بدون نیاز به ایجاد پیکربندی یا تغییر کد در برنامه ، به MariaDB سوییچ کنید. پیش نیازها قبل از شروع این راهنما ، باید یک حساب کاربری جداگانه و غیر ریشه در سرور خود تنظیم کنید. با انجام مراحل 1-4 در تنظیم اولیه سرور برای CentOS 7 می توانید نحوه انجام این کار را یاد بگیرید. مرحله 1 – نصب Nginx به منظور نمایش صفحات وب برای بازدید کنندگان سای�� ، قصد داریم از Nginx ، سرور وبی با کارایی بالا استفاده کنیم. برای به دست آوردن آخرین نسخه Nginx ، ابتدا مخزن EPEL را نصب خواهیم کرد که حاوی نرم افزار اضافی برای سیستم عامل CentOS 7 است. برای اضافه کردن مخزن CentOS 7 EPEL ، دستور زیر را اجرا کنید: ⦁ $ sudo yum install epel-release ⦁ از آنجا که ما از یک دستور sudo استفاده می کنیم ، این عملیات با امتیازات اصلی انجام می شود. از شما رمزعبور کاربر معمولی را میخواهد تا تأیید کند که شما اجازه اجرای دستورات دارای امتیازات اصلی را دارید. همچنین از شما خواسته می شود نصب را تأیید کنید ، بنابراین Y را برای ادامه فشار دهید. اکنون که مخزن EPEL روی سرور شما نصب شده است ، Nginx را با استفاده از دستور yum زیر نصب کنید: ⦁ $ sudo yum install nginx ⦁ پس از اتمام نصب ، سرویس Nginx را با این دستور راه اندازی کنید: ⦁ $ sudo systemctl start nginx ⦁ با مراجعه به آدرس IP عمومی سرور خود در مرورگر وب ، می توانید بلافاصله چک کنید که همه چیز مطابق پیش بینی جلو میرود (اگر این اطلاعات را ندارید ، میتوانید آدرس IP عمومی خود را در زیر عنوان بعدی ببینید): Open in a web browser: http://server_domain_name_or_IP/
صفحه پیش فرض CentOS 7 Nginx را مشاهده خواهید کرد ، که برای اهداف اطلاع رسانی و آزمایش میباشد. باید چیزی شبیه به این ببینید:
اگر این صفحه را مشاهده کردید ، اکنون سرور وب شما به درستی نصب شده است. برای فعال کردن Nginx در بوت ، دستور زیر را اجرا کنید: ⦁ $ sudo systemctl enable nginx ⦁ چگونه آدرس IP عمومی سرور خود را پیدا کنید اگر نمی دانید آدرس IP عمومی سرور شما چیست ، روش های مختلفی برای یافتن آن وجود دارد. معمولاً آدرسی است که شما برای اتصال به سرور خود از طریق SSH استفاده می کنید. از خط فرمان می توانید این چند روش را پیدا کنید. ابتدا می توانید از ابزار iproute2 استفاده کنید تا آدرس خود را دریافت کنید: ⦁ $ ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’ ⦁ این دستور یک یا دو خط شما را به عقب باز می گرداند. هر دو آدرس صحیح هستند ، اما رایانه شما فقط می تواند یکی از آنها را استفاده میکند ، بنابراین به راحتی هر یک را امتحان کنید. یک روش دیگر استفاده از یک جناح خارج است تا به شما بگوید سرور شما را چگونه می بیند. می توانید با پرسیدن از یک سرور خاص آدرس IP خود را پیدا کنید: ⦁ $ curl http://icanhazip.com ⦁ صرف نظر از روشی که برای دریافت آدرس IP خود استفاده می کنید ، می توانید آن را در نوار آدرس مرورگر وب خود وارد کنید تا به سرور خود برسید. مرحله 2 – نصب MariaDB اکنون که سرور وب خود را راه اندازی کرده ایم ، زمان آن است که MariaDB ، یک جایگزین داخلی MySQL را نصب کنید. MariaDB یک فورک توسعه یافته از سیستم مدیریت پایگاه داده رابطه ای MySQL است. باز هم ، می توانیم از yum برای به دست آوردن و نصب نرم افزار خود استفاده کنیم. این بار ، ما بسته های کمکی دیگری را نیز نصب خواهیم کرد که در برقراری ارتباط با مؤلفه ها به ما کمک می کنند: ⦁ $ sudo yum install mariadb-server mariadb ⦁ پس از اتمام نصب ، باید MariaDB را با دستور زیر شروع کنیم: ⦁ $ sudo systemctl start mariadb ⦁ اکنون که پایگاه داده MariaDB ما در حال اجراست ، می خواهیم یک اسکریپت امنیتی را اجرا کنیم که برخی پیش فرض های پرخطر را حذف کرده و دسترسی به پایگاه داده ما را خاموش می کند. اسکریپت تعاملی را با اجرای این دستور شروع کنید: ⦁ $ sudo mysql_secure_installation ⦁ اعلان از شما می خواهد رمز عبور فعلی MariaDB خود را وارد کنید. از آنجا که شما به تازگی MariaDB را نصب کرده اید ، به احتمال زیاد رمز را نخواهید داشت ، بنابراین با فشار دادن enter آن را خالی بگذارید. سپس اعلان از شما سؤال می کند که آیا می خواهید رمز اصلی را تنظیم کنید. پیش بروید و Y را وارد کنید ، و دستورالعمل ها را دنبال کنید: mysql_secure_installation prompts: Enter current password for root (enter for none): OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation.
Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. … Success!
برای بقیه سؤالات ، باید مقادیر پیش فرض را با زدن “ENTER” بپذیرید. این کار باعث حذف برخی از کاربران و دیتابیس های نمونه میشود، ورود به سیستم ریشه از راه دور غیرفعال می شود و این قوانین جدید را بارگذاری می کند تا MySQL فوراً با تغییراتی که ایجاد کرده ایم منطبق شود. آخرین کاری که باید انجام دهید این است که MariaDB را فعال کنید که در بوت شروع شود. برای انجام این کار از دستور زیر استفاده کنید: ⦁ $ sudo systemctl enable mariadb ⦁ در این مرحله ، سیستم پایگاه داده شما اکنون تنظیم شده است و ما می توانیم پیش برویم. مرحله 3 – نصب PHP PHP مؤلفه ای از ستاپ ما است که کد را برای نمایش محتوای پویا پردازش می کند. این برنامه می تواند اسکریپت ها را اجرا کند ، برای بدست آوردن اطلاعات به پایگاه داده های MySQL ما متصل شود و محتوای پردازش شده را برای نمایش به سرور وب ما تحویل دهد. نسخه PHP موجود به طور پیش فرض در سرورهای CentOS 7 منسوخ شده است ، و به همین دلیل ، باید یک مخزن بسته شخص ثالث را نصب کنیم تا PHP 7+ را دریافت کرده و آن بر روی سرور CentOS 7نصب کنیم. Remi یک مخزن بسته محبوب است که جدیدترین نسخه های PHP را برای سرورهای CentOS ارائه می دهد. برای نصب مخزن Remi برای CentOS 7 ، دستور زیر را اجرا کنید: ⦁ $ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm ⦁ پس از اتمام نصب ، باید دستوری اجرا کنید تا مخزن حاوی نسخه دلخواه PHP شما فعال شود. برای بررسی اینکه نسخه های PHP 7+ در مخزن Remi در دسترس هستند ، این دستور را اجرا کنید: ⦁ $ yum –disablerepo=”*” –enablerepo=”remi-safe” list php[7-9][0-9].x86_64 ⦁ خروجی مانند این را خواهید دید: Output Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * remi-safe: mirrors.ukfast.co.uk Available Packages php70.x86_64 2.0-1.el7.remi remi-safe php71.x86_64 2.0-1.el7.remi remi-safe php72.x86_64 2.0-1.el7.remi remi-safe php73.x86_64 2.0-1.el7.remi remi-safe php74.x86_64 1.0-3.el7.remi remi-safe php80.x86_64
در این راهنما ، PHP 7.4 را نصب خواهیم کرد که در حال حاضر به روزترین نسخه PHP است. برای فعال کردن بسته صحیح Remi برای نصب PHP 7.4 ، اجرا کنید: ⦁ $ sudo yum-config-manager –enable remi-php74 ⦁ اکنون می توانیم پیش برویم و از yum برای نصب PHP استفاده کنیم. دستور زیر کلیه بسته های لازم را برای تنظیم PHP 7.4 در Nginx نصب می کند و به آن اجازه می دهد تا به پایگاه داده های مبتنی بر MySQL متصل شود: ⦁ $ sudo yum install php php-mysqlnd php-fpm ⦁ برای تأیید اینکه PHP به عنوان نسخه انتخابی شما موجود است ، این دستور را اجرا کنید: ⦁ $ php –version ⦁ خروجی مانند این را خواهید دید: Output PHP 7.4.5 (cli) (built: Apr 14 2020 12:54:33) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies
اکنون PHP با موفقیت روی سیستم شما نصب شده است. در مرحله بعد ، باید تغییراتی در تنظیمات پیش فرض ایجاد کنیم. برای تسهیل ویرایش فایل ها در CentOS ، ابتدا nano که ویرایشگر متن کاربر پسند تری نسبت به vi است نصب خواهیم کرد: ⦁ $ sudo yum install nano ⦁ فایل پیکربندی /etc/php-fpm.d/www.conf را با استفاده از nano یا ویرایشگر مورد نظر خود باز کنید: ⦁ $ sudo nano /etc/php-fpm.d/www.conf ⦁ اکنون به دنبال دستورالعمل های user  و group  باشید. اگر از nano استفاده می کنید ، می توانید با فشردن CTRL + W این عبارات را در فایل باز جستجو کنید. /etc/php-fpm.d/www.conf … ; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user’s group ; will be used. ; RPM: apache user chosen to provide access to the same directories as httpd user = apache ; RPM: Keep a group allowed to write in log dir. group = apache …
توجه خواهید کرد که متغیرهای کاربر و گروه روی apache تنظیم شده اند. ما باید این موارد را به nginx تغییر دهیم: /etc/php-fpm.d/www.conf … ; RPM: apache user chosen to provide access to the same directories as httpd user = nginx ; RPM: Keep a group allowed to write in log dir. group = nginx …
سپس ، دستورالعمل listen را پیدا کنید. به طور پیش فرض ، php-fpm به هاست و پورت خاصی از طریق TCP گوش می دهد. ما می خواهیم این تنظیمات را تغییر دهیم تا در یک فایل سوکت محلی شنود کند ، زیرا این کار باعث بهبود عملکرد کلی سرور می شود. خط حاوی دستورالعمل listen را به شرح زیر تغییر دهید: /etc/php-fpm.d/www.conf listen = /var/run/php-fpm/php-fpm.sock;
در آخر ، ما باید تنظیمات مالک و گروه را برای فایل سوکت که اخیراً در دستورالعمل listen تعریف کرده ایم ، تغییر دهیم. دستورالعمل listen.owner ، listen.group و listen.mode را پیدا کنید. این خطوط بطور پیش فرض حذف می شوند. با حذف علامت ; در شروع خط آنها را باطل کنید. سپس ، مالک و گروه را به nginx تغییر دهید: /etc/php-fpm.d/www.conf listen.owner = nginx listen.group = nginx listen.mode = 0660
هنگام ویرایش ، فایل را ذخیره کنید و ببندید. اگر از nano استفاده می کنید ، این کار را با فشار دادن CTRL + X ، سپس Y و ENTER انجام دهید. برای فعال و شروع سرویس php-fpm ، دستور زیر را اجرا کنید: ⦁ $ sudo systemctl start php-fpm ⦁ اکنون محیط PHP شما آماده است. در مرحله بعد ، Nginx را پیکربندی خواهیم کرد تا همه درخواست های ارسال شده برای اسکریپت های PHP توسط php-fpm پردازش شود. مرحله 4 – پیکربندی Nginx برای پردازش صفحات PHP اکنون همه اجزای لازم نصب شده است. تنها تغییر پیکربندی که باید انجام دهیم این است که به Nginx بگوییم از پردازنده PHP ما برای محتوای پویا استفاده کند. Nginx یک دایرکتوری اختصاصی دارد که می توانیم با استفاده از بلوک سرور ، هر وب سایت هاست را به عنوان یک فایل پیکربندی جداگانه تعریف کنیم. در واقع شبیه به هاست های مجازی Apache است. با وجود نصب پیش فرض ، این دایرکتوری خالی است. ما یک فایل جدید ایجاد خواهیم کرد تا به عنوان وب سایت پیش فرض PHP در این سرور ، سرویس دهی کند ، که باعث لغو بلوک سرور پیش فرض مشخص شده در فایل /etc/nginx/nginx.conf خواهد شد. ابتدا یک فایل جدید را در دیرکتوری /etc/nginx/conf.d باز کنید: ⦁ $ sudo nano /etc/nginx/conf.d/default.conf ⦁ بلوک تعریف سرور PHP زیر را در فایل پیکربندی خود کپی کنید و فراموش نکنید که دستورالعمل server_name را جایگزین کنید تا به نام دامنه یا آدرس IP سرور شما اشاره کند: /etc/nginx/conf.d/default.conf server { listen 80; server_name server_domain_or_IP;
root /usr/share/nginx/html; index index.php index.html index.htm;
location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html;
location = /50x.html { root /usr/share/nginx/html; }
location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
پس از پایان کار ، فایل را ذخیره کنید و ببندید. پس ، Nginx را مجدداً ریستارت کنید تا تغییرات اعمال شود: ⦁ $ sudo systemctl restart nginx ⦁ اکنون سرور وب شما کاملاً تنظیم شده است. در مرحله بعدی ، ادغام PHP را با Nginx آزمایش خواهیم کرد. مرحله 5 – تست پردازش PHP در وب سرور خود اکنون که سرور وب شما تنظیم شده است ، می توانیم یک اسکریپت آزمایشی PHP ایجاد کنیم تا مطمئن شویم Nginx با کمک php-fpm به درستی اسکریپت های .php را اداره می کند. قبل از ایجاد اسکریپت ، ما در تنظیمات پیش فرض مالکیت در ریشه سند Nginx تغییری ایجاد خواهیم کرد ، به طوری که کاربر sudo معمولی ما قادر به ایجاد فایل هایی در آن مکان باشد. دستور زیر مالکیت ریشه اصلی پیش فرض Nginx را به کاربر و گروهی به نام sammy تغییر می دهد ، بنابراین حتماً نام کاربری و گروه هایلایت شده را در این دستور جایگزین کنید تا نام کاربری و گروه سیستم شما منعکس شود. ⦁ $ sudo chown -R sammy.sammy /usr/share/nginx/html/ ⦁ اکنون یک صفحه PHP تست ایجاد میکنیم تا مطمئن شویم که سرور وب همانطور که انتظار می رود کار میکند. یک فایل PHP جدید با نام info.php در دیرکتوری / usr / share / nginx / html ایجاد کنید: ⦁ $ nano /usr/share/nginx/html/info.php ⦁ کد PHP زیر اطلاعات مربوط به محیط PHP فعلی را که روی سرور در حال اجرا است نمایش می دهد: /usr/share/nginx/html/info.php <?php
phpinfo();
پس از اتمام ، فایل را ذخیره کنید و ببندید. اکنون می توانیم آزمایش کنیم که آیا سرور وب ما می تواند محتوای تولید شده توسط یک اسکریپت PHP را به درستی نمایش دهد. به مرورگر خود بروید و به نام میزبان یا آدرس IP سرور خود که به دنبال آن /info.phpنوشته شده است، دسترسی پیدا کنید: http://server_host_or_IP/info.php
صفحه ای شبیه به این را مشاهده خواهید کرد:
پس از بررسی اطلاعات مربوط به سرور PHP خود از طریق آن صفحه ، بهتر است فایل ایجاد شده را حذف کنید زیرا حاوی اطلاعات حساسی در مورد محیط PHP و سرور CentOS شما است. برای حذف آن فایل می توانید از rm استفاده کنید: ⦁ rm /usr/share/nginx/html/info.php ⦁ در صورت نیاز بعداً می توانید این فایل را دوباره بازیابی کنید. نتیجه در این راهنما ، با استفاده از Nginx به عنوان سرور وب و آخرین نسخه PHP ، یک پایه انعطاف پذیر برای ارائه وب سایت های PHP و برنامه ها به بازدید کنندگان خود ایجاد کردید. شما Nginx را به گونه ای تنظیم کرده اید تا بتوانید درخواست های PHP را از طریق php-fpm انجام دهید ، همچنین یک پایگاه داده MariaDB را برای ذخیره اطلاعات وب سایت خود تنظیم نموده اید.
برچسب‌ها:
ENginx
,
LEMP
,
MariaDB
,
Nginx
,
PHP 7.4
0 notes
vpsgold-blog · 4 years
Text
نصب و پیکربندی Elasticsearch در اوبونتو 18.04
Elasticsearch پلتفرمی برای جستجوی توزیعی و تجزیه و تحلیل داده ها در زمان واقعی است. در واقع به دلیل قابلیت استفاده ، ویژگی های قدرتمند و مقیاس پذیری آن یک انتخاب محبوب است. این مقاله نصب Elasticsearch ، پیکربندی آن برای موارد استفاده ، ایمن سازی نصب و شروع کار با سرور مجازی Elasticsearch را به شما آموزش میدهد. پیش نیازها قبل از دنبال کردن این آموزش ، به موارد زیر نیاز دارید: سرور مجازی Ubuntu 18.04 با 4 گیگابایت حافظه رم و دو CPU که با یک کاربر sudo غیر ریشه تنظیم شده باشد. می توانید با دنبال کردن راه اندازی سرور مجازی اولیه با اوبونتو 18.04 به این هدف برسید OpenJDK 11 نصب شده باشد برای این آموزش ، با حداقل مقدار CPU و RAM مورد نیاز برای اجرای Elasticsearch کار خواهیم کرد. توجه داشته باشید که میزان CPU ، RAM و حافظه ذخیره شده مورد نیاز سرور مجازی Elasticsearch شما به میزان تعداد ورود هایی که انتظار دارید بستگی دارد. مرحله 1 – نصب و پیکربندی Elasticsearch مولفه های Elasticsearch در مخازن بسته پیش فرض اوبونتو در دسترس نیستند. اما می توانند پس از افزودن لیست منبع بسته Elastic ، با APT نصب شوند. به منظور محافظت از سیستم شما در برابر جعل بسته ، همه بسته ها با کلید امضای Elasticsearch امضا شده اند. بسته هایی که با استفاده از کلید تأیید شده اند توسط مدیر بسته شما قابل اعتماد خواهند بود. در این مرحله ، کلید GPG عمومی Elasticsearch را وارد کرده و به منظور نصب Elasticsearch ، لیست منبع بسته Elastic را اضافه می کنید. برای شروع ، از 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 –
در مرحله بعد ، لیست منبع Elastic را به فهرست منابع Source.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 منبع جدید Elastic را بخواند: $ sudo apt update
سپس با این دستور Elasticsearch را نصب کنید: $ sudo apt install elasticsearch
اکنون Elasticsearch نصب شده است و آماده پیکربندی است. مرحله 2 – پیکربندی Elasticsearch برای پیکربندی Elasticsearch ، فایل های پیکربندی آن را ویرایش خواهیم کرد. Elasticsearch سه فایل پیکربندی دارد: elasticsearch.yml برای پیکربندی Elasticsearch ، فایل اصلی پیکربندی jvm.options برای پیکربندی تنظیمات ماشین مجازی جاوا (JVM) Elasticsearch log4j2.properties برای پیکربندی ورود به سیستم Elasticsearch برای این آموزش ، ما به فایل elasticsearch.yml علاقه مندیم ، که بیشتر گزینه های پیکربندی در آن ذخیره شده است. این فایل در دیرکتوری / etc / elasticsearch قرار دارد. از ویرایشگر متن دلخواه خود برای ویرایش فایل پیکربندی Elasticsearch استفاده کنید. در اینجا ، ما از nano استفاده خواهیم کرد: $ sudo nano /etc/elasticsearch/elasticsearch.yml
توجه: فایل پیکربندی Elasticsearch با فرمت YAML است ، به این معنی که ما باید قالب indentation را حفظ کنیم. مطمئن شوید که هیچ فضای اضافی با ویرایش این فایل اضافه نمی کنید. فایل elasticsearch.yml گزینه های پیکربندی را برای خوشه ، گره ، مسیرها ، حافظه ، شبکه ، جستجو و گیت شما فراهم می کند. بسیاری از این گزینه ها در فایل از قبل پیکربندی شده اند اما می توانید آنها را با توجه به نیاز خود تغییر دهید. برای اهداف نمایشی پیکربندی تک سرور مجازی ، فقط تنظیمات میزبان شبکه را انجام خواهیم داد. Elasticsearch ترافیک را از همه جای پورت 9200 گوش می دهد. بهتر است دسترسی بیرونی به نمونه Elasticsearch را محدود کنید تا از خواندن داده های خارجی خود جلوگیری کنید یا خوشه Elasticsearch را از طریق API REST خود خاموش کنید. برای محدود کردن دسترسی و در نتیجه افزایش امنیت ، خطی را که شبکه را مشخص می کند ، پیدا کنید ، آن را حذف کنید و مقدار آن را با 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.yml را ذخیره کرده و ببندید. اگر از nano استفاده می کنید ، می توانید با فشار دادن CTRL + X ، به دنبال آن Y و سپس ENTER این کار را انجام ده��د. این حداقل تنظیماتی است که می توانید با استفاده از Elasticsearch از آنها شروع کنید. اکنون می توانید برای اولین بار Elasticsearch را راه اندازی کنید. سرویس Elasticsearch را با systemctl شروع کنید. برای شروع کار چند لحظه به Elasticsearch وقت بدهید تا راه اندازی شود. در غیر این صورت ، با خطای عدم امکان اتصال مواجه شوید. $ sudo systemctl start elasticsearch
سپس ، دستور زیر را اجرا کنید تا Elasticsearch بتواند هر بار که سرور مجازی بوت می شود راه‌اندازی گردد: $ sudo systemctl enable elasticsearch
با فعال شدن Elasticsearch هنگام راه اندازی ، بیایید به سراغ بحث بعدی در مورد امنیت برویم. مرحله 3 – امنیت Elasticsearch به طور پیش فرض ، Elasticsearch توسط هر شخصی که می تواند به HTTP API دسترسی داشته باشد قابل کنترل است. این همیشه یک خطر امنیتی نیست زیرا Elasticsearch فقط در رابط حلقه برگشت (یعنی 127.0.0.1) کار میکند ، که فقط به صورت محلی قابل دسترسی است. بنابراین ، دسترسی عمومی امکان پذیر نیست و تا زمانی که به همه کاربران سرور مجازی اعتماد داشته باشید ، امنیت با مشکلی مواجه نخواهد بود. اگر نیاز به دسترسی از راه دور باHTTP API دارید ، می توانید میزان قرار گرفتن در معرض شبکه را با فایروال پیش فرض اوبونتو ، UFW ، محدود کنید. اگر مراحل پیش فرض راه اندازی سرور مجازی اولیه با آموزش اوبونتو 18.04 را دنبال کرده باشید ، باید این فایروال فعال باشد. اکنون فایروال را پیکربندی می کنیم تا به پورت پیش فرض Elasticsearch HTTP API (TCP 9200) برای میزبان از راه دور قابل اعتماد دسترسی پیدا کنیم ، که به طور کلی سرور مجازی مورد استفاده شما در یک تنظیمات تک سرور مجازی ،مانند 198.51.100.0 است. برای دسترسی ، دستور زیر را تایپ کنید: $ sudo ufw allow from 198.51.100.0 to any port 9200
پس از اتمام کار ، می توانید UFW را با این دستور فعال کنید: $ sudo ufw enable
در آخر ، وضعیت UFW را با دستور زیر بررسی کنید: $ sudo ufw status
اگر قوانین را بطور صحیح مشخص کرده باشید ، خروجی باید به این شکل باشد: Output Status: active
To Action From — —— —- 9200 ALLOW 198.51.100.0 22 ALLOW Anywhere 22 (v6) ALLOW Anywhere (v6)
UFW اکنون باید برای محافظت از پورت Elasticsearch 9200 فعال و تنظیم شود. اگر می خواهید روی حفاظت بیشتر سرمایه گذاری کنید ، Elasticsearch افزونه تجاری Shield را برای خرید ارائه می دهد. مرحله 4 – آزمایش Elasticsearch اکنون ، Elasticsearch باید در پورت 9200 در حال اجرا باشد. شما می توانید آن را با cURL و درخواست GET تست کنید. $ curl -X GET ‘http://localhost:9200’
باید پاسخ زیر را مشاهده کنید: Output { “node.name” : “My First Node”, “cluster.name” : “mycluster1”, “version” : { “number” : “2.3.1”, “build_hash” : “bd980929010aef404e7cb0843e61d0665269fc39”, “build_timestamp” : “2020-04-04T12:25:05Z”, “build_snapshot” : false, “lucene_version” : “5.5.0” }, “tagline” : “You Know, for Search” }
اگر پاسخی مشابه پاسخ فوق می بینید ، Elasticsearch به درستی کار می کند. در غیر این صورت ، اطمینان حاصل کنید که دستورالعمل های نصب را به درستی رعایت کرده اید و زمانی را برای شروع کامل Elasticsearch ارائه کرده اید. برای انجام یک بررسی دقیق تر از Elasticsearch ، دستور زیر را اجرا کنید: $ curl -XGET ‘http://localhost:9200/_nodes?pretty’
در خروجی از دستور فوق می توانید تمام تنظیمات فعلی گره ، خوشه ، مسیرهای برنامه ، ماژول ها و موارد دیگر را تأیید کنید. مرحله 5 – استفاده از Elasticsearch برای شروع استفاده از Elasticsearch ، ابتدا اجازه دهید داده هایی را اضافه کنیم. Elasticsearch از API RESTful استفاده می کند ، که به دستورات معمول CRUD پاسخ می دهد: ایجاد (create ) ، خواندن (read)، به روزرسانی (update) و حذف (delete). برای کار با آن ، دوباره از دستور cURL استفاده خواهیم کرد. شما می توانید اولین ورودی خود را مانند این اضافه کنید: $ curl -XPOST -H “Content-Type: application/json” ‘http://localhost:9200/tutorial/helloworld/1’ -d ‘{ “message”: “Hello World!” }’
شما باید پاسخ زیر را دریافت کنید: Output {“_index”:”tutorial”,”_type”:”helloworld”,”_id”:”1″,”_version”:2,”result”:”updated”,”_shards”:{“total”:2,”successful”:1,”failed”:0},”_seq_no”:1,”_primary_term”:1}
با cURL ، یک درخواست HTTP POST را به سرور مجازی Elasticsearch ارسال کردیم. URI درخواست /tutorial/helloworld/1 با چندین پارامتر بود: tutorial  ایندکس داده ها در Elasticsearch است. helloworld  نوع است. 1  شناسه ورود ما تحت فهرست و نوع فوق است. شما می توانید این اولین ورودی را با درخواست HTTP GET بازیابی کنید. $ curl -X GET -H “Content-Type: application/json” ‘http://localhost:9200/tutorial/helloworld/1’ -d ‘{ “message”: “Hello World!” }’
این خروجی باید حاصل شود: Output {“_index”:”tutorial”,”_type”:”helloworld”,”_id”:”1″,”_version”:1,”found”:true,”_source”:{ “message”: “Hello, World!” }}
برای تغییر یک ورودی موجود ، می توانید از درخواست HTTP PUT استفاده کنید. $ curl -X PUT -H “Content-Type: application/json” ‘localhost:9200/tutorial/helloworld/1?pretty’ -d ‘
$ {
$ “message”: “Hello, People!”
$ }’
Elasticsearch باید اصلاح موفقیت آمیز مانند این را تصدیق کند: Output { “_index” : “tutorial”, “_type” : “helloworld”, “_id” : “1”, “_version” : 2, “_shards” : { “total” : 2, “successful” : 1, “failed” : 0 }, “created” : false }
در مثال بالا پیام ورودی اول را در “hello people!” تغییر داده ایم. با این کار ، تعداد نسخه به طور خودکار به 2 افزایش یافته است. ممکن است در درخواست فوق آرگومان اضافی pretty را به خوبی مشاهده کرده باشید. این کار فرمت قابل خواندن توسط انسان را ممکن می سازد تا بتوانید هر فیلد داده را روی یک ردیف جدید بنویسید. همچنین می توانید هنگام بازیابی داده ها نتایج خود را “پیش بینی کنید” تا با وارد کردن دستور زیر ، خروجی خواناتری بدست آورید: $ curl -X GET -H “Content-Type: application/json” ‘http://localhost:9200/tutorial/helloworld/1?pretty’
در حال حاضر پاسخ برای تجزیه و تحلیل یک انسان فرمت بندی خواهد شد: Output { “_index” : “tutorial”, “_type” : “helloworld”, “_id” : “1”, “_version” : 2, “found” : true, “_source” : { “message” : “Hello, People!” } }
اکنون داده های موجود در Elasticsearch اضافه و پرس و جو شده است. برای کسب اطلاعات در مورد سایر عملیات ، لطفاً مستندات API را بررسی کنید. نتیجه اکنون Elasticsearch را نصب ، پیکربندی و شروع به استفاده کرده اید. از زمان انتشار اولیه Elasticsearch ، الاستیک سه ابزار اضافی – Logstash ، Kabana و Beats را توسعه داده است که در رابطه با Elasticsearch بعنوان بخشی از Elastic Stack مورد استفاده قرار می گیرد. این ابزارها با همکاری هم ، این امکان را به شما می دهند تا ورودهای ایجاد شده از هر منبع و با هر فرمی را در روشی که به centralized logging شناخته می شود جستجو ، تجزیه و تحلیل کنید. برای شروع کار با Elastic Stack در اوبونتو 18.04 ، لطفاً به راهنمای ما درمورد نحوه نصب Elasticsearch ،Logstash و Kibana (Elastic Stack) در اوبونتو 18.04 مراجعه کنید.
برچسب‌ها:
centralized logging
,
CRUD
,
Elasticsearch
,
hello people
,
PUT
0 notes
vpsgold-blog · 4 years
Text
راه اندازی سرور اولیه با اوبونتو 20.04
هنگامی که برای اولین بار سرور مجازی جدید اوبونتو 20.04 را ایجاد می کنید ، باید برخی از مراحل مهم تنظیمات را به عنوان بخشی از ستاپ اصلی انجام دهید. این مراحل باعث افزایش امنیت و قابلیت استفاده سرور مجازی شما می شود و پایه و اساس محکمی را برای اقدامات بعدی به شما می دهد. مرحله 1 – ورود به سیستم به عنوان ریشه برای ورود به سرور مجازی خود ، باید آدرس IP عمومی سرور مجازی خود را بدانید. شما همچنین به رمز عبور یا در صورت نصب کلید SSH برای تأیید اعتبار – به کلید خصوصی برای حساب کاربر root نیاز دارید. اگر قبلاً به سرور مجازی خود وارد نشده اید ، بهتر است راهنمای ما در مورد نحوه اتصال به دراپلت ها با SSH را دنبال کنید ، که این روند را با جزئیات پوشش می دهد. اگر از قبل به سرور مجازی خود وصل نشده اید ، اکنون به عنوان کاربر اصلی با استفاده از دستور زیر وارد سیستم شوید (بخش هایلایت شده فرمان را با آدرس IP عمومی سرور مجازی خود جایگزین کنید): $ ssh root@your_server_ip
در صورت وجود هشدار درباره تایید هویت هاست، آن را بپذیری��. اگر از تأیید اعتبار استفاده می کنید ، رمز ورود خود را وارد کنید. اگر از یک کلید SSH استفاده می کنید که عبارت عبور آن محافظت می شود ، ممکن است از شما خواسته شود اولین بار که از هر کلید استفاده می کنید ، کلمه عبور را وارد کنید. اگر اولین بار است که با گذرواژه وارد سرور مجازی می شوید ، ممکن است از شما خواسته شود رمزعبور root را تغییر دهید. درباره ریشه کاربر ریشه کاربر ادمین در محیط لینوکس است که امتیازات بسیار گسترده ای دارد. به دلیل افزایش امتیازات حساب ریشه ، استفاده از آن به صورت منظم اصلا پیشنهاد نمیشود. این امر به این دلیل است که بخشی از قدرت ذاتی حساب ریشه ، توانایی ایجاد تغییرات بسیار مخرب ، حتی به طور تصادفی است. مرحله بعدی تنظیم یک حساب کاربری جدید با امتیازات کمتر برای استفاده روزانه است. بعداً ، به شما یاد می دهیم که چگونه تنها در مواقعی که به آنها احتیاج دارید ، امتیازات بیشتر را کسب کنید. مرحله 2 – ایجاد یک کاربر جدید پس از ورود به عنوان root ، آماده اضافه کردن حساب کاربری جدید هستیم. در آینده ، به جای root وارد این حساب جدید می شویم. این مثال یک کاربر جدید به نام sammy ایجاد می کند ، اما شما باید آن را با نام کاربری که دوست دارید جایگزین کنید: # adduser sammy
با وارد کردن رمز ورود به حساب ، چند سؤال از شما پرسیده خواهد شد. یک رمزعبور قوی وارد کنید و در صورت تمایل ، هر یک از اطلاعات اضافی را پر کنید. این کار ضروری نیست و در هر فیلدی که مایل به عبور هستید می توانید ENTER را بزنید. مرحله 3 – اعطای امتیازات ادمین اکنون ، یک حساب کاربری جدید با امتیازات معمول حساب داریم. با این حال ، ممکن است گاهی اوقات به انجام کارهای اجرایی نیاز داشته باشیم. برای جلوگیری از خارج شدن از حساب کاربری عادی و ورود به سیستم به عنوان حساب ریشه ، می توانیم برای حساب عادی خود چیزی به اسم superuser یا امتیازات اصلی معرفی کنیم. این امر به کاربر عادی ما امکان می دهد با قرار دادن کلمه sudo قبل از هر دستور ، دستوراتی را با امتیازات ادمین اجرا کند. برای افزودن این امتیازات به کاربر جدید خود ، باید کاربر را به گروه sudo اضافه کنیم. به طور پیش فرض ، در اوبونتو 20.04 ، کاربرانی که عضو گروه sudo هستند مجاز به استفاده از دستور sudo هستند. به عنوان root ، این دستور را اجرا کنید تا کاربر جدید خود را به گروه sudo اضافه کنید (نام کاربری هایلایت شده را با کاربر جدید خود جایگزین کنید): # usermod -aG sudo sammy
اکنون ، هنگامی که به عنوان کاربر معمولی خود وارد سیستم میشوید ، می توانید قبل از دستورات sudo را تایپ کنید تا اقدامات خود را با امتیازات فوق کاربری انجام دهید. مرحله 4 – تنظیم فایروال پایه سرور مجازی های Ubuntu 20.04 می توانند از فایروال UFW استفاده کنند تا اطمینان حاصل شود که فقط اتصال به برخی سرویس ها مجاز است. ما می توانیم با استفاده از این برنامه یک فایروال پایه را به راحتی تنظیم کنیم. توجه: اگر سرور مجازی های شما روی vpsgol در حال اجرا هستند ، می توانید به طور اختیاری به جای فایروال UFW از فایروال vpsgol Cloud
برنامه ها می توانند پس از نصب نمایه های خود را در UFW ثبت کنند. این پروفایل ها به UFW اجازه می دهند تا این برنامه ها را با نامشان مدیریت کند. OpenSSH ، سرویسی که به ما امکان اتصال کنونی به سرور مجازی خود را می دهد ، دارای نمایه ای است که در UFW ثبت شده است. می توانید این را با تایپ کردن دستور زیر مشاهده کنید: # ufw app list
Output Available applications: OpenSSH
ما باید اطمینان حاصل کنیم که فایروال امکان اتصالات SSH را می دهد تا بتوانیم دفعه دیگر وارد سیستم شویم. می توانیم با تایپ کردن این دستور اتصالات را برقرار کنیم: # ufw allow OpenSSH
پس از آن ، می توانیم با تایپ کردن دستور زیر فایروال را فعال کنیم: # ufw enable
y را تایپ کرده و ENTER را برای ادامه فشار دهید. می توانید با تایپ دستور زیر ببینید که اتصالات SSH هنوز مجاز هستند: # ufw status
Output Status: active
To Action From — —— —- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
از آنجا که فایروال در حال حاضر همه اتصالات به جز SSH را مسدود می کند ، اگر سرویس های اضافی را نصب و پیکربندی کنید ، باید تنظیمات فایروال را تنظیم کنید تا ترافیک در آن وارد شود. شما می توانید برخی از عملیات معمول UFW را در راهنمای UFW Essentials ما بیاموزید. مرحله 5 – فعال کردن دسترسی خارجی برای کاربر معمولی شما اکنون که ما یک کاربر معمولی برای استفاده روزانه داریم ، باید اطمینان حاصل کنیم که می توانیم مستقیماً SSH را وارد حساب کاربری خود کنیم. توجه: تا زمانی که تأیید نکنید که می توانید با کاربر جدید خود وارد سیستم شوید و از sudo استفاده کنید ، توصیه می کنیم به عنوان root وارد شوید. به این ترتیب ، اگر مشکل دارید می توانید به عنوان ریشه عیب یابی کرده و هرگونه تغییر لازم را انجام دهید. اگر از دراپلت vpsgol استفاده می کنید و با اتصال SSH ریشه خود مشکل دارید ، می توانید با استفاده از کنسول vpsgol وارد دراپلت شوید. روند پیکربندی دسترسی SSH برای کاربر جدید شما به این بستگی دارد که آیا حساب ریشه سرور مجازی شما از رمز عبور یا کلیدهای SSH برای تأیید اعتبار استفاده می کند. اگر حساب root از احراز هویت رمز عبور استفاده می کند اگر با استفاده از گذرواژه وارد حساب ریشه خود شده اید ، تأیید رمز عبور برای SSH فعال می شود. با باز کردن بخش ترمینال جدید و استفاده از SSH با نام کاربری جدید خود می توانید به حساب کاربری جدید خود SSH کنید: $ssh sammy@your_server_ip
بعد از وارد کردن رمزعبور کاربر معمولی ، وارد سیستم می شوید. به یاد داشته باشید اگر نیاز به اجرای یک فرمان با امتیازات ادمین دارید ، قبل از این کار sudo را تایپ کنید: $ sudo command_to_run
برای اولین بار در هر بخش (و به صورت دوره ای بعد از آن) رمزعبور کاربر معمولی از شما خواسته می شود. برای تقویت امنیت سرور مجازی خود ، ما به شدت توصیه می کنیم به جای استفاده از احراز هویت رمز عبور ، کلیدهای SSH را تنظیم کنید. برای یادگیری نحوه پیکربندی احراز هویت مبتنی بر کلید ، راهنمای ما را در مورد تنظیم کلیدهای SSH در اوبونتو 20.04 دنبال کنید. اگر حساب ریشه از احراز هویت کلید SSH استفاده می کند اگر با استفاده از کلیدهای SSH به حساب ریشه خود وارد شده اید ، تأیید رمز عبور برای SSH غیرفعال است. برای ورود موفقیت آمیز به سیستم ، باید یک نسخه از کلید عمومی محلی خود را در فایل کاربر new / .ssh / autor_keys کاربر جدید اضافه کنید. از آنجا که کلید عمومی شما قبلاً در فایل ~/.ssh/authorized_keys حساب اصلی ریشه در سرور مجازی است ، می توانیم در بخش موجود ، آن فایل و ساختار دیرکتوری را در حساب کاربری جدید خود کپی کنیم. ساده ترین روش برای کپی کردن فایل ها با مالکیت صحیح و مجوزها ، با دستور rsync است. این کار دایرکتوری .ssh کاربر ریشه را کپی می کند ، مجوزها را نگه می دارد و صاحبان فایل را اصلاح می کند که همه در یک دستور واحد انجام میشوند. اطمینان حاصل کنید که قسمت هایلایت شده فرمان زیر را تغییر دهید تا با نام کاربر معمولی شما مطابقت داشته باشد: توجه: فرمان rsync با منابع و مقاصدی که با یک اسلش جدا شده اند متفاوت از مواردی که اسلش ندارند ، برخورد می کند. هنگام استفاده از rsync در زیر ، مطمئن شوید که دیرکتوری منبع (~ / .ssh) شامل اسلش نیست (بررسی کنید تا مطمئن شوید که از ~ / .ssh /) استفاده نمی کنید. اگر به طور اتفاقی یک اسلش را به این فرمان اضافه کنید ، rsync محتویات دیرکتوری ~ / .ssh حساب اصلی را به جای کپی کردن کل ساختار دیرکتوری/ .ssh در فهرست خانه اصلی کاربر sudo کپی می کند. فایل ها در مکان اشتباه قرار دارند و SSH قادر به یافتن و استفاده از آنها نخواهد بود. # rsync –archive –chown=sammy:sammy ~/.ssh /home/sammy
اکنون یک بخش ترمینال جدید را روی دستگاه محلی خود باز کنید و از SSH با نام کاربری جدید خود استفاده کنید: $ ssh sammy@your_server_ip
بدون استفاده از رمز ورود باید به حساب کاربری جدید وارد شوید. به یاد داشته باشید ، اگر نیاز به اجرای یک فرمان با امتیازات ادمین دارید ، sudo را قبل از آن تایپ کنید: $ sudo command_to_run
برای اولین بار در هر بخش (و به صورت دوره ای بعد از آن) از شما رمزعبور کاربر معمولی خواسته می شود. از اینجا به کجا برویم؟ در این مرحله ، شما یک پایه محکم برای سرور مجازی خود دارید. اکنون می توانید هرکدام از نرم افزارهای مورد نیاز خود را بر روی سرور مجازی خود نصب کنید.
برچسب‌ها:
UFW Essentials
0 notes
vpsgold-blog · 4 years
Text
تنظیم کلیدهای SSH در Ubuntu 20.04
SSH یا همان پوسته ایمن، پروتکل رمزگذاری شده است که برای اداره و برقراری ارتباط با سرور مجازی ها استفاده می شود. هنگام کار با سرور مجازی Ubuntu ، احتمال دارد بیشتر وقت خود را در یک بخش ترمینال متصل به سرور مجازی خود از طریق SSH بگذرانید. در این راهنما ، ما روی تنظیم کلیدهای SSH برای نصب Ubuntu 20.04 تمرکز خواهیم کرد. کلیدهای SSH روشی آسان و مطمئن برای ورود به سرور مجازی شما فراهم کرده و برای همه کاربران توصیه می شود. مرحله 1 – ایجاد جفت کلید اولین قدم ایجاد یک جفت کلید در دستگاه کلاینت (معمولاً رایانه شما) میباشد: $ ssh-keygen
به طور پیش فرض نسخه های اخیر ssh-keygen یک جفت کلید RSA ، 3072 بیتی ایجاد می کنند ، که برای بیشتر موارد استفاده به اندازه کافی ایمن است (میتوانید به صورت اختیاری از پرچم -b 4096 عبور کنید تا یک کلید بزرگتر 4096 بیتی ایجاد نمایید). پس از وارد کردن دستور ، باید خروجی زیر را مشاهده کنید: Output Generating public/private rsa key pair. Enter file in which to save the key (/your_home/.ssh/id_rsa):
Enter را فشار دهید تا جفت کلید را در زیردیرکتوری .ssh / در دیرکتوری هوم خود ذخیره کنید ، یا یک مسیر جایگزین را مشخص کنید. اگر قبلاً یک جفت کلید SSH ایجاد کرده اید ، ممکن است اعلان زیر را مشاهده کنید: Output /home/your_home/.ssh/id_rsa already exists. Overwrite (y/n)?
اگر تصمیم به بازنویسی کلید در دیسک دارید ، دیگر نمی توانید با استفاده از کلید قبلی ، تأیید اعتبار کنید. در انتخاب بله بسیار مراقب باشید ، زیرا یک روند مخرب است که قابل برگشت نخواهد بود. سپس باید اعلان زیر را مشاهده کنید: Output Enter passphrase (empty for no passphrase):
در اینجا میتوانید به صورت اختیاری یک عبارت عبور مطمئن را وارد کنید ، که بسیار توصیه می شود. عبارات عبور برای جلوگیری از ورود کاربران غیرمجاز ، یک لایه امنیتی دیگر اضافه می کند. برای کسب اطلاعات بیشتر در مورد امنیت ، به آموزش ما در مورد چگونگی پیکربندی احراز هویت مبتنی بر کلید SSH در سرور مجازی لینوکس مراجعه کنید. سپس باید خروجی مشابه زیر را مشاهده کنید: Output Your identification has been saved in /your_home/.ssh/id_rsa Your public key has been saved in /your_home/.ssh/id_rsa.pub The key fingerprint is: SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host The key’s randomart image is: +—[RSA 3072]—-+ | .| | + | | + | | . o . | |o S . o | | + o. .oo. .. .o| |o = oooooEo+ …o| |.. o *o+=.*+o….| | =+=ooB=o…. | +—-[SHA256]—–+
اکنون یک کلید عمومی و خصوصی دارید که می توانید از آن برای تأیید اعتبار استفاده کنید. مرحله بعدی قرار دادن کلید عمومی روی سرور مجازی خود میباشد تا بتوانید برای ورود به سیستم از تأیید اعتبار مبتنی بر SSH استفاده کنید. مرحله 2 – کپی کردن کلید عمومی روی سرور مجازی Ubuntu سریع ترین راه برای کپی کردن کلید عمومی خود در هاست Ubuntu ، استفاده از ابزاری به نام ssh-copy-id است. به دلیل سادگی ، این روش در صورت وجود بسیار توصیه می شود. اگر شناسه ssh-copy-id را در دستگاه کلاینت خود ندارید ، میتوانید از یکی از دو روش جایگزین ارائه شده در این بخش استفاده کنید (کپی کردن از طریق SSH مبتنی بر رمز عبور ، یا کپی کردن کلید به صورت دستی). کپی کردن کلید عمومی با استفاده از ssh-copy-id ابزار ssh-copy-id بصورت پیش فرض در بسیاری از سیستم عامل ها گنجانده شده است ، بنابراین احتمالا آن را در سیستم محلی خود در دسترس داشته باشید. برای کار با این روش ، باید از قبل دسترسی SSH به سرور مجازی مبتنی بر رمزعبور را داشته باشید. برای استفاده از این ابزار ، هاست از راه دور را که می خواهید به آن متصل شوید و حساب کاربری که دسترسی SSH مبتنی بر رمز عبور به آن دارید را تعیین می کنید. این حسابی است که کلید عمومی SSH شما کپی می شود. ترکیب به این صورت است: $ ssh-copy-id username@remote_host
ممکن است پیام زیر را مشاهده کنید: Output The authenticity of host ‘203.0.113.1 (203.0.113.1)’ can’t be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes
این بدان معنی است که رایانه محلی شما هاست از راه دور را تشخیص نمی دهد. اگر اولین بار است که به هاست جدید وصل می شوید. “yes” را تایپ کنید و ENTER را برای ادامه فشار دهید. در مرحله بعد ، ابزار، حساب محلی شما را برای کلید id_rsa.pub که قبلاً ایجاد کردیم ، اسکن می کند. وقتی کلید را پیدا کرد ، رمز ورود به حساب کاربری از راه دور را از شما میخواهد: Output /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys [email protected]’s password:
گذرواژه را وارد کنید (تایپ شما برای اهداف امنیتی نمایش داده نمی شود) و ENTER را فشار دهید. این ابزار با استفاده از گذرواژه ای که ارائه داده اید ، به هاست از راه دور متصل می شود. سپس محتویات کلید ~ / .ssh / id_rsa.pub شما را در فایلی در دیرکتوری ~/.ssh هوم حساب کاربری از راه دور به نام authorized_keys کپی می کند. باید خروجی زیر را مشاهده کنید: Output Number of key(s) added: 1
Now try logging into the machine, with: “ssh ‘[email protected]′” and check to make sure that only the key(s) you wanted were added.
در این مرحله ، کلید id_rsa.pub شما در حساب راه دور بارگذاری شده است. می توانید به مرحله 3 بروید. کپی کردن کلید عمومی با استفاده از SSH اگر ssh-copy-id را در دسترس ندارید ، اما دسترسی SSH مبتنی بر رمز عبور به یک حساب کاربری روی سرور مجازی خود دارید ، می توانید کلیدهای خود را با استفاده از یک روش معمولی SSH بارگذاری کنید. ما می توانیم این کار را با استفاده از دستور cat انجام دهیم تا محتوای کلید عمومی SSH را در رایانه محلی خود بخوانیم و از طریق اتصال SSH به سرور مجازی از راه دور اتصال برقرار کنیم. از طرف دیگر ، می توانیم اطمینان حاصل کنیم که دیرکتوری ~ / .ssh وجود دارد و دارای مجوزهای صحیح تحت اکانتی است که ما از آن استفاده می کنیم. سپس می توانیم محتویاتی را که به آن پیوند زده ایم را درون یک فایل به نام authorized_keys در این دیرکتوری وارد کنیم. ما از نماد >> تغییر مسیر برای افزودن محتوا به جای نوشتن آن استفاده خواهیم کرد. این به ما امکان می دهد بدون از بین بردن کلیدهای قبلی اضافه شده ، کلیدهایی را اضافه کنیم. فرمان کامل مانند این است: ممکن است پیام زیر را مشاهده کنید: $ cat ~/.ssh/id_rsa.pub | ssh username@remote_host “mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys”
این بدان معنی است که رایانه محلی شما هاست از راه دور را تشخیص نمی دهد. اگر اولین بار است که به هاست جدید وصل می شوید. yes را تایپ کنید و ENTER را برای ادامه فشار دهید. پس از آن ، از شما خواسته می شود رمزعبور حساب کاربری از راه دور را وارد کنید: Output [email protected]’s password:
پس از وارد کردن گذرواژه ، محتوای کلید id_rsa.pub شما در انتهای فایل authorized_keys حساب کاربری از راه دور کپی می شود. اگر موفقیت آمیز بود ، به مرحله 3 بروید. کپی کردن کلید عمومی به صورت دستی اگر دسترسی SSH مبتنی بر رمز عبور به سرور مجازی خود را ندارید ، باید مراحل فوق را به صورت دستی انجام دهید. ما به طور دستی محتوای فایل id_rsa.pub خود را به فایل ~/.ssh/authorized_keys روی دستگاه از راه دور شما اضافه خواهیم کرد. برای نمایش محتوای کلید id_rsa.pub ، این دستور را در رایانه محلی خود تایپ کنید: $ cat ~/.ssh/id_rsa.pub
محتوای کلید را مشاهده خواهید کرد ، که باید چیزی شبیه به این باشد: Output ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
با استفاده از روش دیگری که در دسترس دارید ، به هاست راه دور خود دسترسی پیدا کنید. پس از دسترسی به حساب کاربری خود در سرور مجازی راه دور ، باید اطمینان حاصل کنید که دیرکتوری ~ / .ssh وجود دارد. این دستور در صورت لزوم دایرکتوری ایجاد می کند یا در صورت وجود هیچ کاری انجام نمی دهد: $ mkdir -p ~/.ssh
اکنون ، می توانید فایل authorized_keys را ایجاد کنید و یا تغییر دهید. می توانید مطالب مربوط به فایل id_rsa.pub خود را به انتهای فایل authorized_keys اضافه کنید و در صورت لزوم با استفاده از این دستور آن را ایجاد کنید: $ echo public_key_string >> ~/.ssh/authorized_keys
در دستور فوق ، public_key_string را با خروجی دستور cat ~/.ssh/id_rsa.pub که بر روی سیستم محلی خود اجرا کرده اید ، جایگزین کنید. باید با ssh-rsa AAAA شروع شود … سرانجام ، اطمینان خواهیم یافت که دیرکتوری ~ / .shsh و فایل authorized_keys مجموعه مجوزهای مناسب را دارند: $ chmod -R go= ~/.ssh
این دستور به طور بازگشتی همه مجوزهای “group” و “other” را برای دیرکتوری ~ / .ssh / حذف می کند. اگر برای تنظیم کلیدهای یک حساب کاربری از کاربر ریشه استفاده می کنید ، مهم است که دیرکتوری ~ / .ssh متعلق به کاربر باشد و نه ریشه: $ chown -R sammy:sammy ~/.ssh
در این آموزش کاربر Sammy نامگذاری شده است اما باید نام کاربری مناسب را در دستور فوق جایگزین کنید. اکنون می توانیم با سرور مجازی Ubuntu ، احراز هویت بدون رمز عبور را امتحان کنیم. مرحله 3 – تأیید اعتبار برای سرور مجازی Ubuntu با استفاده از کلیدهای SSH اگر یکی از روشهای فوق را با موفقیت انجام داده اید ، باید بتوانید بدون ارائه رمز ورود به حساب راه دور ، وارد هاست راه دور شوید. فرایند پایه یکسان است: $ ssh username@remote_host
اگر اولین بار است که به این هاست متصل می شوید (و در صورتی که از آخرین روش در بالا استفاده کردید) ، ممکن است چیزی شبیه به این را مشاهده کنید: Output The authenticity of host ‘203.0.113.1 (203.0.113.1)’ can’t be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes
این بدان معنی است که رایانه محلی شما هاست از راه دور را تشخیص نمی دهد. “yes” را تایپ کرده و ENTER را برای ادامه فشار دهید. اگر کلمه عبور برای کلید خصوصی خود ارائه نکرده اید ، بلافاصله وارد سیستم می شوید. اگر هنگام ایجاد کلید ، یک عبارت عبور را برای کلید خصوصی تهیه کرده باشید ، از شما خواسته می شود اکنون آن را وارد کنید (توجه داشته باشید که کلیدهایی گه فشار میدهید برای امنیت در بخش ترمینال نمایش داده نمیشوند). پس از تأیید اعتبار ، باید یک بخش پوسته جدید با حساب پیکربندی شده روی سرور مجازی Ubuntu باز شود. اگر تأیید هویت مبتنی بر کلید موفقیت آمیز بود ، ادامه بدهید تا ببینید که چگونه با غیرفعال کردن احراز هویت رمز عبور ، امنیت بیشتری در سیستم خود داشته باشید. مرحله 4 – غیرفعال کردن احراز هویت رمز عبور روی سرور مجازی خود اگر توانستید با استفاده از SSH بدون پسورد وارد حساب کاربری خود شوید ، تأیید هویت مبتنی بر کلید SSH را با موفقیت پیکربندی کرده اید. با این حال ، مکانیسم تأیید اعتبار مبتنی بر رمز عبور شما هنوز فعال است ، به این معنی که سرور مجازی شما هنوز در معرض حملات خطرناک میباشد. قبل از انجام مراحل در این بخش ، مطمئن شوید که احراز هویت مبتنی بر کلید SSH را برای حساب اصلی در این سرور مجازی پیکربندی کرده اید ، یا ترجیحاً احراز هویت مبتنی بر کلید SSH را برای یک حساب غیر ریشه با امتیازات sud در این سرور مجازی پیکربندی کرده اید. در این مرحله ورود به سیستم های مبتنی بر رمز عبور قفل خواهد شد ، بنابراین اطمینان از اینکه همچنان می توانید دسترسی ادمین داشته باشید بسیار مهم است. هنگامی که تأیید کردید که حساب از راه دور شما دارای امتیازات ادمین است ، با کلیدهای SSH ، به صورت ریشه یا با یک حساب دارای امتیازات sudo وارد سرور مجازی راه دور خود شوید. سپس فایل پیکربندی Daemon SSH را باز کنید: $ sudo nano /etc/ssh/sshd_config
در داخل فایل ، یک دستورالعمل با نام PasswordAuthentication را جستجو کنید. این خط ممکن است در ابتدا با یک # شروع شود. خط را با حذف # باطل کرده ، و مقدار را بر روی no قرار دهید. با این کار توانایی ورود به سیستم از طریق SSH با استفاده از گذرواژه های حساب غیرفعال می شود: /etc/ssh/sshd_config . . . PasswordAuthentication no . . .
پس از اتمام فایل را با فشار دادن CTRL + X ، سپس Y ذخیره کرده و آن را ببندید تا تأیید کنید که فایل ذخیره شود و درنهایت ENTER را برای خروج از nano وارد کنید. برای فعال کردن این تغییرات ، باید سرویس sshd را مجدداً راه اندازی کنیم: $ sudo systemctl restart ssh
برای احتیاط ، قبل از بستن بخش فعلی خود ، یک پنجره ترمینال جدید باز کنید و آزمایش کنید که سرویس SSH به درستی کار می کند: $ ssh username@remote_host
پس از تأیید صحت عملکرد سرویس SSH ، می توانید با اطمینان تمام بخش های فعلی سرور مجازی را ببندید. اکنون SSH daemon در سرور مجازی Ubuntu شما فقط به احراز هویت مبتنی بر کلید SSH پاسخ می دهد. ورود به سیستم مبتنی بر رمز عبور غیرفعال شده است. نتیجه اکنون باید تأیید هویت مبتنی بر کلید SSH را روی سرور مجازی خود پیکربندی کنید که به شما اجازه میدهد بدون ارائه رمز ورود به حساب کاربری خود وارد شوید. اگر می خواهید در مورد کار با SSH اطلاعات بیشتری کسب کنید ، به راهنمای ضروریات SSH نگاهی بیندازید.
برچسب‌ها:
SSH
,
Ubuntu 20.04
0 notes
vpsgold-blog · 4 years
Text
نصب و استفاده از PostgreSQL در اوبونتو 20.0
سیستم های مدیریت پایگاه داده رابطه ای ، عنصر اصلی بسیاری از وب سایت ها و برنامه ها هستند. آنها روشی ساختاری برای ذخیره ، سازماندهی و دسترسی به اطلاعات را ارائه می دهند. PostgreSQL یا Postgres یک سیستم مدیریت پایگاه داده رابطه ای است که اجرای زبان جستجوی SQL را فراهم می کند. سازگار با استانداردها میباشد و دارای بسیاری از ویژگی های پیشرفته مانند تراکنش های قابل اعتماد و همزمانی بدون قفل خواندن است. این راهنما نحوه نصب Postgres را در یک سرور مجازی Ubuntu 20.04 نشان می دهد. همچنین برخی از دستورالعمل ها برای مدیریت عمومی پایگاه داده را ارائه می نماید. پیش نیازها برای دنبال کردن این آموزش ، به یک سرور مجازی Ubuntu 20.04 نیاز دارید که با پیروی از راهنمای ستاپ اولیه سرور مجازی برای Ubuntu 20.04 ،پیکربندی شده باشد. بعد از مطالعه این آموزش پیش نیاز ، سرور شما باید کاربر غیر ریشه ای با امتیازات sudo و یک فایروال پایه داشته باشد. مرحله 1 – نصب PostgreSQL مخازن پیش فرض اوبونتو شامل بسته های Postgres است ، بنابراین می توانید با استفاده از سیستم بسته بندی apt آنها را نصب کنید. اگر اخیراً این کار را نکرده اید ، فهرست بسته محلی سرور مجازی خود را ریفرش کنید: $ sudo apt update
سپس ، بسته Postgres را به همراه یک بسته -contrib نصب کنید که برخی از امکانات و کاربردهای دیگر را اضافه می کند: $ sudo apt install postgresql postgresql-contrib
اکنون که نرم افزار نصب شده است ، می توانیم به نحوه عملکرد آن و چگونگی تفاوت آن با سایر سیستم های مدیریت پایگاه داده رابطه ای که ممکن است از آنها استفاده کرده باشید ، بپردازیم. مرحله 2 – استفاده از نقشها (roles) و بانکهای اطلاعاتی PostgreSQL به طور پیش فرض ، Postgres از مفهومی به نام “role” برای مدیریت احراز هویت و اعتباربخشی استفاده می کند. این رول ها به نوعی شبیه به اکانت های معمولی سبک یونیکس هستند ، اما Postgres بین کاربران و گروه ها فرق نمی گذارد و در عوض اصطلاح انعطاف پذیرتر “role” را ترجیح می دهد. پس از نصب ، Postgres برای استفاده از احراز هویت تنظیم میشود ، به این معنی که نقش های Postgres را با یک حساب کاربری سیستم Unix / Linux مرتبط می کند. اگر نقشی در Postgres وجود داشته باشد ، یک نام کاربری یونیکس / لینوکس با همین نام قادر به ورود به عنوان آن نقش است. فرآیند نصب یک حساب کاربری به نام postgres ایجاد کرده است که با نقش پیش فرض Postgres همراه است. برای استفاده از Postgres می توانید وارد آن حساب شوید. چند روش برای استفاده از این حساب برای دسترسی به Postgres وجود دارد. انتقال به حساب Postgres با تایپ دستور زیر به حساب Postgres در سرور مجازی خود سوییچ کنید: $ sudo -i -u postgres
اکنون می توانید با تایپ دستور زیر به اعلان PostgreSQL دسترسی پیدا کنید: $ psql
از آنجا می توانید در صورت لزوم با سیستم مدیریت بانک اطلاعاتی ارتباط برقرار کنید. با تایپ دستور زیر از اعلان PostgreSQL خارج شوید: Postgres=# \q
این دستور شما را به خط فرمان postgres Linux بازمیگرداند. دسترسی به یک اعلان Postgres بدون تعویض حساب همچنین می توانید دستور مورد نظر خود را با حساب postgres مستقیماً با sudo اجرا کنید. به عنوان نمونه ، در مثال آخر ، به شما گفته شد که ابتدا با سوییچ کردن به کاربر postgres و سپس اجرای psql به اعلان Postgres برسید. شما می توانید این کار را در یک مرحله با اجرای یک دستور psql منفرد به عنوان کاربر postgres با sudo انجام دهید ، به این شکل: $ sudo -u postgres psql
با این کار شما مستقیماً در Postgres وارد می شوید بدون اینکه پوسته واسطه ای bash در بین آنها باشد. دوباره می توانید با تایپ کردن این دستور از بخش Postgres تعاملی خارج شوید: Postgres=# \q
بسیاری از موارد به بیش از یک نقش Postgres نیاز دارند. در ادامه یاد میگیرید که چگونه این موارد را پیکربندی کنید. مرحله 3 – ایجاد نقش (رول) جدید در حال حاضر ، شما فقط نقش Postgres را در پایگاه داده پیکربندی کرده اید. می توانید با استفاده از دستور Createrole نقش های جدیدی را از خط فرمان ایجاد کنید. پرچم –interactive نام نقش جدید را از شما میپرسد و همچنین سؤال میکند که آیا مجوزهای superuser دارد یا خیر. اگر به عنوان حساب postgres وارد شوید ، می توانید با تایپ کردن دستور زیر کاربر جدیدی ایجاد کنید: postgres@server:~$ createuser –interactive
در عوض ، اگر ترجیح می دهید بدون تغییر حساب کاربری خود از sudo برای هر دستور استفاده کنید ، تایپ کنید: $ sudo -u postgres createuser –interactive
این اسکریپت انتخاب های مختلفی را به شما نشان میدهد و بر اساس پاسخ های شما ، دستورات صحیح Postgres را اجرا می کند تا کاربر را با مشخصات دلخواه شما ایجاد کند. Output Enter name of role to add: sammy Shall the new role be a superuser? (y/n) y
با عبور از برخی از پرچم های اضافی می توانید کنترل بیشتری به دست آورید. گزینه ها را با مراجعه به صفحه man بررسی کنید: $ man createuser
نصب شما در Postgres اکنون کاربر جدیدی دارد ، اما شما هنوز هیچ پایگاه داده ای اضافه نکرده اید. در بخش بعدی این روند توضیح داده شده است. مرحله 4 – ایجاد یک پایگاه داده جدید فرض دیگری که سیستم تأیید اعتبار Postgres بصورت پیش فرض انجام می دهد این است که برای هر نقشی که برای ورود به سیستم استفاده می شود ، آن نقش یک بانک اطلاعاتی با همان نام دارد که می تواند به آن دسترسی داشته باشد. این بدان معنی است که اگر کاربری که در آخرین بخش ایجاد کرده اید ، sammy نامیده شود ، آن نقش سعی خواهد کرد به بانک اطلاعاتی وصل شود که به طور پیش فرض “sammy” نامیده می شود. می توانید با دستور ایجاد شده ، بانک اطلاعاتی مناسب ایجاد کنید. اگر به عنوان حساب postgres وارد شوید ، چیزی مانند این تایپ میکنید: postgres@server:~$ createdb sammy
از سوی دیگر ، اگر ترجیح می دهید بدون تغییر حساب عادی خود ، از sudo برای هر فرمان استفاده کنید ، تایپ کنید: $ sudo -u postgres createdb sammy
این انعطاف پذیری در صورت نیاز چندین مسیر ایجاد می کند. مرحله 5 – باز کردن اعلان Postgres با نقش جدید برای ورود با تأیید هویت مبتنی بر ident ، به استفاده از کاربر لینوکس با همان نام نقش و پایگاه داده Postgres خود نیاز خواهید داشت. اگر یک کاربر لینوکس با این ویژگی ها در دسترس ندارید ، می توانید یک کاربر با دستور adduser ایجاد کنید. شما باید این کار را از حساب غیر ریشه خود با امتیازات sudo انجام دهید (به این معنی که به عنوان کاربر postgres وارد نشوید): $ sudo adduser sammy
پس از در دسترس بودن این حساب جدید ، می توانید با تایپ کردن این دستور به پایگاه داده وصل شوید: $ sudo -i -u sammy
$ psql یا می توانید این کار را بصورت درون خطی انجام دهید: $ sudo -u sammy psql
با فرض اینکه همه مولفه ها به درستی پیکربندی شده اند ، این دستور شما را به طور خودکار وارد سیستم می کند. اگر می خواهید کاربر شما به یک پایگاه داده دیگر متصل شود ، می توانید با مشخص کردن دیتابیس این کار را انجام دهید: $ psql -d postgres
پس از ورود به سیستم ، می توانید اطلاعات مربوط به اتصال فعلی خود را با تایپ کردن بررسی کنید: Sammy=# \conninfo
Output You are connected to database “sammy” as user “sammy” via socket in “/var/run/postgresql” at port
این امر در صورت اتصال به پایگاه داده های غیر پیش فرض یا با کاربران غیر پیش فرض مفید خواهد بود. مرحله 6 – ایجاد و حذف جداول اکنون که می دانید چگونه به سیستم پایگاه داده PostgreSQL وصل شوید ، می توانید برخی از وظایف اساسی مدیریت Postgres را یاد بگیرید. ترکیب اصلی برای ایجاد جداول به شرح زیر است: CREATE TABLE table_name ( column_name1 col_type (field_length) column_constraints, column_name2 col_type (field_length), column_name3 col_type (field_length) );
همانطور که مشاهده می کنید ، این دستورات جدول را نامگذاری میکنند و سپس ستون ها و همچنین نوع ستون و حداکثر طول داده های فیلد را مشخص می کنند. همچنین می توانید محدودیت های جدول را برای هر ستون به صورت اختیاری اضافه کنید. در اینجا می توانید درباره نحوه ایجاد و مدیریت جداول در Postgres اطلاعات بیشتری کسب کنید. برای اهداف نمایشی ، جدول زیر را ایجاد کنید: Sammy=# CREATE TABLE playground (
Sammy=# equip_id serial PRIMARY KEY,
Sammy=# type varchar (50) NOT NULL,
Sammy=# color varchar (25) NOT NULL,
Sammy=# location varchar(25) check (location in (‘north’, ‘south’, ‘west’, ‘east’, ‘northeast’, ‘southeast’, ‘southwest’, ‘northwest’)),
Sammy=# install_date date
Sammy=#);
این دستور یک جدول ایجاد می کند که تجهیزات زمین بازی را ذخیره می کند. اولین ستون در جدول شماره شناسه تجهیزات از نوع سریال را نگه می دارد که یک عدد صحیح است و به صورت خودکار افزایش می یابد. این ستون همچنین دارای محدودیت PRIMARY KEY میباشد ، بدین معنی که مقادیر موجود در آن باید منحصر به فرد باشند و null (صفر) نباشند. دو خط بعدی به ترتیب ستون هایی برای نوع و رنگ تجهیزات ایجاد می کنند که هیچ یک از آنها نمی تواند خالی باشد. خط بعد از اینها یک ستون موقعیت مکانی و همچنین محدودیتی ایجاد می کند که باید یکی از هشت مقدار ممکن باشد. خط آخر یک ستون تاریخ ایجاد می کند که تاریخ نصب تجهیزات را ثبت می نماید. برای دو ستون (equip_id و install_date) ، دستورموجود طول فیلد را مشخص نمی کند. دلیل این امر این است که برخی از انواع داده ها به طول مشخص نیاز ندارند زیرا طول یا قالب آن بیان میشود. می توانید جدول جدید خود را با تایپ کردن این دستور مشاهده کنید: Sammy=# \d
Output List of relations Schema | Name | Type | Owner ——–+————————-+———-+——- public | playground | table | sammy public | playground_equip_id_seq | sequence | sammy (2 rows)
جدول زمین بازی شما اینجاست ، اما چیزی به نام playground_equip_id_seq نیز وجود دارد که از نوع توالی است. در واقع نمایشی از نوع سریال است که شما به ستون equip_id خود داده اید. این ستون شماره بعدی در توالی را دنبال می کند و به طور خودکار برای ستون های این نوع ایجاد می شود. اگر می خواهید فقط جدول بدون ترتیب را ببینید ، می توانید تایپ کنید: Sammy=# \dt
Output List of relations Schema | Name | Type | Owner ——–+————+——-+——- public | playground | table | sammy (1 row)
اکنون جدول آماده است ، بیایید از آن برای تمرین مدیریت داده استفاده کنیم. مرحله 7 – افزودن ، پرس و جو و حذف داده ها در یک جدول اکنون که جدولی دارید ، می توانید برخی از داده ها را در آن وارد کنید. به عنوان نمونه ، با فراخوانی جدول مورد نظر برای اضافه کردن ، نامگذاری ستونها و سپس تهیه داده برای هر ستون ، slide و swing اضافه کنید ، مانند این: Sammy=# INSERT INTO playground (type, color, location, install_date) VALUES (‘slide’, ‘blue’, ‘south’, ‘2017-04-28’);
Sammy=# INSERT INTO playground (type, color, location, install_date) VALUES (‘swing’, ‘yellow’, ‘northwest’, ‘2018-08-16’);
باید هنگام وارد کردن داده ها مراقب باشید تا از مشکلات و قطعی های معمول جلوگیری کنید. اولا نام ستون ها را در علامت نقل قول قرار ندهید ، فقط مقادیر ستونی که وارد می کنید به نقل قول نیاز دارند. نکته دیگری که باید در نظر داشته باشید این است که برای ستون equip_id مقداری وارد نمی کنید. دلیل این امر این است که هر زمان که یک ردیف جدید به جدول اضافه کنید ، به طور خودکار ایجاد می شود. با تایپ کردن این دستور اطلاعاتی که اضافه کرده اید بازیابی کنید: Sammy=# SELECT * FROM playground;
Output equip_id | type | color | location | install_date ———-+——-+——–+———–+————– 1 | slide | blue | south | 2017-04-28 2 | swing | yellow | northwest | 2018-08-16 (2 rows)
در اینجا ، می بینید که equip_id شما با موفقیت پر شده است و تمام داده های دیگر شما به درستی سازماندهی شده اند. اگر اسلاید روی زمین بازی خراب شد و مجبور شدید آن را حذف کنید ، می توانید با تایپ دستور زیر آن سطر از جدول خود حذف کنید: Sammy=# DELETE FROM playground WHERE type = ‘slide’;
جدول را دوباره پرس و جو کنید: Sammy=# SELECT * FROM playground;
Output equip_id | type | color | location | install_date ———-+——-+——–+———–+————– 2 | swing | yellow | northwest | 2018-08-16 (1 row)
توجه کنید که ردیف اسلاید دیگر جزئی از جدول نیست. مرحله 8 – اضافه کردن و حذف ستون ها از یک جدول پس از ایجاد جدول می توانید با اضافه کردن یا حذف ستون ها آن را تغییر دهید. با تایپ دستور زیر، برای نمایش آخرین بازدید از نگهداری از هر قطعه تجهیزات ، یک ستون اضافه کنید: Sammy=# ALTER TABLE playground ADD last_maint date; اگر اطلاعات جدول خود را دوباره مشاهده کنید ، می بینید که ستون جدید اضافه شده است اما هیچ داده ای وارد نشده است: Sammy=# SELECT * FROM playground;
Output equip_id | type | color | location | install_date | last_maint ———-+——-+——–+———–+————–+———— 2 | swing | yellow | northwest | 2018-08-16 | (1 row)
اگر متوجه شدید که خدمه کاری شما از یک ابزار جداگانه برای پیگیری سابقه نگهداری استفاده می کنند ، می توانید ستون را با تایپ دستور زیر حذف کنید: Sammy=# ALTER TABLE playground DROP last_maint;
این دستور ستون last_maint و مقادیر موجود در آن را حذف می کند ، اما تمام داده های دیگر را دست نخورده نگه میدارد. مرحله 9 – بروزرسانی داده ها در یک جدول تاکنون یاد گرفته اید که چگونه می توانید سوابق را به یک جدول اضافه کنید و چگونه آنها را حذف کنید ، اما این آموزش هنوز نحوه تغییر ورودی های موجود را پوشش نداده است. می توانید مقادیر ورودی موجود را با جستجوی رکورد مورد نظر خود به روز کنید و ستون را روی مقدار مورد نظر خود تنظیم کنید. می توانید رکورد swing را درخواست کنید (با هر swing در جدول شما مطابقت دارد) و رنگ آن را به رنگ قرمز تغییر دهید. وقتی swing را برای رنگ کاری تنظیم کنید، این امر می تواند مفید باشد : Sammy=# UPDATE playground SET color = ‘red’ WHERE type = ‘swing’;
با پرس و جوی دوباره داده ها ، می توانید تأیید کنید که این عملیات با موفقیت انجام شد: Sammy=# SELECT * FROM playground;
Output equip_id | type | color | location | install_date ———-+——-+——-+———–+————– 2 | swing | red | northwest | 2018-08-16 (1 row)
همانطور که مشاهده می کنید ، اکنون اسلاید به عنوان قرمز ثبت شده است. نتیجه اکنون PostgreSQL را روی سرور مجازی Ubuntu 20.04 خود تنظیم کرده اید. اگر می خواهید در مورد Postgres و نحوه استفاده از آن اطلاعات بیشتری کسب کنید، توصیه می کنیم راهنماهای زیر را بررسی کنید: • مقایسه سیستم های مدیریت پایگاه داده رابطه ای • کار با پرس و جوهای در حال اجرا با SQL
برچسب‌ها:
Postgres
,
PostgreSQL
,
Ubuntu 20.04
0 notes
vpsgold-blog · 4 years
Text
نحوه نصب MySQL در اوبونتو 20.04
MySQL یک سیستم مدیریت پایگاه داده منبع باز است که معمولاً به عنوان بخشی از پشته محبوب LAMP (Linux ، Apache ، MySQL ، PHP / Python / Perl) نصب می شود. این سیستم یک مدل رابطه ای را پیاده سازی می کند و برای مدیریت داده های خود از زبان پرس و جوی ساختاریافته (معروف به SQL) استفاده می کند. در این آموزش نحوه نصب MySQL نسخه 8 بر روی سرور مجازی Ubuntu 20.04 بررسی می شود. با تکمیل آن ، شما یک پایگاه داده رابطه ای در حال کار خواهید داشت که می توانید برای ساختن وب سایت یا برنامه بعدی خود استفاده کنید.
پیش نیازها برای دنبال کردن این آموزش ، به موارد زیر نیاز دارید: • یک سرور مجازی Ubuntu 20.04 با یک کاربر ادمین غیر ریشه و فایروال تنظیم شده با UFW . برای راه اندازی ، راهنمای ستاپ اولیه سرور مجازی برای اوبونتو 20.04 را دنبال کنید.
مرحله 1 – نصب MySQL در Ubuntu 20.04 می توانید MySQL را با استفاده از مخزن بسته APT نصب کنید. در زمان نوشتن این مقاله، نسخه MySQL موجود در مخزن پیش فرض اوبونتو نسخه 8.0.19 است. برای نصب آن ، اگر اخیراً این کار را نکرده اید ، فهرست بسته را روی سرور مجازی خود به روز کنید: $ sudo apt update
سپس بسته mysql-server را نصب کنید: $ sudo apt install mysql-server
این کار MySQL را نصب می کند ، اما از شما نمیخواهد که رمز عبوری تنظیم کنید یا تغییرات دیگری در پیکربندی ایجاد کنید. از آنجا که این امر باعث می شود نصب MySQL ناامن باشد ، در ادامه به این موضوع خواهیم پرداخت.
مرحله 2 – پیکربندی MySQL برای نصب های جدید MySQL ، بهتر است اسکریپت امنیتی شامل DBMS را اجرا کنید. این اسکریپت برخی از گزینه های پیش فرض با ایمنی کمتر را برای مواردی مانند ورود به سیستم ریشه از راه دور و کاربران نمونه تغییر می دهد. اسکریپت امنیتی را با sudo اجرا کنید: $ sudo mysql_secure_installation
این امر مجموعه ای از اعلان ها را به شما نمایش میدهد که بتوانید برخی از گزینه های امنیتی نصب MySQL خود را تغییر دهید. اولین سؤال از شما میپرسد که آیا می خواهید افزونه Validate Password را تنظیم کنید ، که می تواند برای تست قدرت رمز ورود MySQL استفاده شود. اگر تصمیم به تنظیم افزونه اعتبار سنجی گذرواژه بگیرید ، اسکریپت از شما می خواهد که یک سطح اعتبار رمز عبور را انتخاب کنید. قوی ترین سطح – که شما با وارد کردن 2 انتخاب می کنید – به حداقل 8 کاراکتر نیاز دارد و شامل ترکیبی از حروف بزرگ ، حروف کوچک ، عدد و علائم خاص است: Output Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
صرف نظر از این که آیا می خواهید افزونه رمز عبور معتبر را انتخاب کنید ، اعلان بعدی تعیین رمز عبور برای کاربر ریشه MySQL خواهد بود. Enter را بزنید و رمز عبور ایمن را تایید کنید: Output Please set the password for root here.
New password:
Re-enter new password:
اگر از افزونه اعتبار سنجی گذرواژه استفاده کرده اید ، در مورد قدرت رمزعبور جدید خود بازخورد دریافت خواهید کرد. سپس اسکریپت از شما سؤال می کند که آیا می خواهید رمز عبوری را که وارد کرده اید ادامه دهید یا می خواهید یک رمز جدید را وارد کنید. با فرض اینکه از قدرت رمز عبوری که تازه وارد کرده اید راضی هستید ، Y را برای ادامه اسکریپت وارد کنید: Output Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
از اینجا به بعد ، می توانید Y و سپس ENTER را فشار دهید تا پیش فرض برای همه سؤالات بعدی را بپذیرید. با این کار برخی از کاربران ناشناس و بانک اطلاعاتی تستی حذف می شوند ، ورود به سیستم ریشه از راه دور غیرفعال می شود و این قوانین جدید را بارگذاری می کند تا MySQL فوراً با تغییراتی که ایجاد کرده اید منطبق شود. توجه داشته باشید که حتی اگر یک رمز عبور برای کاربر ریشه MySQL تنظیم کرده اید ، این کاربر برای تأیید اعتبار با گذرواژه هنگام اتصال به پوسته MySQL پیکربندی نشده است. در صورت تمایل می توانید با دنبال کردن مرحله 3 این تنظیمات را اعمال کنید.
مرحله 3 – تنظیم تأیید اعتبار و امتیازات کاربر (اختیاری) در سیستم های اوبونتو که MySQL 5.7 را اجرا می کند (و نسخه های بعدی) ، کاربر ریشه MySQL برای تأیید اعتبار با استفاده از افزونه auth_socket بصورت پیش فرض و نه با گذرواژه تنظیم شده است. این امر امنیت و قابلیت استفاده بیشتر را در بسیاری از موارد امکان پذیر می کند ، اما همچنین می تواند مواردی را پیچیده تر کند که شما نیاز به دسترسی به کاربر توسط یک برنامه خارجی (مانند phpMyAdmin) دارید. به منظور استفاده از رمز عبور برای اتصال به MySQL به عنوان root ، باید روش تأیید اعتبار آن را از auth_socket به افزونه دیگری مانند caching_sha2_password یا mysql_native_password تغییر دهید. برای این کار ، اعلان MySQL را از پایانه خود باز کنید: $ sudo mysql
سپس ، با دستور زیر بررسی کنید که هر یک از حسابهای کاربری MySQL شما از کدام روش تأیید اعتبار استفاده میکند: Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Output +——————+————————————————————————+———————–+———–+ | user | authentication_string | plugin | host | +——————+————————————————————————+———————–+———–+ | debian-sys-maint | $A$005$lS|M#3K #XslZ.xXUq.crEqTjMvhgOIX7B/zki5DeLA3JB9nh0KwENtwQ4 | caching_sha2_password | localhost | | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | root | | auth_socket | localhost | +——————+————————————————————————+———————–+———–+ 5 rows in set (0.00 sec)
در این مثال ، می بینید که کاربر ریشه با استفاده از افزونه auth_socket ، در واقع تأیید اعتبار می کند. برای پیکربندی حساب ریشه برای تأیید اعتبار با رمز عبور ، عبارت ALTER USER را اجرا کنید تا افزونه احراز هویت مورد استفاده خود را تغییر داده و یک رمز عبور جدید تنظیم کنید. مطمئن شوید که رمز عبور را به رمز عبور قوی به انتخاب خود تغییر می دهید و آگاه باشید که این دستور رمز ریشه را که در مرحله 2 تنظیم کرده اید تغییر می دهد: 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 برای مثال phpMyAdmin – با اطمینان با caching_sha2_password کار نمی کنند. اگر قصد استفاده از این پایگاه داده را با برنامه PHP دارید ، بهتر است تأیید اعتبار ریشه را با mysql_native_password انجام دهید: Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
سپس ، PRUSILEGES FLUSH را اجرا کنید که به سرور مجازی می گوید جداول اعطای امتیاز را مجدد لود کرده و تغییرات جدید را اعمال کند: Mysql> FLUSH PRIVILEGES;
روش های تأیید اعتبار استفاده شده توسط هر یک از کاربران خود را دوباره بررسی کنید تا تأیید کنید که ریشه دیگر با استفاده از افزونه auth_socket احراز هویت نمی کند: Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Output +——————+————————————————————————+———————–+———–+ | user | authentication_string | plugin | host | +——————+————————————————————————+———————–+———–+ | debian-sys-maint | $A$005$lS|M#3K #XslZ.xXUq.crEqTjMvhgOIX7B/zki5DeLA3JB9nh0KwENtwQ4 | caching_sha2_password | localhost | | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | root | *3636DACC8616D997782ADD0839F92C1571D6D78F | caching_sha2_password | localhost | +——————+————————————————————————+———————–+———–+ 5 rows in set (0.00 sec)
در این مثال می توانید مشاهده کنید که کاربر ریشه MySQL اکنون با استفاده از caching_sha2_password تأیید اعتبار می کند. پس از تأیید این موضوع روی سرور مجازی خود ، می توانید از پوسته MySQL خارج شوید: Mysql> exit
از طرف دیگر ، به نظر برخی ممکن است اتصال به MySQL با یک کاربر اختصاصی برای گردش کارشان مناسب تر باشد. برای ایجاد چنین کاربری ، بار دیگر پوسته MySQL را باز کنید: $ sudo mysql
توجه: اگر احراز هویت رمز عبور را برای ریشه فعال کرده اید ، همانطور که در پاراگراف های قبلی توضیح داده شد ، برای دسترسی به پوسته MySQL باید از دستور دیگری استفاده کنید. موارد زیر کلاینت MySQL شما را با حق امتیاز کاربر به طور منظم اجرا می کند و شما فقط با تأیید اعتبار ، امتیازات ادمین را در بانک اطلاعات دریافت خواهید کرد: $ mysql -u root -p
از آنجا ، یک کاربر جدید ایجاد کرده و یک رمزعبور قوی به آن بدهید: Mysql> CREATE USER ‘sammy’@’localhost’ IDENTIFIED BY ‘password’;
سپس امتیازات مناسب را به کاربر جدید خود اعطا کنید. به عنوان مثال ، شما می توانید امتیازات کاربر را به تمام جداول موجود در دیتابیس و همچنین قدرت اضافه کردن ، تغییر و حذف امتیازهای کاربر با این دستور اعطا کنید: Mysql> GRANT ALL PRIVILEGES ON *.* TO ‘sammy’@’localhost’ WITH GRANT OPTION;
توجه داشته باشید که در این مرحله ، دیگر نیازی به اجرای فرمان FLUSH PRIVILEGES ندارید. این دستور فقط در صورت تغییر جدول های اعطای امتیاز با استفاده از عباراتی مانند INSERT ، UPDATE یا DELETE مورد نیاز است. از آنجا که شما به جای تغییر یک کاربر موجود، کاربر جدیدی ایجاد کرده اید،FLUSH PRIVILEGES در اینجا غیر ضروری است. سپس ، از پوسته MySQL خارج شوید: Mysql> exit
در آخر ، بیایید نصب MySQL را آزمایش کنیم. مرحله 4 – تست MySQL صرف نظر از نحوه نصب آن ، MySQL باید به صورت خودکار شروع به کار کند. برای آزمایش این موضوع ، وضعیت آن را بررسی کنید. $ systemctl status mysql.service
خروجی مشابه زیر را مشاهده خواهید کرد: Output ● mysql.service – MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-04-21 12:56:48 UTC; 6min ago Main PID: 10382 (mysqld) Status: “Server is operational” Tasks: 39 (limit: 1137) Memory: 370.0M CGroup: /system.slice/mysql.service └─10382 /usr/sbin/mysqld
اگر MySQL در حال اجرا نیست ، می توانید آن را با sudo systemctl start mysql شروع کنید. برای بررسی بیشتر، می توانید با استفاده از ابزار mysqladmin ، که یک کلاینت است و به شما امکان اجرای دستورات ادمین را می دهد ، به پایگاه داده وصل شوید. به عنوان مثال ، این دستور می گوید به عنوان ریشه به MySQL متصل شده (-u root) ، اعلان گذرواژه (-p) را پر کرده و نسخه را برگردانید. $ sudo mysqladmin -p -u root version
باید خروجی مشابه این را ببینید: Output mysqladmin Ver 8.0.19-0ubuntu5 for Linux on x86_64 ((Ubuntu)) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Server version 8.0.19-0ubuntu5 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 10 min 44 sec
Threads: 2 Questions: 25 Slow queries: 0 Opens: 149 Flush tables: 3 Open tables: 69 Queries per second avg: 0.038
این بدان معنی است که MySQL در حال کار است. نتیجه اکنون یک ستاپ اولیه MySQL نصب شده در سرور مجازی خود دارید. در اینجا چند نمونه از مراحل بعدی که می توانید انجام دهید آورده شده است: • یک پشته LAMP تنظیم کنید • پرس و جوهای در حال اجرا را با SQL تمرین کنید
برچسب‌ها:
MySQL
,
Python
0 notes