server



 حالی که بسیاری از کاربران به عملکرد سیستم دیتابیس مانند MySQL نیاز دارند ، تعامل با سیستم صرفاً از طریق سرویس دهنده خط فرمان MySQL نیاز به آشنایی با زبان SQL دارد ، بنابراین ممکن است برای بعضی ها رابط ارجح نباشد.
phpMyAdmin به گونه ای ایجاد شده است که کاربران بتوانند از طریق یک رابط وب بصری با MySQL در تعامل باشند که در کنار یک محیط توسعه PHP اجرا شود. در این راهنما ، در مورد نحوه نصب phpMyAdmin روی سرور Nginx و نحوه پیکربندی سرور برای افزایش امنیت بحث خواهیم کرد.
توجه: در هنگام استفاده از نرم افزاری مانند phpMyAdmin ملاحظات امنیتی مهمی وجود دارد ، از آنجا که بر روی سرور پایگاه داده اجرا می شود ، با اعتبارات پایگاه داده در ارتباط است ، و کاربر را قادر می سازد تا به راحتی پرس و جوهای SQL دلخواه را در پایگاه داده شما اجرا کند. از آنجا که phpMyAdmin یک برنامه PHP با استقرار گسترده است ، اغلب مورد حمله قرار می گیرد. در این آموزش برخی اقدامات امنیتی که می توانید انجام دهید را مرور خواهیم کرد تا بتوانید تصمیماتی آگاهانه بگیرید.

پیش نیازها
قبل از شروع این راهنما ، به موارد زیر نیاز خواهید داشت:
• سرور Ubuntu .04 که دارای یک پشته LEMP (Linux ، Nginx ، MySQL و PHP) و ایمن شده با ufw باشد ، همانطور که در راهنمای تنظیم اولیه سرور برای اوبونتو .04 شرح داده شده است. اگر هنوز سرور خود را تنظیم نکرده اید ، می توانید راهنمای نصب پشته LEMP در اوبونتو .04 را دنبال کنید.
• دسترسی به این سرور به عنوان یک کاربر غیر ریشه با امتیازات sudo.
از آنجا که phpMyAdmin احراز هویت را با استفاده از اعتبار MySQL انجام می دهد ، توصیه می شود یک SSL / TLS نصب کنید تا بتوانید ترافیک رمزگذاری شده بین سرور و کلاینت را فعال کنید. اگر دامنه موجود که با گواهی معتبر پیکربندی شده باشد ندارید ، می توانید این راهنما را در مورد ایمن سازی Nginx با let’s Encrypt در Ubuntu .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 .04 در حال اجرای Nginx به عنوان سرور وب بودیم. همچنین روشهای پیشرفته ای را برای تأمین امنیت نصب phpMyAdmin در اوبونتو ، مانند غیرفعال کردن ورود کاربر ریشه به سیستم ، ایجاد یک لایه بیشتر تأیید اعتبار ، و استفاده از تونل SSH برای دسترسی به نصب phpMyAdmin فقط از طریق درخواست های محلی را پوشش داده ایم.
پس از اتمام این آموزش ، باید بتوانید پایگاه داده MySQL خود را از یک رابط وب ایمن مدیریت کنید. این رابط کاربری بیشتر عملکردهای موجود از طریق خط فرمان MySQL را در معرض دید شما قرار می دهد. می توانید پایگاه های داده و شماتیک را بررسی کنید ، پرس و جوها را اجرا کنید و مجموعه ها و ساختارهای جدید داده ایجاد کنید.

 

 

 

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

پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10

نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو

پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7

نصب MariaDB در اوبونتو .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 در اوبونتو   –  نحوه نصب 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 و نظارت بر سرور اوبونتو   –  نصب Python 3 و تنظیم یک محیط برنامه نویسی

نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو .04

نصب و پیکربندی Laravel با LEMP در اوبونتو   –  نصب و پیکربندی pgAdmin 4 در Server Mode

نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu .04

 

 

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

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

 

برچسب‌ها:


یک زبان برنامه نویسی انعطاف پذیر و همه کاره است که می تواند در بسیاری از موارد به خاطر داشتن نقاط قوت در اسکریپت ، اتوماسیون ، تجزیه و تحلیل داده ها ، یادگیری ماشین و توسعه back-end مورد استفاده قرار گیرد. تیم توسعه پایتون برای اولین بار در سال 1991 با نامی الهام گرفته از گروه طنز بریتانیایی مونتی پایتون، آن را منتشر کردند و میخواستند پایتون را به زبانی تبدیل کنند که استفاده از آن بسیار جالب باشد. ستاپ سریع و سبک نسبتاً ساده و بازخورد فوری در مورد خطاها، پایتون را به یک انتخاب عالی برای مبتدیان و توسعه دهندگان با تجربه تبدیل کرده است. پایتون 3 جدیدترین نسخه این زبان است و آینده پایتون به حساب می آید.
در این آموزش سرور مجازی Ubuntu .04 شما با یک محیط برنامه نویسی Python 3 تنظیم می شود. برنامه نویسی روی سرور مجازی مزایای بسیاری دارد و از همکاری در پروژه های توسعه پشتیبانی می کند. اصول کلی این آموزش در مورد هرگونه توزیع Debian Linux کاربرد دارد.
پیش نیازها
برای تکمیل این آموزش ، باید یک کاربر غیر root با امتیازات sudo در سرور مجازی Ubuntu .04 داشته باشید. برای یادگیری چگونگی دستیابی به این تنظیمات ، راهنمای راه اندازی سرور مجازی اولیه ما را دنبال کنید یا اسکریپت خودکار خود را اجرا کنید.
اگر از قبل با محیط ترمینال آشنایی ندارید ، می توانید مقاله مقدمه ای بر ترمینال لینوکس” را برای کارکردن بهتر با ترمینال بخوانید.
با راه اندازی سرور مجازی و کاربر ، آماده شروع کار هستید.
مرحله 1 – تنظیم پایتون 3
اوبونتو .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 .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 در اوبونتو

پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7

نصب MariaDB در اوبونتو .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 در اوبونتو   –  نحوه نصب 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 و نظارت بر سرور اوبونتو   –  نصب Python 3 و تنظیم یک محیط برنامه نویسی

نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو .04

نصب و پیکربندی Laravel با LEMP در اوبونتو   –  نصب و پیکربندی pgAdmin 4 در Server Mode

نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu .04

 

 

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

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

 

برچسب‌ها:


یک لایه داده است که جایگزین ابزارهای object-relational mapping (ORM) قبلی در برنامه شما است. Prisma با ارائه پشتیبانی هم برای سرور مجازی ساخت GraphQL و هم API های REST ، دسترسی به پایگاه داده را با تمرکز بر ایمنی نوع (type safety)، ساده می کند و جا به جایی های اعلامی دیتابیس را امکان پذیر می نماید. ایمنی نوع به کاهش خطاها و ناسازگاری های احتمالی کد کمک می کند ، در حالی که جا به جایی اعلامی پایگاه داده به شما امکان می دهد تا مدل داده های خود را در کنترل نسخه ذخیره کنید. این ویژگی ها به توسعه دهندگان کمک می کند تا زمان متمرکز خود را برای تنظیم دسترسی به پایگاه داده ، جا به جایی و گردش کار مدیریت داده ها کاهش دهند.
می توانید سرور مجازی Prisma را به چند روش مستقر کنید تا بعنوان پروکسی برای پایگاه داده شما عمل کند ، و آن را از راه دور یا محلی میزبانی کنید. با استفاده از سرویس Prisma می توانید به داده های خود دسترسی پیدا کرده و با API GraphQL به بانک اطلاعاتی خود متصل شوید ، این کار امکان عملیات زمان واقعی و امکان ایجاد، به روزرسانی و حذف داده ها را فراهم میکند. GraphQL یک زبان پرس و جو برای API ها است که به کاربران امکان می دهد برای دسترسی به اطلاعات دقیق مورد نیاز از سرور مجازی خود ، پرس و جوهایی ارسال کنند. سرور مجازی Prisma یک جزء مستقل است که در بانک اطلاعاتی شما قرار دارد.
در این آموزش شما به صورت دستی یک سرور مجازی Prisma را در Ubuntu .04 نصب کرده و یک پرس و جوی تستی GraphQL را در playground GraphQL اجرا می کنید. در حالی که Prisma را روی سرور مجازی راه دور خود اجرا می کنید ، هاست کد ستاپ و توسعه محلی Prisma هستید – جایی که در واقع برنامه خود را ایجاد خواهید کرد . با اجرای دستی نصب ، درک عمیق تری از زیرساخت های اساسی ستاپ خود خواهید داشت.
در حالی که این آموزش مراحل دستی استقرار Prisma در سرور مجازی اوبونتو .04 را در بر می گیرد ، می توانید با دنبال کردن این لینک در سایت Prisma این کار را به صورت خودکار تر با دستگاه Docker انجام دهید.
توجه: تنظیمات شرح داده شده در این بخش شامل ویژگی هایی نیست که شما معمولاً از سرور مجازی های آماده تولید مانند پشتیبان گیری خودکار و failover فعال انتظار دارید.
پیش نیازها
برای تکمیل این آموزش ، به موارد زیر نیاز دارید:
⦁ سرور مجازی Ubuntu .04 که با دنبال کردن راهنمای اولیه تنظیم سرور مجازی راه اندازی شده باشد، شامل کاربر غیر ریشه و امتیازات sudo باشد.
⦁ Docker نصب شده روی سرور مجازی شما. می توانید با دنبال کردن مرحله 1 آموزش نصب Docker در اوبونتو .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 در اوبونتو

پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7

نصب MariaDB در اوبونتو .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 در اوبونتو   –  نحوه نصب 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 و نظارت بر سرور اوبونتو   –  نصب Python 3 و تنظیم یک محیط برنامه نویسی

نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو .04

نصب و پیکربندی Laravel با LEMP در اوبونتو   –  نصب و پیکربندی pgAdmin 4 در Server Mode

نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu .04

 

 

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

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

 

برچسب‌ها:


 یک پلتفرم توسعه و اجرای منبع باز برای PostgreSQL و سیستم های مدیریت پایگاه داده مرتبط با آن است. از آنجا که در Python و jQuery نوشته شده، تمام ویژگی های موجود در PostgreSQL را پشتیبانی می کند. می توانید از pgAdmin برای انجام همه کارها از نوشتن پرس و جوهای SQL پایه گرفته تا نظارت بر پایگاه های داده خود و پیکربندی معماری های پیشرفته پایگاه داده استفاده کنید.
در این آموزش ، مراحل نصب و پیکربندی آخرین نسخه pgAdmin را روی یک سرور مجازی Ubuntu .04 ، دسترسی به pgAdmin از طریق یک مرورگر وب ، و اتصال آن به یک پایگاه داده PostgreSQL در سرور مجازی شما را بررسی خواهیم کرد.
پیش نیازها
برای تکمیل این آموزش ، به موارد زیر نیاز دارید:
• سرور مجازی ی که اوبونتو .04 را اجرا می کند. این سرور مجازی باید دارای یک کاربر غیر ریشه با امتیازات sudo و همچنین فایروال تنظیم شده با ufw داشته باشد. برای راهنمایی در مورد این تنظیمات ، راهنمای اولیه راه اندازی سرور مجازی ما برای اوبونتو .04 را دنبال کنید.
• سرور مجازی وب Apache که بر روی سرور مجازی شما نصب شده باشد. برای پیکربندی این روی ماشین خود، راهنمای ما در مورد نحوه نصب وب سرور مجازی Apache در Ubuntu .04 را دنبال کنید.
• PostgreSQL که بر روی سرور مجازی شما نصب شده باشد. با دنبال کردن راهنمای ما در مورد نحوه نصب و استفاده از PostgreSQL در اوبونتو .04 می توانید این تنظیمات را انجام دهید. همانطور که این راهنما را دنبال می کنید ، حتماً یک نقش جدید و بانک اطلاعاتی ایجاد کنید ، زیرا برای اتصال pgAdmin به نمونه PostgreSQL خود به هر دو نیاز خواهید داشت.
• Python 3 و venv که بر روی سرور مجازی شما نصب شده باشد. برای نصب این ابزارها و تنظیم یک محیط مجازی ، نحوه نصب Python 3 و تنظیم یک محیط برنامه نویسی روی یک سرور مجازی Ubuntu .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: sammy@example.com
Password:
Retype password:

سپس ، محیط مجازی خود را غیرفعال کنید:
⦁ (my_env) Sammy@server:~$ deactivate

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

پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7

نصب MariaDB در اوبونتو .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 در اوبونتو   –  نحوه نصب 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 و نظارت بر سرور اوبونتو   –  نصب Python 3 و تنظیم یک محیط برنامه نویسی

نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو .04

نصب و پیکربندی Laravel با LEMP در اوبونتو   –  نصب و پیکربندی pgAdmin 4 در Server Mode

نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu .04

 

 

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

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

 

برچسب‌ها:


 مدیریت پیکربندی به منظور ساده سازی فرایند کنترل تعداد زیادی سرور مجازی ، برای مدیران و تیم های عملیاتی طراحی شده اند. آنها به شما اجازه می دهند بسیاری از سیستم های مختلف را به صورت خودکار از یک مکان مرکزی کنترل کنید.
در حالی که بسیاری از ابزارهای مدیریت پیکربندی محبوب برای سیستمهای لینوکس مانند Chef و Puppet در دسترس هستند ، اینها معمولاً پیچیده تر از چیزی هستند که افراد می خواهند یا نیاز دارند. Ansible یک گزینه عالی برای این منظور است زیرا معماری ساده ای را ارائه می دهد که نیازی به نصب نرم افزار ویژه روی nodes ندارد ، از SSH برای انجام کارهای اتوماسیون و فایل های YAML برای تعریف جزئیات تهیه استفاده می کند.
در این راهنما ، به چگونگی نصب Ansible در سرور مجازی Ubuntu .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 کنترل شما یک سیستم اوبونتو .04 است. اطمینان حاصل کنید که node کنترل دارای موارد زیر است:
o یک کاربر غیر ریشه با امتیازات sudo. برای تنظیم این گزینه ، می توانید مراحل 2 و 3 راهنمای اولیه راه اندازی سرور مجازی ما برای اوبونتو .04 را دنبال کنید. با این وجود ، لطفاً توجه داشته باشید که اگر از سرور مجازی راه دور به عنوان node کنترل Ansible خود استفاده می کنید ، باید هر مرحله از این راهنما را دنبال کنید. با این کار فایروال روی سرور مجازی با ufw پیکربندی شده و دسترسی خارجی به پروفایل کاربر غیر ریشه شما امکان پذیر خواهد شد ، که هر دو به حفظ امنیت سرور مجازی از راه دور کمک می کنند.
o صفحه کلید SSH مرتبط با این کاربر. برای انجام این کار ، می توانید مرحله 1 راهنمای ما درباره نحوه تنظیم کلیدهای SSH در اوبونتو .04 را دنبال کنید.
یک یا چند هاست Ansible: هاست Ansible هر دستگاهی است که node کنترل Ansible شما برای خودکار سازی آن تنظیم شده باشد. این راهنما فرض می کند که هاست های Ansible شما سرور مجازی های Ubuntu .04 از راه دور هستند. اطمینان حاصل کنید که هر هاست Ansible دارای موارد زیر است:
o کلید عمومی SSH node کنترل Ansible به authorized_keys کاربر سیستم اضافه شده باشد. این کاربر می تواند یا root یا یک کاربر معمولی با امتیازات sudo باشد. برای تنظیم این گزینه ، می توانید مرحله 2 نحوه تنظیم کلیدهای SSH را در اوبونتو .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 ، راهنمای کمکی در صفحه ما را ببینید.

 

 

 

 

برچسب‌ها:


یک سیستم مدیریت پایگاه داده منبع باز است که معمولاً به عنوان بخشی از پشته محبوب 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 .04 توضیح داده خواهد شد. با این حال ، اگر به دنبال به روزرسانی نصب MySQL موجود به نسخه 5.7 هستید ، می توانید به جای این راهنما، مقاله به روزرسانی MySQL 5.7 را مطالعه کنید.
پیش نیازها
برای دنبال کردن این آموزش ، به موارد زیر نیاز دارید:
• یک سرور مجازی Ubuntu .04 که طبق راهنمای تنظیم اولیه سرور مجازی تنظیم شده باشد و شامل یک کاربر غیر ریشه با امتیازات sudo و فایروال باشد.
مرحله 1 – نصب MySQL
در اوبونتو .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)
. . .
20-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 20-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, 20, 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

 

 

 

 

 

 

برچسب‌ها:


عنوان یک ادمین سیستم ، بهترین کار شناخت وضعیت فعلی زیرساخت ها و خدمات خود میباشد. در حالت ایده آل ، می خواهید قبل از اینکه کاربران کاری کنند ، دیسک های خراب یا مشکلات برنامه را متوجه شوید. ابزارهای نظارتی مانند Checkmk می توانند به مدیران کمک کنند تا این مشکلات را پیدا کرده و سرور مجازی های سالم را حفظ کنند.
به طور کلی ، نرم افزار مانیتورینگ می تواند وضعیت سخت افزاری ، زمان فعالیت و وضعیت سرور مجازی های شما را ردیابی کند و در صورت بروز هر مشکلی هشدار دهد. در یک حالت بسیار ساده ، یک سیستم نظارتی در صورت متوقف شدن هرگونه خدمات به شما هشدار می دهد. در یک حالت قوی تر ، هشدار بلافاصله بعد از بروز هرگونه علائم مشکوک ، مانند افزایش استفاده از حافظه یا میزان غیرطبیعی اتصالات TCP ، به وجود می آید.
راه حل های مانیتورینگ بسیاری وجود دارد که درجات مختلف پیچیدگی و ویژگی های مختلف ، هم رایگان و هزینه بر را ارائه می دهد. در بسیاری از موارد ، نصب ، پیکربندی و مدیریت این ابزارها دشوار و وقت گیر است.
با این حال Checkmk ، یک روش نظارتی است که هم قوی میباشد و هم نصب آن ساده است. یک بسته نرم افزاری خود شمول است که شامل Nagios (یک سرویس هشدار دهنده محبوب و منبع باز) با افزونه هایی برای جمع آوری ، نظارت و نمودار سازی داده ها است. همچنین رابط وب Checkmk را به همراه دارد – ابزاری جامع که بسیاری از کاستی های Nagios را برطرف می کند. این دستگاه داشبورد کاربر پسند ، یک سیستم نوتیفیکیشن همه منظوره و یک مخزن دارای عوامل نظارتی آسان قابل نصب را در بسیاری از توزیع های لینوکس ارائه می دهد. اگر رابط وب Checkmk را نداشته باشد ، باید برای کارهای مختلف از نماهای مختلف استفاده کنیم و امکان استفاده از این ویژگی ها بدون استفاده از اصلاحات گسترده فایل امکان پذیر نیست.
در این راهنما Checkmk را روی یک سرور مجازی Ubuntu .04 تنظیم می کنیم و دو هاست جداگانه را مانیتور می کنیم. خود سرور مجازی اوبونتو و همچنین یک سرور مجازی جداگانه CentOS 7 را رصد خواهیم کرد ، اما می توانیم از همین روش استفاده کنیم تا تعداد هاست های بیشتری را به پیکربندی مانیتورینگ خود اضافه کنیم.
پیش نیازها
• یک سرور مجازی Ubuntu .04 با یک کاربر معمولی و غیر ریشه و دارای امتیازات sudo. با پیروی از این آموزش اولیه راه اندازی سرور مجازی می توانید نحوه آماده سازی سرور مجازی خود را بیاموزید.
• یک سرور مجازی CentOS 7 با یک کاربر معمولی و غیر ریشه و دارای امتیازات sudo. برای تهیه این سرور مجازی می توانید این آموزش اولیه تنظیم سرور مجازی را دنبال کنید.
مرحله 1 – نصب Checkmk در اوبونتو
برای استفاده از سایت مانیتور خود ابتدا باید Checkmk را روی سرور مجازی اوبونتو نصب کنیم. این کار ابزارهای لازم را به ما می دهد. Checkmk فایلهای رسمی بسته آماده استفاده برای اوبونتو را فراهم می کند که می توانیم برای نصب بسته نرم افزاری از آنها استفاده کنیم.
ابتدا ، لیست بسته ها را به روز می کنیم تا جدیدترین نسخه از لیست مخازن را داشته باشیم:
⦁ $ sudo apt update

برای جستجوی بسته ها می توانیم به سایت لیست بسته ها برویم. اوبونتو .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 از هاست های مجازی برای مدیریت دامنه های متعدد بر روی یک نمونه واحد استفاده می کند. به طور مشابه ، 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- 04:49:59 UTC; 1min 6s ago
Main PID: 52 (php-fpm)
Status: Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec”
CGroup: /system.slice/rh-php70-php-fpm.service
├─52 php-fpm: master process (/etc/opt/rh/rh-php70/php-fpm.conf)
├─53 php-fpm: pool www
├─54 php-fpm: pool www
├─55 php-fpm: pool www
├─56 php-fpm: pool www
└─57 php-fpm: pool www

Apr 04:49:59 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Starting The PHP FastCGI Process Manager…
Apr 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- 04:50:04 UTC; 1min 59s ago
Main PID: 76 (php-fpm)
Status: Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec”
CGroup: /system.slice/rh-php72-php-fpm.service
├─76 php-fpm: master process (/etc/opt/rh/rh-php72/php-fpm.conf)
├─77 php-fpm: pool www
├─78 php-fpm: pool www
├─79 php-fpm: pool www
├─80 php-fpm: pool www
└─81 php-fpm: pool www

Apr 04:50:04 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Starting The PHP FastCGI Process Manager…
Apr 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 admin@site1.your_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 admin@site2.your_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 را دنبال کنید.

 

برچسب‌ها:


 پشته نرم افزاری 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 را برای ذخیره اطلاعات وب سایت خود تنظیم نموده اید.

 

برچسب‌ها:


تبلیغات

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

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

پایگاه خبری ؛علمی؛ فرهنگی آذرنیوز زنان وآرایش همیار کنکور بررسی ثبت آگهی ملک در جوکاخ معرفی و شناخت انواع کمپرسور و پمپ باد فروش وراه اندازی اکانت سیسیکم نشریه‌ی الکترونیکی رایانا خانقاه گمرک UтaNa Diaries