vps vps .

vps

نصب و ايمن سازي phpMyAdmin با Nginx در سرور

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

پيش نيازها
قبل از شروع اين راهنما ، به موارد زير نياز خواهيد داشت:
• سرور Ubuntu 18.04 كه داراي يك پشته LEMP (Linux ، Nginx ، MySQL و PHP) و ايمن شده با ufw باشد ، همانطور كه در راهنماي تنظيم اوليه سرور براي اوبونتو 18.04 شرح داده شده است. اگر هنوز سرور خود را تنظيم نكرده ايد ، مي توانيد راهنماي نصب پشته LEMP در اوبونتو 18.04 را دنبال كنيد.
• دسترسي به اين سرور به عنوان يك كاربر غير ريشه با امتيازات sudo.
از آنجا كه phpMyAdmin احراز هويت را با استفاده از اعتبار MySQL انجام مي دهد ، توصيه مي شود يك SSL / TLS نصب كنيد تا بتوانيد ترافيك رمزگذاري شده بين سرور و كلاينت را فعال كنيد. اگر دامنه موجود كه با گواهي معتبر پيكربندي شده باشد نداريد ، مي توانيد اين راهنما را در مورد ايمن سازي Nginx با let’s Encrypt در Ubuntu 18.04 دنبال كنيد.
هشدار: اگر گواهي SSL / TLS را روي سرور نصب نكرده ايد و همچنان مايل به ادامه كار هستيد ، لطفاً دسترسي از طريق تونل هاي SSH را همانطور كه در مرحله 5 اين راهنما توضيح داده شده است ، در نظر بگيريد.
هنگامي كه اين پيش نيازها را انجام داديد ، مي توانيد با ادامه اين راهنما پيش برويد.
مرحله 1 – نصب phpMyAdmin
اولين كاري كه بايد انجام دهيم نصب phpMyAdmin روي سرور LEMP است. ما مي خواهيم از مخازن پيش فرض اوبونتو براي رسيدن به اين هدف استفاده كنيم.
بياييد با به روزرساني فهرست بسته سرور با دستور زير شروع كنيم:
⦁ $ sudo apt update

اكنون مي توانيد phpMyAdmin را با اين دستور نصب كنيد:
⦁ $ sudo apt install phpmyadmin

در طي مراحل نصب ، از شما خواسته مي شود تا وب سرور (Apache يا Lighthttp) را براي پيكربندي انتخاب كنيد. از آنجا كه ما از Nginx به عنوان وب سرور استفاده مي كنيم ، نبايد اينجا انتخابي انجام دهيم. براي رفتن به مرحله بعدي ، tab را فشار داده و سپس OK را بزنيد.
در مرحله بعد ، از شما خواسته مي شود كه براي پيكربندي پايگاه داده برنامه از dbconfig-common استفاده شود يا خير. yes را انتخاب كنيد. اين كار پايگاه داده داخلي و كاربر admin را براي phpMyAdmin تنظيم مي كند. از شما خواسته مي شود رمز جديد را براي كاربر phpmyadmin MySQL تعريف كنيد. همچنين مي توانيد آن را خالي بگذاريد و به phpMyAdmin اجازه دهيد بطور تصادفي يك رمز عبور ايجاد كند.
اكنون نصب تمام مي شود. براي اينكه سرور وب Nginx به درستي فايلهاي phpMyAdmin را پيدا و ارائه كند ، بايد يك لينك نمادين از فايلهاي نصب به ديركتوري اصلي سند Nginx بسازيم:
⦁ $ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

نصب phpMyAdmin شما اكنون عملياتي است. براي دسترسي به رابط ، به نام دامنه يا آدرس IP عمومي سرور خود كه پس از آن / phpmyadmin در مرورگر وب وجود دارد ، برويد:
https://server_domain_or_IP/phpmyadmin

همانطور كه قبلاً نيز گفته شد ، phpMyAdmin با استفاده از اعتبار MySQL ، احراز هويت را كنترل مي كند ، به اين معني كه شما بايد از همان نام كاربري و رمز عبوري كه معمولاً براي اتصال به بانك اطلاعاتي از طريق كنسول يا از طريق API استفاده مي كنيد ، استفاده نماييد. اگر در ايجاد كاربران MySQL به كمك نياز داريد ، اين راهنما را در مورد نحوه مديريت بانك اطلاعاتي SQL بررسي كنيد.
توجه: ورود به سيستم phpMyAdmin به عنوان كاربر ريشه MySQL توصيه نمي شود زيرا خطرات امنيتي قابل توجهي را به همراه دارد. در مرحله بعدي اين راهنما نحوه غيرفعال كردن ورود به سيستم ريشه را مشاهده خواهيم كرد.
نصب phpMyAdmin شما بايد در اين مرحله كاملاً عملي باشد. اما ، با نصب يك رابط وب ، سرور پايگاه داده MySQL خود را در معرض دنياي خارج قرار مي دهيم. به دليل محبوبيت phpMyAdmin و مقادير زيادي از داده هايي كه ممكن است به آنها دسترسي پيدا كند ، نصب هاي اين چنيني ، اهداف متداول براي حملات هستند. در بخش هاي بعدي اين راهنما ، چند روش مختلف را مشاهده خواهيم كرد كه با استفاده از آن مي توانيم نصب phpMyAdmin را ايمن تر كنيم.
مرحله 2 – تغيير موقعيت پيش فرض phpMyAdmin
يكي از اساسي ترين راه هاي محافظت از نصب phpMyAdmin ، دشوار نمودن دسترسي به آن است. رباتها مسيرهاي متداول مانند phpmyadmin ، pma ، admin ، mysql و مواردي از اين دست را اسكن مي كنند. تغيير آدرس URL رابط از / phpmyadmin به چيزي غير استاندارد ، اسكريپت هاي خودكار را براي پيدا كردن نصب و راه اندازي phpMyAdmin و تلاش براي حملات مخرب را دشوارتر مي كند.
با نصب phpMyAdmin ، پيوندي نمادين ايجاد كرده ايم كه به / usr / share / phpmyadmin اشاره دارد، جايي كه فايل هاي برنامه واقعي قرار دارند. براي تغيير URL رابط phpMyAdmin ، اين پيوند نمادين را تغيير نام خواهيم داد.
ابتدا ، اجازه دهيد به ديركتوري اصلي سند Nginx برويم و ليست فايل هايي كه در آن قرار دارد را فهرست كنيم تا درك بهتري از تغييراتي كه ايجاد خواهيم كرد داشته باشيم:
⦁ $ cd /var/www/html/

⦁ $ ls -l
خروجي زير را دريافت خواهيد كرد:
Output
total 8
-rw-r–r– 1 root root 612 Apr 8 13:30 index.nginx-debian.html
lrwxrwxrwx 1 root root 21 Apr 8 15:36 phpmyadmin -> /usr/share/phpmyadmin

خروجي نشان مي دهد كه ما يك لينك نمادين به نام phpmyadmin در اين ديركتوري داريم. مي توانيم اين نام پيوند را به هر آنچه دوست داريم تغيير دهيم. كه به نوبه خود URL دسترسي phpMyAdmin را تغيير مي دهد ، و مي تواند به پنهان كردن نقطه انتهايي از دسترس رباتهاي رمزگذاري شده براي جستجوي نام نقاط پاياني معمول كمك كند.
نامي را انتخاب كنيد كه هدف نقطه پاياني را مبهم كند. در اين راهنما ، نقطه پاياني را /nothingtosee مي ناميم ، اما شما بايد يك نام جايگزين انتخاب كنيد. براي انجام اين كار ، پيوند را تغيير نام مي دهيم:
⦁ $ sudo mv phpmyadmin nothingtosee

⦁ $ ls -l

پس از اجراي دستورات فوق ، اين خروجي را دريافت خواهيد كرد:
Output
total 8
-rw-r–r– 1 root root 612 Apr 8 13:30 index.nginx-debian.html
lrwxrwxrwx 1 root root 21 Apr 8 15:36 nothingtosee -> /usr/share/phpmyadmin

اكنون ، اگر به URL قديمي برويد ، خطاي 404 را دريافت خواهيد كرد:
https://server_domain_or_IP/phpmyadmin

رابط phpMyAdmin شما اكنون با URL جديدي كه تازه پيكربندي كرده ايم در دسترس خواهد بود:
https://server_domain_or_IP/nothingtosee

با ايجاد موقعيت واقعي phpMyAdmin در سرور ، رابط كاربري آن را در برابر اسكن خودكار و حملات دستي محافظت مي كنيد.
مرحله 3 – غيرفعال كردن ورود به عنوان ريشه
در MySQL و همچنين در سيستم هاي معمول لينوكس ، حساب اصلي يك حساب كاربري ويژه با دسترسي نامحدود به سيستم است. علاوه بر اينكه يك حساب ممتاز است ، يك نام ورود به سيستم شناخته شده است ، و آن را به يك هدف آشكار براي حملات مخرب تبديل مي كند. براي به حداقل رساندن خطرات ، phpMyAdmin را به گونه اي پيكربندي مي كنيم تا هرگونه تلاش براي ورود به سيستم از سوي كاربر ريشه را رد كنيم. به اين ترتيب ، حتي اگر اعتبارات معتبري براي ريشه كاربر ارائه دهيد ، باز هم يك خطاي ” access denied ” دريافت خواهيد كرد و مجاز به ورود به سيستم نخواهيد بود.
از آنجا كه ما براي پيكربندي و ذخيره تنظيمات phpMyAdmin از dbconfig-common استفاده كرديم ، پيكربندي پيش فرض در حال حاضر در بانك اطلاعاتي ذخيره مي شود. براي تعريف تنظيمات سفارشي بايد يك فايل config.inc.php جديد ايجاد كنيم.
حتي اگر فايلهاي PHP براي phpMyAdmin در داخل / usr / share / phpmyadmin قرار داشته باشند ، برنامه از فايلهاي پيكربندي مستقر در / etc / phpmyadmin استفاده مي كند. يك فايل تنظيمات سفارشي جديد را در داخل /etc/phpmyadmin/conf.d ايجاد خواهيم كرد و نام آن را pma_secure.php ميناميم:
⦁ $ sudo nano /etc/phpmyadmin/conf.d/pma_secure.php

فايل پيكربندي زير شامل تنظيمات لازم براي غيرفعال كردن ورودهاي بدون رمز (AllowNoPassword روي false تنظيم شده است) و ورود ريشه به سيستم است (AllowRoot روي false تنظيم شده است):
/etc/phpmyadmin/conf.d/pma_secure.php

# PhpMyAdmin Settings
# This should be set to a random string of at least 32 chars
$cfg[‘blowfish_secret’] = ‘3!#32@3sa(+=_4?),5XP_:U%%834sdfSdg43yH#{o’;

$i=0;
$i++;

$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;
$cfg[‘Servers’][$i][‘AllowNoPassword’] = false;
$cfg[‘Servers’][$i][‘AllowRoot’] = false;

?>

پس از ويرايش فايل ، با فشار دادن CTRL + X سپس y ، تغييرات را تأييد كنيد و ENTER را بزنيد. تغييرات بطور خودكار اعمال مي شوند. اگر اكنون صفحه ورود را مجدد لود كنيد و سعي كنيد به عنوان root وارد شويد ، يك خطاي Access Denied دريافت خواهيد كرد:

اكنون ورود به سيستم به عنوان ريشه در نصب phpMyAdmin شما ممنوع است. اين اقدامات امنيتي باعث مي شود جلوي اسكريپت هاي مخرب در تلاش براي حدس زدن رمزعبور پايگاه داده اصلي روي سرور شما گرفته شود. علاوه بر اين ، استفاده از حسابهاي MySQL با امتيازات كمتر را براي دسترسي به رابط وب phpMyAdmin اعمال مي كند ، كه به خودي خود يك روش مهم امنيتي است.
مرحله 4 – ايجاد يك دروازه احراز هويت
پنهان كردن نصب phpMyAdmin در يك مكان غيرمعمول ممكن است برخي از ربات هاي خودكار را كه در حال اسكن شبكه هستند ، گمراه كند ، اما در برابر حملات هدفمند بي فايده است. براي محافظت بهتر از يك برنامه وب با دسترسي محدود ، به طور كلي متوقف كردن مهاجمان قبل از اينكه حتي بتوانند به برنامه دسترسي پيدا كنند، مفيدتر است. به اين ترتيب ، آنها نمي توانند از سوء استفاده هاي عمومي و حملات مخرب براي حدس زدن اعتبارات دسترسي استفاده كنند.
در مورد خاص phpMyAdmin ، محفوظ نگه داشتن رابط ورود به سيستم حتي مهمتر نيز هست. با در دسترس نگه داشتن آن به صورت جهاني ، يك بستر آماده براي مهاجمين ارائه مي دهيد تا اعتبارات بانك اطلاعاتي شما را حدس بزنند.
افزودن يك لايه اضافي تأييد اعتبار به نصب phpMyAdmin شما را قادر مي سازد امنيت را افزايش دهيد. كاربران بايد قبل از ديدن صفحه ورود به سايت phpMyAdmin از اعلان تأييد هويت HTTP عبور كنند. اكثر سرور هاي وب ، از جمله Nginx ، اين قابليت را به صورت بومي ارائه مي دهند.
براي انجام اين كار ، ابتدا بايد يك فايل رمز عبور براي ذخيره اعتبارات تأييد ايجاد كنيم. Nginx مستلزم رمزگذاري پسوردها با استفاده از تابع crypt () است. مجموعه OpenSSL ، كه بايد از قبل روي سرور شما نصب باشد ، اين قابليت را دارد.
براي ايجاد پسورد رمزگذاري شده ، اين دستور را تايپ كنيد:
⦁ $ openssl passwd

از شما خواسته مي شود رمز عبوري را كه مي خواهيد استفاده كنيد وارد كنيد و آن را تأييد نماييد. سپس اين ابزار نسخه رمزگذاري شده رمزعبور را نمايش مي دهد كه چيزي شبيه به اين خواهد بود:
Output
O5az.RSPzd.HE
اين عبارت را كپي كنيد ، زيرا لازم است كه آن را در فايل تأييد اعتبار مورد استفاده قرار دهيد.
اكنون ، يك فايل تأييد اعتبار ايجاد كنيد. ما اين فايل را pma_pass مي ناميم و آن را در ديركتوري تنظيمات Nginx قرار مي دهيم:
⦁ $ sudo nano /etc/nginx/pma_pass

در اين فايل ، نام كاربري مورد نظر خود را مشخص مي كنيد و به دنبال آن يك كولون (:) و سپس نسخه رمزگذاري شده پسورد را كه از برنامه Openwl passwd دريافت كرده ايد ، قرار دهيد.
ما ميخواهيم نام كاربر خود را Sammy قرار دهيم ، اما شما بايد نام كاربري ديگري را انتخاب كنيد. فايل بايد به صورت زير باشد:
/etc/nginx/pma_pass
sammy:O5az.RSPzd.HE
پس از انجام اين كار ، فايل را ذخيره كنيد و ببنديد.
اكنون ما آماده اصلاح فايل پيكربندي Nginx هستيم. براي اين راهنما ، از فايل پيكربندي واقع در /etc/nginx/sites-available/example.com استفاده خواهيم كرد. شما بايد از فايل پيكربندي مربوط به Nginx براي مكان وب استفاده كنيد كه phpMyAdmin در حال حاضر ميزبان آن است. اين فايل را در ويرايشگر متن خود باز كنيد تا كار را شروع كنيد:
⦁ $ sudo nano /etc/nginx/sites-available/example.com

بلوك سرور و بخش location / را در آن قرار دهيد. براي مطابقت با مسير فعلي phpMyAdmin در سرور ، بايد يك بخش location جديد در اين بلوك ايجاد كنيم. در اين راهنما ، مكان phpMyAdmin نسبت به ريشه وب /nothingtosee است:
/etc/nginx/sites-available/default
server {
. . .

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

location /nothingtosee {
# Settings for phpMyAdmin will go here
}

. . .
}

در اين بلوك ، بايد دو دستورالعمل مختلف را تنظيم كنيم: auth_basic ، كه پيامي را كه در اعلان تأييد نمايش داده مي شود معرفي ميكند، و auth_basic_user_file ، كه به فايلي كه ايجاد كرديم ، اشاره مي كند. فايل پيكربندي شما پس از اتمام اينگونه به نظر مي رسد:
/etc/nginx/sites-available/default
server {
. . .

location /nothingtosee {
auth_basic “Admin Login”;
auth_basic_user_file /etc/nginx/pma_pass;
}

. . .
}

سپس ، فايل را ذخيره كنيد و ببنديد. براي بررسي صحت فايل پيكربندي ، مي توانيد اين دستور را اجرا كنيد:
⦁ $ sudo nginx -t

خروجي زير پيش بيني مي شود:
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

براي فعال كردن دروازه احراز هويت جديد ، بايد سرور وب را مجدد لود كنيد:
⦁ $ sudo systemctl reload nginx

حال اگر از URL phpMyAdmin در مرورگر وب خود بازديد مي كنيد ، نام كاربري و رمز عبوري كه به فايل pma_pass اضافه كرده ايد ، از شما خواسته ميشود:
https://server_domain_or_IP/nothingtosee

هنگامي كه اعتبارات خود را وارد كرديد ، به صفحه استاندارد ورود به سيستم phpMyAdmin منتقل مي شويد.
توجه: اگر ريفرش صفحه كار نمي كند ، ممكن است مجبور شويد حافظه نهان خود را پاك كنيد يا اگر قبلاً از phpMyAdmin استفاده كرده ايد ، از يك مرورگر ديگر استفاده كنيد.
اين دروازه علاوه بر فراهم كردن يك لايه امنيتي بيشتر ، به حفظ فايل هاي MySQL در برابر تلاش براي تأييد اعتبارات Spammy كمك مي كند.
مرحله 5 – تنظيم دسترسي از طريق تونل هاي رمزگذاري شده (اختياري)
براي افزايش امنيت ، ميتوان نصب phpMyAdmin را فقط براي هاست هاي مجاز قفل نكرد. مي توانيد هاست هاي مجاز را در فايل تنظيمات Nginx خود ليست كنيد تا هرگونه درخواست از آدرس IP كه در ليست موجود نيست ، رد شود.
حتي اگر اين ويژگي در برخي موارد استفاده كافي باشد ، هميشه بهترين راه حل طولاني مدتي نيست ، عمدتا به اين دليل كه اكثر افراد از آدرس هاي IP ايستا به اينترنت دسترسي ندارند. به محض دريافت يك آدرس IP جديد از Internet provider خود ، نمي توانيد به رابط phpMyAdmin دسترسي پيدا كنيد تا زماني كه فايل پيكربندي Nginx را با آدرس IP جديد خود به روز كنيد.
براي يك راه حل طولاني مدت قوي تر ، مي توانيد از كنترل دسترسي مبتني بر IP استفاده كنيد تا تنظيماتي را ايجاد كنيد كه در آن كاربران فقط در صورت دسترسي به يك آدرس IP مجاز يا محلي از طريق تونل سازي SSH به رابط phpMyAdmin شما دسترسي داشته باشند. در بخش هاي زير خواهيم ديد كه چگونه اين كار را انجام دهيم.
تركيب كنترل دسترسي مبتني بر IP با تونل SSH امنيت را به شدت افزايش مي دهد زيرا دسترسي از طريق اينترنت عمومي (به جز IP هاي مجاز) را كاملاً مسدود مي كند و علاوه بر اين كانال ايمن بين كاربر و سروراز طريق تونل هاي رمزگذاري شده فراهم ميكند.
تنظيم كنترل دسترسي مبتني بر IP در Nginx
در Nginx ، كنترل دسترسي مبتني بر IP را مي توان در بلوك location مربوطه يك سايت معين ، با استفاده از بخشنامه هاي allow و deny تعريف كرد. به عنوان مثال ، اگر فقط مي خواهيم درخواست هايي را از يك هاست معين دريافت كنيم ، بايد دو خط زير را در اين قسمت ، داخل بلوك location مربوطه براي سايت قرار دهيم كه مي خواهيم از آن محافظت كنيم:
allow hostname_or_IP;
deny all;

شما مي توانيد هر تعداد هاست كه مي خواهيد اجازه دهيد ، فقط بايد يك خط allow براي هر هاست / IP مجاز در داخل بلوك location مربوطه براي سايتي كه از آن محافظت مي كنيد درج كنيد. دستورالعملها به همان ترتيبي كه ذكر شده اند ارزيابي مي شوند ، تا زماني كه تطابق پيدا شود يا درخواست به دليل deny all رد شود.
اكنون Nginx را پيكربندي خواهيم كرد تا فقط به درخواستهايي كه از localhost يا آدرس IP فعلي شما آمده اند اجازه ورود دهيم. ابتدا ، بايد آدرس IP فعلي عمومي را كه دستگاه محلي شما براي اتصال به اينترنت استفاده مي كند ، بدانيد. روش هاي مختلفي براي به دست آوردن اين اطلاعات وجود دارد. براي سادگي ، مي خواهيم از خدمات ارائه شده توسط ipinfo.io استفاده كنيم. مي توانيد URL https://ipinfo.io/ip را در مرورگر خود باز كنيد ، يا دستور زير را از دستگاه محلي خود اجرا كنيد:
⦁ $ curl https://ipinfo.io/ip

بايد يك آدرس IP ساده به عنوان خروجي دريافت كنيد ، مانند اين:
Output
203.0.113.111

اين آدرس IP عمومي فعلي شما است. ما بلوك موقعيت مكاني phpMyAdmin را پيكربندي خواهيم كرد تا فقط به درخواستهايي كه از آن IP مي آيند ، علاوه بر localhost ، اجازه دهيم. بايد بار ديگر پيكربندي phpMyAdmin را در داخل /etc/nginx/sites-available/example.com ويرايش كنيم.
فايل پيكربندي Nginx را با استفاده از ويرايشگر خط فرمان مورد نظر خود باز كنيد:
⦁ $ sudo nano /etc/nginx/sites-available/example.com

از آنجا كه از قبل يك قانون دسترسي در پيكربندي فعلي خود داريم ، بايد آن را با كنترل دسترسي مبتني بر IP تركيب كنيم و از دستور satisfy all استفاده نماييم. به اين ترتيب ، مي توانيم تأييد هويت فعلي HTTP را براي افزايش امنيت سريع انجام دهيم.
به اين ترتيب پيكربندي phpMyAdmin Nginx شما پس از انجام ويرايش اينگونه به نظر مي رسد:
/etc/nginx/sites-available/example.com
server {
. . .

location /nothingtosee {
satisfy all; #requires both conditions

allow 203.0.113.111; #allow your IP
allow 127.0.0.1; #allow localhost via SSH tunnels
deny all; #deny all other sources

auth_basic “Admin Login”;
auth_basic_user_file /etc/nginx/pma_pass;
}

. . .
}

به ياد داشته باشيد كه nothingtosee را با مسير واقعي جايي كه phpMyAdmin در آن قرار دارد ، و آدرس IP هايلايت شده را با آدرس IP عمومي فعلي خود جايگزين كنيد.
هنگام كار ، فايل را ذخيره كنيد و ببنديد. براي بررسي صحت فايل پيكربندي ، مي توانيد اين دستور را اجرا كنيد:
⦁ $ sudo nginx -t

خروجي زير پيش بيني مي شود:
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

اكنون سرور وب را مجدد لود كنيد تا تغييرات اعمال شوند:
⦁ $ sudo systemctl reload nginx

از آنجا كه آدرس IP شما صريحاً به عنوان هاست مجاز ذكر شده است ، دسترسي شما نبايد مختل شود. هر كس ديگري كه سعي در دسترسي به نصب phpMyAdmin داشته باشد، يك خطاي 403 (ممنوعه) دريافت ميكند:
https://server_domain_or_IP/nothingtosee

در بخش بعدي ، نحوه استفاده از تونل SSH براي دسترسي به سرور وب را از طريق درخواست هاي محلي خواهيم ديد. به اين ترتيب ، شما حتي مي توانيد آدرس IP خود را تغيير دهيد و به رابط phpMyAdmin دسترسي پيدا كنيد.
دسترسي به phpMyAdmin از طريق يك تونل رمزگذاري شده
تونل زني SSH به عنوان روشي جهت هدايت ترافيك شبكه از طريق كانال هاي رمزگذاري شده كار مي كند. با اجراي يك دستور ssh مشابه آنچه براي ورود به سرور استفاده مي كنيد ، مي توانيد يك “تونل” ايمن بين دستگاه محلي و آن سرور ايجاد كنيد. همه ترافيك هايي كه وارد يك پورت محلي خاص ميشوند، مي توانند از طريق تونل رمزگذاري شده هدايت شوند و قبل از دسترسي به اينترنت ، از سرور راه دور به عنوان يك پروكسي استفاده كنند. مشابه چيزي است كه هنگام استفاده از VPN (شبكه خصوصي مجازي) اتفاق مي افتد ، با اين حال تنظيم تونل SSH بسيار ساده تر است.
ما از تونل سازي SSH استفاده خواهيم كرد تا درخواستهاي خود را به سرور وب از راه دور كه phpMyAdmin را اجرا مي كند ، پروكسي كنيم. با ايجاد يك تونل بين دستگاه محلي و سرور كه phpMyAdmin در آن نصب شده است ، مي توانيد درخواست هاي محلي را به سرور وب از راه دور هدايت كنيد ، و مهمتر از همه ، ترافيك رمزگذاري مي شود و درخواست ها به Nginx مي رسند انگار كه از localhost مي آيند. به اين ترتيب ، مهم نيست كه از چه آدرس IP به آن وصل شويد ، مي توانيد به طور ايمن به رابط phpMyAdmin دسترسي پيدا كنيد.
از آنجا كه ترافيك بين دستگاه محلي شما و سرور وب از راه دور رمزگذاري مي شود ، اين گزينه جايگزين مناسبي براي موقعيت هايي است كه نمي توانيد گواهي SSL / TLS را در سرور وبي نصب كنيد كه داراي phpMyAdmin است.
از دستگاه محلي خود ، اين دستور را هر زمان كه نياز به دسترسي به phpMyAdmin داشتيد، اجرا كنيد:
بگذاريد هر بخش از دستور را بررسي كنيم:
⦁ ssh user@server_domain_or_IP -L 8000:localhost:80 -L 8443:localhost:443 -N

⦁ user: كاربر SSH براي اتصال به سرور ي كه phpMyAdmin در آن كار مي كند
⦁ hostname_or_IP: هاست SSH كه phpMyAdmin در آن اجرا مي شود
⦁ -L 8000: localhost: 80 مسير HTTP را در پورت 8000 تغيير مسير مي دهد
⦁ -L 8443: localhost: 443 مسير ترافيك HTTPS در پورت 8443 را تغيير ميدهد
⦁ -N: دستورات از راه دور را اجرا نمي كند
توجه: اين دستور تا زماني كه با CTRL + C قطع نشود ، ترمينال را مسدود مي كند ، در اين صورت اتصال SSH پايان مي يابد و تغيير مسير بسته را متوقف مي كند. اگر ترجيح مي دهيد اين دستور را در حالت پس زمينه اجرا كنيد ، مي توانيد از گزينه –f SSH استفاده كنيد.

اكنون به مرورگر خود برويد و server_domain_or_IP را با localhost:PORT جايگزين كنيد، جايي كه PORT براي HTTP ، 8000 و براي HTTPS، 8443 است:
http://localhost:8000/nothingtosee
https://localhost:443/nothingtosee

توجه: اگر از طريق https به phpMyAdmin دسترسي داريد ، ممكن است يك پيام هشدار دريافت كنيد كه امنيت گواهي SSL را سؤال مي كند. اين اتفاق به اين دليل است كه نام دامنه اي كه شما در آن استفاده مي كنيد (localhost) با آدرس ثبت شده در گواهي نامه (دامنه اي كه phpMyAdmin در واقع در آن ارائه مي شود) مطابقت ندارد. در اين صورت ادامه كار بي خطر خواهد بود.

اكنون همه درخواست هاي localhost: 8000 (HTTP) و localhost: 8443 (HTTPS) از طريق يك تونل امن به برنامه راه دور phpMyAdmin خود هدايت مي شوند. نه تنها با غيرفعال كردن دسترسي عمومي به phpMyAdmin ، امنيت را افزايش داده ايد ، بلكه با استفاده از يك تونل رمزگذاري شده براي ارسال و دريافت داده ، از تمام ترافيك بين رايانه محلي و سرور از راه دور نيز محافظت مي كنيد.
اگر مي خواهيد استفاده از تونل زني SSH را براي هركسي كه مي خواهد به رابط phpMyAdmin شما (از جمله خودتان) دسترسي داشته باشد ، اعمال كنيد ، مي توانيد با حذف ساير IPهاي مجاز ديگر از فايل پيكربندي Nginx اين كار را انجام دهيد و 127.0.0.1 را به عنوان تنها هاست مجاز براي دسترسي به آن لوكيشن در نظر بگيريد. با توجه به اينكه هيچ كس قادر به درخواست مستقيم به phpMyAdmin نيست ، مي توانيد تأييد هويت HTTP را براي ساده سازي ستاپ خود حذف كنيد. فايل پيكربندي شما در چنين سناريويي اين گونه خواهد بود:
/etc/nginx/sites-available/example.com
server {
. . .

location /nothingtosee {
allow 127.0.0.1; #allow localhost only
deny all; #deny all other sources
}

. . .
}

هنگامي كه پيكربندي Nginx را با sudo systemctl reload nginx مجدد لود كنيد ، نصب phpMyAdmin شما قفل مي شود و كاربران براي دسترسي به رابط phpMyAdmin از طريق درخواست هاي هدايت شده ، بايد از تونل هاي SSH استفاده كنند.
نتيجه
در اين آموزش ، ما شاهد نحوه نصب phpMyAdmin در Ubuntu 18.04 در حال اجراي Nginx به عنوان سرور وب بوديم. همچنين روشهاي پيشرفته اي را براي تأمين امنيت نصب phpMyAdmin در اوبونتو ، مانند غيرفعال كردن ورود كاربر ريشه به سيستم ، ايجاد يك لايه بيشتر تأييد اعتبار ، و استفاده از تونل SSH براي دسترسي به نصب phpMyAdmin فقط از طريق درخواست هاي محلي را پوشش داده ايم.
پس از اتمام اين آموزش ، بايد بتوانيد پايگاه داده MySQL خود را از يك رابط وب ايمن مديريت كنيد. اين رابط كاربري بيشتر عملكردهاي موجود از طريق خط فرمان MySQL را در معرض ديد شما قرار مي دهد. مي توانيد پايگاه هاي داده و شماتيك را بررسي كنيد ، پرس و جوها را اجرا كنيد و مجموعه ها و ساختارهاي جديد داده ايجاد كنيد.

 

 

 

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

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

نحوه راه اندازي يك پروژه React با برنامه React – نصب و ايمن سازي phpMyAdmin در اوبونتو 18

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

نصب MariaDB در اوبونتو 18.04  –  ايمن كردن Apache با Let’s Encrypt در Debian 10

نحوه نصب Node.js در CentOS 8  –  بازنويسي URL را با mod_rewrite براي Apache در Debian 10

راه اندازي فايروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10

اضافه كردن و حذف كاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10

نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازي سرور اوليه با Debian 10

نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعي ايجاد كنيم

نصب و پيكربندي VNC در Debian 10  –  استفاده از سرور از راه دور Docker

نصب و ايمن سازي Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8

نصب Git در Debian 10 –  نصب و پيكربندي Zabbix براي رديابي ايمن سرورهاي

نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7

نحوه نصب Webmin در Debian 10  –  نصب و پيكربندي Zabbix براي رديابي ايمن سرور

نصب وردپرس با بانك اطلاعاتي در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB

نصب پايتون 3 و تنظيم نويسي محلي maغير مجاز مي باشد  – نصب و ايمن سازي phpMyAdmin با Nginx در سرور

نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظيم يك محيط برنامه نويسي

نحوه نصب R بر روي Debian 10  –  راه اندازي سرور Prisma روي اوبونتو 18.04

نصب و پيكربندي Laravel با LEMP در اوبونتو 18  –  نصب و پيكربندي pgAdmin 4 در Server Mode

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

 

 

كلمات كليدي خريد سرور

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

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۰ ارديبهشت ۱۳۹۹ساعت: ۱۱:۴۲:۴۵ توسط:behnam موضوع:

نصب Python 3 و تنظيم يك محيط برنامه نويسي

پايتون يك زبان برنامه نويسي انعطاف پذير و همه كاره است كه مي تواند در بسياري از موارد به خاطر داشتن نقاط قوت در اسكريپت ، اتوماسيون ، تجزيه و تحليل داده ها ، يادگيري ماشين و توسعه back-end مورد استفاده قرار گيرد. تيم توسعه پايتون براي اولين بار در سال 1991 با نامي الهام گرفته از گروه طنز بريتانيايي مونتي پايتون، آن را منتشر كردند و ميخواستند پايتون را به زباني تبديل كنند كه استفاده از آن بسيار جالب باشد. ستاپ سريع و سبك نسبتاً ساده و بازخورد فوري در مورد خطاها، پايتون را به يك انتخاب عالي براي مبتديان و توسعه دهندگان با تجربه تبديل كرده است. پايتون 3 جديدترين نسخه اين زبان است و آينده پايتون به حساب مي آيد.
در اين آموزش سرور مجازي Ubuntu 18.04 شما با يك محيط برنامه نويسي Python 3 تنظيم مي شود. برنامه نويسي روي سرور مجازي مزاياي بسياري دارد و از همكاري در پروژه هاي توسعه پشتيباني مي كند. اصول كلي اين آموزش در مورد هرگونه توزيع Debian Linux كاربرد دارد.
پيش نيازها
براي تكميل اين آموزش ، بايد يك كاربر غير root با امتيازات sudo در سرور مجازي Ubuntu 18.04 داشته باشيد. براي يادگيري چگونگي دستيابي به اين تنظيمات ، راهنماي راه اندازي سرور مجازي اوليه ما را دنبال كنيد يا اسكريپت خودكار خود را اجرا كنيد.
اگر از قبل با محيط ترمينال آشنايي نداريد ، مي توانيد مقاله “مقدمه اي بر ترمينال لينوكس” را براي كاركردن بهتر با ترمينال بخوانيد.
با راه اندازي سرور مجازي و كاربر ، آماده شروع كار هستيد.
مرحله 1 – تنظيم پايتون 3
اوبونتو 18.04 و ساير نسخه هاي دبيان لينوكس هم Python 3 و هم Python 2 را از قبل نصب شده دارند. براي اطمينان از به روز بودن نسخه هاي خود ، بياييد سيستم را با دستور apt به روزرساني كنيم تا با ابزار بسته بندي پيشرفته اوبونتو كار كند:
$ sudo apt update

$ sudo apt -y upgrade
پرچم -y تأييد خواهد كرد كه ما موافق نصب همه موارد هستيم ، اما بسته به نسخه لينوكس شما ، ممكن است لازم باشد كه در به روزرساني و ارتقاي سيستم ، اعلان هاي بيشتري را تأييد كنيد.
پس از اتمام روند ، مي توانيم با تايپ كردن دستور زير، نسخه پايتون 3 كه در سيستم نصب شده است را بررسي كنيم:
$ python3 -V

در پنجره ترمينال، خروجي دريافت خواهيد كرد كه شماره نسخه را به شما اطلاع مي دهد. در حالي كه ممكن است اين عدد متفاوت باشد ، خروجي مشابه اين خواهد بود:
Output
Python 3.6.7

براي مديريت بسته هاي نرم افزاري براي پايتون ، بياييد pip را نصب كنيم ، ابزاري كه بسته هاي برنامه نويسي را كه ممكن است بخواهيم در پروژه هاي توسعه خود استفاده كنيم ، نصب و مديريت خواهد كرد. مي توانيد با خواندن مقاله “چگونگي وارد كردن ماژول ها در پايتون 3” در مورد ماژول ها يا بسته هايي كه مي توانيد آنها را نصب كنيد اطلاعات كسب كنيد.
$ sudo apt install -y python3-pip

بسته هاي پايتون با تايپ دستور زير قابل نصب هستند:
$ pip3 install package_name

در اينجا ، pack_name مي تواند به هر بسته يا كتابخانه Python مانند Django براي توسعه وب يا NumPy براي محاسبات علمي مراجعه كند. بنابراين اگر مي خواهيد NumPy را نصب كنيد ، مي توانيد با دستور pip3 install numpy اين كار را انجام دهيد.
چند بسته و ابزار توسعه ديگر وجود دارد كه بايد اطمينان حاصل شود كه يك مجموعه قوي براي محيط برنامه نويسي خود داريم:
$ sudo apt install build-essential libssl-dev libffi-dev python3-dev

پس از راه اندازي پايتون و نصب pip و ساير ابزارها ، مي توانيم يك محيط مجازي براي پروژه هاي توسعه خود تنظيم كنيم.
مرحله 2 – تنظيم يك محيط مجازي
محيط هاي مجازي شما را قادر مي سازد براي پروژه هاي پايتون فضايي مجزا در سرور مجازي خود داشته باشيد ، اطمينان حاصل كنيد كه هر يك از پروژه هاي شما مي توانند مجموعه اي از متعلقات خاص خود را داشته باشند كه هيچ يك از پروژه هاي ديگر شما را مختل نمي كند.
تنظيم يك محيط برنامه نويسي ، كنترل بيشتري بر روي پروژه هاي Python و نحوه دستيابي به نسخه هاي مختلف بسته ها براي ما فراهم مي كند. اين امر به ويژه هنگام كار با بسته هاي شخص ثالث بسيار مهم است.
مي توانيد همانطور كه مي خواهيد محيط برنامه نويسي Python را تنظيم كنيد. هر محيط در واقع يك ديركتوري يا پوشه اي در سرور مجازي شماست كه چندين اسكريپت در آن وجود دارد تا بتواند به عنوان يك محيط عمل كند.
در حالي كه چند روش براي دستيابي به يك محيط برنامه نويسي در پايتون وجود دارد ، ما در اينجا از ماژول venv استفاده مي كنيم كه بخشي از كتابخانه استاندارد Python 3 است. بگذاريد venv را با تايپ كردن دستور زير نصب كنيم:
$ sudo apt install -y python3-venv

با نصب آن، آماده ايجاد محيط هستيم. بياييد انتخاب كنيم كه مي خواهيم محيط هاي برنامه نويسي پايتون را در كدام دايركتوري قرار دهيم ، يا يك ديركتوري جديد با mkdir ايجاد كنيم ، مانند:
$ mkdir environments

$ cd environments
وقتي در دايركتوري قرار گرفتيد كه ميخواهيد محيط در آنجا قرار گيرد ، مي توانيد با اجراي دستور زير محيطي ايجاد كنيد:
$ python3.6 -m venv my_env

در اصل ، pyvenv يك ديركتوري جديد ايجاد مي كند كه شامل چند مورد است كه مي توانيم با دستور ls آنها را مشاهده كنيم:
$ ls my_env

Output
bin include lib lib64 pyvenv.cfg share

اين فايلها با هم كار مي كنند تا اطمينان حاصل كنند كه پروژه هاي شما از بستر وسيع تر دستگاه محلي تان جدا شده اند ، به گونه اي كه فايل هاي سيستم و فايل هاي پروژه مخلوط نشوند. اين روش خوبي براي كنترل نسخه و اطمينان از دسترسي هر يك از پروژه هاي شما به بسته هاي خاص مورد نياز خود است. Python Wheels ، يك فرمت بسته اي ساخته شده براي Python است كه مي تواند با كاهش تعداد دفعات لازم براي تهيه كامپايل ، سرعت توليد نرم افزار شما را بالا ببرد و در دايركتوري share Ubuntu 18.04 قرار خواهد گرفت.
براي استفاده از اين محيط ، بايد آن را فعال كنيد ، كه مي توانيد با تايپ دستور زير كه اسكريپت فعال سازي را فراخواني مي كند به آن دست پيدا كنيد:
$ source my_env/bin/activate

خط فرمان شما اكنون با نام محيط شما پيشوند داده مي شود ، در اين حالت my_env نام دارد. بسته به اينكه كدام نسخه Debian Linux در حال اجرا است ، پيشوند شما ممكن است تا حدودي متفاوت به نظر برسد ، اما نام محيط شما در پرانتز بايد اولين چيزي باشد كه در خط خود مشاهده مي كنيد:
(my_env) Sammy@ubuntu:~/environments$
اين پيشوند به ما اطلاع مي دهد كه محيط my_env در حال حاضر فعال است ، به اين معني كه وقتي ما در اينجا برنامه هايي را ايجاد مي كنيم آنها فقط از تنظيمات و بسته هاي خاص اين محيط استفاده مي كنند.
توجه: در محيط مجازي مي توانيد به جاي python3 از فرمان python استفاده كنيد و در صورت تمايل به جاي pip3 از pip استفاده كنيد. اگر در خارج از محيط از پايتون 3 در دستگاه خود استفاده مي كنيد ، لازم است كه از دستورات python3 و pip3 استفاده كنيد.

بعد از طي كردن اين مراحل ، محيط مجازي شما آماده استفاده است.
مرحله 3 – ايجاد يك برنامه ” hello, world”
اكنون كه محيط مجازي ما تنظيم شده است ، بياييد يك برنامه ” hello, world!” معمول ايجاد كنيم. اين برنامه به ما امكان مي دهد تا محيط خود را مورد آزمايش قرار دهيم و اگر قبلاً با پايتون كار نكرده ايم، بيشتر با آن آشنا شويم.
براي اين كار ، يك ويرايشگر متن خط فرمان مانند nano را باز خواهيم كرد و يك فايل جديد ايجاد مي كنيم:
(my_env) Sammy@ubuntu:~/environments$ nano hello.py

پس از باز شدن فايل متني در پنجره ترمينال ، برنامه خود را تايپ مي كنيم:
print(“Hello, World!”)
Copy
با تايپ كليدهاي CTRL و X از nano خارج شويد و هنگامي كه از شما خواسته شد فايل را ذخيره كنيد، y را فشار دهيد.
پس از بيرون آمدن از nano و بازگشت به پوسته خود ، اجازه دهيد برنامه را اجرا كنيم:
(my_env) Sammy@ubuntu:~/environments$ python hello.py

برنامه hello.py كه به تازگي ايجاد كرده ايد بايد باعث شود ترمينال شما خروجي زير را توليد كند:
Output
Hello, World!

براي ترك محيط ، به سادگي فرمان deactivate را تايپ كنيد و به فهرست اصلي خود باز خواهيد گشت.
نتيجه
در اين مرحله شما يك محيط برنامه نويسي پايتون 3 در سرور مجازي Debian Linux خود تنظيم كرده ايد و هم اكنون مي توانيد يك پروژه رمزگذاري را شروع كنيد!
اگر از دستگاه محلي به جاي سرور مجازي استفاده مي كنيد ، به مجموعه آموزشهاي مربوط به سيستم عامل خود در سري “نحوه نصب و تنظيم يك محيط برنامه نويسي محلي براي پايتون 3” مراجعه كنيد.
با آماده سازي سرور مجازي خود براي توسعه نرم افزار ، مي توانيد با خواندن كتاب رايگان نحوه كدنويسي در Python 3 ، يا مشاوره گرفتن از آموزش هاي پروژه برنامه نويسي ما ، اطلاعات بيشتري درباره كد نويسي در پايتون كسب كنيد.

 

 

 

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

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

نحوه راه اندازي يك پروژه React با برنامه React – نصب و ايمن سازي phpMyAdmin در اوبونتو 18

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

نصب MariaDB در اوبونتو 18.04  –  ايمن كردن Apache با Let’s Encrypt در Debian 10

نحوه نصب Node.js در CentOS 8  –  بازنويسي URL را با mod_rewrite براي Apache در Debian 10

راه اندازي فايروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10

اضافه كردن و حذف كاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10

نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازي سرور اوليه با Debian 10

نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعي ايجاد كنيم

نصب و پيكربندي VNC در Debian 10  –  استفاده از سرور از راه دور Docker

نصب و ايمن سازي Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8

نصب Git در Debian 10 –  نصب و پيكربندي Zabbix براي رديابي ايمن سرورهاي

نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7

نحوه نصب Webmin در Debian 10  –  نصب و پيكربندي Zabbix براي رديابي ايمن سرور

نصب وردپرس با بانك اطلاعاتي در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB

نصب پايتون 3 و تنظيم نويسي محلي maغير مجاز مي باشد  – نصب و ايمن سازي phpMyAdmin با Nginx در سرور

نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظيم يك محيط برنامه نويسي

نحوه نصب R بر روي Debian 10  –  راه اندازي سرور Prisma روي اوبونتو 18.04

نصب و پيكربندي Laravel با LEMP در اوبونتو 18  –  نصب و پيكربندي pgAdmin 4 در Server Mode

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

 

 

كلمات كليدي خريد سرور

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

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۰ ارديبهشت ۱۳۹۹ساعت: ۱۱:۴۰:۴۴ توسط:behnam موضوع:

نصب و پيكربندي pgAdmin 4 در Server Mode

يك پلتفرم توسعه و اجراي منبع باز براي PostgreSQL و سيستم هاي مديريت پايگاه داده مرتبط با آن است. از آنجا كه در Python و jQuery نوشته شده، تمام ويژگي هاي موجود در PostgreSQL را پشتيباني مي كند. مي توانيد از pgAdmin براي انجام همه كارها از نوشتن پرس و جوهاي SQL پايه گرفته تا نظارت بر پايگاه هاي داده خود و پيكربندي معماري هاي پيشرفته پايگاه داده استفاده كنيد.
در اين آموزش ، مراحل نصب و پيكربندي آخرين نسخه pgAdmin را روي يك سرور مجازي Ubuntu 18.04 ، دسترسي به pgAdmin از طريق يك مرورگر وب ، و اتصال آن به يك پايگاه داده PostgreSQL در سرور مجازي شما را بررسي خواهيم كرد.
پيش نيازها
براي تكميل اين آموزش ، به موارد زير نياز داريد:
• سرور مجازي ي كه اوبونتو 18.04 را اجرا مي كند. اين سرور مجازي بايد داراي يك كاربر غير ريشه با امتيازات sudo و همچنين فايروال تنظيم شده با ufw داشته باشد. براي راهنمايي در مورد اين تنظيمات ، راهنماي اوليه راه اندازي سرور مجازي ما براي اوبونتو 18.04 را دنبال كنيد.
• سرور مجازي وب Apache كه بر روي سرور مجازي شما نصب شده باشد. براي پيكربندي اين روي ماشين خود، راهنماي ما در مورد نحوه نصب وب سرور مجازي Apache در Ubuntu 18.04 را دنبال كنيد.
• PostgreSQL كه بر روي سرور مجازي شما نصب شده باشد. با دنبال كردن راهنماي ما در مورد نحوه نصب و استفاده از PostgreSQL در اوبونتو 18.04 مي توانيد اين تنظيمات را انجام دهيد. همانطور كه اين راهنما را دنبال مي كنيد ، حتماً يك نقش جديد و بانك اطلاعاتي ايجاد كنيد ، زيرا براي اتصال pgAdmin به نمونه PostgreSQL خود به هر دو نياز خواهيد داشت.
• Python 3 و venv كه بر روي سرور مجازي شما نصب شده باشد. براي نصب اين ابزارها و تنظيم يك محيط مجازي ، نحوه نصب Python 3 و تنظيم يك محيط برنامه نويسي روي يك سرور مجازي Ubuntu 18.04 را دنبال كنيد.
مرحله 1 – نصب pgAdmin و متعلقات آن
د زمان نوشتن اين مقاله ، جديدترين نسخه pgAdmin ،pgAdmin 4 است ، در حالي كه جديدترين نسخه موجود در مخازن رسمي اوبونتو pgAdmin3 است. ما مراحل نصب آخرين نسخه pgAdmin 4 را در يك محيط مجازي (همانطور كه توسط تيم توسعه پروژه توصيه مي شود) انجام خواهيم داد و متعلقات آن را با استفاده از apt نصب مي كنيم.
براي شروع ، اگر اخيراً اين كار را نكرده ايد ، فهرست بسته سرور مجازي خود را به روز كنيد:
⦁ $ sudo apt update

در مرحله بعد ، متعلقات زير را نصب كنيد. اينها شامل libgmp3-dev ، يك كتابخانه محاسباتي دقيق، libpq-dev شامل فايل هاي هدر و يك كتابخانه ثابت هستند كه به ارتباط با پس زمينه PostgreSQL كمك مي كند. و libapache2-mod-wsgi-py3 ، يك ماژول Apache كه به شما امكان مي دهد ميزبان برنامه هاي وب مستقر در پايتون در Apache باشيد:
پس از اين ، چند دايركتوري ايجاد كنيد كه pgAdmin داده هاي بخش هاي خود ، داده هاي ذخيره و ورود ها را ذخيره كند:
⦁ $ sudo mkdir -p /var/lib/pgadmin4/sessions

⦁ $ sudo mkdir /var/lib/pgadmin4/storage

⦁ $ sudo mkdir /var/log/pgadmin4

سپس ، مالكيت اين دايركتوري ها را به كاربر و گروه غير ريشه خود تغيير دهيد. اين امر از اين منظر ضروري است كه آنها در حال حاضر متعلق به كاربر ريشه شما هستند ، اما ما pgAdmin را از يك محيط مجازي متعلق به كاربر غير ريشه شما نصب خواهيم كرد و مراحل نصب شامل ايجاد برخي فايل ها در اين ديركتوري ها است. با اين وجود ، پس از نصب ، ما مالكيت را به كاربر و گروه www-data تغيير مي دهيم تا بتواند به وب ارائه شود:
⦁ $ sudo chown -R sammy:sammy /var/lib/pgadmin4

⦁ $ sudo chown -R sammy:sammy /var/log/pgadmin4

سپس ، محيط مجازي خود را باز كنيد. به ديركتوري برويد كه محيط برنامه نويسي شما در آن قرار دارد و آن را فعال كنيد. پس از كنوانسيون هاي نامگذاري آموزش پيش نياز پايتون 3 ، به ديركتوري environments رفته و محيط my_env را فعال مي كنيم:
⦁ $ cd environments/

⦁ $ source my_env/bin/activate

پس از اين ، كد منبع pgAdmin 4 را روي دستگاه خود دانلود كنيد. براي يافتن آخرين نسخه از كد منبع ، به صفحه دانلود pgAdmin 4 (Python Wheel) برويد و روي آخرين نسخه (v3.4 ، مطابق با اين نوشتار) كليك كنيد. اين كار شما را به يك صفحه دانلود در وب سايت PostgreSQL مي برد. پس از آن ، پيوند فايلي را كه به .whl ختم مي شود ، كپي كنيد – قالب استاندارد بسته ساخته شده است كه براي توزيع هاي پايتون ميشود. سپس به ترمينال خود برگرديد و دستور wget زير را اجرا كنيد ، تا مطمئن شويد كه پيوند را با پيوندي كه از سايت PostgreSQL كپي كرديد ، جايگزين كرده ايد تا فايل. WHL را روي سرور مجازي شما دانلود كند:
⦁ (my_env) Sammy@server:~$ wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v3.4/pip/pgadmin4-3.4-py2.py3-none-any.whl

سپس بسته wheel ، اجراي مرجع استاندارد بسته بندي wheel را نصب كنيد. اين پكيج ، يك كتابخانه Python را به عنوان افزونه اي براي wheel هاي ساخته شده ارائه ميدهد و شامل يك ابزار خط فرمان براي كار با فايل هاي .whl است:
⦁ (my_env) Sammy@server:~$ python -m pip install wheel

سپس بسته pgAdmin 4 را با دستور زير نصب كنيد:
⦁ (my_env) Sammy@server:~$ python -m pip install pgadmin4-3.4-py2.py3-none-any.whl

اين از نصب pgAdmin و متعلقات آن مراقبت ميكند. با اين وجود قبل از اتصال آن به پايگاه داده خود ، چند تغيير وجود دارد كه بايد در پيكربندي برنامه انجام دهيد.
مرحله 2 – پيكربندي pgAdmin 4
اگرچه pgAdmin روي سرور مجازي شما نصب شده است ، اما هنوز چند مرحله براي اطمينان از داشتن مجوزها و تنظيمات لازم جهت استفاده صحيح از رابط وب ، وجود دارد.
فايل پيكربندي اصلي pgAdmin ، config.py ، قبل از هر فايل پيكربندي ديگر خوانده مي شود. از محتويات آن مي توان به عنوان يك مرجع براي تنظيمات پيكربندي بيشتر استفاده كرد كه مي تواند در ساير فايل هاي پيكربندي pgAdmin مشخص شود ، اما براي جلوگيري از خطاهاي پيش بيني نشده ، نبايد خود فايل config.py را ويرايش كنيد. ما چند تغيير به فايل جديد به نام config_local.py اضافه خواهيم كرد كه پس از فايل اصلي خوانده مي شود.
اكنون اين فايل را با استفاده از ويرايشگر متن مورد نظر خود ايجاد كنيد. در اينجا ، ما از nano استفاده خواهيم كرد:
⦁ (my_env) Sammy@server:~$ nano my_env/lib/python3.6/site-packages/pgadmin4/config_local.py

در ويرايشگر خود ، محتواي زير را اضافه كنيد:
environments/my_env/lib/python3.6/site-packages/pgadmin4/config_local.py
LOG_FILE = ‘/var/log/pgadmin4/pgadmin4.log’
SQLITE_PATH = ‘/var/lib/pgadmin4/pgadmin4.db’
SESSION_DB_PATH = ‘/var/lib/pgadmin4/sessions’
STORAGE_DIR = ‘/var/lib/pgadmin4/storage’
SERVER_MODE = True

در اينجا كاري كه اين پنج دستورالعمل انجام ميدهند آمده است:
⦁ LOG_FILE: فايلي را كه در آن ورودهاي pgAdmin ذخيره مي شود ، تعريف مي كند.
⦁ SQLITE_PATH: pgAdmin داده هاي مربوط به كاربر را در يك پايگاه داده SQLite ذخيره مي كند ، و اين دستورالعمل نرم افزار pgAdmin را به اين پايگاه داده ارجاع ميدهد. از آنجا كه اين فايل در ديركتوري / var / lib / pgadmin4 / قرار دارد ، پس از به روزرساني اطلاعات كاربر شما از بين نمي رود.
⦁ SESSION_DB_PATH: مشخص مي كند كه كدام دايركتوري براي ذخيره داده هاي بخش استفاده خواهد شد.
⦁ STORAGE_DIR: مشخص مي كند كه pgAdmin داده هاي ديگر مانند پشتيبان گيري و مجوزهاي امنيتي را ذخيره مي كند.
⦁ SERVER_MODE: تنظيم اين دستورالعمل روي True به pgAdmin مي گويد كه در حالت سرور مجازي اجرا شود ، بر خلاف حالت دسكتاپ.
توجه كنيد كه هر يك از اين مسيرهاي فايل به دايركتوري هايي كه در مرحله 1 ايجاد كرده ايد ، اشاره مي كنند.
پس از افزودن اين خطوط ، فايل را ذخيره كرده و ببنديد (CTRL + X را فشار داده و سپس Y و ENTER را فشار دهيد). با استفاده از اين تنظيمات ، اسكريپت تنظيم pgAdmin را اجرا كنيد تا اعتبار ورود به سيستم را تنظيم كنيد:
⦁ (my_env) Sammy@server:~$ python my_env/lib/python3.6/site-packages/pgadmin4/setup.py

پس از اجراي اين دستور ، اعلاني را مشاهده مي كنيد كه آدرس ايميل و رمز عبور شما را درخواست مي كند. وقتي بعدا به pgAdmin دسترسي پيدا كنيد ، اين مقادير به عنوان اعتبارات ورود به سيستم شما استفاده مي شوند ، بنابراين حتماً آنچه را كه در اينجا وارد مي كنيد به خاطر داشته باشيد يا يادداشت كنيد:
Output
. . .
Enter the email address and password to use for the initial pgAdmin user account:

Email address: sammy@example.com
Password:
Retype password:

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

مسيرهاي فايلي را كه در فايل config_local.py مشخص كرده ايد به ياد بياوريد. اين فايل ها درون دايركتوري هايي كه در مرحله 1 ايجاد كرديد نگهداري مي شوند ، كه در حال حاضر متعلق به كاربر غير ريشه شما هستند. با اين حال ، بايد توسط كاربر و گروهي كه سرور مجازي وب شما را اجرا مي كند ، در دسترس باشند. به طور پيش فرض در اوبونتو 18.04 ، اين ها كاربر و گروه www-data هستند ، بنابراين مجوزهاي موجود در ديركتوري هاي زير را به روز كنيد تا مالكيت www-data را به هر دوي آنها بدهيد:
⦁ $ sudo chown -R www-data:www-data /var/lib/pgadmin4/

⦁ $ sudo chown -R www-data:www-data /var/log/pgadmin4/

با اين كار ، pgAdmin كاملاً پيكربندي شده است. با اين حال ، اين برنامه هنوز از سرور مجازي شما ارائه نمي شود ، بنابراين قابل دسترسي نيست. براي حل اين مشكل ، ما Apache را براي ارائه pgAdmin پيكربندي مي كنيم تا بتوانيد از طريق يك مرورگر وب به رابط كاربري آن دسترسي پيدا كنيد.
مرحله 3 – پيكربندي Apache
سرور مجازي وب Apache از هاست هاي مجازي براي كپسوله كردن جزئيات پيكربندي و ميزباني بيش از يك دامنه از يك سرور مجازي واحد استفاده مي كند. اگر آموزش پيش نياز Apache را دنبال كرديد ، ممكن است يك فايل هاست مجازي نمونه را با نام your_domain.conf تنظيم كرده باشيد ، اما در اين مرحله ما يك مورد جديد ايجاد خواهيم كرد كه از طريق آن مي توانيم رابط وب pgAdmin را ارائه دهيم.
براي شروع ، مطمئن شويد كه در ديركتوري ريشه خود قرار داريد:
⦁ $ cd /

سپس يك فايل جديد در ديركتوري /sites-available/ با نام pgadmin4.conf ايجاد كنيد. اين فايل هاست مجازي سرور مجازي شما خواهد بود:
⦁ $ sudo nano /etc/apache2/sites-available/pgadmin4.conf

محتواي زير را به اين فايل اضافه كنيد ، حتما بخش هاي هايلايت شده را به روز كنيد تا با پيكربندي خودتان هماهنگ شويد:
/etc/apache2/sites-available/pgadmin4.conf

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


WSGIProcessGroup pgadmin
WSGIApplicationGroup %{GLOBAL}
Require all granted

فايل هاست مجازي را ذخيره كنيد و ببنديد. سپس ، از اسكريپت a2dissite استفاده كنيد تا فايل هاست مجازي پيش فرض ، 000-default.conf را غيرفعال كنيد:
⦁ $ sudo a2dissite 000-default.conf

توجه: اگر از آموزش پيش نياز Apache استفاده كرده ايد ، ممكن است قبلاً 000-default.conf را غيرفعال كرده و يك فايل پيكربندي هاست مجازي نمونه (به نام your_domain.conf را در پيش نياز) تنظيم كرده باشيد. در اين صورت ، بايد فايل ميزبان مجازي your_domain.conf را با دستور زير غيرفعال كنيد:
⦁ $ sudo a2dissite your_domain.conf

سپس از اسكريپت a2ensite استفاده كنيد تا فايل هاست مجازي pgadmin4.conf خود را فعال كنيد. با اين كار يك لينك نمادين از فايل هاست مجازي در ديركتوري /sites-available/ به ديركتوري /sites-enabled/ ايجاد مي شود:
⦁ $ sudo a2ensite pgadmin4.conf

پس از اين ، بررسي كنيد كه دستور فايل پيكربندي شما صحيح باشد:
⦁ $ apachectl configtest

اگر فايل پيكربندي شما به صورت كامل درست باشد ، Syntax OK را خواهيد ديد. اگر خطايي در خروجي مشاهده كرديد ، فايل pgadmin4.conf را مجدداً باز كنيد و دوبار بررسي كنيد كه آدرس IP و مسير فايل شما صحيح باشند ، سپس به configtest بازگرديد.
وقتي Syntax OK را در خروجي خود مشاهده كرديد ، سرويس Apache را مجدداً راه اندازي كنيد تا فايل هاست مجازي جديد شما را بخواند:
⦁ $ sudo systemctl restart apache2

pgAdmin اكنون كاملاً نصب و پيكربندي شده است. در مرحله بعد ، نحوه دسترسي به pgAdmin را از يك مرورگر پيش از اتصال به پايگاه داده PostgreSQL خود مرور خواهيم كرد.
مرحله 4 – دسترسي به pgAdmin
در دستگاه محلي خود ، مرورگر وب مورد نظر خود را باز كرده و به آدرس IP سرور مجازي خود برويد:
http://your_server_ip

پس از آن، صفحه ورود به سيستم شبيه زير به شما نشان داده خواهد شد:

اطلاعات ورود به سيستم را كه در مرحله 2 تعريف كرديد وارد كنيد و به صفحه خوش آمد گويي pgAdmin منتقل مي شويد:

اكنون كه تأييد كرديد كه مي توانيد به رابط pgAdmin دسترسي پيدا كنيد ، تنها كاري كه بايد انجام دهيد اتصال pgAdmin به پايگاه داده PostgreSQL است. قبل از انجام اين كار ، بايد يك تغيير جزئي در پيكربندي فوق كاربر PostgreSQL ايجاد كنيد.
مرحله 5 – پيكربندي كاربر PostgreSQL
اگر آموزش پيش نياز PostgreSQL را دنبال كرده باشيد ، بايد PostgreSQL را با نقش جديد ابركاربر و پايگاه داده تنظيم شده بر روي سرور مجازي خود نصب داشته باشيد.
به طور پيش فرض در PostgreSQL ، شما به عنوان كاربران پايگاه داده با استفاده از روش تأييد هويت “پروتكل شناسايي” يا “شناسايي” تأييد اعتبار مي شويد. اين روند به اين گونه است كه PostgreSQL نام كاربري اوبونتو كلاينت را ميگيرد و از آن به عنوان نام كاربري مجاز پايگاه داده استفاده مي كند. اين كار مي تواند در بيشتر موارد امنيت بيشتري را ايجاد كند ، اما همچنين مي تواند در مواردي كه مايل به اتصال يك برنامه خارجي مانند pgAdmin به يكي از بانكهاي اطلاعاتي خود هستيد، باعث ايجاد مشكل شود. براي حل اين مشكل ، ما يك رمز عبور براي اين نقش PostgreSQL تعيين مي كنيم كه به pgAdmin امكان اتصال به پايگاه داده شما را مي دهد.
از ترمينال خود ، اعلان PostgreSQL را تحت نقش ابركاربر خود باز كنيد:
⦁ $ sudo -u sammy psql

از اعلان PostgreSQL ، نمايه كاربر را به روز كنيد تا يك رمز عبور قوي به انتخاب شما داشته باشد:
⦁ Sammy=# ALTER USER sammy PASSWORD ‘password’
سپس از اعلان PostgreSQL خارج شويد:
⦁ Sammy=# q

در مرحله بعد ، به رابط pgAdmin 4 در مرورگر خود برگرديد و منوي مرورگر را در سمت چپ پيدا كنيد. براي باز كردن يك منوي زمينه ، روي سرور مجازيها كليك راست كنيد ، موس خود را روي ايجاد حركت داده و روي سرور مجازي … كليك كنيد.

اين كار باعث مي شود پنجره اي در مرورگر شما ظاهر شود كه در آن مي توانيد اطلاعات مربوط به سرور مجازي ، نقش و پايگاه داده خود را وارد كنيد.
در تب General نام اين سرور مجازي را وارد كنيد. اين نام مي تواند هر چيزي كه دوست داريد باشد ، اما بهتر است نامي توصيفي براي آن انتخاب كنيد. در مثال ما سرور مجازي Sammy-server-1 نامگذاري شده است.

سپس ، بر روي تب Connection كليك كنيد. در فيلد Host name/address ، localhost را وارد كنيد. پورت بايد به طور پيش فرض روي 5432 تنظيم شود ، كه براي اين ستاپ كار خواهد كرد ، زيرا پورت پيش فرض استفاده شده توسط PostgreSQL ميباشد.
در قسمت Maintenance Database ، نام بانك اطلاعاتي را كه مي خواهيد به آن متصل شويد ، وارد كنيد. توجه داشته باشيد كه اين بانك اطلاعاتي از قبل بايد روي سرور مجازي شما ايجاد شود. سپس به ترتيب نام كاربري و رمز عبوري را كه قبلاً پيكربندي كرده ايد در قسمت هاي Username و Password وارد كنيد.

قسمت هاي خالي در سربرگ هاي ديگر اختياري است ، و فقط لازم است كه در صورت داشتن يك ستاپ خاص در ذهن تان ، آنها را پر كنيد. بر روي دكمه ذخيره كليك كنيد ، و پايگاه داده در زير سرور مجازي ها در فهرست مرورگر ظاهر مي شود.
شما با موفقيت pgAdmin4 را به پايگاه داده PostgreSQL خود وصل كرديد. مي توانيد تقريباً هر كاري را كه از اعلان PostgreSQL مديريت ميكرديد، از داشبورد pgAdmin انجام دهيد. براي نشان دادن اين امر، يك جدول مثال ايجاد مي كنيم و آن را با برخي از داده هاي نمونه از طريق رابط وب پر مي كنيم.
مرحله 6 – ايجاد جدول در داشبورد pgAdmin
از داشبورد pgAdmin ، منوي مرورگر را در سمت چپ پنجره پيدا كنيد. بر روي علامت مثبت (+) در كنار سرور مجازي (1) كليك كنيد تا منوي درختي درون آن باز شود. سپس ، روي علامت مثبت در سمت چپ سرور مجازي ي كه در مرحله قبل اضافه كرده ايد كليك كنيد (در مثال ما Sammy-server-1بود) ، سپس Databases ، نام ديتابيسي كه اضافه كرده ايد (sammy ، در مثال ما) ، و سپس طرحواره (1) را باز كنيد. بايد يك منوي درختي مانند زير را ببينيد:

بر روي گزينه ليست جداول كليك راست كنيد، و سپس مكان نما روي create حركت دهيد و روي Table … كليك كنيد.

با اين كار يك پنجره ايجاد جدول باز مي شود. در زير تب General اين پنجره ، يك نام براي جدول وارد كنيد. اين نام مي تواند هر چيزي باشد ، اما براي ساده سازي ، ما آن را جدول شماره 01 مي ناميم.

سپس به تب columns برويد و روي علامت + در گوشه سمت راست بالاي پنجره كليك كنيد تا چند ستون اضافه شود. هنگام افزودن ستون ، لازم است كه نام و نوع داده را به آن بدهيد ، و در صورت نياز به نوع داده اي كه انتخاب كرده ايد ، لازم است يك طول را انتخاب كنيد.
علاوه بر اين ، مطالب رسمي PostgreSQL بيان مي كند كه اضافه كردن كليد اصلي به جدول معمولاً بهترين روش است. كليد اصلي محدوديتي است كه يك ستون يا مجموعه ستون خاص را نشان مي دهد كه مي تواند به عنوان شناگر ويژه رديف هاي جدول استفاده شود. اين مسئله الزامي نيست ، اما اگر مي خواهيد يك يا چند ستون خود را به عنوان كليد اصلي تنظيم كنيد ، سوئيچ را در سمت راست از no به yes تغيير دهيد.
براي ايجاد جدول بر روي دكمه ذخيره كليك كنيد.

تا اين مرحله ، شما يك جدول ايجاد كرده و ستون هايي را به آن اضافه كرده ايد. با اين حال ، ستون ها هنوز داده اي را دراختيار ندارند. براي افزودن داده به جدول جديد خود ، بر روي نام جدول در منوي مرورگر راست كليك كنيد ، مكان نماي خود را روي اسكريپت ها بگيريد و بر روي INSERT Script كليك كنيد.

با اين كار پانل جديدي روي داشبورد باز مي شود. در بالا عبارت INSERT نصفه تكميل شده ، با نام هاي مناسب جدول و ستون را مشاهده خواهيد كرد. پيش برويد و علامت سؤال (؟) را با برخي از داده هاي ساختگي جايگزين كنيد ، مطمئن شويد كه داده اضافه شده با انواع داده اي كه براي هر ستون انتخاب كرده ايد هماهنگ باشد. توجه داشته باشيد كه مي توانيد با افزودن هر رديف در يك مجموعه جديد از پرانتزها ، چندين رديف داده اضافه كنيد ، كه هر مجموعه پرانتز همانطور كه در مثال زير نشان داده شده است با يك كاما جدا ميشوند.
در صورت تمايل ، اسكريپت INSERT را كه به طور جزيي تكميل شده است با اين عبارت مثال INSERT جايگزين كنيد:
INSERT INTO public.”table-01″(
col1, col2, col3)
VALUES (‘Juneau’, 14, 337), (‘Bismark’, 90, 2334), (‘Lansing’, 51, 556);

براي اجراي عبارت INSERT روي نماد رعد و برق (⚡) كليك كنيد. براي مشاهده جدول و تمام داده هاي موجود در آن ، يك بار ديگر بر روي نام جدول خود در فهرست مرورگر كليك راست كنيد ، مكان نما خود را روي View / edit data حركت دهيد و All Rows را انتخاب كنيد.

پانل جديد ديگري را باز خواهد كرد كه در زير آن ، در سربرگ Data Output پانل پايين ، مي توانيد تمام داده هاي آن جدول را مشاهده كنيد.

با اين كار ، شما با موفقيت جدول ايجاد كرده ايد و آن را با برخي از داده ها از طريق رابط وب pgAdmin پر كرده ايد. البته اين تنها روشي است كه مي توانيد از آن براي ايجاد يك جدول از طريق pgAdmin استفاده كنيد. به عنوان مثال ، مي توانيد به جاي روش مبتني بر GUI كه در اين مرحله شرح داده شده است ، جدول را با استفاده از SQL ايجاد و پر كنيد.
نتيجه
در اين راهنما ياد گرفتيد كه چگونه pgAdmin 4 را از يك محيط مجازي Python نصب كنيد ، آن را پيكربندي كنيد ، با Apache آن را به وب ارائه كنيد و چگونه به يك پايگاه داده PostgreSQL در وب سرويس متصل نماييد . علاوه بر اين ، اين راهنما فراتر از روشي است كه مي تواند براي ايجاد و جمع آوري جدول استفاده شود ، بلكه pgAdmin مي تواند بسيار فراتر از ايجاد و ويرايش جداول استفاده شود.
براي كسب اطلاعات بيشتر در مورد چگونگي استفاده بيشتر از همه ويژگي هاي pgAdmin ، شما را به مطالعه مطالب پروژه تشويق مي كنيم. همچنين مي توانيد اطلاعات بيشتري در مورد PostgreSQL از طريق آموزش هاي انجمن ما در مورد اين موضوع كسب كنيد.

 

 

 

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

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

نحوه راه اندازي يك پروژه React با برنامه React – نصب و ايمن سازي phpMyAdmin در اوبونتو 18

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

نصب MariaDB در اوبونتو 18.04  –  ايمن كردن Apache با Let’s Encrypt در Debian 10

نحوه نصب Node.js در CentOS 8  –  بازنويسي URL را با mod_rewrite براي Apache در Debian 10

راه اندازي فايروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10

اضافه كردن و حذف كاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10

نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازي سرور اوليه با Debian 10

نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعي ايجاد كنيم

نصب و پيكربندي VNC در Debian 10  –  استفاده از سرور از راه دور Docker

نصب و ايمن سازي Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8

نصب Git در Debian 10 –  نصب و پيكربندي Zabbix براي رديابي ايمن سرورهاي

نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7

نحوه نصب Webmin در Debian 10  –  نصب و پيكربندي Zabbix براي رديابي ايمن سرور

نصب وردپرس با بانك اطلاعاتي در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB

نصب پايتون 3 و تنظيم نويسي محلي maغير مجاز مي باشد  – نصب و ايمن سازي phpMyAdmin با Nginx در سرور

نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظيم يك محيط برنامه نويسي

نحوه نصب R بر روي Debian 10  –  راه اندازي سرور Prisma روي اوبونتو 18.04

نصب و پيكربندي Laravel با LEMP در اوبونتو 18  –  نصب و پيكربندي pgAdmin 4 در Server Mode

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

 

 

كلمات كليدي خريد سرور

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

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۰ ارديبهشت ۱۳۹۹ساعت: ۱۱:۳۷:۳۴ توسط:behnam موضوع:

نصب و پيكربندي VNC در Debian 10

Virtual Network Computing يا VNC يك سيستم اتصال است كه به شما امكان مي دهد از صفحه كليد و ماوس خود براي تعامل با يك محيط دسكتاپ گرافيكي روي يك سرور مجازي از راه دور استفاده كنيد. اين امر باعث مي شود مديريت فايل ها ، نرم افزارها و تنظيمات روي يك سرور مجازي از راه دور براي كاربراني كه هنوز از خط فرمان راحت نيستند ، آسان شود.
در اين راهنما ، سرور مجازي VNC را روي يك سرور مجازي Debian 10 تنظيم مي كنيد و از طريق يك تونل SSH با ايمني به آن وصل مي شويد. شما از TightVNC ، يك بسته كنترل از راه دور سريع و سبك استفاده مي كنيد. اين انتخاب اطمينان حاصل خواهد كرد كه اتصال VNC ما حتي در اتصالات اينترنت كندتر هموار و پايدار خواهد بود.
پيش نيازها
براي تكميل اين آموزش ، به موارد زير نياز داريد:
⦁ يك سرور مجازي Debian 10 كه طبق راهنماي تنظيم اوليه سرور مجازي Debian 10 نصب شده، و شامل يك كاربر غير ريشه با دسترسي sudo و فايروال باشد.
⦁ يك كامپيوتر محلي با يك كلاينت VNC نصب شده كه اتصالات VNC را از طريق تونل هاي SSH پشتيباني مي كند.
o در ويندوز ، مي توانيد از TightVNC ،RealVNC يا UltraVNC استفاده كنيد.
o در maغير مجاز مي باشد ، مي توانيد از برنامه Screen Sharing داخلي استفاده كنيد ، يا مي توانيد از يك برنامه بين پلتفرمي مانند RealVNC استفاده نماييد.
o در لينوكس ، مي توانيد گزينه هاي بسياري از جمله vinagre ، krdc ، RealVNC يا TightVNC را انتخاب كنيد.
مرحله 1 – نصب محيط دسكتاپ و سرور مجازي VNC
به طور پيش فرض ، سرور مجازي Debian 10 با يك محيط دسكتاپ گرافيكي يا سرور مجازي VNC نصب شده همراه نيست ، بنابراين ما با نصب آن ها شروع خواهيم كرد. به طور خاص ، بسته ها را براي جديدترين محيط دسكتاپ Xfce و بسته TightVNC موجود در مخزن رسمي Debian نصب خواهيم كرد.
در سرور مجازي خود ليست بسته هاي خود را به روز كنيد:
⦁ $ sudo apt update

اكنون محيط دسكتاپ Xfce را روي سرور مجازي خود نصب كنيد:
⦁ $ sudo apt install xfce4 xfce4-goodies

در حين نصب از شما خواسته مي شود طرح صفحه كليد خود را از ليست گزينه هاي ممكن انتخاب كنيد. موردي را انتخاب كنيد كه براي زبان شما مناسب باشد و Enter را فشار دهيد. نصب ادامه خواهد يافت.
پس از اتمام نصب ، سرور مجازي TightVNC را نصب كنيد:
⦁ $ sudo apt install tightvncserver

براي تكميل پيكربندي اوليه سرور مجازي VNC پس از نصب ، از دستور vncserver براي تنظيم گذرواژه ايمن و ايجاد فايل هاي پيكربندي اوليه استفاده كنيد:
⦁ $ vncserver

از شما خواسته مي شود يك رمز ورود را براي دسترسي از راه دور به دستگاه خود وارد كرده و تأييد كنيد:
Output
You will require a password to access your desktops.

Password:
Verify:
رمز عبور بايد بين شش تا هشت كاراكتر باشد. گذرواژه‌هاي بيش از 8 كاراكتر به صورت خودكار كوتاه خواهند شد.
پس از تأييد گذرواژه ، مي توانيد يك گذرواژه view-only ايجاد كنيد. كاربراني كه با اين رمز ورود به سيستم وارد مي شوند ، قادر به كنترل نمونه VNC با ماوس يا صفحه كليد خود نخواهند بود. اگر مي خواهيد چيزي را با استفاده از سرور مجازي VNC خود به ديگران نشان دهيد ، اين گزينه مفيد است ، اما ضروري نيست.
سپس اين فرآيند فايلهاي پيكربندي پيش فرض لازم و اطلاعات اتصال را براي سرور مجازي ايجاد مي كند:
Output
Would you like to enter a view-only password (y/n)? n
xauth: file /home/sammy/.Xauthority does not exist

New ‘X’ desktop is your_hostname:1

Creating default startup script /home/sammy/.vnc/xstartup
Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

اكنون بگذاريد سرور مجازي VNC را پيكربندي كنيم.
مرحله 2 – پيكربندي سرور مجازي VNC
سرور مجازي VNC بايد بداند كه در هنگام راه اندازي چه دستوراتي را اجرا مي كند. به طور خاص ، VNC بايد بداند كه به كدام دسكتاپ گرافيكي وصل شود.
اين دستورات در يك فايل پيكربندي به نام xstartup در پوشه .vnc تحت ديركتوري هوم شما قرار دارند. اسكريپت راه اندازي زماني ايجاد شد كه شما در مرحله قبل دستور vncserver را اجرا كرديد ، اما ما براي راه اندازي دسكتاپ Xfce ، اسكريپت خودمان را ايجاد خواهيم كرد.
هنگامي كه VNC براي اولين بار تنظيم شد ، يك نمونه سرور مجازي پيش فرض را در پورت 5901 راه اندازي مي كند. اين پورت به عنوان پورت نمايشگر ناميده مي شود و توسط VNC به عنوان :1 ارجاع داده مي شود. VNC مي تواند چندين نمونه در پورت هاي نمايشگر ديگر مانند: :2 و :3 و غيره راه اندازي كند.
از آنجا كه مي خواهيم نحوه پيكربندي سرور مجازي VNC را تغيير دهيم ، ابتدا نمونه سرور مجازي VNC را كه با استفاده از پورت 5901 در حال اجرا است با دستور زير متوقف كنيد:
⦁ $ vncserver -kill :1

خروجي بايد به اين شكل باشد ، اگرچه يك PID متفاوت را مشاهده خواهيد كرد:
Output
Killing Xtightvnc process ID 17648
قبل از تغيير فايل xstartup ، از فايل اصلي نسخه پشتيبان تهيه كنيد:
⦁ $ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

اكنون يك فايل xstartup جديد ايجاد كرده و آن را در ويرايشگر متن خود باز كنيد:
⦁ $ nano ~/.vnc/xstartup

هر زمان كه سرور مجازي VNC را شروع يا مجدداً راه اندازي كنيد، دستورات موجود در اين فايل بطور خودكار اجرا ميشوند. براي شروع محيط دسكتاپ خود در صورتي كه از قبل شروع نشده است ، به VNC احتياج داريم. اين دستورات را به فايل اضافه كنيد:
~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

اولين دستورالعمل موجود در فايل ، xrdb $ HOME / .Xresource ، به چارچوب رابط كاربري گرافيكي VNC ميگويد كه فايل .Xresource را بخواند. .Xresource جايي است كه يك كاربر مي تواند تنظيمات خاصي براي دسكتاپ گرافيكي ، مانند رنگ ترمينال ، تم هاي مكان نما و ارائه فونت ، تغييراتي ايجاد كند. دستور دوم به سرور مجازي مي گويد كه Xfce را راه اندازي كند ، در اين قسمت تمام نرم افزارهاي گرافيكي مورد نياز خود را براي مديريت راحت سرور مجازي خود پيدا خواهيد كرد.
براي اطمينان از اينكه سرور مجازي VNC قادر به استفاده صحيح از اين فايل راه اندازي جديد خواهد بود ، بايد آن را عملياتي كنيم.
⦁ $ sudo chmod +x ~/.vnc/xstartup

اكنون ، سرور مجازي VNC را مجدداً راه اندازي كنيد.
⦁ $ vncserver

خروجي مشابه اين را مشاهده خواهيد كرد:
Output
New ‘X’ desktop is your_hostname:1

Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

با پيكربندي موجود ، بياييد از دستگاه محلي خود به سرور مجازي وصل شويم.
مرحله 3 – اتصال ايمن به دسكتاپ VNC
VNC در هنگام اتصال از پروتكل هاي ايمن استفاده نمي كند. ما براي اتصال ايمن به سرور مجازي خود از يك تونل SSH استفاده خواهيم كرد و سپس به كلاينت VNC ميگوييم كه به جاي برقراري ارتباط مستقيم از آن تونل استفاده كند.
يك اتصال SSH را در رايانه محلي خود ايجاد كنيد كه به طور ايمن به اتصال محلي براي VNC منتقل مي شود. شما مي توانيد اين كار را از طريق ترمينال در لينوكس يا با دستور زير در maغير مجاز مي باشد انجام دهيد:
⦁ $ ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

سوئيچ -L اتصالات پورت را مشخص مي كند. در اين حالت ما پورت 5901 اتصال از راه دور را به پورت 5901 در دستگاه محلي شما وصل مي كنيم. سوئيچ -C امكان فشرده سازي را فراهم مي سازد ، در حالي كه سوئيچ -N به ssh مي گويد كه ما نمي خواهيم يك دستور از راه دور را اجرا كنيم. سوئيچ -l نام ورود از راه دور را مشخص مي كند.
به ياد داشته باشيد كه sammy و your_server_ip را با نام كاربري غير ريشه و آدرس IP سرور مجازي خود جايگزين كنيد.
اگر از يك سرويس دهنده گرافيكي SSH استفاده مي كنيد ، مانند PuTTY ، از your_server_ip به عنوان IP اتصال استفاده كنيد و localhost: 5901 را به عنوان پورت جديد ارسال شده در تنظيمات تونل SSH برنامه تنظيم كنيد.
پس از راه اندازي تونل ، از يك سرويس دهنده VNC براي اتصال به localhost:5901 استفاده كنيد. از شما خواسته مي شود با استفاده از رمزعبور تنظيم شده در مرحله 1 ، تأييد اعتبار كنيد.
پس از اتصال ، دسكتاپ پيش فرض Xfce را مشاهده خواهيد كرد.

براي پيكربندي سريع دسكتاپ ، گزينه Use default config را انتخاب كنيد.
همانطور كه در اينجا مشاهده مي شود ، مي توانيد با file manager يا از خط فرمان به فايلهاي ديركتوري هوم خود دسترسي پيدا كنيد:

بر روي دستگاه محلي خود ، CTRL + C را در ترمينال خود فشار دهيد تا تونل SSH را متوقف كرده و به اعلان خود بازگرديد. اين كار بخش VNC شما را نيز قطع مي كند.
سپس بياييد سرور مجازي VNC را به عنوان يك سرويس تنظيم كنيم.
مرحله 4 – راه اندازي VNC به عنوان يك سرويس سيستمي
در مرحله بعد ، سرور مجازي VNC را به عنوان يك سرويس سيستمي تنظيم خواهيم كرد تا بتوانيم مانند هر سرويس ديگر ، آن را بنا به نياز ، راه اندازي ، متوقف و مجدداً راه اندازي كنيم. اين كار همچنين تضمين مي كند كه با ريبوت سرور مجازي شما VNC راه اندازي ميشود.
ابتدا با استفاده از ويرايشگر متن مورد علاقه خود ، يك فايل واحد جديد با نام /etc/systemd/system/vncserver@.service ايجاد كنيد:
⦁ $ sudo nano /etc/systemd/system/vncserver@.service

نماد @ در انتهاي نام به ما اجازه مي دهد تا آرگوماني را كه مي توانيم در پيكربندي سرويس استفاده كنيم ، وارد كنيم. آن را براي مشخص كردن پورت نمايشگر VNC كه مي خواهيم هنگام مديريت سرويس استفاده كنيم ، به كار ميگيريم.
خطوط زير را به فايل اضافه كنيد. حتماً مقدار User ، Group ، WorkingDirectory و نام كاربري را در مقدار PIDFILE  را تغيير دهيد تا با نام كاربري شما مطابقت داشته باشد:
/etc/systemd/system/vncserver@.service
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=sammy
Group=sammy
WorkingDirectory=/home/sammy

PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

اگر VNC در حال اجرا باشد، فرمان ExecStartPre آن را متوقف مي كند. دستور ExecStart ، VNC را شروع مي كند و عمق رنگ را روي رنگ 24 بيتي با رزولوشن 1280×800 تنظيم مي كند. براي رفع نيازهاي خود مي توانيد اين گزينه هاي راه اندازي را تغيير دهيد.
فايل را ذخيره كنيد و ببنديد.
سپس ، سيستم را از فايل واحد جديد آگاه كنيد.
⦁ $ sudo systemctl daemon-reload

فايل واحد را فعال كنيد.
⦁ $ sudo systemctl enable vncserver@1.service

1 بعد از علامت @ نشان مي دهد كه كدام شماره نمايش سرويس بايد روي آن ظاهر شود ، همانطور كه در مرحله 2 گفته شده، در اين حالت پيش فرض: 1 است.
اگر هنوز در حال اجرا است ، نمونه فعلي سرور مجازي VNC را متوقف كنيد.
⦁ $ vncserver -kill :1

سپس آن را همانند هر سرويس سيستمي ديگري راه اندازي كنيد.
⦁ $ sudo systemctl start vncserver@1

مي توانيد تأييد كنيد كه با اين دستور شروع شده است:
⦁ $ sudo systemctl status vncserver@1

اگر به درستي شروع شده باشد ، خروجي بايد به اين شكل باشد:
Output
● vncserver@1.service – Start TightVNC server at startup
Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-10-10 17:56:17 UTC; 5s ago
Process: 935 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2)
Process: 940 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :1 (code=exited, status=0/SUCCESS)
Main PID: 948 (Xtightvnc)
. . .

سرور مجازي VNC شما هنگام راه اندازي مجدد دستگاه ، اكنون در دسترس خواهد بود.
دوباره تونل SSH خود را شروع كنيد:
⦁ $ ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

سپس با استفاده از نرم افزار كلاينت VNC خود به localhost: 5901 اتصال جديدي برقرار كنيد تا به دستگاه خود متصل شويد.
نتيجه
اكنون يك سرور مجازي VNC امن در سرور مجازي Debian 10 خود به روز و اجرا كرده ايد. اكنون مي توانيد فايلها ، نرم افزارها و تنظيمات خود را با يك رابط گرافيكي آسان و كاربردي مديريت كنيد و قادر خواهيد بود نرم افزارهاي گرافيكي مانند مرورگرهاي وب را از راه دور اجرا نماييد.

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

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

نحوه راه اندازي يك پروژه React با برنامه React – نصب و ايمن سازي phpMyAdmin در اوبونتو 18

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

نصب MariaDB در اوبونتو 18.04  –  ايمن كردن Apache با Let’s Encrypt در Debian 10

نحوه نصب Node.js در CentOS 8  –  بازنويسي URL را با mod_rewrite براي Apache در Debian 10

راه اندازي فايروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10

اضافه كردن و حذف كاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10

نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازي سرور اوليه با Debian 10

نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعي ايجاد كنيم

نصب و پيكربندي VNC در Debian 10  –  استفاده از سرور از راه دور Docker

نصب و ايمن سازي Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8

نصب Git در Debian 10 –  نصب و پيكربندي Zabbix براي رديابي ايمن سرورهاي

نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7

نحوه نصب Webmin در Debian 10  –  نصب و پيكربندي Zabbix براي رديابي ايمن سرور

نصب وردپرس با بانك اطلاعاتي در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB

نصب پايتون 3 و تنظيم نويسي محلي maغير مجاز مي باشد  – نصب و ايمن سازي phpMyAdmin با Nginx در سرور

نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظيم يك محيط برنامه نويسي

نحوه نصب R بر روي Debian 10  –  راه اندازي سرور Prisma روي اوبونتو 18.04

نصب و پيكربندي Laravel با LEMP در اوبونتو 18  –  نصب و پيكربندي pgAdmin 4 در Server Mode

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

 

 

كلمات كليدي خريد سرور

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

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۰ ارديبهشت ۱۳۹۹ساعت: ۱۱:۳۴:۱۰ توسط:behnam موضوع:

نصب Jitsi Meet در Ubuntu 18.04

يك برنامه كنفرانس ويدئويي منبع باز مبتني بر WebRTC است. سرور مجازي Jitsi Meet اتاقهاي كنفرانس ويدئويي چند نفره را در اختيار شما قرار مي دهد كه مي توانيد با استفاده از تنها يك مرورگر به آنها دسترسي داشته باشيد و عملكرد قابل مقايسه اي را با يك گفتگوي كنفرانسي مثل zoom يا skype ارائه دهيد. مزيت كنفرانس Jitsi اين است كه تمام داده هاي شما فقط از طريق سرور مجازي شما عبور مي كند ، و رمزگذاري TLS به صورت end-to-end تضمين مي كند كه هيچ كس نمي تواند تماس را شنود كند. با وجود Jitsi مي توانيد مطمئن باشيد كه اطلاعات خصوصي شما به همان صورت باقي مي مانند.
در اين آموزش ، سرور مجازي Jitsi Meet را روي Ubuntu 18.04 نصب و پيكربندي خواهيد كرد. پيكربندي پيش فرض به هر كسي امكان ايجاد يك اتاق كنفرانس جديد را مي دهد. اما براي سرور مجازي ي كه در اينترنت در دسترس عموم باشد ايده آل نيست بنابراين شما Jitsi Meet را نيز به گونه اي پيكربندي ميكنيد تا فقط كاربران ثبت نام شده بتوانند اتاق هاي كنفرانس جديد ايجاد كنند. بعد از ايجاد اتاق كنفرانس ، هر كاربر مي تواند عضويت داشته باشد ، مادامي كه آدرس منحصر به فرد و رمز اختياري را داشته باشد.
پيش نيازها
قبل از شروع اين راهنما به موارد زير نياز خواهيد داشت:
• يك سرور مجازي Ubuntu 18.04 كه با دنبال كردن راهنماي ستاپ اوليه سرور مجازي با اوبونتو 18.04 راه اندازي شده باشد، و شامل كاربر غير ريشه فعال با sudo باشد. اندازه سرور مجازي مورد نياز شما بيشتر به پهناي باند موجود و تعداد شركت كننده اي كه انتظار داريد از سرور مجازي استفاده كنند بستگي دارد. جدول زير ايده هاي لازم را به شما ارائه مي دهد.
• نام دامنه پيكربندي شده براي اشاره به سرور مجازي شما. مي توانيد با دنبال كردن آموزش نحوه چگونگي تنظيم نام هاست با آموزش vpsgol ، چگونگي اشاره دامنه به دراپلت هاي vpsgol را بياموزيد. در سراسر اين راهنما ، از نام دامنه jitsi.your-domain استفاده مي شود.
هنگامي كه شما يك سرور مجازي را براي اجراي نمونه Jitsi Meet انتخاب مي كنيد ، بايد منابع مورد نياز سيستم براي ميزباني اتاق هاي كنفرانس را در نظر بگيريد. اطلاعات معيار زير از يك ماشين مجازي تك هسته اي با استفاده از تنظيمات ويديويي با كيفيت بالا جمع آوري شده است:

CPU پهناي باند سرور مجازي
2 شركت كننده 3% 30Kbps Up, 100Kbps Down
3 شركت كننده 15% 7Mbps Up, 6.5Mbps Down

پرش در استفاده از منابع بين دو تا سه شركت كننده به اين دليل است كه Jitsi داده هاي تماس را مستقيماً بين كلاينت ها در صورت وجود دو نفر، هدايت مي كند. هنگامي كه بيش از دو كلاينت وجود دارند ، داده هاي تماس از طريق سرور مجازي Jitsi Meet هدايت مي شوند.
مرحله 1 – تنظيم نام هاست سيستم
در اين مرحله ، نام هاست سيستم را تغيير ميدهيد تا با نام دامنه اي كه قصد داريد براي مثال Jitsi Meet خود استفاده كنيد مطابقت داشته باشد و آن نام هاست را به IP localhost ، 127.0.0.1 تغيير مي دهيد. Jitsi Meet هنگام نصب و توليد فايل هاي پيكربندي خود از هر دو تنظيمات استفاده مي كند.
ابتدا نام هاست سيستم را روي نام دامنه اي كه براي نمونه Jitsi خود استفاده خواهيد كرد تنظيم كنيد. دستور زير نام هاست فعلي را تنظيم كرده و /etc/hostname را تغيير ميدهد كه نام هاست سيستم را در بين ريبوت ها نگه ميدارد:
⦁ $ sudo hostnamectl set-hostname jitsi.your-domain

فرماني كه اجرا كرديد به شرح زير است:
• hostnamectl ابزاري است از مجموعه ابزارهاي systemd براي مديريت نام هاست سيستم استفاده ميكند.
• set-hostname نام هاست سيستم را تنظيم مي كند.
با اجراي موارد زير بررسي كنيد كه اين كار موفقيت آميز بوده است:
⦁ $ hostname

با اين كار نام هاست شما با دستور hostnamectl برمي گردد:
Output
jitsi.your-domain

در مرحله بعد ، نگاشت محلي از نام هاست سرور مجازي را بر روي حلقه بازگشت آدرس IP ، 127.0.0.1 تنظيم خواهيد كرد. اين كار را با باز كردن فايل / etc / hosts با ويرايشگر متن انجام دهيد:
⦁ $ sudo nano /etc/hosts

سپس خط زير را اضافه كنيد:
/etc/hosts
127.0.0.1 jitsi.your-domain

نگاشت نام دامنه سرور مجازي Jitsi Meet روي 127.0.0.1 به سرور مجازي Jitsi Meet شما اجازه مي دهد تا از چندين فرآيند شبكه اي استفاده كند كه اتصالات محلي را از يكديگر در آدرس IP 127.0.0.1 قبول مي كنند. اين اتصالات با گواهي TLS كه در نام دامنه شما ثبت شده است ، تأييد و رمزگذاري مي شوند. نگاشت محلي نام دامنه روي 127.0.0.1 امكان استفاده از گواهينامه TLS براي اين اتصالات شبكه محلي را فراهم مي آورد.
فايل خود را ذخيره كنيد و از آن خارج شويد.
اكنون سرور مجازي شما داراي نام هاست است كه Jitsi براي نصب به آن نياز دارد. در مرحله بعد ، پورت هاي فايروال مورد نياز Jitsi و نصب كننده گواهينامه TLS را باز خواهيد كرد.
مرحله 2 – پيكربندي فايروال
هنگامي كه راهنماي راه اندازي اوليه سرور مجازي با اوبونتو 18.04 را دنبال كرديد ، فايروال UFW را فعال كرده و پورت SSH را باز نموده ايد. سرور مجازي Jitsi به برخي از پورت هاي باز شده نياز دارد تا بتواند با كلاينت ها تماس برقرار كند. همچنين ، فرايند نصب TLS نياز به پورت باز دارد تا بتواند درخواست گواهي را تأييد كند.
پورت هايي كه باز خواهيد كرد به شرح زير است:
⦁ 80 / tcp كه در درخواست گواهينامه TLS مورد استفاده قرار ميگيرد.
⦁ 443 / TCP براي صفحه وب ايجاد اتاق كنفرانس استفاده ميشود.
⦁ 4443 / tcp ، 10000 / udp كه براي انتقال و دريافت ترافيك تماس رمزگذاري شده استفاده مي شود.
دستورات ufw زير را براي باز كردن اين پورت ها اجرا كنيد:
⦁ $ sudo ufw allow 80/tcp

⦁ $ sudo ufw allow 443/tcp

⦁ $ sudo ufw allow 4443/tcp

⦁ $ sudo ufw allow 10000/udp

بررسي كنيد كه همه آنها با دستور ufw status اضافه شده اند:
⦁ $ sudo ufw status

در صورت باز بودن اين پورت ها ، خروجي زير را مشاهده خواهيد كرد:
Output
Status: active

To Action From
— —— —-
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
4443/tcp ALLOW Anywhere
10000/udp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
4443/tcp (v6) ALLOW Anywhere (v6)
10000/udp (v6) ALLOW Anywhere (v6)

اكنون سرور مجازي آماده نصب Jitsi است كه در مرحله بعدي آن را كامل خواهيد كرد.
مرحله 3 – نصب Jitsi Meet
در اين مرحله مخزن پايدار Jitsi را به سرور مجازي خود اضافه مي كنيد و سپس بسته Jitsi Meet را ز آن مخزن نصب مي كنيد. با اين كار اطمينان حاصل مي شود كه هميشه آخرين بسته پايدار Jitsi Meet را اجرا مي كنيد.
ابتدا كليد Jitsi GPG را با ابزار wget دانلود كنيد:
⦁ $ wget https://download.jitsi.org/jitsi-key.gpg.key

مدير بسته apt از اين كليد GPG براي اعتبارسنجي بسته هايي كه از مخزن Jitsi دانلود مي كنيد ، استفاده خواهد كرد.
در مرحله بعد ، كليد GPG را كه با استفاده از ابزارهاي key-apt دانلود كرده ايد اضافه نماييد كليد:
⦁ $ sudo apt-key add jitsi-key.gpg.key

اكنون مي توانيد فايل كليد GPG را حذف كنيد زيرا ديگر نيازي به آن نيست:
⦁ $ rm jitsi-key.gpg.key

اكنون با ايجاد يك فايل منبع جديد كه حاوي مخزن Jitsi است ، مخزن Jitsi را به سرور مجازي خود اضافه مي كنيد. با ويرايشگر خود فايل جديد را باز و ايجاد كنيد:
⦁ $ sudo nano /etc/apt/sources.list.d/jitsi-stable.list

اين خط را به فايل مخزن Jitsi اضافه كنيد:
/etc/apt/sources.list.d/jitsi-stable.list
deb https://download.jitsi.org stable/
ويرايشگر خود را ذخيره كرده و از آن خارج شويد.
سرانجام براي جمع آوري ليست بسته ها از مخزن Jitsi يك به روزرساني سيستم انجام دهيد و سپس بسته jitsi-meet را نصب كنيد:
⦁ $ sudo apt update

⦁ $ sudo apt install jitsi-meet

در حين نصب jitsi-meet از شما خواسته مي شود نام دامنه (مثلاً jitsi.your-domain) را كه مي خواهيد براي نمونه Jitsi Meet خود استفاده كنيد وارد كنيد.

توجه: شما مكان نما را از قسمت نام هاست حركت مي دهيد تا دكمه را با كليد TAB هايلايت كنيد. هنگامي كه هايلايت شد براي ارسال نام هاست ، ENTER را فشار دهيد.

سپس كادر جعبه گفتگوي جديدي به شما نشان داده مي شود كه آيا مي خواهيد Jitsi يك گواهي TLS امضا شده را استفاده كند يا از يك گواهي موجود كه خودتان در اختيار داريد استفاده نمايد:

اگر گواهي TLS براي دامنه Jitsi نداريد ، اولين مورد يعني Generate a new self-signed certificate را انتخاب كنيد.
نمونه Jitsi Meet شما اكنون با استفاده از گواهي TLS خود امضا شده نصب شده است. اين باعث اخطار مرورگر مي شود ، بنابراين در مرحله بعدي يك گواهي TLS امضا شده دريافت خواهيد كرد.
مرحله 4 – اخذ گواهينامه TLS امضا شده
Jitsi Meet از گواهينامه هاي TLS براي رمزگذاري ترافيك تماس استفاده مي كند تا هيچ كس نتواند هنگام استفاده از اينترنت به تماس شما گوش كند. گواهينامه هاي TLS همان گواهينامه هايي هستند كه توسط وب سايت ها براي فعال كردن آدرس هاي HTTPS استفاده مي شوند.
Jitsi Meet برنامه اي را براي دانلود خودكار گواهي TLS براي نام دامنه شما تهيه مي نماند كه از ابزار Certbot استفاده مي كند. قبل از اجراي اسكريپت نصب گواهي ، بايد اين برنامه را نصب كنيد.
ابتدا مخزن Certbot را به سيستم خود اضافه كنيد تا از آخرين نسخه Certbot برخوردار شويد. دستور زير را براي اضافه كردن مخزن جديد و به روزرساني سيستم خود اجرا كنيد:
⦁ $ sudo add-apt-repository ppa:certbot/certbot

سپس ، بسته ي certbot را نصب كنيد:
⦁ $ sudo apt install certbot

اكنون سرور مجازي شما آماده اجراي برنامه نصب گواهينامه TLS تهيه شده توسط Jitsi Meet است:
⦁ $ sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

هنگامي كه اسكريپت را اجرا مي كنيد ، اعلان زير براي آدرس ايميل نشان داده مي شود:
Output
————————————————————————-
This script will:
– Need a working DNS record pointing to this machine(for domain jitsi.example.com)
– Download certbot-auto from https://dl.eff.org to /usr/local/sbin
– Install additional dependencies in order to request Let’s Encrypt certificate
– If running with jetty serving web content, will stop Jitsi Videobridge
– Configure and reload nginx or apache2, whichever is used
– Configure the coturn server to use Let’s Encrypt certificate and add required deploy hooks
– Add command in weekly cron job to renew certificates regularly

You need to agree to the ACME server’s Subscriber Agreement (https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf)
by providing an email address for important account notifications
Enter your email and press [ENTER]:

اين آدرس ايميل به صادركننده گواهينامه https://letsencrypt.org ارسال مي شود و براي اطلاع دادن به شما درباره امنيت و ساير موارد مرتبط با گواهينامه TLS استفاده مي شود. براي ادامه كار بايد يك آدرس ايميل را وارد كنيد. پس از آن نصب بدون هيچ گونه درخواست ديگري انجام مي شود.
پس از اتمام ، نمونه Jitsi Meet شما پيكربندي مي شود تا از يك گواهي TLS امضا شده براي نام دامنه خود استفاده كنيد. تمديد گواهينامه به طور خودكار اتفاق مي افتد زيرا نصب كننده، يك اسكريپت تجديد را در /etc/cron.weekly/letsencrypt-renew قرار داده است كه هر هفته اجرا مي شود.
نصب كننده TLS از پورت 80 براي تأييد كنترل نام دامنه خود استفاده كرده است. اكنون كه گواهي نامه را به دست آورده ايد ، ديگر نيازي به باز كردن پورت 80 نداريد زيرا از پورت 80 براي ترافيك منظم و غير رمزگذاري شده HTTP استفاده مي شود. Jitsi Meet فقط از طريق HTTPS در پورت 443 وب سايت خود را ارائه مي دهد.
با دستور ufw زير اين پورت را در فايروال خود ببنديد:
⦁ $ sudo ufw delete allow 80/tcp

سرور مجازي Jitsi Meet شما اكنون آماده و در حال اجرا است و براي آزمايش در دسترس ميباشد. يك مرورگر باز كرده و نام دامنه خود را به آن معرفي كنيد. قادر خواهيد بود يك اتاق كنفرانس جديد ايجاد كنيد و ديگران را نيز دعوت كنيد تا به شما بپيوندند.
تنظيمات پيش فرض براي Jitsi Meet اين گونه است كه هركسي كه صفحه اصلي سرور مجازي Jitsi Meet شما را مشاهده مي كند مي تواند يك اتاق كنفرانس جديد ايجاد كند. با اين كار از منابع سيستم سرور مجازي شما براي اجراي اتاق كنفرانس استفاده مي شود و به خاطر استفاده كاربران غيرمجاز مطلوب نيست. در مرحله بعد ، شما نمونه Jitsi Meet را به گونه اي پيكربندي مي كنيد كه فقط كاربران عضو شده قادر به ايجاد اتاق كنفرانس باشند.
مرحله 5 – ايجاد قفل كنفرانس
در اين مرحله ، شما سرور مجازي Jitsi Meet را پيكربندي مي كنيد تا فقط كاربران ثبت نام شده بتوانند اتاق كنفرانس ايجاد كنند. فايل هايي كه ويرايش مي كنيد توسط نصب كننده ايجاد شده اند و با نام دامنه شما پيكربندي ميشوند.
متغير your_domain به جاي نام دامنه در مثالهاي زير استفاده خواهد شد.
ابتدا ، sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua را با يك ويرايشگر متن باز كنيد:
⦁ $ sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua

اين خط را ويرايش كنيد:
/etc/prosody/conf.avail/your_domain.cfg.lua

authentication = “anonymous”

به صورت زير:
/etc/prosody/conf.avail/your_domain.cfg.lua

authentication = “internal_plain”

اين پيكربندي به Jitsi Meet مي گويد تا قبل از اجازه ايجاد اتاق كنفرانس توسط يك بازديد كننده جديد ، مجبور به تأييد اعتبار نام كاربري و رمز عبور شود.
سپس در همان فايل قسمت زير را به انتهاي فايل اضافه كنيد:
/etc/prosody/conf.avail/your_domain.cfg.lua

VirtualHost “guest.your_domain”
authentication = “anonymous”
c2s_require_encryption = false

اين پيكربندي به كاربران ناشناس اجازه مي دهد تا به اتاق هاي كنفرانس كه توسط يك كاربر معتبر ايجاد شده اند بپيوندند. با اين حال ، ميهمان بايد يك آدرس منحصر به فرد و رمز عبور اختياري براي ورود به اتاق داشته باشد.
در اينجا ، شما guest. را به جلوي نام دامنه خود اضافه كرديد به عنوان مثال ، براي jitsi.your-domain، guest.jitsi.your-domain را قرار دهيد. نام هاست guest. فقط به صورت داخل توسط Jitsi Meet استفاده مي شود. شما هرگز آن را وارد مرورگر نخواهيد كرد و يا نيازي به ايجاد ركورد DNS براي آن نداريد.
فايل پيكربندي ديگري را در /etc/jitsi/meet/your_domain-config.js با يك ويرايشگر متن باز كنيد:
⦁ $ sudo nano /etc/jitsi/meet/your_domain-config.js

اين خط را ويرايش كنيد:
/etc/jitsi/meet/your_domain-config.js

// anonymousdomain: ‘guest.example.com’,

تا به اين صورت درآيد:
/etc/jitsi/meet/your_domain-config.js

anonymousdomain: ‘guest.your_domain’,

مجدداً ، با استفاده از نام هاست guest.your_domain كه قبلاً از اين پيكربندي استفاده كرده ايد ، به Jitsi مي گويد چه نام هاست داخلي را براي مهمانان تأييد نشده استفاده كند.
سپس ، /etc/jitsi/jicofo/sip-communicator.properties را باز كنيد:
⦁ $ sudo nano /etc/jitsi/jicofo/sip-communicator.properties

و خط زير را براي تكميل تغييرات پيكربندي اضافه كنيد:
/etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.auth.URL=XMPP:your_domain

اين پيكربندي يكي از فرايندهاي Jitsi Meet را به سرور مجازي محلي نشان مي دهد كه تأييد اعتبار كاربر را كه اكنون لازم است انجام مي دهد.
نمونه Jitsi Meet شما اكنون پيكربندي شده است و فقط كاربران ثبت نام شده مي توانند اتاق كنفرانس ايجاد كنند. بعد از ايجاد يك اتاق كنفرانس ، هر كسي مي تواند بدون نياز به كاربر ثبت نام شده به آن بپيوندد. تنها آنچه نياز دارند آدرس اتاق كنفرانس منحصر به فرد و رمزعبور اختياري است كه توسط فردي كه اتاق را اجيجاد كرده تنظيم شده است.
اكنون كه Jitsi Meet پيكربندي شده است و براي ايجاد اتاق نياز به كاربران معتبر دارد ، بايد اين كاربران و رمزهاي عبور خود را ثبت كنيد. براي اين كار از ابزار prosodyctl استفاده خواهيد كرد.
دستور زير را براي افزودن كاربر به سرور مجازي خود اجرا كنيد:
⦁ $ sudo prosodyctl register user your_domain password

كاربري كه شما در اينجا اضافه مي كنيد كاربر سيستم نيست. آنها فقط قادر به ايجاد يك اتاق كنفرانس هستند و از طريق SSH قادر به ورود به سرور مجازي شما نيستند.
در آخر ، مراحل Jitsi Meet را ريستارت كنيد تا پيكربندي جديد لود شود:
⦁ $ sudo systemctl restart prosody.service

⦁ $ sudo systemctl restart jicofo.service

⦁ $ sudo systemctl restart jitsi-videobridge2.service

به طور مثال Jitsi Meet هنگام ايجاد يك اتاق كنفرانس ، نام كاربري و رمزعبور را با جعبه گفتگو درخواست مي كند.

سرور مجازي Jitsi Meet شما اكنون تنظيم و ايمن شده است.
نتيجه
در اين مقاله ، شما سرور مجازي Jitsi Meet را مستقر كرده ايد كه مي توانيد از آنها براي ميزباني اتاق هاي كنفرانس ويديويي ايمن و خصوصي استفاده كنيد. مي توانيد نمونه Jitsi Meet خود را با دستورالعمل Jitsi Meet Wiki گسترش دهيد.

 

 

 

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

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

نحوه راه اندازي يك پروژه React با برنامه React – نصب و ايمن سازي phpMyAdmin در اوبونتو 18

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

نصب MariaDB در اوبونتو 18.04  –  ايمن كردن Apache با Let’s Encrypt در Debian 10

نحوه نصب Node.js در CentOS 8  –  بازنويسي URL را با mod_rewrite براي Apache در Debian 10

راه اندازي فايروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10

اضافه كردن و حذف كاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10

نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازي سرور اوليه با Debian 10

نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعي ايجاد كنيم

نصب و پيكربندي VNC در Debian 10  –  استفاده از سرور از راه دور Docker

نصب و ايمن سازي Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8

نصب Git در Debian 10 –  نصب و پيكربندي Zabbix براي رديابي ايمن سرورهاي

نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7

نحوه نصب Webmin در Debian 10  –  نصب و پيكربندي Zabbix براي رديابي ايمن سرور

نصب وردپرس با بانك اطلاعاتي در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB

نصب پايتون 3 و تنظيم نويسي محلي maغير مجاز مي باشد  – نصب و ايمن سازي phpMyAdmin با Nginx در سرور

نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظيم يك محيط برنامه نويسي

نحوه نصب R بر روي Debian 10  –  راه اندازي سرور Prisma روي اوبونتو 18.04

نصب و پيكربندي Laravel با LEMP در اوبونتو 18  –  نصب و پيكربندي pgAdmin 4 در Server Mode

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

 

 

كلمات كليدي خريد سرور

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

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۰ ارديبهشت ۱۳۹۹ساعت: ۱۱:۳۱:۴۶ توسط:behnam موضوع:

نصب و پيكربندي Ansible در اوبونتو 18.04

سيستم هاي مديريت پيكربندي به منظور ساده سازي فرايند كنترل تعداد زيادي سرور مجازي ، براي مديران و تيم هاي عملياتي طراحي شده اند. آنها به شما اجازه مي دهند بسياري از سيستم هاي مختلف را به صورت خودكار از يك مكان مركزي كنترل كنيد.
در حالي كه بسياري از ابزارهاي مديريت پيكربندي محبوب براي سيستمهاي لينوكس مانند Chef و Puppet در دسترس هستند ، اينها معمولاً پيچيده تر از چيزي هستند كه افراد مي خواهند يا نياز دارند. Ansible يك گزينه عالي براي اين منظور است زيرا معماري ساده اي را ارائه مي دهد كه نيازي به نصب نرم افزار ويژه روي nodes ندارد ، از SSH براي انجام كارهاي اتوماسيون و فايل هاي YAML براي تعريف جزئيات تهيه استفاده مي كند.
در اين راهنما ، به چگونگي نصب Ansible در سرور مجازي Ubuntu 18.04 ميپردازيم و در مورد اصول استفاده از اين نرم افزار به صورت جزيي ميپردازيم.
Ansible چگونه كار مي كند؟
Ansible با پيكربندي ماشينهاي كلاينت كار ميكند ، كه به nodes managed شناخته ميشوند ، از رايانه اي كه اجزاي Ansible را نصب و پيكربندي كرده است، كه به آن گره ي كنترل Ansible گفته مي شود.
براي بازيابي اطلاعات از سيستمهاي از راه دور ، صدور دستورات و كپي كردن فايلها ، از طريق كانالهاي عادي SSH ارتباط برقرار مي كند. به همين دليل ، يك سيستم Ansible نيازي به نصب هيچ نرم افزار اضافي بر روي رايانه هاي كلاينت ندارد.
اين روشي است كه Ansible مديريت سرور مجازي ها را ساده تر مي كند. هر سرور مجازي ي كه درگاه SSH را در معرض ديد دارد ، مي تواند صرف نظر از اينكه در چه مرحله اي از چرخه زندگي خود قرار دارد ، تحت حوزه پيكربندي Ansible قرار گيرد. اين بدان معناست كه هر رايانه اي كه بتوانيد از طريق SSH مديريت كنيد ، مي توانيد از طريق Ansible نيز مديريت كنيد.
Ansible يك رويكرد مدولار را در پيش مي گيرد و شما را قادر مي سازد تا ويژگي هاي سيستم اصلي را براي مقابله با سناريوهاي خاص گسترش دهيد. ماژول ها را مي توان به هر زباني نوشت و با JSON استاندارد ارتباط برقرار كرد.
فايل هاي پيكربندي به دليل ماهيت تاثيرگذار و شباهت آن با زبانهاي نشانه گذاري محبوب ، عمدتاً در قالب سريال سازي داده هاي YAML نوشته شده اند. Ansible ميتواند از طريق ابزارهاي خط فرمان يا اسكريپت هاي پيكربندي آن ، كه به Playbooks شناخته مي شوند ، با هاست تعامل برقرار كند.
پيش نيازها
براي دنبال كردن اين آموزش ، به موارد زير نياز داريد:
يك node كنترل Ansible: node كنترل Ansible ماشيني است كه ما براي اتصال و كنترل هاست هاي Ansible روي SSH از آن استفاده خواهيم كرد. node كنترل Ansible شما يا مي تواند دستگاه محلي شما باشد يا يك سرور مجازي اختصاص داده شده براي اجراي Ansible ، اگرچه اين راهنما فرض مي كند كه node كنترل شما يك سيستم اوبونتو 18.04 است. اطمينان حاصل كنيد كه node كنترل داراي موارد زير است:
o يك كاربر غير ريشه با امتيازات sudo. براي تنظيم اين گزينه ، مي توانيد مراحل 2 و 3 راهنماي اوليه راه اندازي سرور مجازي ما براي اوبونتو 18.04 را دنبال كنيد. با اين وجود ، لطفاً توجه داشته باشيد كه اگر از سرور مجازي راه دور به عنوان node كنترل Ansible خود استفاده مي كنيد ، بايد هر مرحله از اين راهنما را دنبال كنيد. با اين كار فايروال روي سرور مجازي با ufw پيكربندي شده و دسترسي خارجي به پروفايل كاربر غير ريشه شما امكان پذير خواهد شد ، كه هر دو به حفظ امنيت سرور مجازي از راه دور كمك مي كنند.
o صفحه كليد SSH مرتبط با اين كاربر. براي انجام اين كار ، مي توانيد مرحله 1 راهنماي ما درباره نحوه تنظيم كليدهاي SSH در اوبونتو 18.04 را دنبال كنيد.
يك يا چند هاست Ansible: هاست Ansible هر دستگاهي است كه node كنترل Ansible شما براي خودكار سازي آن تنظيم شده باشد. اين راهنما فرض مي كند كه هاست هاي Ansible شما سرور مجازي هاي Ubuntu 18.04 از راه دور هستند. اطمينان حاصل كنيد كه هر هاست Ansible داراي موارد زير است:
o كليد عمومي SSH node كنترل Ansible به authorized_keys كاربر سيستم اضافه شده باشد. اين كاربر مي تواند يا root يا يك كاربر معمولي با امتيازات sudo باشد. براي تنظيم اين گزينه ، مي توانيد مرحله 2 نحوه تنظيم كليدهاي SSH را در اوبونتو 18.04 دنبال كنيد.
مرحله 1 – نصب Ansible
براي شروع استفاده از Ansible به عنوان ابزاري براي مديريت زيرساخت هاي سرور مجازي خود ، بايد نرم افزار Ansible را روي دستگاه نصب كنيد كه به عنوان node كنترل Ansible عمل خواهد كرد.
از node كنترل خود ، دستور زير را اجرا كنيد تا PPA (بايگاني بسته شخصي) پروژه رسمي را در ليست منابع سيستم خود وارد كنيد:
$ sudo apt-add-repository ppa:ansible/ansible

هنگامي كه از شما خواسته شد افزودن PPA را بپذيريد ، ENTER را فشار دهيد.
سپس ، فهرست بسته بندي سيستم خود را ريفرش كنيد تا از بسته هاي موجود در PPA كه اخيراً در آن قرار گرفته آگاهي پيدا كنيد:
$ sudo apt update

پس از اين بروزرساني ، مي توانيد نرم افزار Ansible را با دستور زير نصب كنيد:
$ sudo apt install ansible

node كنترلي Ansible شما اكنون تمامي نرم افزارهاي مورد نياز براي مديريت هاست شما را دارد. در مرحله بعد ، به نحوه اضافه كردن هاست ها به فايل موجودي node كنترل خواهيم پرداخت تا بتواند آنها را كنترل كند.
مرحله 2 – تنظيم فايل موجودي
فايل موجودي (Inventory) شامل اطلاعات مربوط به هاست هايي است كه با Ansible آنها را مديريت خواهيد كرد. شما مي توانيد از يك تا چند صد سرور مجازي در فايل موجودي خود داشته باشيد و هاست ها را مي توانيد در گروه ها و زير گروه ها سازماندهي كنيد. فايل موجودي نيز اغلب براي تنظيم متغيرهايي مورد استفاده قرار مي گيرد كه فقط براي هاست يا گروه هاي خاص معتبر باشند ، تا در playbookها و قالب ها مورد استفاده قرار گيرند. برخي از متغيرها همچنين مي توانند بر نحوه اجراي يك playbook اثر بگذارند ، مانند متغير ansible_python_interpreter كه به زودي مشاهده خواهيم كرد.
براي ويرايش محتواي موجودي پيش فرض Ansible ، فايل / etc / ansible / hosts را با استفاده از ويرايشگر متن مورد نظر خود، در node كنترل Ansible باز كنيد:
$ sudo nano /etc/ansible/hosts

توجه: برخي از نصب هاي Ansible فايل موجودي پيش فرض را ايجاد نمي كنند. اگر اين فايل در سيستم شما وجود ندارد ، مي توانيد يك فايل جديد را در / etc / ansible / hosts ايجاد كنيد يا يك مسير موجودي سفارشي را با استفاده از پارامتر -i هنگام اجراي دستورات و playbooks تهيه كنيد.

فايل موجودي پيش فرض موجود توسط نصب Ansible شامل تعدادي مثال است كه مي توانيد از آنها به عنوان مرجع براي تنظيم موجودي خود استفاده كنيد. مثال زير گروهي را به نام [servers] با سه سرور مجازي مختلف در آن تعريف مي كند كه هر يك توسط يك نام مستعار مشخص شده اند: server1 ،server2 و server3. حتما IP هاي هايلايت شده را با آدرس هاي IP هاست هاي Ansible جايگزين كنيد.
/etc/ansible/hosts
[servers]
server1 ansible_host=203.0.113.111
server2 ansible_host=203.0.113.112
server3 ansible_host=203.0.113.113

[all:vars]
ansible_python_interpreter=/usr/bin/python3

زير گروهall: vars پارامتر هاست ansible_python_interpreter را تعيين مي كند كه براي همه هاست هاي موجود در اين موجودي معتبر خواهد بود. اين پارامتر اطمينان حاصل مي كند كه سرور مجازي راه دور به جاي / usr / bin / python (Python 2.7) از / usr / bin / python3 (Python 3) قابل اجرا استفاده مي كند كه در نسخه هاي اخير اوبونتو وجود ندارد.
پس از اتمام ، فايل را با فشار دادن CTRL + X سپس Y و ENTER ذخيره كرده و آن را ببنديد تا تغييرات خود را تأييد كنيد.
هر زمان كه مي خواهيد موجودي خود را بررسي كنيد ، مي توانيد اين دستور را اجرا كنيد:
$ ansible-inventory –list -y

خروجي شبيه به اين را خواهيد ديد ، اما زيرساخت سرور مجازي خود را مطابق با فايل موجودي خود تعريف مي كنيد:
Output
all:
children:
servers:
hosts:
server1:
ansible_host: 203.0.113.111
ansible_python_interpreter: /usr/bin/python3
server2:
ansible_host: 203.0.113.112
ansible_python_interpreter: /usr/bin/python3
server3:
ansible_host: 203.0.113.113
ansible_python_interpreter: /usr/bin/python3
ungrouped: {}

اكنون كه فايل موجودي خود را پيكربندي كرده ايد ، همه چيز لازم براي آزمايش اتصال به هاست هاي Ansible خود را داريد.
مرحله 3 – آزمايش اتصال
پس از تنظيم فايل موجودي براي شامل شدن سرور مجازيهاي خود، زمان آن است كه بررسي كنيم آيا Ansible قادر به اتصال به اين سرور مجازيها و اجراي دستورات از طريق SSH است يا خير.
براي اين راهنما ، ما از حساب ريشه Ubuntu استفاده خواهيم كرد زيرا اين تنها حساب موجود به طور پيش فرض در سرور مجازي هاي تازه ايجاد شده است. اگر هاست هاي Ansible شما قبلاً يك كاربر sudo معمولي ايجاد كرده اند ، به شما توصيه مي شود كه به جاي ريشه از آن حساب استفاده كنيد.
براي مشخص كردن كاربر سيستم از راه دور مي توانيد از آرگومان -u استفاده كنيد. در صورت عدم ارائه ، Ansible سعي خواهد كرد كه به عنوان كاربر فعلي سيستم شما در node كنترل متصل شود.
از دستگاه محلي يا node كنترل Ansible خود اين دستور را اجرا كنيد:
$ ansible all -m ping -u root

اين دستورالعمل از ماژول داخلي پينگ Ansible براي انجام يك تست اتصال در همه nodes از موجودي پيش فرض شما ، به عنوان root استفاده مي كند. ماژول ping موارد زير را تست خواهد كرد:
آيا هاست ها در دسترس هستند.
آيا اعتبار SSH معتبري داريد؛
آيا هاست ها قادرند ماژول هاي Ansible را با استفاده از پايتون اجرا كنند.
شما بايد خروجي مشابه اين دريافت كنيد:
Output
server1 | SUCCESS => {
“changed”: false,
“ping”: “pong”
}
server2 | SUCCESS => {
“changed”: false,
“ping”: “pong”
}
server3 | SUCCESS => {
“changed”: false,
“ping”: “pong”
}

اگر اين اولين بار است كه از طريق SSH به اين سرور مجازيها وصل مي شويد ، از شما خواسته مي شود كه صحت هاست هايي را كه از طريق Ansible به آنها وصل مي شويد ، تأييد كنيد. وقتي از شما خواسته شد ، yes را تايپ كنيد و سپس براي تأييد ENTER را بزنيد.
هنگامي كه پاسخ “pong” را از هاست دريافت كرديد ، به اين معني است كه شما آماده اجراي دستورات و playbookهاي Ansible در آن سرور مجازي هستيد.
توجه: اگر نمي توانيد پاسخ موفقي از سرور مجازيهاي خود دريافت كنيد ، براي اطلاعات بيشتر در مورد نحوه اجراي دستورات Ansible با گزينه هاي مختلف اتصال ، راهنماي برگه تقلب Ansible ما را بررسي كنيد.

مرحله 4 – اجراي دستورات Ad-Hoc (اختياري)
پس از تأييد اينكه node كنترل Ansible شما قادر به برقراري ارتباط با هاست شماست ، مي توانيد دستورات ad-hoc و playbooks را روي سرور مجازي هاي خود اجرا كنيد.
هر دستوري كه معمولاً بر روي SSH از سرور مجازي راه دور اجرا مي كنيد مي تواند با Ansible در سرور مجازي هاي مشخص شده در فايل موجودي شما اجرا شود. به عنوان نمونه ، مي توانيد ميزان استفاده از ديسك را در همه سرورها با دستور زير بررسي كنيد:
$ ansible all -a “df -h” -u root

Output

server1 | CHANGED | rc=0 >>
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 798M 624K 798M 1% /run
/dev/vda1 155G 2.3G 153G 2% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda15 105M 3.6M 101M 4% /boot/efi
tmpfs 798M 0 798M 0% /run/user/0

server2 | CHANGED | rc=0 >>
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 395M 608K 394M 1% /run
/dev/vda1 78G 2.2G 76G 3% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda15 105M 3.6M 101M 4% /boot/efi
tmpfs 395M 0 395M 0% /run/user/0

فرمان هايلايت شده df -h را مي توان با هر دستوري كه دوست داريد جايگزين كنيد.
همچنين مي توانيد ماژول هاي Ansible را از طريق دستورات ad-hoc ، مشابه آنچه قبلاً با ماژول ping براي آزمايش اتصال انجام داده ايم ، اجرا كنيد. به عنوان مثال ، در اينجا چگونگي استفاده از ماژول apt براي نصب جديدترين نسخه vim بر روي همه سرور مجازيهاي موجود در موجودي شما آورده شده است:
$ ansible all -m apt -a “name=vim state=latest” -u root

همچنين هنگام اجراي دستورات Ansible مي توانيد هاست هاي فردي و همچنين گروه ها و زير گروه ها را هدف قرار دهيد. به عنوان مثال ، به اين ترتيب شما مي توانيد uptime هر هاست در گروه سرور مجازيها را بررسي كنيد:
$ ansible servers -a “uptime” -u root

ما مي توانيم هاست هاي مختلفي را با جدا كردن آنها با دو نقطه مشخص كنيم:
$ ansible server1:server2 -m ping -u root

براي كسب اطلاعات بيشتر در مورد نحوه استفاده از Ansible ، از جمله نحوه اجراي playbooks براي اتوماسيون تنظيم سرور مجازي ، مي توانيد راهنماي مرجع Ansible ما را بررسي كنيد.
نتيجه
در اين راهنما ، شما Ansible را نصب كرديد و يك فايل موجودي را براي اجراي دستورات ad-hoc از يك node كنترل Ansible اجرا كرديد.
هنگامي كه تأييد كرديد كه قادر هستيد زيرساختهاي خود را از يك دستگاه كنترلر مركزي Ansible متصل كرده و كنترل كنيد ، مي توانيد هر دستور يا palybook مورد نظر را در مورد آن هاست اجرا كنيد. براي سرور مجازيهاي جديد ، playbook ستاپ اوليه سرور مجازي نقطه شروع خوبي است. همچنين مي توانيد نحوه نوشتن playbookهاي خود را با راهنماي ما در مورد مديريت پيكربندي 101: نوشتن كتابهاي Ansible بياموزيد.
براي كسب اطلاعات بيشتر در مورد نحوه استفاده از Ansible ، راهنماي كمكي در صفحه ما را ببينيد.

 

 

 

 

برچسب‌ها:

برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۰ ارديبهشت ۱۳۹۹ساعت: ۱۱:۲۸:۲۴ توسط:behnam موضوع:

نصب MySQL در اوبونتو 18.04

 يك سيستم مديريت پايگاه داده منبع باز است كه معمولاً به عنوان بخشي از پشته محبوب LAMP (Linux ، Apache ، MySQL ، PHP / Python / Perl) نصب مي شود. براي مديريت داده هاي خود از يك پايگاه داده رابطه اي و SQL (زبان پرس و جوي ساختار يافته) استفاده مي كند.
نصب نسخه كوتاه ساده است: فهرست بسته خود را به روز كنيد ، بسته mysql-server را نصب كنيد و سپس اسكريپت امنيتي گنجانده شده را اجرا كنيد.
$ sudo apt update

$ sudo apt install mysql-server

$ sudo mysql_secure_installation

در اين آموزش نحوه نصب MySQL نسخه 5.7 در سرور مجازي Ubuntu 18.04 توضيح داده خواهد شد. با اين حال ، اگر به دنبال به روزرساني نصب MySQL موجود به نسخه 5.7 هستيد ، مي توانيد به جاي اين راهنما، مقاله به روزرساني MySQL 5.7 را مطالعه كنيد.
پيش نيازها
براي دنبال كردن اين آموزش ، به موارد زير نياز داريد:
• يك سرور مجازي Ubuntu 18.04 كه طبق راهنماي تنظيم اوليه سرور مجازي تنظيم شده باشد و شامل يك كاربر غير ريشه با امتيازات sudo و فايروال باشد.
مرحله 1 – نصب MySQL
در اوبونتو 18.04 ، فقط آخرين نسخه MySQL بصورت پيش فرض در مخزن بسته APT گنجانده شده است. در زمان نوشتن اين مقاله نسخه MySQL 5.7 است .
براي نصب آن ، ايندكس بسته را بر روي سرور مجازي خود با apt به روز كنيد:
$ sudo apt update

سپس بسته پيش فرض را نصب كنيد:
$ sudo apt install mysql-server

اين كار MySQL را نصب مي كند ، اما از شما خواسته نمي شود كه رمز عبوري را تنظيم كنيد يا تغييرات ديگري در پيكربندي ايجاد كنيد. از آنجا كه اين كار باعث مي شود نصب MySQL ناامن باشد ، در ادامه به اين موضوع خواهيم پرداخت.
مرحله 2 – پيكربندي MySQL
براي ريفرش كردن نصب ها، بهتر است اسكريپت امنيتي موجود را اجرا كنيد. اين كار برخي از گزينه هاي پيش فرض با ايمني كمتر را براي مواردي مانند ورود به سيستم ريشه از راه دور و كاربران نمونه تغيير ميدهد. در نسخه هاي قديمي MySQL ، شما بايد دايركتوري داده را به صورت دستي نيز تنظيم كنيد ، اما اكنون اين كار به صورت خودكار انجام مي شود.
اسكريپت امنيتي را اجرا كنيد:
$sudo mysql_secure_installation

اين امر يك سري اعلان به شما نشان ميدهد كه مي توانيد برخي از گزينه هاي امنيتي نصب MySQL خود را تغيير دهيد. اولين سؤال از شما ميپرسد كه آيا مي خواهيد افزونه Validate Password را تنظيم كنيد ، كه مي تواند براي تست قدرت رمز ورود MySQL استفاده شود. صرف نظر از انتخاب شما ، اعلان بعدي تنظيم رمز عبور براي كاربر ريشه MySQL خواهد بود. رمز عبور مطمئن مورد نظر خود را وارد كرده و سپس تأييد كنيد.
از آنجا ، مي توانيد Y و سپس ENTER را فشار دهيد تا پيش فرض براي همه سؤالات بعدي را بپذيريد. با اين كار برخي از كاربران ناشناس و بانك اطلاعاتي آزمايشي حذف مي شوند ، ورود به سيستم ريشه از راه دور غيرفعال مي شود و اين قوانين جديد را لود مي كنند تا MySQL فوراً با تغييراتي كه ايجاد كرده ايد منطبق شود.
براي مقدار دهي اوليه دايركتوري داده MySQL ، مي توانيد از mysql_install_db براي نسخه هاي قبل از 5.7.6 ، و از mysqld –initialize براي 5.7.6 و بعد از آن استفاده كنيد. با اين حال ، اگر MySQL را از توزيع Debian نصب كرديد ، همانطور كه در مرحله 1 توضيح داده شد ، دايركتوري داده به طور خودكار آغاز مي شود. شما مجبور نيستيد كاري انجام دهيد. اگر به هر حال سعي كنيد دستور را اجرا كنيد ، خطاي زير را مشاهده خواهيد كرد:
Output
mysqld: Can’t create directory ‘/var/lib/mysql/’ (Errcode: 17 – File exists)
. . .
2018-04-23T13:48:00.572066Z 0 [ERROR] Aborting

توجه داشته باشيد كه حتي اگر يك رمز عبور براي كاربر ريشه MySQL تنظيم كرده ايد ، اين كاربر براي تأييد اعتبار با گذرواژه هنگام اتصال به پوسته MySQL پيكربندي نشده است. در صورت تمايل مي توانيد با دنبال كردن مرحله 3 اين كار را انجام دهيد.
مرحله 3 – تنظيم تأييد اعتبار و امتيازات كاربر (اختياري)
در سيستم هاي اوبونتو كه MySQL 5.7 (و نسخه هاي بعدي) را اجرا مي كند ، تأييد اعتبار كاربر ريشه MySQL بصورت پيش فرض با استفاده از افزونه auth_socket و نه با گذرواژه تنظيم شده است. اين امر امنيت و قابليت استفاده بيشتر را در بسياري از موارد امكان پذير مي كند ، اما همچنين مي تواند مواردي را كه نياز داريد به يك برنامه خارجي (مانند phpMyAdmin) براي دسترسي به كاربر اجازه بدهيد، پيچيده تر كند.
به منظور استفاده از رمز عبور براي اتصال به MySQL به عنوان root ، بايد روش تأييد اعتبار آن را از auth_socket به mysql_native_password تغيير دهيد. براي اين كار ، اعلان MySQL را از پايانه خود باز كنيد:
$ sudo mysql

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

Output
+——————+——————————————-+———————–+———–+
| user | authentication_string | plugin | host |
+——————+——————————————-+———————–+———–+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+——————+——————————————-+———————–+———–+
4 rows in set (0.00 sec)

در اين مثال ، مي بينيد كه كاربر ريشه با استفاده از افزونه auth_socket ، تأييد اعتبار مي كند. براي پيكربندي حساب ريشه براي تأييد اعتبار با رمز عبور ، دستور ALTER USER زير را اجرا كنيد. مطمئن شويد كه رمز عبور را به رمز عبوري قوي به انتخاب خود تغيير مي دهيد و توجه داشته باشيد كه اين دستور رمز اصلي را كه در مرحله 2 تنظيم كرده ايد تغيير مي دهد:
Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;

سپس ، FLUSH PRIVILEGES را اجرا كنيد كه به سرور مجازي مي گويد جداول اعطاي امتياز را لود مجدد كند و تغييرات جديد شما را اعمال كند:
Mysql> FLUSH PRIVILEGES;

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

Output
+——————+——————————————-+———————–+———–+
| user | authentication_string | plugin | host |
+——————+——————————————-+———————–+———–+
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+——————+——————————————-+———————–+———–+
4 rows in set (0.00 sec)

در اين مثال مي توانيد مشاهده كنيد كه كاربر ريشه MySQL اكنون با استفاده از يك رمز عبور تأييد اعتبار مي كند. پس از تأييد اين موضوع روي سرور مجازي خود ، مي توانيد از پوسته MySQL خارج شويد:
Mysql> exit

از طرف ديگر ، برخي ممكن است دريابند كه اتصال به MySQL با يك كاربر اختصاصي براي جريان كاري آن ها مناسب تر است. براي ايجاد چنين كاربري ، بار ديگر پوسته MySQL را باز كنيد:
$ sudo mysql

توجه: اگر احراز هويت رمز عبور را براي ريشه فعال كرده ايد ، همانطور كه در پاراگراف هاي قبلي توضيح داده شد ، براي دسترسي به پوسته MySQL بايد از دستور ديگري استفاده كنيد. موارد زير كلاينت MySQL شما را با امتيازات كاربري معمول اجرا مي كند و شما فقط با تأييد اعتبار ، امتيازات ادمين را در بانك اطلاعاتي دريافت خواهيد كرد:
$ mysql -u root -p

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

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

توجه داشته باشيد كه در اين مرحله ، ديگر نيازي به اجراي فرمان FLUSH PRIVILEGES نداريد. اين دستور فقط در صورت تغيير جدول هاي اعطاي امتياز با استفاده از عباراتي مانند INSERT ، UPDATE يا DELETE مورد نياز است. از آنجا كه شما به جاي تغيير كاربر موجود، يك كاربر جديد ايجاد كرده ايد ، FLUSH PRIVILEGES در اينجا لازم نيست.
پس از آن ، از پوسته MySQL خارج شويد:
Mysql>exit

در آخر ، بياييد نصب MySQL را آزمايش كنيم.
مرحله 4 – تست MySQL
صرف نظر از نحوه نصب آن ، MySQL بايد به صورت خودكار شروع به كار كند. براي آزمايش اين موضوع ، وضعيت آن را بررسي كنيد.
$ systemctl status mysql.service

خروجي مشابه زير را مشاهده خواهيد كرد:
Output
● mysql.service – MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: en
Active: active (running) since Wed 2018-04-23 21:21:25 UTC; 30min ago
Main PID: 3754 (mysqld)
Tasks: 28
Memory: 142.3M
CPU: 1.994s
CGroup: /system.slice/mysql.service
└─3754 /usr/sbin/mysqld

اگر MySQL در حال اجرا نيست ، مي توانيد آن را با sudo systemctl start mysql راه اندازي كنيد.
براي بررسي بيشتر ، مي توانيد با استفاده از ابزار mysqladmin ، كه يك كلاينت است و به شما امكان اجراي دستورات ادمين را مي دهد ، به پايگاه داده وصل شويد. به عنوان مثال ، اين دستور مي گويد به عنوان ريشه (-u root) به MySQL متصل شويد، اعلان گذرواژه را پر كنيد (-p) ، و نسخه را برگردانيد.
$ sudo mysqladmin -p -u root version

بايد خروجي مشابه اين را ببينيد:
Output
mysqladmin Ver 8.42 Distrib 5.7.21, for Linux on x86_64
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version 5.7.21-1ubuntu1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 30 min 54 sec

Threads: 1 Questions: 12 Slow queries: 0 Opens: 115 Flush tables: 1 Open tables: 34 Que

اين بدان معني است كه MySQL در حال كار است.
نتيجه
اكنون يك ستاپ ساده MySQL روي سرور مجازي خود نصب كرده ايد. در اينجا چند نمونه از مراحل بعدي كه مي توانيد انجام دهيد آورده شده است:
اجراي برخي اقدامات امنيتي اضافي
جابجايي دايركتوري داده ها
مديريت سرور مجازي هاي MySQL خود با SaltStack

 

 

 

 

 

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۰ ارديبهشت ۱۳۹۹ساعت: ۱۱:۲۶:۱۲ توسط:behnam موضوع:

نظارت بر سلامت سرور با Checkmk در اوبونتو

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

براي جستجوي بسته ها مي توانيم به سايت ليست بسته ها برويم. اوبونتو 18.04 را مي توان در فهرست صفحه انتخاب كرد.
اكنون بسته را دانلود كنيد:
⦁ $ wget https://checkmk.com/support/1.6.0p8/check-mk-raw-1.6.0p8_0.bionic_amd64.deb

سپس بسته تازه دانلود شده را نصب كنيد:
⦁ $ sudo apt install -y ./check-mk-raw-1.6.0p8_0.bionic_amd64.deb

اين دستور بسته Checkmk را به همراه تمام متعلقات لازم از جمله وب سرور مجازي Apache كه براي دسترسي به وب به رابط مانيتورينگ استفاده مي شود ، نصب مي كند.
پس از اتمام نصب ، اكنون مي توانيم به دستور omd دسترسي پيدا كنيم. آن را امتحان كنيد:
⦁ $ sudo omd

اين دستور omd به شرح زير است:
Output
Uغير مجاز مي باشدe (called as root):

omd help Show general help

. . .

General Options:
-V 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
<<>>
Version: 1.6.0p8
AgentOS: linux
. . .
[“monitoring”]
<<>>
<<>>

اين خروجي اين دستور است كه 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 ، حتماً به مطالب رسمي مراجعه كنيد.

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۰ ارديبهشت ۱۳۹۹ساعت: ۱۱:۲۴:۰۰ توسط:behnam موضوع:

اجراي چند نسخه PHP بر روي يك سرور

وب Apache از هاست هاي مجازي براي مديريت دامنه هاي متعدد بر روي يك نمونه واحد استفاده مي كند. به طور مشابه ، PHP-FPM از يك Daemon براي مديريت چندين نسخه PHP در يك نمونه واحد استفاده مي كند. مي توانيد از Apache و PHP-FPM با هم استفاده كنيد تا هاست چند برنامه وب PHP باشيد كه هر يك از نسخه متفاوت PHP استفاده ميكند و همه روي يك سرور يكسان و به طور همزمان كار كنند. اين ويژگي از اين لحاظ مفيد است كه برنامه هاي مختلف ممكن است به نسخه هاي مختلف PHP نياز داشته باشند ، اما برخي از پشته هاي سرور ، مانند پشته LAMP كه به طور معمول پيكربندي شده است ، فقط مي توانند يكي را مديريت كنند. تركيب Apache با PHP-FPM همچنين يك راه حل مقرون به صرفه تر از ميزباني هر برنامه به طور خاص است.
PHP-FPM همچنين گزينه هاي پيكربندي براي ورود به سيستم stderr و stdout ، ريستارت اضطراري و spawning روند تطبيقي ​​را ارائه مي دهد ، كه براي سايت هاي داراي بار سنگين مفيد است. در حقيقت ، استفاده از Apache با PHP-FPM يكي از بهترين پشته ها براي هاستينگ برنامه هاي PHP ، به خصوص از لحاظ عملكرد ميباشد.
در اين آموزش دو سايت PHP را به صورت يكجا تنظيم خواهيد كرد. هر سايت از دامنه خود استفاده مي كند و هر دامنه نسخه PHP خود را مستقر مي كند. اولي ، site1.your_domain ، PHP 7.0 را مستقر مي كند. دومي ، site2.your_domain ، PHP 7.2 را مستقر مي كند.
پيش نيازها
• يك سرور CentOS 7 با حداقل 1 گيگابايت رم كه طبق راهنماي راه اندازي سرور اوليه با تنظيم شده باشد ، شامل كاربر sudo غير ريشه و فايروال.
•وب سرور Apache كه با دنبال كردن آموزش نحوه نصب وب سرور Apache در CentOS 7 راه اندازي شود.
• نام دامنه پيكربندي شده براي اشاره به سرور CentOS 7 شما. براي اهداف اين آموزش ، از دو زير دامنه استفاده خواهيم كرد كه هر يك با يك ركورد A در تنظيمات DNS ما مشخص شده اند: site1.your_domain و site2.your_domain.
مرحله 1 – نصب PHP ورژن هاي 7.0 و 7.2 با PHP-FPM
با تكميل پيش نيازها، اكنون نسخه هاي PHP 7.0 و 7.2 را نصب خواهيد كرد. مخزن SCL )مجموعه نرم افزار) نسخه هاي بيشماري از پشته PHP را براي سيستم CentOS 7 نگه مي دارد. اگر به جديدترين نسخه PHP نياز داريد و در SCL موجود نيست ، به جاي آن ، Remi PPA (بايگاني بسته شخصي) را بررسي كنيد.
با نصب مخزن SCL در سيستم خود شروع كنيد:
⦁ $ sudo yum install centos-release-scl -y

ابتدا بيابيم جستجو كنيم كه نسخه هاي PHP 7 در SCL در دسترس هستند:
⦁ $ sudo yum list rh-php7[0-9].x86_64

خروجي مانند اين را خواهيد ديد:
Output
Available Packages
rh-php70.x86_64 2.3-1.el7 centos-sclo-rh
rh-php71.x86_64 1-1.el7 centos-sclo-rh
rh-php72.x86_64 1-2.el7 centos-sclo-rh
rh-php73.x86_64 1-1.el7

توجه داشته باشيد كه جديدترين نسخه ، PHP 7.3 نيز موجود است. براي مثال ما نسخه هاي 7.0 و 7.2 را نصب خواهيم كرد.
بياييد با نسخه قديمي تر شروع كنيم. rh-php70 و rh-php70-php-fpm را نصب كنيد:
⦁ $ sudo yum install rh-php70 rh-php70-php-fpm -y

⦁ rh-php70 متابسته اي است كه برنامه هاي PHP را اجرا مي كند.
⦁ rh-php70-php-fpm مترجم Fast Manager Manager را فراهم مي كند كه به عنوان يك Daemon اجرا مي شود و درخواست هاي Fast / CGI را دريافت مي كند.
حالا فرايند را براي نسخه PHP 7.2 تكرار كنيد. rh-php72 و rh-php72-php-fpm را نصب كنيد.
⦁ $ sudo yum install rh-php72 rh-php72-php-fpm -y

در مرحله بعدي ، دستورات زير را براي شروع استفاده از هر دو مجموعه نرم افزار اجرا كنيد:
⦁ $ sudo scl enable rh-php70 bash

⦁ $ sudo scl enable rh-php72 bash

به طور پيش فرض ، هر دو نسخه PHP پورت 9000 را گوش مي دهند. اما در اين آموزش مي خواهيم دو نسخه را همزمان اجرا كنيم. بنابراين ، بياييد دو پورت جديد را تعيين كنيم:
براي تحقق اين امر مي توانيد /etc/opt/rh/rh-php70/php-fpm.d/www.conf را در ويرايشگر متن مورد علاقه خود باز كرده و هر عدد 9000 را به 9002 تغيير دهيد. سپس فايل را ذخيره كرده و ببنديد و فرآيند را براي /etc/opt/rh/rh-php72/php-fpm.d/www.conf تكرار كنيد ، اكنون 9000 را با 9003 جايگزين كنيد. در غير اين صورت ، مي توانيد از اين دو دستور sed براي انجام جايگزيني استفاده كنيد:
⦁ $ sudo sed -i ‘s/:9000/:9002/’ /etc/opt/rh/rh-php70/php-fpm.d/www.conf

⦁ $ sudo sed -i ‘s/:9000/:9003/’ /etc/opt/rh/rh-php72/php-fpm.d/www.conf

اكنون براي هر يك از خدمات PHP خود پورت اختصاصي تعيين كرده ايد. با اين حال ، قبل از اين كه اين تغييرات كار كنند ، بايد پورت ها را به پيكربندي SELinux اضافه كنيد.
SELinux مخفف Security Enhanced Linux است و به طور پيش فرض در CentOS 7 فعال مي شود. شما بايد پورت هاي جديد 9002 و 9003 خود را به پايگاه داده SELinux اضافه كنيد و آنها را به خدمات httpd خود اختصاص دهيد ، در غير اين صورت برنامه هاي شما اجرا نمي شوند. براي انجام اين كار از دستور semanage استفاده كنيد:
⦁ $ sudo semanage port -a -t http_port_t -p tcp 9002

⦁ $ sudo semanage port -a -t http_port_t -p tcp 9003

پرچم -a مشخص مي كند كه شما يك آبجكت را به بانك اطلاعاتي اضافه مي كنيد. پرچم -t نوع آبجكت را مشخص مي كند ، كه در اين حالت http_port_t است. و پرچم -p پروتكل tcp را تعيين مي كند. مي توانيد در اين آموزش و يا با مراجعه به مطالب رسمي SELinux درباره SELinux و فرمان semanage اطلاعات بيشتري كسب كنيد.
اكنون آماده شروع و فعال كردن خدمات PHP خود هستيد. با سرويس rh-php70-php-fpm خود شروع كنيد و آن را فعال كنيد تا در بوت شروع شود:
⦁ $ sudo systemctl start rh-php70-php-fpm

⦁ $ sudo systemctl enable rh-php70-php-fpm

در مرحله بعدي ، وضعيت سرويس rh-php70-php-fpm خود را تأييد كنيد:
⦁ $ sudo systemctl status rh-php70-php-fpm

خروجي مانند اين را خواهيد ديد:
Output
● rh-php70-php-fpm.service – The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/rh-php70-php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-04-18 04:49:59 UTC; 1min 6s ago
Main PID: 1852 (php-fpm)
Status: “Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec”
CGroup: /system.slice/rh-php70-php-fpm.service
├─1852 php-fpm: master process (/etc/opt/rh/rh-php70/php-fpm.conf)
├─1853 php-fpm: pool www
├─1854 php-fpm: pool www
├─1855 php-fpm: pool www
├─1856 php-fpm: pool www
└─1857 php-fpm: pool www

Apr 18 04:49:59 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Starting The PHP FastCGI Process Manager…
Apr 18 04:49:59 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Started The PHP FastCGI Process Manager.

با تكرار اين فرايند ، سرويس rh-php72-php-fpm را راه اندازي كنيد و آن را فعال كنيد تا از بوت شروع شود:
⦁ $ sudo systemctl start rh-php72-php-fpm

⦁ $ sudo systemctl enable rh-php72-php-fpm

در مرحله بعد ، وضعيت سرويس rh-php72-php-fpm خود را تأييد كنيد:
⦁ $ sudo systemctl status rh-php72-php-fpm

خروجي ديگري مانند اين را مشاهده خواهيد كرد:
Output
● rh-php72-php-fpm.service – The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/rh-php72-php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-04-18 04:50:04 UTC; 1min 59s ago
Main PID: 1876 (php-fpm)
Status: “Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec”
CGroup: /system.slice/rh-php72-php-fpm.service
├─1876 php-fpm: master process (/etc/opt/rh/rh-php72/php-fpm.conf)
├─1877 php-fpm: pool www
├─1878 php-fpm: pool www
├─1879 php-fpm: pool www
├─1880 php-fpm: pool www
└─1881 php-fpm: pool www

Apr 18 04:50:04 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Starting The PHP FastCGI Process Manager…
Apr 18 04:50:04 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Started The PHP FastCGI Process Manager.

در اين مرحله شما دو نسخه PHP را روي سرور خود نصب كرده ايد. در مرحله بعد ، براي هر وب سايتي كه مي خواهيد مستقر كنيد ، يك ساختار دايركتوري ايجاد خواهيد كرد.
مرحله 2 – ايجاد ساختارهاي ديركتوري براي هر دو وب سايت
در اين بخش يك دايركتوري ريشه مستند و يك صفحه ايندكس براي هر يك از وب سايت ها ايجاد مي كنيد
ابتدا دايركتوري هاي ريشه مستندات را براي هر دوي site1.your_domain و site2.your_domain ايجاد كنيد:
⦁ $ sudo mkdir /var/www/site1.your_domain

⦁ $ sudo mkdir /var/www/site2.your_domain

به طور پيش فرض ، وب سرور Apache به عنوان يك كاربر Apache و يك گروه Apache اجرا مي شود. بنابراين / var / www / و كليه فايل ها و زيرشاخه هاي آن نيز بايد متعلق به آنها باشد. دستورالعمل هاي زير را براي تأييد صحت مالكيت و مجوزهاي ديركتوري هاي ريشه وب سايت خود اجرا كنيد:
⦁ $ sudo chown -R apache:apache /var/www/site1.your_domain

⦁ $ sudo chown -R apache:apache /var/www/site2.your_domain

⦁ $ sudo chmod -R 755 /var/www/site1.your_domain

⦁ $ sudo chmod -R 755 /var/www/site2.your_domain

دستور chown مالكيت دو دايركتوري وب سايت شما را به كاربر apache و گروه apache تغيير مي دهد. دستور chmod مجوزهاي مرتبط با آن كاربر و گروه و ساير افراد را تغيير مي دهد.
در مرحله بعد يك فايل info.php را در هر فهرست ريشه وب سايت ايجاد خواهيد كرد. با اين كار اطلاعات نسخه PHP هر وب سايت نمايش داده مي شود. با site1 شروع كنيد:
⦁ $ sudo vi /var/www/site1.your_domain/info.php

خط زير را اضافه كنيد:
/var/www/site1.your_domain/info.php

فايل را ذخيره كنيد و ببنديد. اكنون فايل 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


ServerAdmin admin@site1.your_domain
ServerName site1.your_domain
DocumentRoot /var/www/site1.your_domain
DirectoryIndex info.php
SetHandler “غير مجاز مي باشد: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

براي 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

ServerAdmin admin@site2.your_domain
ServerName site2.your_domain
DocumentRoot /var/www/site2.your_domain
DirectoryIndex info.php
SetHandler “غير مجاز مي باشد: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

پس از اتمام فايل را ذخيره كنيد و ببنديد. سپس فايل پيكربندي 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 را دنبال كنيد.

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۰ ارديبهشت ۱۳۹۹ساعت: ۱۱:۲۱:۴۸ توسط:behnam موضوع:

نصب Nginx، MySQL، PHP در CentOS 7

 پشته نرم افزاري LEMP گروهي از نرم افزارهاي منبع باز است كه به طور معمول در كنار هم نصب مي شوند تا سرور بتواند ميزبان وب سايت هاي پويا و برنامه هاي وب باشد. اين اصطلاح در واقع حاصل يك مخفف است كه سيستم عامل لينوكس ، با سرور وب ENginx (كه جايگزين مولفه Apache يك پشته LAMP مي شود) را نشان ميدهد. داده هاي سايت در يك پايگاه داده مبتني بر MySQL ذخيره مي شوند و محتواي پويا توسط PHP پردازش مي شود.
در اين راهنما ، يك پشته LEMP را با PHP 7.4 كه روي يك سرور CentOS 7 نصب شده است ، با استفاده از MariaDB به عنوان سيستم مديريت پايگاه داده ، دريافت خواهيم كرد. MariaDB به عنوان يك جايگزين براي سرور اصلي MySQL كار مي كند ، كه در عمل به اين معني است كه مي توانيد بدون نياز به ايجاد پيكربندي يا تغيير كد در برنامه ، به MariaDB سوييچ كنيد.
پيش نيازها
قبل از شروع اين راهنما ، بايد يك حساب كاربري جداگانه و غير ريشه در سرور خود تنظيم كنيد. با انجام مراحل 1-4 در تنظيم اوليه سرور براي CentOS 7 مي توانيد نحوه انجام اين كار را ياد بگيريد.
مرحله 1 – نصب Nginx
به منظور نمايش صفحات وب براي بازديد كنندگان سايت ، قصد داريم از Nginx ، سرور وبي با كارايي بالا استفاده كنيم. براي به دست آوردن آخرين نسخه Nginx ، ابتدا مخزن EPEL را نصب خواهيم كرد كه حاوي نرم افزار اضافي براي سيستم عامل CentOS 7 است.
براي اضافه كردن مخزن CentOS 7 EPEL ، دستور زير را اجرا كنيد:
⦁ $ sudo yum install epel-release

از آنجا كه ما از يك دستور sudo استفاده مي كنيم ، اين عمليات با امتيازات اصلي انجام مي شود. از شما رمزعبور كاربر معمولي را ميخواهد تا تأييد كند كه شما اجازه اجراي دستورات داراي امتيازات اصلي را داريد. همچنين از شما خواسته مي شود نصب را تأييد كنيد ، بنابراين Y را براي ادامه فشار دهيد.
اكنون كه مخزن EPEL روي سرور شما نصب شده است ، Nginx را با استفاده از دستور yum زير نصب كنيد:
⦁ $ sudo yum install nginx

پس از اتمام نصب ، سرويس Nginx را با اين دستور راه اندازي كنيد:
⦁ $ sudo systemctl start nginx

با مراجعه به آدرس IP عمومي سرور خود در مرورگر وب ، مي توانيد بلافاصله چك كنيد كه همه چيز مطابق پيش بيني جلو ميرود (اگر اين اطلاعات را نداريد ، ميتوانيد آدرس IP عمومي خود را در زير عنوان بعدي ببينيد):
Open in a web browser:
http://server_domain_name_or_IP/

صفحه پيش فرض CentOS 7 Nginx را مشاهده خواهيد كرد ، كه براي اهداف اطلاع رساني و آزمايش ميباشد. بايد چيزي شبيه به اين ببينيد:

اگر اين صفحه را مشاهده كرديد ، اكنون سرور وب شما به درستي نصب شده است.
براي فعال كردن Nginx در بوت ، دستور زير را اجرا كنيد:
⦁ $ sudo systemctl enable nginx

چگونه آدرس IP عمومي سرور خود را پيدا كنيد
اگر نمي دانيد آدرس IP عمومي سرور شما چيست ، روش هاي مختلفي براي يافتن آن وجود دارد. معمولاً آدرسي است كه شما براي اتصال به سرور خود از طريق SSH استفاده مي كنيد.
از خط فرمان مي توانيد اين چند روش را پيدا كنيد. ابتدا مي توانيد از ابزار iproute2 استفاده كنيد تا آدرس خود را دريافت كنيد:
⦁ $ ip addr show eth0 | grep inet | awk ‘{ print ; }’ | 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

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

 

برچسب‌ها:


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۰ ارديبهشت ۱۳۹۹ساعت: ۱۱:۱۹:۴۲ توسط:behnam موضوع:

بک لینک -
وان ایکس بت
سایت شرط بندی انفجار
بازی انفجار
سایت بازی انفجار
سایت enfejar
سایت جت بت
بهترین سایت پیش بینی فوتبال
سیب بت بدون فیلتر
بازی انفجار
سایت betball90
انفجار آنلاین
جت بت ۹۰
لانا کازینو
betorward
وان ایکس بت
آس ۹۰
جت بت
betforward
river poker
emperor poker
بکس بت
آدرس جدید وان ایکس بت
ماه بت
خرید چک سفید امضاء
بت تایم 90 وی آی پی
وان ایکس بت اصلی
yek bet دانلود برنامه دنس بت شرط بندی بلک جک سایت شرط بندی با واریز مستقیم بت کازینو مجله ی بخت bet303 بت یک جت بت اس نود یک بت یکبت ماف بت بتفیدو plinko بت boro bet بروبت 1x bet اونجا بت پین باهیس شیربت جت بت فارسی بتبال سایت جت بت سایت بت بال نود سایت مگاپاری برنامه جتبت برنامه سیب بت سیب بت دانلود بازی حکم آنلاین irtoto pishbini
سایت بت فوروارد
وانیکس
سایت بت فوروارد
سایت شرط بندی با شارژ 100 تومان

خرید بک‌لینک مؤثر و دائمی از behtarinbacklink خرید بک لینک معتبر behtarinbacklink.com و قدرت لینک‌های دریافتی حداکثر شود

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

پشتیبان تعریف متخصص سئو سایت PDF seo ir
بکلینک چیست بازدید بکلینک قوی و gov بهترین سئوکار
خرید لایسنس انتی ویروس
انجام بک لینک با کیفیت معنی بک لینک https://behtarinbacklink.com/ و خوب افزایش ورودی
قیمت رپورتاژ
آپدیت افلاین نود 32
تصاویر در رپورتاژ آگهی
خدمات و سفارش سئو سایت
مرحله ۴۰۱ آمیرزا
کافه رنت