server majazi

server majazi

بازنويسي URL را با mod_rewrite براي Apache در Debian 10

۶۰ بازديد

mod_rewrite در Apache به شما امكان مي دهد URL ها را با روشي تميزتر بازنويسي كنيد ، مسيرهاي قابل خواندن توسط انسان را به رشته هاي جستار سازگار با كد تبديل كنيد. همچنين به شما امكان مي دهد URL ها را بر اساس شرايط بازنويسي كنيد.
فايل .htaccess به شما امكان مي دهد بدون دسترسي به فايلهاي پيكربندي سرور مجازي ، قوانين بازنويسي را ايجاد و اعمال كنيد. با قرار دادن فايل .htaccess در ريشه وب سايت خود ، مي توانيد بازنويسي ها را بر اساس هر سايت يا هر دايركتوري مديريت كنيد.
در اين آموزش ، شما مي توانيد mod_rewrite را فعال كرده و از فايلهاي .htaccess براي ايجاد يك تغيير مسير URL اصلي استفاده كنيد و سپس چند مورد استفاده پيشرفته را جستجو كنيد.
پيش نيازها
براي دنبال كردن اين آموزش ، به موارد زير نياز داريد:
يك سرور مجازي Debian 10 با دنبال كردن راهنماي ستاپ اوليه سرور مجازي Debian 10 تنظيم شده باشد، و شامل كاربر sudo غير ريشه و يك فايروال باشد.
Apache كه طبق مراحل 1 و 2 نحوه نصب وب سرور مجازي Apache در Debian 10 نصب شده باشد.

مرحله 1 – فعال كردن mod_rewrite
براي اينكه Apache بتواند قوانين بازنويسي را درك كند ، ابتدا بايد mod_rewrite را فعال كنيم. قبلاً نصب شده است ، اما در نصب پيش فرض Apache غيرفعال است. براي فعال كردن ماژول از دستور a2enmod استفاده كنيد:
$ sudo a2enmod rewrite

با اين كار ماژول فعال مي شود يا به شما هشدار مي دهد كه ماژول از قبل فعال شده است. براي اجراي اين تغييرات ، Apache را مجدداً راه اندازي كنيد:
$ sudo systemctl restart apache2

اكنون mod_rewrite كاملاً فعال است. در مرحله بعدي يك فايل .htaccess را براي تعريف قوانين بازنويسي براي تغيير مسيرها تنظيم خواهيم كرد.
مرحله 2 – تنظيم .htaccess
فايل .htaccess به ما امكان مي دهد قوانين بازنويسي خود را بدون دسترسي به فايل هاي پيكربندي سرور مجازي اصلاح كنيم. به همين دليل ، .htaccess براي امنيت برنامه وب شما بسيار مهم است. زماني كه پيش از نام فايل وجود دارد، اطمينان مي دهد كه فايل پنهان شده است.

توجه: هر قانوني كه بتوانيد در يك فايل .htaccess قرار دهيد ، مي تواند مستقيماً در فايل هاي پيكربندي سرور مجازي قرار گيرد. در حقيقت ، مطالب رسمي Apache توصيه مي كند از فايل هاي پيكربندي سرور مجازي به جاي .htaccess به دليل زمان پردازش سريعتر استفاده كنيد.
با اين حال ، در اين مثال ساده ، افزايش عملكرد ناچيز خواهد بود. علاوه بر اين ، تنظيم قوانين در .htaccess راحت است ، به خصوص با چندين وب سايت در همان سرور مجازي. نيازي به راه اندازي مجدد سرور مجازي براي ايجاد تغييرات يا اعمال امتيازات اصلي براي ويرايش قوانين ، ساده سازي نگهداري و روند ايجاد تغييرات با يك حساب بدون امتياز نيست. نرم افزارهاي منبع باز محبوب مانند WordPress و Joomla براي ايجاد تغييرات و قوانين اضافي در صورت تقاضا به فايلهاي .htaccess متكي هستند.
قبل از شروع استفاده از فايل هاي .htaccess ، بايد تنظيمات ديگري را تنظيم و ايمن كنيد.
به طور پيش فرض ، Apache با استفاده از فايل .htaccess اعمال قوانين بازنويسي را ممنوع مي كند ، بنابراين ابتدا بايد تغييراتي در فايل اعمال كنيد. فايل پيش فرض پيكربندي Apache را با استفاده از nano يا ويرايشگر متن مورد علاقه خود باز كنيد:
$ sudo nano /etc/apache2/sites-available/000-default.conf

در داخل آن فايل ، بلوك را كه از خط اول شروع مي شود ، پيدا خواهيد كرد. در داخل آن بلوك ، بلوك جديد زير را اضافه كنيد تا فايل پيكربندي شما مانند زير شود. مطمئن شويد كه همه بلوك ها به درستي قرار گرفته اند:
/etc/apache2/sites-available/000-default.conf


Options Indexes FollowSymLinks
AllowOverride All
Require all granted

. . .

فايل را ذخيره كنيد و ببنديد. اگر از nano استفاده كرده ايد ، اين كار را با فشار دادن CTRL + X ، Y ، سپس enter انجام دهيد.
سپس ، پيكربندي خود را بررسي كنيد:
$ sudo apache2ctl configtest

اگر خطايي وجود ندارد ، Apache را مجدداً راه اندازي كنيد تا تغييرات خود را به مرحله اجرا برسانيد:
$ sudo systemctl restart apache2

اكنون ، يك فايل .htaccess را در ريشه وب ايجاد كنيد:
$ sudo nano /var/www/html/.htaccess

اين خط را در بالاي فايل جديد اضافه كنيد تا موتور بازنويسي فعال شود.
var/www/html/.htaccess
RewriteEngine on

فايل را ذخيره كرده و خارج شويد.
اكنون يك فايل .htaccess عملياتي داريد كه مي توانيد از آن استفاده كنيد تا قوانين مسيريابي برنامه وب خود را كنترل كنيد. در مرحله بعد ، يك فايل وب سايت نمونه را ايجاد خواهيم كرد كه براي نشان دادن قوانين بازنويسي استفاده خواهيم كرد.
مرحله 3 – پيكربندي بازنويسي URL
در اينجا ، يك بازنويسي URL پايه را تنظيم مي كنيم كه URL هاي زيبا را به مسيرهاي واقعي به صفحات تبديل مي كند. به طور خاص ، ما به كاربران اين امكان را مي دهيم كه به http: // your_server_ip / about دسترسي پيدا كنند و صفحه اي به نام about.html را به نمايش بگذارند.
با ايجاد فايلي با نام about.html در ريشه وب شروع كنيد:
$ sudo nano /var/www/html/about.html

كد HTML زير را در فايل كپي كنيد ، سپس آن را ذخيره كرده و ببنديد.
/var/www/html/about.html


About Us


About Us



شما مي توانيد به اين صفحه به آدرس http: //your_server_ip/about.html دسترسي پيدا كنيد ، اما توجه داشته باشيد كه اگر سعي كنيد به http: // your_server_ip / About دسترسي پيدا كنيد ، خطاي 404 Not Found  را مشاهده خواهيد كرد. در عوض براي دسترسي به صفحه با استفاده از /about، يك قانون بازنويسي ايجاد خواهيم كرد.
همه RewriteRules از اين قالب پيروي مي كنند:
General RewriteRule structure
RewriteRule pattern substitution [flags]

RewriteRule دستورالعمل را مشخص مي كند
patternيك عبارت معمولي است كه رشته مورد نظر را از URL مطابقت مي دهد ، همان چيزي است كه بيننده در مرورگر تايپ مي كند.
substitution مسير URL واقعي است ، يعني مسير فايلي كه Apache ارائه مي كند.
flags پارامترهاي اختياري هستند كه مي توانند نحوه عملكرد قانون را تغيير دهند.
بياييد قانون بازنويسي URL را ايجاد كنيم. فايل .htaccess را باز كنيد:
$ sudo nano /var/www/html/.htaccess

بعد از اولين خط ، RewriteRule زير را اضافه كنيد و فايل را ذخيره كنيد:
/var/www/html/.htaccess
RewriteEngine on
RewriteRule ^about$ about.html [NC]

در اين حالت ، ^about$ الگو است ، about.html جايگزين است ، و [NC] يك پرچم است. مثال ما از چند كاراكتر با معني خاص استفاده مي كند:
^ شروع URL را نشان مي دهد ، بعد از your_server_ip /.
$ نشانگر پايان URL است.
about با رشته “درباره” منطبق ميشود
About.html فايل واقعي است كه كاربر به آن دسترسي پيدا مي كند.
[NC] يك پرچم است كه قانون را نسبت به نمونه غير حساس مي كند.
اكنون مي توانيد به مرورگر خود به http: // your_server_ip / about دسترسي پيدا كنيد. در حقيقت ، با اين قانون كه در بالا نشان داده شده است ، آدرس هاي اينترنتي زير به about.html نيز اشاره مي كنند:
http: // your_server_ip / about ، به دليل تعريف قانون.
http: // your_server_ip / About ، چون اين قانون حساسيتي ندارد.
http: //your_server_ip/about.html ، زيرا نام اصلي فايل هميشه كار خواهد كرد.
با اين حال ، موارد زير كار نخواهد كرد:
http: // your_server_ip / about / ، زيرا اين قانون به صراحت بيان مي كند كه ممكن است هيچ چيز ديگري بعد از about وجود نداشته باشد ، زيرا كاراكتر $ بعد از آن ظاهر مي شود.
http: // your_server_ip / contact ، زيرا با رشته about در قانون مطابقت ندارد.
اكنون يك فايل .htaccess عملياتي با يك قانون پايه داريد كه مي توانيد نيازهاي خود را تغيير داده و گسترش دهيد. در بخش هاي بعدي ، دو نمونه ديگر از دستورالعمل هاي متداول را نشان خواهيم داد.
مثال 1 – ساده سازي رشته هاي پرس و جو با RewriteRule
برنامه هاي وب اغلب از رشته هاي پرس و جو استفاده مي كنند ، كه با استفاده از علامت سؤال (؟) بعد از آدرس به URL اضافه مي شوند. پارامترهاي جداگانه با استفاده از ampersand (&) محدود مي شوند. رشته هاي پرس و جو ممكن است براي انتقال داده هاي اضافي بين صفحات برنامه فردي استفاده شود.
به عنوان مثال ، يك صفحه نتيجه جستجو كه به زبان PHP نوشته شده است ، مي تواند از URL مانند http://example.com/results.php?item=shirt&season=summer استفاده كند. در اين مثال ، دو پارامتر اضافي به اسكريپت نرم افزار result.php موهومي منتقل مي شود: item ، با مقدار shirt ، و season با مقدار summer. برنامه ممكن است از اطلاعات رشته پرس و جو براي ايجاد صفحه مناسب براي بازديد كننده استفاده كند.
قوانين بازنويسي Apache اغلب براي ساده كردن پيوندهاي طولاني و ناخوشايند به عنوان مثال URL فوق به URLهاي مناسب تر كه تايپ و تفسير بصري آسان تري دارند ، به كار مي روند. در اين مثال ، ما مي خواهيم لينك بالا را ساده كنيم تا به http://example.com/shirt/summer تبديل شود. مقادير پارامتر shirt و summer هنوز در آدرس هستند ، اما بدون نام رشته و نام اسكريپت.
در اينجا يك قانون براي انجام اين كار وجود دارد:
Simple substition
RewriteRule ^shirt/summer$ results.php?item=shirt&season=summer [QSA]

summer / shirt به طور واضح در آدرس درخواستي مطابقت دارد و به Apache گفته مي شود كه به جاي results.php?item=shirt&season=summer را ارائه دهد.
پرچم هاي [QSA] معمولاً در قوانين بازنويسي استفاده مي شوند. آنها به Apache مي گويند هر رشته درخواست اضافي را در URL ارائه شده اضافه كند ، بنابراين اگر بازديد كننده http://example.com/shirt/summer?page=2 را تايپ كند، سرور مجازي با results.php?item=shirt&season=summer&page=2 پاسخ مي دهد. بدون آن ، رشته پرس و جو اضافي دور ريخته مي شود.
در حالي كه اين روش به جلوه مطلوب دست مي يابد ، هم نام آيتم و هم فصل به طور خاص كدگذاري مي شوند. اين بدان معني است كه اين قانون براي ساير موارد ، مانند pants ، يا فصول ديگر مانند winter كار نخواهد كرد.
براي عمومي تر كردن اين قاعده ، مي توانيم از عبارات منظم براي مطابقت با قسمت هاي آدرس اصلي استفاده كنيم و از آن قسمت ها در الگوي جايگزين استفاده كنيم. قانون اصلاح شده به اين شكل در خواهد آمد:
Simple substition
RewriteRule ^([A-Za-z0-9]+)/(summer|winter|fall|spring) results.php?item=$1&season=$2 [QSA]

اولين گروه عبارت معمول در پرانتز با رشته اي حاوي حروف الفبا و اعدادي مانند shirt يا pants مطابقت دارد و بخش منطبق را به عنوان متغير $1 ذخيره مي كند. دومين گروه عبارت معمول در پرانتز دقيقاً summer ، winter ، fall يا spring را مطابقت ميدهد و به همين ترتيب بخش سازگار را به عنوان $2 ذخيره مي كند.
بخش هاي منطبق پس از آن در URL نتيجه به صورت متغيرهاي item و season به جاي مقادير shirt و summer استفاده مي شوند.
موارد فوق مثلاً http://example.com/pants/summer را به http://example.com/results.php?item=pants&season=summer تبديل مي كند. اين مثال همچنين مناسب آينده است ، به شما امكان مي دهد چندين مورد و فصل را به طور صحيح با استفاده از يك قانون واحد بازنويسي كنيد.
مثال 2 – اضافه كردن شرايط با منطق با استفاده از RewriteConds
قوانين بازنويسي الزاماً هميشه يك به يك و بدون محدوديت ارزيابي نمي شوند. دستورالعمل RewriteCond به ما امكان مي دهد شرايطي را براي قوانين بازنويسي خود اضافه كنيم تا كنترل كنيم چه زماني اين قوانين پردازش مي شوند. كليه RewriteConds با فرمت زير عمل مي كنند:
General RewriteCond structure
RewriteCond TestString Condition [Flags]

RewriteCond دستورالعمل RewriteCond را مشخص مي كند.
TestString رشته اي است كه بايد در برابر آن آزمايش كنيد.
Condition الگو يا شرط مطابقت است.
Flags پارامترهاي اختياري هستند كه ممكن است شرايط و قوانين ارزيابي را تغيير دهند.
اگر نتيجه ارزيابي RewriteCond درست باشد ، RewriteRule بعدي در نظر گرفته مي شود. اگر درست نباشد ، اين قانون كنار گذاشته مي شود. چندين RewriteConds ممكن است يكي پس از ديگري مورد استفاده قرار گيرند ، اگرچه همه بايد براي ارزيابي قانون بعدي درست باشند.
به عنوان نمونه ، فرض مي كنيم شما مي خواهيد به جاي نشان دادن صفحه خطاي استاندارد  404 Not Found ، همه درخواست ها را به فايل ها يا ديركتوري هاي غير موجود در سايت خود برگردانيد. اين امر با قوانين زير حاصل ميشود:
Redirect all requests to non-existent files and directories to home page
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /

%{REQUEST_FILENAME} رشته اي براي بررسي است. در اين حالت ، نام فايل درخواستي است ، كه متغير سيستمي براي هر درخواست ميباشد.
-f يك شرايط داخلي است كه تأييد مي كند كه آيا نام درخواست شده در ديسك وجود دارد و يك فايل است. ! يك عامل منفي كننده است. تركيب! -f فقط درصورتي كه نام مشخص شده وجود نداشته باشد يا فايل نباشد ، درست ارزيابي مي شود.
• به طور مشابه ،! -d فقط درصورتي كه نام مشخص شده وجود نداشته باشد يا ديركتوري نباشد ، درست ارزيابي مي شود.
RewriteRule در خط نهايي فقط براي درخواست به فايل ها يا دايركتوري هاي غير موجود وارد خواهد شد. خود RewriteRule بسيار ساده است و هر درخواستي را به ريشه / وب سايت هدايت مي كند.
نتيجه
mod_rewrite به شما امكان مي دهد URL هاي قابل خواندن توسط انسان ايجاد كنيد. در اين آموزش ، ياد گرفتيد كه چگونه از دستورالعمل RewriteRule براي هدايت URL ها استفاده كنيد ، از جمله آنهايي كه رشته هاي پرس و جو دارند. همچنين ياد گرفتيد كه چگونه URL ها را با استفاده از دستورالعمل RewriteCond به صورت مشروط هدايت كنيد.
اگر مي خواهيد در مورد mod_rewrite اطلاعات بيشتري كسب كنيد ، به mod_rewrite Introduction و مستندات رسمي Apache براي mod_rewrite نگاهي بيندازيد.

 

 

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

استفاده از nsh براي دستورات از راه دور اوبونتو 18 –  ميزباني وب سايت با Caddy اوبونتو 18

تنظيم سرور ذخيره سازي آبجكت با استفاده از Minio در اوبونتو 18  –  ضبط و اشتراك گذاري ترمينال با Terminalizer اوبونتو

تنظيم مسيريابي شرطي و پاسخگو با React Router v4  –  ايجاد يك URL كوتاه كننده با Django و GraphQL

يك برنامه رديابي سلامت را با React ،GraphQL و Okta –  ساخت برنامه ******** زمان حقيقي React و GraphQL

به روزرساني فيلترهاي مرتب سازي Angular (زاويه اي) –  با استفاده از React ، Superagent و API اينستاگرام

نحوه ساختن يك برنامه جهاني با Nuxt.js و Django –  دكمه دانلود با ريزتعاملات با CSS ، anime.js و segment.js

نحوه اضافه كردن عكسهاي پيشرفته در Node و Express  –  با Vue ،GraphQL و Apollo Client يك وبلاگ ساخت

يك برنامه SSR با روتر Preact ، Unistore و Preact بسازيد  –  ساخت برنامه هاي وب پيشرونده با Angular

اشكال زدايي JavaScript در توليد با نقشه هاي منبع  –  مي توان با Koa برنامه “سلام جهاني” ساخت

ساختن يك برنامه با Node ، React ، Okta  –   مديريت حالت فرم در React با Redux Form

نحوه تنظيم Laravel ، Nginx و MySQL  –  ارتقاء از AngularJS به Angular با ngUpgrade

استفاده از ويژوال استوديو از راه دور  –  احراز هويت API با JSON Web Tokens و Passport

راه اندازي يك پروژه React با Parcel  –  ايجاد Swiper مانند Netflix را در Vue

ساختن يك ربات تلگرام با Laravel و BotMan  –  استفاده از map، filter، و reduce در جاوااسكريپت

چگونه مي توان موتور جستجوي زمان واقعي را با Vue  –  ساختن سيستم مستندات (Documentation) با Vue و VuePress

استفاده از اشتراك زنده با كد ويژوال استوديو  –  ساخت يك مقياس اندازه گيري قدرت رمز عبور را در React

شروع عملي GraphQL با Node.js و Express  –  ساخت يك برنامه آب و هوا در Django

نحوه نصب Discourse روي Ubuntu 18  –  تأييد رمز عبور با استفاده از درخواست فرم Laravel

نحوه نصب MySQL در CentOS 8  –  استفاده از پسوند PDO PHP براي انجام تراكنش MySQL

نصب و پيكربندي SNMP Daemon و Client در Ubuntu 18  –  نصب Linux، Nginx، MariaDB،PHP در Debian 10

 

 

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

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

 

برچسب‌ها:htaccess, Joomla, mod_rewrite, URL,

نصب وب سرور Apache در Debian 10

۵۶ بازديد

Apache HTTP پركاربردترين وب سرور مجازي در جهان است. اين سرور مجازي بسياري از ويژگي هاي قدرتمند از جمله ماژول هاي قابل بارگيري پويا ، پشتيباني رسانه اي قوي و ادغام گسترده با ساير نرم افزارهاي محبوب را ارائه مي دهد.
در اين راهنما نحوه نصب يك وب سرور مجازي Apache را در سرور مجازي Debian 10 شما توضيح خواهيم داد.
پيش نيازها
قبل از شروع اين راهنما ، بايد يك كاربر معمولي و غير ريشه با امتيازات sudo در سرور مجازي خود داشته باشيد. علاوه بر اين ، بايد يك فايروال پايه را فعال كنيد تا پورت هاي غير ضروري را مسدود نماييد. با پيروي از راهنماي تنظيم اوليه سرور مجازي براي Debian 10 مي توانيد نحوه پيكربندي يك حساب كاربري معمولي و تنظيم فايروال را براي سرور مجازي خود بياموزيد.
هنگامي كه يك حساب كاربري در اختيار گرفتيد ، به عنوان كاربر غير ريشه خود وارد شويد.
مرحله 1 – نصب Apache
Apache در مخازن پيش فرض نرم افزار Debian موجود است و امكان نصب آن با استفاده از ابزارهاي مديريت بسته معمولي امكان پذير است.
بياييد با به روز كردن فهرست بسته محلي شروع كنيم تا آخرين تغييرات بالادست را منعكس كنيم:
⦁ $ sudo apt update

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

پس از تأييد نصب ، apt و تمام متعلقات مورد نياز را نصب مي كند.
مرحله 2 – تنظيم فايروال
قبل از آزمايش Apache ، لازم است تنظيمات فايروال را اصلاح كنيد تا دسترسي خارجي به پورت هاي پيش فرض وب را بدهيد. با فرض اينكه دستورالعمل هاي پيش نياز را رعايت كرده باشيد ، بايد فايروال UFW را تنظيم كرده تا دسترسي به سرور مجازي شما محدود شود.
در حين نصب ، Apache خود را با UFW ثبت مي كند تا چند پروفايل برنامه ارائه دهد كه مي تواند براي فعال يا غيرفعال كردن دسترسي به Apache از طريق فايروال استفاده شود.
پروفايل برنامه ufw را با تايپ كردن دستور زير ليست كنيد:
⦁ $ sudo ufw app list

ليستي از پروفايل هاي برنامه را مشاهده خواهيد كرد:
Output
Available applications:
AIM
Bonjour
CIFS
. . .
WWW
WWW Cache
WWW Full
WWW Secure
. . .

پروفايل هاي Apache با WWW آغاز مي شود:
WWW: اين نمايه فقط پورت 80 را باز مي كند (ترافيك وب عادي و بدون رمزگذاري)
WWW Cache: اين نمايه فقط پورت 8080 را باز مي كند (گاهي اوقات براي ذخيره سازي و پروكسي هاي وب استفاده مي شود)
WWW Full: اين نمايه هر دو پورت 80 (ترافيك وب عادي ، بدون رمزگذاري) و پورت 443 (ترافيك رمزگذاري شده TLS / SSL) را باز مي كند
WWW Secure: اين نمايه فقط پورت 443 را باز مي كند (ترافيك رمزگذاري شده TLS / SSL)
توصيه مي شود محدودترين نمايه اي را كه امكان ترافيك پيكربندي شده شما را فراهم مي كند ، فعال كنيد. از آنجا كه ما هنوز در اين راهنما SSL را براي سرور مجازي خود پيكربندي نكرده ايم ، فقط نياز به ترافيك در بندر 80 داريم:
⦁ $ sudo ufw allow ‘WWW’

مي توانيد تغيير را با تايپ دستور زير تأييد كنيد:
⦁ $ sudo ufw status

بايد ترافيك HTTP مجاز در خروجي نمايش داده شده را مشاهده كنيد:
Output
Status: active

To Action From
— —— —-
OpenSSH ALLOW Anywhere
WWW ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
WWW (v6) ALLOW Anywhere (v6)

همانطور كه مشاهده مي كنيد ، نمايه براي دسترسي به سرور مجازي وب فعال شده است.
مرحله 3 – بررسي سرور مجازي وب خود
در پايان مراحل نصب ، Debian 10 ، Apache را شروع مي كند. اكنون وب سرور مجازي بايد راه اندازي و در حال اجرا باشد.
با سيستم init systemed بررسي كنيد تا مطمئن شويد اين سرويس در حال اجراست ، دستور زير را تايپ كنيد:
⦁ $ sudo systemctl status apache2

Output
● apache2.service – The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-07-19 15:33:01 UTC; 4min 13s ago
Docs: https://httpd.apache.org/docs/2.4/

. . .

Jul 19 15:33:01 debssh systemd[1]: Starting The Apache HTTP Server…
Jul 19 15:33:01 debssh apachectl[2791]: AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive global
Jul 19 15:33:01 debssh systemd[1]: Started The Apache HTTP Server.

همانطور كه از اين خروجي مي بينيد ، به نظر مي رسد اين سرويس با موفقيت شروع شده است. با اين حال ، بهترين راه براي آزمايش، درخواست يك صفحه از Apache است.
براي تأييد صحت اجراي نرم افزار از طريق آدرس IP خود ، مي توانيد به صفحه فرود پيش فرض Apache دسترسي پيدا كنيد. اگر آدرس IP سرور مجازي خود را نمي دانيد ، مي توانيد آن را به چند راه مختلف از خط فرمان دريافت كنيد.
سعي كنيد اين را در خط فرمان سرور مجازي خود تايپ كنيد:
⦁ $ hostname -I

چند آدرس كه با فاصله از هم جدا شده اند، دريافت مي كنيد. مي توانيد هركدام را در مرورگر وب خود امتحان كنيد تا ببينيد كه آيا كار مي كنند.
راه ديگر استفاده از ابزار curl است كه بايد آدرس IP عمومي خود را همانطور كه از مكان ديگري در اينترنت مشاهده مي شود به شما بدهد.
ابتدا ، curl را با استفاده از aptنصب كنيد:
⦁ $ sudo apt install curl

سپس از curl براي بازيابي icanhazip.com به كمك IPv4 استفاده نماييد.
⦁ $ curl -4 icanhazip.com

هنگامي كه آدرس IP سرور مجازي خود را داريد ، آن را در نوار آدرس مرورگر خود وارد كنيد:

http://your_server_ip

بايد صفحه وب پيش فرض Debian 10 Apache را ببينيد:

اين صفحه نشان مي دهد كه Apache درست كار مي كند. اين برنامه همچنين شامل برخي از اطلاعات اوليه در مورد فايل هاي مهم Apache و مكان هاي فهرست بندي است.
مرحله 4 – مديريت فرايند Apache
اكنون كه سرور مجازي وب خود را فعال و راه اندازي كرده ايد ، اجازه دهيد برخي از دستورات مديريت اصلي را مرور كنيم.
براي متوقف كردن سرور مجازي وب خود ، تايپ كنيد:
⦁ $ sudo systemctl stop apache2

براي شروع سرور مجازي وب وقتي متوقف شده است ، تايپ كنيد:
⦁ $ sudo systemctl start apache2

براي متوقف كردن و شروع مجدد سرويس ، تايپ كنيد:
⦁ $ sudo systemctl restart apache2

اگر به سادگي تغييرات پيكربندي را انجام مي دهيد ، Apache اغلب مي تواند بدون افت اتصالات مجدد لود شود. براي انجام اين كار ، از اين دستور استفاده كنيد:
⦁ $ sudo systemctl reload apache2

به طور پيش فرض ، Apache به گونه اي پيكربندي مي شود كه به طور خودكار با بوت شدن سرور مجازي شروع به كار كند. اگر اين چيزي نيست كه شما مي خواهيد ، با تايپ كردن اين دستور آن را غيرفعال كنيد:
⦁ $ sudo systemctl disable apache2

براي فعال كردن مجدد سرويس در هنگام بوت ، اين دستور را تايپ كنيد:
⦁ $ sudo systemctl enable apache2

با شروع مجدد بوت شدن سرويس دهنده ، اكنون Apache بايد به طور خودكار شروع كند.
مرحله 5 – تنظيم ميزبان هاي مجازي (توصيه مي شود(
هنگام استفاده از وب سرور مجازي Apache ، مي توانيد از هاست هاي مجازي (مشابه بلوك هاي سرور مجازي در Nginx ) براي محصور كردن جزئيات پيكربندي و ميزباني بيش از يك دامنه از يك سرور مجازي واحد استفاده كنيد. در دستورات زير ، your_domain را با نام دامنه خود جايگزين كنيد. براي كسب اطلاعات بيشتر در مورد تنظيم نام دامنه با vpsgol ، به مقدمه ما در vpsgol DNS مراجعه كنيد.
Apache در Debian 10 داراي يك بلوك سرور مجازي است كه به طور پيش فرض فعال شده است تا اسناد را از ديركتوري / var / www / html. ارائه دهد.اگرچه اين براي يك سايت واحد به خوبي كار مي كند ، اما اگر ميزبان چندين سايت باشيد ، مي تواند با مشكل روبه رو شود. به جاي اصلاح / var / www / html ، بياييد يك ساختار دايركتوري در / var / www براي سايت your_domain ايجاد كنيم ، در اين صورت / var / www / html را به عنوان دايركتوري پيش فرض قرار مي دهيم كه در صورتي كه درخواست كلاينت با هيچ سرويسي مطابقت نداشته باشد، ارائه شود.
با استفاده از پرچم -p ، براي ايجاد هر ديركتوري لازم ، ديركتوري را براي your_domain به صورت زير ايجاد كنيد:
sudo mkdir -p /var/www/your_domain
سپس ، مالكيت دايركتوري را با متغير محيطي $ USER اختصاص دهيد:
⦁ $ sudo chown -R $USER:$USER /var/www/your_domain

در صورتي كه مقدار unmask خود را تغيير نداده ايد ، مجوزهاي ريشه وب شما بايد صحيح باشد ، اما مي توانيد با تايپ دستور زير مطمئن شويد:
⦁ $ sudo chmod -R 755 /var/www/your_domain

سپس ، با استفاده از nano يا ويرايشگر مورد علاقه خود ، صفحه index.html نمونه را ايجاد كنيد:
⦁ $ nano /var/www/your_domain/index.html

در داخل ، HTML نمونه زير را اضافه كنيد:
/var/www/your_domain/index.html


Welcome to your_domain!


Success! The your_domain virtual host is working!



پس از اتمام فايل را ذخيره كنيد و ببنديد.
براي اينكه Apache بتواند اين محتوا را ارائه دهد ، بايد يك فايل ميزبان مجازي با بخشنامه هاي صحيح ايجاد كنيد. به جاي تغيير فايل پيكربندي پيش فرض واقع در /etc/apache2/sites-available/000-default.conf ، اجازه دهيد فايل جديدي را در /etc/apache2/sites-available/your_domain.conf ايجاد كنيم:
⦁ $ sudo nano /etc/apache2/sites-available/your_domain.conf

در بلوك پيكربندي زير كه مشابه پيش فرض است ، پيست كنيد اما براي ديركتوري جديد و نام دامنه آن را به روز كنيد:
/etc/apache2/sites-available/your_domain.conf

ServerAdmin admin@your_email_domain
ServerName your_domain
ServerAlias www.your_domain
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

توجه كنيد كه ما DocumentRoot را در دايركتوري جديد خود و ServerAdmin را به ايميلي كه به مدير سايت your_domain دسترسي دارد ، به روز كرده ايم. همچنين دو دستورالعمل اضافه كرده ايم: ServerName ، كه دامنه پايه اي را كه بايد براي اين تعريف ميزبان مجازي مطابقت داشته باشد منتشر ميكند، و ServerAlias ​​، كه نامهاي ديگري را تعريف مي كند كه بايد مطابق با نام اصلي باشند.
پس از اتمام فايل را ذخيره كنيد و ببنديد.
بياييد فايل را با ابزار a2ensite فعال كنيم:
⦁ $ sudo a2ensite your_domain.conf

سايت پيش فرض تعريف شده در 000-default.conf را غيرفعال كنيد.
⦁ $ sudo a2dissite 000-default.conf

سپس ، خطاهاي پيكربندي را آزمايش كنيد:
⦁ $ sudo apache2ctl configtest

بايد خروجي زير را مشاهده كنيد:
Output
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message
Syntax OK

براي اجراي تغييرات مجدد Apache را راه اندازي كنيد.
⦁ $ sudo systemctl restart apache2

اكنون Apache بايد در خدمت نام دامنه شما باشد. مي توانيد با رفتن به http: // your_domain آن را تست كنيد، در آن جا بايد چيزي شبيه به اين را مشاهده كنيد :

مرحله ششم – آشنايي با فايل ها و ديركتوري هاي Apache
اكنون كه مي دانيد چگونه خود سرويس Apache را مديريت كنيد ، بايد چند دقيقه وقت بگذاريد تا با چند ديركتوري و فايل مهم آشنا شويد.
Content (محتوا)
/ var / www / html: محتواي وب واقعي ، كه به طور پيش فرض فقط شامل صفحه پيش فرض Apache است كه قبلاً ديديد ، از ديركتوري / var / www / html ارائه مي شود. با تغيير فايل هاي پيكربندي Apache مي توان اين مورد را تغيير داد.
Server Configuration )پيكربندي سرور مجازي (
/ etc / apache2: ديركتوري تنظيمات Apache است. همه فايل هاي پيكربندي Apache در اينجا قرار دارند.
/etc/apache2/apache2.conf: فايل اصلي پيكربندي Apache كه مي تواند براي ايجاد تغيير در پيكربندي جهاني Apache اصلاح شود. اين فايل وظيفه لود بسياري از فايل هاي ديگر را در ديركتوري تنظيمات دارد.
/etc/apache2/ports.conf: اين فايل پورت هايي را كه Apache در آن گوش خواهد داد را مشخص مي كند. به طور پيش فرض ، Apache درگاه 80 را گوش مي دهد و علاوه بر اين در هنگام فعال كردن ماژول قابليت هاي SSL ، درگاه 443 را نيز پيگيري ميكند.
/ etc / apache2 / sites-available /: دايركتوري كه ميزبان مجازي در هر سايت در آن قابل ذخيره است. Apache از فايل هاي پيكربندي موجود در اين ديركتوري استفاده نمي كند مگر اينكه به ديركتوري sites-enabled مرتبط باشند. به طور معمول ، تمام پيكربندي بلوك سرور مجازي در اين دايركتوري انجام مي شود ، و سپس با پيوند به ديركتوري ديگر با دستور a2ensite فعال مي شويد.
/ etc / apache2 / sites-enabled /: دايركتوري كه ميزبان مجازي فعال در هر سايت را ذخيره ميكند. به طور معمول ، با پيوند دادن به فايل هاي پيكربندي موجود در ديركتوري sites-available به a2ensite ايجاد مي شوند. Apache هنگام راه اندازي يا لود مجدد ، فايل هاي پيكربندي و پيوندهاي موجود در اين ديركتوري را مي خواند تا يك پيكربندي كامل را كامپايل كند.
/ etc / apache2 / conf-available /، / etc / apache2 / conf-enabled /: اين دايركتوري ها همانند دايركتوري هاي sites-available و sites-enabled ارتباط دارند ، اما براي ذخيره بخش هايي از پيكربندي كه به ميزبان مجازي تعلق ندارد ، استفاده مي شوند. فايل هاي موجود در ديركتوري conf-available با استفاده از دستور a2enconf مي توانند فعال شوند و با دستور a2disconf غيرفعال گردند.
/ etc / apache2 / mods-available /، / etc / apache2 / mods-enabled /: اين ديركتوري ها به ترتيب شامل ماژول هاي موجود و فعال هستند. فايل هايي كه به.load ختم ميشوند شامل بخش هايي براي بارگذاري ماژول هاي خاص هستند ، در حالي كه فايل هاي منتهي به .conf شامل پيكربندي براي اين ماژول ها هستند. ماژول ها را مي توان با استفاده از دستور a2enmod و a2dismod فعال و غيرفعال كرد.
Server Logs (ورود ها به سرور مجازي )
/var/log/apache2/access.log: به طور پيش فرض ، هر درخواستي به سرور مجازي وب شما در اين فايل log ثبت مي شود ، مگر اينكه Apache پيكربندي شده باشد كه كاري غير از اين را انجام دهد.
/var/log/apache2/error.log: به طور پيش فرض ، همه خطاها در اين فايل ثبت مي شوند. دستورالعمل LogLevel در پيكربندي Apache مشخص مي كند كه چه تعداد جزئيات ثبت خطا را شامل مي شود.
نتيجه
اكنون كه سرور مجازي وب خود را نصب كرده ايد ، گزينه هاي بسياري براي نوع محتوايي كه مي توانيد ارائه كنيد و فن آوري هايي كه مي توانيد از آنها استفاده كنيد داريد تا يك تجربه غني تر را ايجاد كنيد.
اگر مي خواهيد يك برنامه كاربردي كاملتر ايجاد كنيد ، مي توانيد به اين مقاله در مورد نحوه پيكربندي پشته LAMP در Debian 10 نگاهي بيندازيد.

 

 

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

استفاده از nsh براي دستورات از راه دور اوبونتو 18 –  ميزباني وب سايت با Caddy اوبونتو 18

تنظيم سرور ذخيره سازي آبجكت با استفاده از Minio در اوبونتو 18  –  ضبط و اشتراك گذاري ترمينال با Terminalizer اوبونتو

تنظيم مسيريابي شرطي و پاسخگو با React Router v4  –  ايجاد يك URL كوتاه كننده با Django و GraphQL

يك برنامه رديابي سلامت را با React ،GraphQL و Okta –  ساخت برنامه ******** زمان حقيقي React و GraphQL

به روزرساني فيلترهاي مرتب سازي Angular (زاويه اي) –  با استفاده از React ، Superagent و API اينستاگرام

نحوه ساختن يك برنامه جهاني با Nuxt.js و Django –  دكمه دانلود با ريزتعاملات با CSS ، anime.js و segment.js

نحوه اضافه كردن عكسهاي پيشرفته در Node و Express  –  با Vue ،GraphQL و Apollo Client يك وبلاگ ساخت

يك برنامه SSR با روتر Preact ، Unistore و Preact بسازيد  –  ساخت برنامه هاي وب پيشرونده با Angular

اشكال زدايي JavaScript در توليد با نقشه هاي منبع  –  مي توان با Koa برنامه “سلام جهاني” ساخت

ساختن يك برنامه با Node ، React ، Okta  –   مديريت حالت فرم در React با Redux Form

نحوه تنظيم Laravel ، Nginx و MySQL  –  ارتقاء از AngularJS به Angular با ngUpgrade

استفاده از ويژوال استوديو از راه دور  –  احراز هويت API با JSON Web Tokens و Passport

راه اندازي يك پروژه React با Parcel  –  ايجاد Swiper مانند Netflix را در Vue

ساختن يك ربات تلگرام با Laravel و BotMan  –  استفاده از map، filter، و reduce در جاوااسكريپت

چگونه مي توان موتور جستجوي زمان واقعي را با Vue  –  ساختن سيستم مستندات (Documentation) با Vue و VuePress

استفاده از اشتراك زنده با كد ويژوال استوديو  –  ساخت يك مقياس اندازه گيري قدرت رمز عبور را در React

شروع عملي GraphQL با Node.js و Express  –  ساخت يك برنامه آب و هوا در Django

نحوه نصب Discourse روي Ubuntu 18  –  تأييد رمز عبور با استفاده از درخواست فرم Laravel

نحوه نصب MySQL در CentOS 8  –  استفاده از پسوند PDO PHP براي انجام تراكنش MySQL

نصب و پيكربندي SNMP Daemon و Client در Ubuntu 18  –  نصب Linux، Nginx، MariaDB،PHP در Debian 10

 

 

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

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

 

برچسب‌ها:Apache, Apache HTTP,

نصب Apache Tomcat 9 در Debian 10

۶۰ بازديد

يك سرور مجازي وب و كانتينر servlet است كه براي ارائه برنامه هاي جاوا استفاده مي شود. Tomcat يك اجراي منبع باز از فناوري هاي Java Servlet و JavaServer Pages است كه توسط بنياد نرم افزار Apache منتشر شده است. اين آموزش شامل نصب اوليه و برخي از تنظيمات آخرين نسخه Tomcat 9 در سرور مجازي Debian 10 ميباشد.
پيش نيازها
قبل از شروع اين راهنما ، بايد يك كاربر غير ريشه با امتيازات sudo در سرور مجازي خود داشته باشيد. مي توانيد با تكميل راهنماي تنظيم اوليه سرور مجازي Debian 10 ما اين كار را ياد بگيريد.
مرحله 1 – جاوا را نصب كنيد
Tomcat نياز دارد كه جاوا را روي سرور مجازي نصب باشد تا هر كد برنامه وب جاوا قابل اجرا باشد. ما مي توانيم با نصب OpenJDK با apt ، اين نياز را برآورده سازيم.
ابتدا ايندكس بسته apt خود را به روز كنيد:
⦁ $ sudo apt update

سپس بسته توسعه جاوا را با apt نصب كنيد:
⦁ $ sudo apt install default-jdk

اكنون كه جاوا نصب شده است ، مي توانيم يك كاربر tomcat ايجاد كنيم كه براي اجراي سرويس Tomcat استفاده خواهد شد.
مرحله 2 – ايجاد كاربر Tomcat
براي اهداف امنيتي ، Tomcat بايد به عنوان يك كاربر بدون امتيازات اجرا شود (يعني root نباشد). ما يك كاربر و گروه جديد ايجاد خواهيم كرد كه سرويس Tomcat را اجرا كند.
ابتدا ، يك گروه tomcat جديد ايجاد كنيد:
⦁ $ sudo groupadd tomcat

سپس ، يك كاربر جديد Tomcat ايجاد ميكنيم. اين كاربر را عضو گروه Tomcat ميكنيم با ديركتوري هوم / opt / tomcat (جايي كه Tomcat را نصب خواهيم كرد) و يك پوسته / bin / false (تا هيچ كس نتواند وارد حساب شود):
⦁ $ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

اكنون كه كاربر Tomcat ما تنظيم شده است ، اجازه دهيد Tomcat را دانلود و نصب كنيم.
مرحله 3 – Tomcat را نصب كنيد
بهترين راه براي نصب Tomcat 9 دانلود آخرين نسخه باينري و سپس پيكربندي دستي آن است.
آخرين نسخه Tomcat 9 را در صفحه دانلود Tomcat 9 پيدا كنيد. در زمان نوشتن اين مقاله، آخرين نسخه 9.0.27 است ، اما در صورت وجود بايد از نسخه پايدار بعدي استفاده كنيد. در زير بخش توزيع هاي باينري ، و سپس در زير ليست Core  ، لينك “tar.gz” را كپي كنيد.
در مرحله بعدي ، به بخش SSH خود بازگرديد و به ديركتوري / tmp در سرور مجازي خود برويد. اين يك ديركتوري خوب براي دانلود موارد زودگذر است ، مانند تاربال Tomcat ، كه ما پس از اكستركت مطالب Tomcat نيازي به آن نداريم:
⦁ $ cd /tmp

براي دانلود تاربال از ابزار خط فرمان curl استفاده خواهيم كرد. curl را نصب كنيد:
⦁ $ sudo apt install curl

اكنون ، براي دانلود پيوندي كه از وب سايت Tomcat كپي كرده ايد ، از curl استفاده كنيد:
⦁ $ curl -O http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.tar.gz

ما Tomcat را در ديركتوري / opt / tomcat نصب خواهيم كرد. اين دايركتوري را ايجاد كنيد ، سپس بايگاني را با اين دستورات در آن اكستركت كنيد:
⦁ $ sudo mkdir /opt/tomcat

⦁ $ sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat –strip-components=1

در مرحله بعد ، مجوزهاي كاربري مناسب را براي نصب خود تنظيم خواهيم كرد.
مرحله 4 – به روز رساني مجوزها
كاربر Tomcat كه ايجاد كرديم نياز به دسترسي به نصب Tomcat دارد. اكنون آن را تنظيم خواهيم كرد.
به دايركتوري برويد كه در آن نصب Tomcat را باز نكرديم:
⦁ $ cd /opt/tomcat

مالكيت گروه tomcat را به كل ديركتوري نصب بدهيد:
⦁ $ sudo chgrp -R tomcat /opt/tomcat

در مرحله بعد ، به گروه tomcat دسترسي به ديركتوري conf و كليه محتويات آن بدهيد و دسترسي به ديركتوري خود را اجرا كنيد:
⦁ $ sudo chmod -R g+r conf

⦁ $ sudo chmod g+x conf

كاربر Tomcat را به مالك ديركتوري هاي webapps, work, temp, و  logs تبديل كنيد:
⦁ $ sudo chown -R tomcat webapps/ work/ temp/ logs/

اكنون كه مجوزهاي مناسب تنظيم شده است ، يك فايل سرويس systemd را براي مديريت فرايند Tomcat ايجاد خواهيم كرد.
مرحله 5 – يك فايل خدمات systemd ايجاد كنيد
ما مي خواهيم بتوانيم Tomcat را به عنوان يك سرويس اجرا كنيم ، بنابراين فايل سرويس systemd را تنظيم خواهيم كرد.
Tomcat بايد بداند جاوا در كجا نصب شده است. اين مسير معمولاً به JAVA_HOME اشاره مي كند. آسانترين راه براي جستجوي آن مكان با اجراي اين دستور است:
⦁ $ sudo update-java-alternatives -l

Output
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64

JAVA_HOME شما خروجي آخرين ستون است (در بالا هايلايت شده است). با توجه به مثال بالا ، JAVA_HOME صحيح براي اين سرور مجازي به اين صورت خواهد بود:
AVA_HOME
/usr/lib/jvm/java-1.11.0-openjdk-amd64

JAVA_HOME شما ممكن است متفاوت باشد.
با اين اطلاعات مي توانيم فايل سرويس systemd را ايجاد كنيم. با تايپ دستور زير فايلي به نام tomcat.service در ديركتوري / etc / systemd / system باز كنيد:
⦁ $ sudo nano /etc/systemd/system/tomcat.service

محتواي زير را در فايل سرويس خود پيست كنيد. در صورت لزوم مقدار JAVA_HOME را اصلاح كنيد تا با مقدار يافت شده در سيستم شما مطابقت داشته باشد. همچنين بهتر است تنظيمات تخصيص حافظه را كه در CATALINA_OPTS مشخص شده است اصلاح كنيد:
/etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment=’CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC’
Environment=’JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom’

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

پس از اتمام ، فايل را ذخيره كنيد و ببنديد.
سپس ، Daemon systemd را مجدد لود كنيد تا از تغييرات فايل سرويس ما مطلع شود:
⦁ $ sudo systemctl daemon-reload

سرويس Tomcat را با تايپ دستور زير شروع كنيد:
⦁ $ sudo systemctl start tomcat

با تايپ دستور زير مجدد بررسي كنيد كه بدون خطا شروع شده است:
⦁ $ sudo systemctl status tomcat

بايد خروجي مشابه زير را ببينيد:
Output
● tomcat.service – Apache Tomcat Web Application Container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2019-10-24 17:18:11 UTC; 4s ago
Process: 5962 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 5970 (java)
Tasks: 44 (limit: 2377)
Memory: 184.2M
CGroup: /system.slice/tomcat.service
└─5970 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.u

Oct 24 17:18:10 tomcat systemd[1]: Starting Apache Tomcat Web Application Container…
Oct 24 17:18:11 tomcat startup.sh[5962]: Tomcat started.
Oct 24 17:18:11 tomcat systemd[1]: Started Apache Tomcat Web Application Container.

اين خروجي تأييد مي كند كه Tomcat در سرور مجازي شما فعال و در حال اجرا است.
مرحله 6 – فايروال را تنظيم كرده و سرور مجازي Tomcat را تست كنيد
اكنون كه سرويس Tomcat آغاز شده است ، مي توانيم آزمايش كنيم تا مطمئن شويم كه صفحه پيش فرض در دسترس است.
قبل از انجام اين كار ، بايد فايروال را تنظيم كنيم تا درخواست هاي ما بتوانند به اين سرويس برسند. اگر پيش نيازها را رعايت كرده باشيد ، در حال حاضر يك فايروال ufw فعال شده داريد.
Tomcat از پورت 8080 براي پذيرش درخواستها استفاده مي كند. با تايپ كردن دستور زير اجازه دسترسي به آن پورت را بدهيد:
⦁ $ sudo ufw allow 8080

با اصلاح فايروال ، مي توانيد با رفتن به دامنه يا آدرس IP خود پس از 8080: در مرورگر وب، به صفحه splash پيش فرض دسترسي پيدا كنيد:
Open in web browser
http://server_domain_or_IP:8080

علاوه بر اطلاعات ديگر ، صفحه پيش فرض Tomcat splash را نيز خواهيد ديد. با اين حال ، اگر به عنوان مثال روي پيوندها براي برنامه Manager كليك كنيد ، از دسترسي محروم خواهيد شد. ما ميتوانيم اين دسترسي را در مرحله بعد پيكربندي كنيم.
اگر توانستيد با موفقيت به Tomcat دسترسي پيدا كنيد ، اكنون زمان مناسبي براي فعال كردن فايل خدمات است به گونه اي كه Tomcat به طور خودكار از بوت شروع شود:
⦁ $ sudo systemctl enable tomcat

مرحله 7 – رابط مديريت وب Tomcat را پيكربندي كنيد
براي استفاده از برنامه وب منيجر كه همراه Tomcat است ، بايد وارد سرور مجازي Tomcat خود شويم. اين كار را با ويرايش فايل tomcat-users.xml انجام خواهيم داد:
⦁ $ sudo nano /opt/tomcat/conf/tomcat-users.xml

بهتر است كاربري را اضافه كنيد كه بتواند به manager-gui و admin-gui دسترسي پيدا كند (برنامه هاي وب كه با Tomcat همراه هستند). شما مي توانيد اين كار را با تعريف يك كاربر ، مشابه مثال زير ، بين برچسب هاي tomcat-users انجام دهيد. حتماً نام كاربري و رمز عبور را به چيزي امن تغيير دهيد:
tomcat-users.xml

. . .

پس از اتمام فايل را ذخيره كنيد و ببنديد.
به طور پيش فرض ، نسخه هاي جديدتر Tomcat دسترسي به برنامه هاي Manager و Host Manager را به اتصالات سرور مجازي خود محدود مي كند. از آنجا كه ما روي يك دستگاه از راه دور آن را نصب مي كنيم ، احتمالاً مي خواهيد اين محدوديت را حذف كنيد يا تغيير دهيد. براي تغيير محدوديت هاي آدرس IP در اين مورد ، فايل هاي مناسب.xml را باز كنيد.
براي برنامه منيجر ، تايپ كنيد:
⦁ $ sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml

براي برنامه هاست منيجر ، تايپ كنيد:
⦁ $ sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

در داخل ، محدوديت آدرس IP را باطل كنيد تا از هرجاي ديگر بتوانيد اتصالات برقرار كنيد. از طرف ديگر ، اگر مايل هستيد به اتصالات حاصل از آدرس IP شخصي خود دسترسي بدهيد، مي توانيد آدرس IP عمومي خود را به اين ليست اضافه كنيد:
context.xml files for Tomcat webapps

allow=”127.d+.d+.d+|::1|0:0:0:0:0:0:0:1″ />–>

پس از اتمام ، فايل ها را ذخيره كنيد و ببنديد.
براي اعمال تغييرات خود ، سرويس Tomcat را مجدداً راه اندازي كنيد:
⦁ $ sudo systemctl restart tomcat

مرحله 8 – دسترسي به رابط وب
اكنون كه يك كاربر ايجاد كرده ايم ، مي توانيم دوباره در يك مرورگر وب به رابط مديريت وب دسترسي پيدا كنيم. يك بار ديگر ، مي توانيد با وارد كردن نام دامنه سرور مجازي يا آدرس IP همراه با پورت 8080 در مرورگر خود ، به رابط صحيح برسيد:
Open in web browser
http://server_domain_or_IP:8080

صفحه اي كه مي بينيد بايد همان صفحه اي باشد كه هنگام آزمايش قبلي به شما نشان داده شده است:

بياييد نگاهي به برنامه منيجر بيندازيم كه از طريق لينك يا http: // server_domain_or_IP: 8080 / manager / html قابل دسترسي است. لازم است اعتبارات حساب كه به فايل tomcat-users.xml اضافه كرديد را وارد نماييد. پس از آن ، بايد صفحه اي را مشاهده كنيد كه به شكل زير است:

Web Application Manager براي مديريت برنامه هاي جاوا استفاده مي شود. مي توانيد در اينجا اقدام به شروع ، توقف ، بارگيري مجدد ، استقرار و عدم استقرار نماييد. همچنين مي توانيد برخي از تشخيص ها را در برنامه هاي خود اجرا كنيد (مثلا پيدا كردن نشت حافظه). در آخر ، اطلاعات مربوط به سرور مجازي شما در انتهاي همين صفحه موجود است.
حال اجازه دهيد، از طريق لينك يا http://server_domain_or_IP:8080/host-manager/html/ نگاهي به هاست منيجر بيندازيم.

از صفحه Virtual Host Manager ، مي توانيد ميزبان هاي مجازي را براي ارائه برنامه هاي خود اضافه كنيد.
نتيجه
نصب شما از Tomcat پايان يافته است! اكنون مي توانيد برنامه هاي وب جاوا خود را مستقر كنيد.
در حال حاضر ، نصب Tomcat شما كاربردي است ، اما كاملاً بدون رمزگذاري ميباشد. اين بدان معني است كه تمام داده ها ، از جمله موارد حساس مانند گذرواژه‌ها ، با متن ساده ارسال مي شوند كه توسط طرفين ديگر در اينترنت قابل رهگيري و خواندن هستند. براي جلوگيري از وقوع اين اتفاق ، اكيداً توصيه مي شود كه اتصالات خود را با SSL رمزگذاري كنيد. با پيروي از اين راهنما مي توانيد نحوه رمزگذاري اتصالات خود با Tomcat را ياد بگيريد (توجه داشته باشيد: اين راهنما رمزگذاري Tomcat 8 را در Ubuntu 16.04 پوشش مي دهد).

 

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

استفاده از nsh براي دستورات از راه دور اوبونتو 18 –  ميزباني وب سايت با Caddy اوبونتو 18

تنظيم سرور ذخيره سازي آبجكت با استفاده از Minio در اوبونتو 18  –  ضبط و اشتراك گذاري ترمينال با Terminalizer اوبونتو

تنظيم مسيريابي شرطي و پاسخگو با React Router v4  –  ايجاد يك URL كوتاه كننده با Django و GraphQL

يك برنامه رديابي سلامت را با React ،GraphQL و Okta –  ساخت برنامه ******** زمان حقيقي React و GraphQL

به روزرساني فيلترهاي مرتب سازي Angular (زاويه اي) –  با استفاده از React ، Superagent و API اينستاگرام

نحوه ساختن يك برنامه جهاني با Nuxt.js و Django –  دكمه دانلود با ريزتعاملات با CSS ، anime.js و segment.js

نحوه اضافه كردن عكسهاي پيشرفته در Node و Express  –  با Vue ،GraphQL و Apollo Client يك وبلاگ ساخت

يك برنامه SSR با روتر Preact ، Unistore و Preact بسازيد  –  ساخت برنامه هاي وب پيشرونده با Angular

اشكال زدايي JavaScript در توليد با نقشه هاي منبع  –  مي توان با Koa برنامه “سلام جهاني” ساخت

ساختن يك برنامه با Node ، React ، Okta  –   مديريت حالت فرم در React با Redux Form

نحوه تنظيم Laravel ، Nginx و MySQL  –  ارتقاء از AngularJS به Angular با ngUpgrade

استفاده از ويژوال استوديو از راه دور  –  احراز هويت API با JSON Web Tokens و Passport

راه اندازي يك پروژه React با Parcel  –  ايجاد Swiper مانند Netflix را در Vue

ساختن يك ربات تلگرام با Laravel و BotMan  –  استفاده از map، filter، و reduce در جاوااسكريپت

چگونه مي توان موتور جستجوي زمان واقعي را با Vue  –  ساختن سيستم مستندات (Documentation) با Vue و VuePress

استفاده از اشتراك زنده با كد ويژوال استوديو  –  ساخت يك مقياس اندازه گيري قدرت رمز عبور را در React

شروع عملي GraphQL با Node.js و Express  –  ساخت يك برنامه آب و هوا در Django

نحوه نصب Discourse روي Ubuntu 18  –  تأييد رمز عبور با استفاده از درخواست فرم Laravel

نحوه نصب MySQL در CentOS 8  –  استفاده از پسوند PDO PHP براي انجام تراكنش MySQL

نصب و پيكربندي SNMP Daemon و Client در Ubuntu 18  –  نصب Linux، Nginx، MariaDB،PHP در Debian 10

 

 

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

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

 

برچسب‌ها:Apache Tomcat, APT, OpenJDK, opt

راه اندازي سرور اوليه با Debian 10

۵۷ بازديد

كه شما براي اولين بار يك سرور مجازي Debian 10 جديد ايجاد مي كنيد ، چند مرحله پيكربندي وجود دارد كه بايد آنها را به عنوان بخشي از ستاپ اوليه انجام دهيد. اين كار باعث افزايش امنيت و قابليت استفاده سرور مجازي شما مي شود و پايه و اساس محكمي را براي اقدامات بعدي به شما مي دهد.
در اين آموزش ياد خواهيم گرفت كه چگونه به عنوان كاربر اصلي وارد سرور مجازي خود شويم ، كاربر جديدي با امتيازات ادمين ايجاد كنيم و يك فايروال پايه تنظيم كنيم.
مرحله 1 – ورود به عنوان Root
براي ورود به سرور مجازي خود ، بايد آدرس IP عمومي سرور مجازي خود را بدانيد. در صورت نصب كليد SSH براي تأييد اعتبار ، يعني كليد خصوصي براي حساب كاربر root، به گذرواژه نيز احتياج داريد. اگر قبلاً به سرور مجازي خود وارد نشده ايد ، ممكن است بخواهيد راهنماي ما در مورد نحوه اتصال به دراپلت خود را با SSH دنبال كنيد ، كه اين لينك روند را با جزئيات پوشش مي دهد.
اگر قبلاً به سرور مجازي خود وصل نشده ايد ، پيش برويد و با استفاده از دستور زير به عنوان كاربر اصلي وارد سيستم شويد (بخش هايلايت شده فرمان را با آدرس IP عمومي سرور مجازي خود جايگزين كنيد):
$ ssh root@your_server_ip

در صورت وجود هشدار درباره تاييد صحت ميزبان آن را بپذيريد. اگر از تأييد اعتبار گذرواژه استفاده مي كنيد ، رمز ورود ريشه خود را وارد كنيد. اگر از يك كليد SSH استفاده مي كنيد كه عبارت عبور آن محافظت شده است ، ممكن است اولين باري كه از هر كليد استفاده مي كنيد از شما خواسته شود كلمه عبور را وارد كنيد. اگر اولين بار است كه با گذرواژه وارد سرور مجازي مي شويد ، ممكن است از شما خواسته شود رمزعبور root را تغيير دهيد.
درباره ريشه
كاربر ريشه كاربر ادمين در محيط لينوكس است كه امتيازات بسيار گسترده اي دارد. به دليل امتيازات زياد حساب ريشه ، استفاده منظم از آن توصيه نميشود. اين امر به اين دليل است كه بخشي از قدرت ذاتي حساب ريشه ، توانايي ايجاد تغييرات بسيار مخرب ، حتي به طور تصادفي است.
قدم بعدي راه اندازي يك حساب كاربري جايگزين با حوزه تاثيرات كمتر براي كارهاي روزانه است. بعداً ، توضيح خواهيم داد كه چگونه مي توانيد در مواقعي كه به آنها احتياج داريد ، امتيازات بيشتري را دريافت كنيد.
مرحله 2 – ايجاد يك كاربر جديد
پس از ورود به عنوان root ، آماده هستيم تا حساب كاربري جديدي را اضافه كنيم كه از اين پس براي ورود به سيستم استفاده خواهيم كرد .
اين مثال يك كاربر جديد به نام sammy ايجاد مي كند ، اما شما بايد آن را با نام كاربري كه دوست داريد جايگزين كنيد:
# adduser sammy

با شروع رمز ورود به حساب ، چند سؤال از شما پرسيده خواهد شد.
يك رمز عبور قوي وارد كنيد و به صورت اختياري ، هر يك از اطلاعات اضافي را كه مي خواهيد پر كنيد. اين مورد نياز نيست و مي توانيد ENTER را در هر زمينه اي كه مايل به عبور هستيد ، بزنيد.
در مرحله بعدي ، اين كاربر جديد را با امتيازات ادمين تنظيم خواهيم كرد.
مرحله 3 – اعطاي امتيازات ادمين
اكنون ، ما يك حساب كاربري جديد با امتيازات معمول حساب ايجاد كرده ايم. با اين حال ، ممكن است گاهي اوقات نياز به انجام كارهاي اجرايي با آن داشته باشيم.
براي جلوگيري از خروج از حساب كاربري عادي و ورود به سيستم به عنوان حساب اصلي ، مي توانيم براي حساب عادي خود چيزي به اسم superuser ايجاد كنيم يا امتيازات اصلي را به آن بدهيم. اين كار به كاربر عادي ما امكان مي دهد با قرار دادن كلمه sudo قبل از دستور ، دستوراتي را با امتيازات ادمين اجرا كند.
براي افزودن اين امتيازات به كاربر جديد خود ، بايد كاربر جديد را به گروه sudo اضافه كنيم. به طور پيش فرض ، در Debian 10 ، كاربراني كه به گروه sudo تعلق دارند مجاز به استفاده از دستور sudo هستند.
به عنوان root ، اين دستور را اجرا كنيد تا كاربر جديد خود را به گروه sudo اضافه كنيد (كلمه هايلايت شده را با كاربر جديد خود جايگزين كنيد):
# usermod -aG sudo sammy

اكنون ، هنگامي كه به عنوان كاربر معمولي خود وارد سيستم شديد ، مي توانيد قبل از دستورات sudo را تايپ كنيد تا دستور را با امتيازات superuser اجرا كنيد.
مرحله 4 – تنظيم فايروال پايه
سرور مجازي هاي دبيان مي توانند از فايروال ها استفاده كنند تا اطمينان حاصل شود كه فقط اتصالات خاصي به سرويس هاي خاص مجاز هستند. در اين راهنما ، فايروال UFW را براي كمك به تنظيم رويكرد فايروال و مديريت استثناعات، نصب و استفاده خواهيم كرد.
مي توانيم از مدير بسته apt براي نصب UFW استفاده كنيم. فهرست محلي را به روز كنيد تا آخرين اطلاعات در مورد بسته هاي موجود را بازيابي كنيد و سپس با تايپ كردن دستور زير نرم افزار فايروال UFW را نصب كنيد:
# apt update

# apt install ufw

توجه: اگر سرور مجازي هاي شما روي vpsgol در حال اجرا هستند ، مي توانيد به طور اختياري به جاي فايروال UFW از فايروال هاي vpsgol Cloud استفاده كنيد. توصيه مي كنيم فقط از يك فايروال به طور هم زمان استفاده كنيد تا از قوانين متناقض براي اشكال زدايي جلوگيري شود.

پروفايل هاي فايروال به UFW اجازه مي دهد مجموعه اي از قوانين فايروال را براي برنامه هاي نصب شده مديريت كند. پروفايل برخي از نرم افزارهاي رايج بصورت پيش فرض با UFW همراه شده و بسته ها مي توانند پروفايل هاي اضافي را با UFW در طي مراحل نصب ثبت كنند. OpenSSH ، سرويسي كه به ما امكان اتصال كنوني به سرور مجازي خود را مي دهد ، داراي پروفايل فايروال است كه مي توانيم از آن استفاده كنيم.
با تايپ كردن دستور زير تمام پروفايل هاي موجود را ليست مي كنيد:
# ufw app list

Output
Available applications:
. . .
OpenSSH
. . .

بايد اطمينان حاصل كنيم كه فايروال امكان اتصالات SSH را مي دهد تا بتوانيم دفعه ديگر وارد سيستم شويم. مي توانيم با تايپ اين دستور اجازه اين اتصالات را فراهم كنيم:
# ufw allow OpenSSH

پس از آن ، مي توانيم با تايپ كردن دستور زير فايروال را فعال كنيم:
# ufw enable

y را تايپ كرده و ENTER را براي ادامه فشار دهيد. با تايپ كردن دستور زير مي توانيد ببينيد كه اتصالات SSH هنوز مجاز هستند:
# ufw status

Output
Status: active

To Action From
— —— —-
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)

از آنجا كه فايروال در حال حاضر همه اتصالات به جز SSH را مسدود مي كند ، در صورت نصب و پيكربندي سرويس هاي اضافي ، بايد تنظيمات فايروال را براي ايجاد ترافيك قابل قبول را تنظيم كنيد. شما مي توانيد برخي از عمليات معمول UFW را در راهنماي ضروريات UFW بياموزيد.
مرحله 5 – فعال كردن دسترسي خارجي براي كاربر معمولي شما
اكنون كه ما يك كاربر معمولي براي استفاده روزانه داريم ، بايد اطمينان حاصل كنيم كه مي توانيم مستقيماً SSH را وارد حساب كاربري خود كنيم.
توجه: تا زماني كه تأييد نكنيد كه مي توانيد با كاربر جديد خود وارد سيستم شويد و از sudo استفاده كنيد ، توصيه مي كنيم به عنوان root وارد شويد. به اين ترتيب ، اگر مشكل داريد مي توانيد به عنوان ريشه عيب يابي كرده و هرگونه تغيير لازم را انجام دهيد. اگر از Droplet vpsgol استفاده مي كنيد و در ارتباط با اتصال SSH ريشه خود مشكل داريد ، مي توانيد با استفاده از كنسول vpsgol وارد Droplet شويد.

روند پيكربندي دسترسي SSH براي كاربر جديد شما به اين بستگي دارد كه آيا حساب اصلي سرور مجازي شما از رمز عبور يا كليدهاي SSH براي تأييد اعتبار استفاده مي كند.
اگر حساب Root از احراز هويت رمز عبور استفاده مي كند
اگر با استفاده از گذرواژه وارد حساب اصلي خود شده ايد ، تأييد رمز عبور براي SSH فعال مي شود. با باز كردن بخش ترمينال جديد و استفاده از SSH با نام كاربري جديد خود مي توانيد به حساب كاربري جديد، SSH كنيد:
$ ssh sammy@your_server_ip

بعد از وارد كردن رمزعبور معمولي كاربر ، وارد سيستم مي شويد. به ياد داشته باشيد اگر نياز به اجراي يك فرمان با امتيازات اداري داريد ، قبل از اين كار sudo را تايپ كنيد:
$ sudo command_to_run

براي اولين بار در هر بخش (و به صورت دوره اي بعد از آن) رمزعبور كاربر معمولي از شما خواسته مي شود.
براي تقويت امنيت سرور مجازي خود ، به شدت توصيه مي كنيم به جاي استفاده از احراز هويت رمز عبور ، كليدهاي SSH را تنظيم كنيد. براي يادگيري نحوه پيكربندي احراز هويت مبتني بر كليد ، راهنماي ما در مورد تنظيم كليدهاي SSH در Debian 10 را دنبال كنيد.
اگر حساب Root از احراز هويت كليد SSH استفاده مي كند
اگر با استفاده از كليدهاي SSH به حساب اصلي خود وارد شده ايد ، تأييد رمز عبور براي SSH غيرفعال است. براي ورود موفقيت آميز به سيستم ، بايد يك نسخه از كليد عمومي محلي خود را در فايل ~/.ssh/authorized_keys كاربر جديد اضافه كنيد.
از آنجا كه كليد عمومي شما قبلاً در فايل ~/.ssh/authorized_keys حساب ريشه در سرور مجازي است ، مي توانيم در بخش موجود با دستور cp آن فايل و ساختار ديركتوري را در حساب كاربري جديد خود كپي كنيم. پس از آن ، مي توانيم مالكيت فايل ها را با استفاده از دستور chown تنظيم كنيم.
اطمينان حاصل كنيد كه قسمت هايلايت شده فرمان زير را تغيير دهيد تا با نام كاربر معمولي شما مطابقت داشته باشد:
# cp -r ~/.ssh /home/sammy

#
chown -R sammy:sammy /home/sammy/.ssh

دستور cp -r كل دايركتوري را در ديركتوري هوم كاربر جديد كپي مي كند ، و دستور chown -R صاحب آن ديركتوري (و هر چيزي را كه در داخل آن است) را به username:groupname مشخص شده تغيير مي دهد (دبيان به طور پيش فرض گروهي را با همين نام كاربري شما ايجاد مي كند).
اكنون ، يك بخش ترمينال جديد را باز كرده و از طريق SSH با نام كاربري جديد خود وارد شويد:
$ ssh sammy@your_server_ip

بدون استفاده از رمز ورود بايد به حساب كاربري جديد وارد شويد. به ياد داشته باشيد ، اگر نياز به اجراي يك فرمان با امتيازات ادمين داريد ، sudo را قبل از آن تايپ كنيد:
$ sudo command_to_run

براي اولين بار در هر بخش (و به صورت دوره اي بعد از آن) رمزعبور كاربر معمولي از شما خواسته مي شود.
از اينجا به كجا برويم؟
در اين مرحله ، شما يك پايه محكم براي سرور مجازي خود داريد. اكنون مي توانيد هركدام از نرم افزارهاي مورد نياز خود را بر روي سرور مجازي خود نصب كنيد.

 

 

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

استفاده از nsh براي دستورات از راه دور اوبونتو 18 –  ميزباني وب سايت با Caddy اوبونتو 18

تنظيم سرور ذخيره سازي آبجكت با استفاده از Minio در اوبونتو 18  –  ضبط و اشتراك گذاري ترمينال با Terminalizer اوبونتو

تنظيم مسيريابي شرطي و پاسخگو با React Router v4  –  ايجاد يك URL كوتاه كننده با Django و GraphQL

يك برنامه رديابي سلامت را با React ،GraphQL و Okta –  ساخت برنامه ******** زمان حقيقي React و GraphQL

به روزرساني فيلترهاي مرتب سازي Angular (زاويه اي) –  با استفاده از React ، Superagent و API اينستاگرام

نحوه ساختن يك برنامه جهاني با Nuxt.js و Django –  دكمه دانلود با ريزتعاملات با CSS ، anime.js و segment.js

نحوه اضافه كردن عكسهاي پيشرفته در Node و Express  –  با Vue ،GraphQL و Apollo Client يك وبلاگ ساخت

يك برنامه SSR با روتر Preact ، Unistore و Preact بسازيد  –  ساخت برنامه هاي وب پيشرونده با Angular

اشكال زدايي JavaScript در توليد با نقشه هاي منبع  –  مي توان با Koa برنامه “سلام جهاني” ساخت

ساختن يك برنامه با Node ، React ، Okta  –   مديريت حالت فرم در React با Redux Form

نحوه تنظيم Laravel ، Nginx و MySQL  –  ارتقاء از AngularJS به Angular با ngUpgrade

استفاده از ويژوال استوديو از راه دور  –  احراز هويت API با JSON Web Tokens و Passport

راه اندازي يك پروژه React با Parcel  –  ايجاد Swiper مانند Netflix را در Vue

ساختن يك ربات تلگرام با Laravel و BotMan  –  استفاده از map، filter، و reduce در جاوااسكريپت

چگونه مي توان موتور جستجوي زمان واقعي را با Vue  –  ساختن سيستم مستندات (Documentation) با Vue و VuePress

استفاده از اشتراك زنده با كد ويژوال استوديو  –  ساخت يك مقياس اندازه گيري قدرت رمز عبور را در React

شروع عملي GraphQL با Node.js و Express  –  ساخت يك برنامه آب و هوا در Django

نحوه نصب Discourse روي Ubuntu 18  –  تأييد رمز عبور با استفاده از درخواست فرم Laravel

نحوه نصب MySQL در CentOS 8  –  استفاده از پسوند PDO PHP براي انجام تراكنش MySQL

نصب و پيكربندي SNMP Daemon و Client در Ubuntu 18  –  نصب Linux، Nginx، MariaDB،PHP در Debian 10

 

 

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

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

 

برچسب‌ها:OpenSSH

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

۶۴ بازديد

آموزش مي آموزيد كه چگونه عناصر را با JSX توصيف كنيد. JSX انتزاعي است كه به شما امكان مي دهد دستور مشابه HTML را در كد جاوا اسكريپت خود بنويسيد و شما را قادر ميسازد تا مولفه هاي React را كه شبيه علائم استاندارد HTML هستند ، بسازيد. JSX زبان تمپليت مولفه هاي React است و بنابراين پايه و اساس هر نشانه گذاري اي است كه React به برنامه شما ارائه مي دهد.
از آنجايي كه JSX شما را قادر مي سازد جاوا اسكريپت را نيز در نشانه گذاري خود بنويسيد ، مي توانيد از توابع و روش هاي JavaScript ، از جمله نگاشت آرايه و ارزيابي اتصال كوتاه براي شرطي ها استفاده كنيد.
به عنوان بخشي از آموزش ، رويدادهاي كليك را مستقيماً در نشانه گذاري روي دكمه ها ضبط مي كنيد و مواردي را مشاهده مي كنيد كه تركيب دقيقاً مطابق با HTML استاندارد نباشد ، مانند كلاس هاي CSS. در پايان اين آموزش ، يك برنامه كاري داريد كه از انواع مختلفي از ويژگيهاي JSX استفاده مي كند تا ليستي از مولفه هايي را كه داراي يك شنونده كليك داخلي هستند ، نمايش دهد. اين يك الگوي رايج در برنامه هاي React است كه شما اغلب در طول يادگيري چارچوب استفاده خواهيد كرد. همچنين مي توانيد عناصر استاندارد HTML را با جاوا اسكريپت مخلوط كنيد تا ببينيد چگونه React به شما امكان ايجاد كد هاي كوچك و قابل استفاده مجدد را مي دهد.
پيش نيازها
• به محيط توسعه در حال اجراي Node.js نياز داريد. اين آموزش بر روي Node.js نسخه 10.19.0 و npm نسخه 6.13.4 تست شده است. براي نصب اين برنامه در maغير مجاز مي باشد يا Ubuntu 18.04 ، مراحل نحوه نصب Node.js و ايجاد محيط توسعه محلي را در maغير مجاز مي باشد يا نصب با استفاده از بخش PPA در آموزش نحوه نصب Node.js در اوبونتو 18.04 را دنبال كنيد.
• بايد با  Create React App قادر به ايجاد برنامه باشيد. مي توانيد دستورالعمل نصب را در نحوه ايجاد يك پروژه React با  Create React App پيدا كنيد.
• همچنين به دانش پايه از JavaScript نياز خواهيد داشت كه مي توانيد در نحوه كدنويسي در JavaScript بياموزيد و به دانش پايه از HTML و CSS نيز احتياج داريد. يك منبع مناسب براي HTML و CSS ، شبكه توسعه دهنده Mozilla ميباشد.
مرحله 1 – اضافه كردن نشانه گذاري به يك مولفه React
همانطور كه قبلاً نيز اشاره شد ، React يك زبان نشانه گذاري خاص به نام JSX دارد. پ تركيبي از نحو HTML و JavaScript است كه چيزي شبيه به اين ميباشد:


{inventory.filter(item => item.available).map(item => (

{item.name}

{item.price}


))
}

برخي از قابليت هاي JavaScript مانند .filter و .map و همچنين برخي HTML هاي استاندارد مانند

را خواهيد شناخت. اما بخش هاي ديگري مانند و className نيز وجود دارند كه شبيهHTML و JavaScript به نظر مي رسد.
اين زبان JSX است ، يعني زبان نشانه گذاري ويژه اي كه به مولفه هاي React حس HTML را با قدرت JavaScript مي دهد.
در اين مرحله ، مي آموزيد كه تركيب HTML مانند پايه را به مولفه موجود React اضافه كنيد. براي شروع ، مولفه هاي HTML استاندارد را به يك تابع JavaScript اضافه خواهيد كرد ، سپس كد كامپايل شده را در يك مرورگر مشاهده مي كنيد. همچنين عناصر را گروه بندي مي كنيد تا React بتواند آنها را با حداقل نشانه گذاري كامپايل كند ، و HTML تميزي را ارائه كند.
براي شروع ، يك پروژه جديد درست كنيد. در خط فرمان خود ، اسكريپت زير را اجرا كنيد تا يك پروژه تازه با استفاده از create-react-app نصب كنيد:
⦁ $ npx create-react-app jsx-tutorial

پس از اتمام پروژه ، دايركتوري را تغيير دهيد:
⦁ $ cd jsx-tutorial

در يك ترمينال يا پنجره جديد ، پروژه را با استفاده از اسكريپت شروع Create React App شروع كنيد. مرورگر بعد از تغييرات مجدداً ريفرش ميشود ، بنابراين در تمام مدت كار شما اين اسكريپت را رها ميكند:
⦁ $ npm start

يك سرور مجازي محلي در حال اجرا دريافت خواهيد كرد. اگر پروژه در پنجره مرورگر باز نشد ، مي توانيد آن را در http: // localhost: 3000 / پيدا كنيد. اگر اين كار را از يك سرور مجازي از راه دور انجام مي دهيد ، آدرس http: // your_IP_address: 3000 خواهد بود.
مرورگر شما با يك برنامه React به عنوان بخشي از Create React App لود مي شود.

شما در حال ساخت مجموعه كاملاً جديدي از مولفه هاي سفارشي هستيد ، بنابراين بايد با پاك كردن برخي از كد هاي متن استاندارد شروع كنيد تا بتوانيد يك پروژه خالي داشته باشيد. براي شروع App.js ار در ويرايشگر متن باز كنيد. اين قسمت اصلي است كه به صفحه تزريق مي شود. همه مؤلفه ها از اينجا شروع مي شوند.
در يك ترمينال جديد ، وارد پوشه پروژه شويد و src / App.js را با دستور زير باز كنيد:
⦁ $ nano src/App.js

فايلي مانند اين را مشاهده خواهيد كرد:
jsx-tutorial/src/App.js
import React from ‘react’;
import logo from ‘./logo.svg’;
import ‘./App.css’;

function App() {
return (



”logo”


Edit src/App.js and save to reload.


className=”App-link”
href=”https://reactjs.org”
target=”_blank”
rel=”noopener noreferrer”
>
Learn React



);
}

export default App;

اكنون پس از عبارت بازگشت در تابع ، خط import logo from ‘./logo.svg و هر چيز ديگر را حذف كنيد. آن را به null تغيير دهيد. كد نهايي به شرح زير خواهد بود:
jsx-tutorial/src/App.js
import React from ‘react’;
import ‘./App.css’;

function App() {
return null;
}

export default App;

ويرايشگر متن را ذخيره كرده و از آن خارج شويد.
در آخر ، لوگو را حذف كنيد. در پنجره ترمينال دستور زير را تايپ كنيد:
⦁ $ rm src/logo.svg

شما در برنامه خود از اين فايل SVG استفاده نخواهيد كرد و بايد هنگام كار ، فايل هاي بلااستفاده را حذف كنيد. بهتر است در طولاني مدت كد خود را سازماندهي كنيد.
اكنون كه اين قسمت از پروژه شما حذف شده است ، مي توانيد به جستجو در جنبه هاي ديگر JSX بپردازيد. اين زبان نشانه گذاري توسط React كامپايل شده و در نهايت تبديل به HTML مي شود كه در يك صفحه وب مشاهده مي كنيد. بدون وارد شدن عميق داخلي React ، JSX را مي گيرد و الگويي از صفحه شما را ايجاد مي كند ، سپس عناصر لازم را ايجاد كرده و آنها را به صفحه اضافه مي كند.
اين بدان معني است كه مي توانيد چيزي را بنويسيد كه شبيه HTML است و انتظار داشته باشيد كه HTML ارائه شده مشابه باشد. با اين حال ، چند مرحله وجود دارد.
ابتدا ، اگر به سربرگ يا پنجره سرور مجازي خود نگاه كنيد ، اين را مشاهده خواهيد كرد
Output

./src/App.js
Line 1:8: ‘React’ is defined but never used no-unused-vars

اين linter به شما مي گويد كه از كد React وارد شده استفاده نمي كنيد. هنگامي كه خط import React from ‘react’ را به كد خود اضافه مي كنيد ، كد JavaScript را وارد مي كنيد كه JSX را به React code تبديل مي كند. اگر JSX وجود نداشته باشد ، ديگر نيازي به ورودي نيست.
بياييد با اضافه كردن مقدار كمي JSX اين مسئله را تغيير دهيم. با جايگزين كردن null با يك مثال hello, world شروع كنيد:
jsx-tutorial/src/App.js
import React from ‘react’;
import ‘./App.css’;

function App() {
return

Hello, World

;
}

export default App;

فايل را ذخيره كنيد. اگر به ترمينال با سرور مجازي در حال اجرا نگاه كنيد ، پيام اخطار از بين خواهد رفت. اگر از مرورگر خود بازديد كنيد ، پيام را به عنوان مولفه h1 مشاهده خواهيد كرد.

سپس ، در زير برچسب

، يك برچسب پاراگراف اضافه كنيد كه شامل رشته I am writing JSX است. كد به صورت زير خواهد بود:
jsx-tutorial/src/App.js
import React from ‘react’;
import ‘./App.css’;

function App() {
return(

Hello, World


I am writing JSX


)
}

export default App;

از آنجايي كه JSX چندين خط دارد ، نياز است عبارت در پرانتز قرار داده شود.
فايل را ذخيره كنيد. هنگامي كه اين كار را كرديد، خطايي در اجراي سرور مجازي خود در ترمينال مشاهده مي كنيد:
Output
./src/App.js
Line 7:5: Parsing error: Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>…?

5 | return(
6 |

Hello, World


> 7 |

I am writing JSX


| ^
8 | )
9 | }
10 |

وقتي JSX را از يك تابع يا عبارت باز مي گردانيد ، بايد يك مولفه واحد را برگردانيد. اين مولفه ممكن است بخش هاي لانه گزيده باشد ، اما اگر يك مولفه سطح بالا باشد. در اين حالت ، دو مولفه را بر مي گردانيد.
fix يك تغيير كد جزيي است. با يك برچسب خالي كد را محصور كنيد. برچسب خالي يك مولفه HTML است كه هيچ كلمه اي ندارد. به اين شكل: <>
به./src/App.js در ويرايشگر خود برويد و برچسب خالي را اضافه كنيد:
jsx-tutorial/src/App.js
import React from ‘react’;
import ‘./App.css’;

function App() {
return(
<>

Hello, World


I am writing JSX



)
}

export default App;

برچسب خالي يك مولفه واحد ايجاد مي كند ، اما وقتي كد كامپايل شد ، به نشانه گذاري نهايي اضافه نمي شود. اين كار باعث مي شود كدهاي شما در عين حال كه يك مولفه واحد به React مي دهند ، صحيح باقي بمانند.
توجه: شما مي توانيد به جاي برچسب هاي خالي ، كد را با يك div محصور كنيد ، مادامي كه كد يك مولفه را برگرداند. در اين مثال ، يك برچسب خالي اين مزيت را دارد كه نشانه گذاري اضافي به خروجي تجزيه نشده اضافه نمي كند.

كد را ذخيره كرده و از فايل خارج شويد. مرورگر شما صفحه به روز شده را با مولفه پاراگراف نشان مي دهد. علاوه بر اين ، هنگام تبديل كد ، برچسب هاي خالي از بين مي روند:

اكنون JSX اساسي را به مؤلفه خود اضافه كرده ايد و ياد گرفته ايد كه چگونه بايد همه JSX در يك مؤلفه مستقر شود. در مرحله بعد ، يك ظاهر طراحي را به مؤلفه خود اضافه مي كنيد.
مرحله 2 – اضافه كردن طراحي به يك مولفه به همراه ويژگي ها
در اين مرحله ، به عناصر موجود در مؤلفه خود مي پردازيد تا ياد بگيريد كه چگونه ويژگي هاي HTML با JSX كار مي كنند. در React گزينه هاي بسياري براي طراحي وجود دارد. برخي از آنها شامل نوشتن CSS در جاوا اسكريپت است، بو رخي ديگر از پيش پردازنده استفاده مي كنند. در اين آموزش با كلاس هاي CSS و CSS وارد شده كار خواهيد كرد.
اكنون كه كد خود را داريد ، وقت آن است كه يك ظاهر طراحي شده اضافه كنيد. App.css را در ويرايشگر متن خود باز كنيد:
⦁ $ nano src/App.css

از آنجا كه شما با JSX جديد شروع مي كنيد ، CSS فعلي به عناصري اشاره مي كند كه ديگر وجود ندارند. از آنجا كه به CSS احتياج نداريد ، مي توانيد آن را حذف كنيد.
پس از حذف كد ، فايلي خالي خواهيد داشت.
در مرحله بعد ، مي توانيد طراحي به مركز متن اضافه كنيد. در src / App.css كد زير را اضافه كنيد:
jsx-tutorial/src/App.css
.container {
display: flex;
flex-direction: column;
align-items: center;
}

در اين بلوك كد ، شما  CSS class selector را با نام .container ايجاد كرده ايد و از آن براي در مركز قرار دادن محتوا با استفاده از display: flex استفاده كرده ايد.
فايل را ذخيره كرده و خارج شويد. مرورگر بروزرساني مي شود ، اما هيچ چيز تغيير نخواهد كرد. قبل از مشاهده تغيير ، بايد كلاس CSS را به مؤلفه React خود اضافه كنيد. كد JavaScript مولفه را انتخاب كنيد:
⦁ $ nano src/App.js

كد CSS قبلاً با خط import ‘./App.css’ وارد شده است. اين بدان معني است كه webpack براي ساختن يك صفحه طراحي نهايي، كد را وارد مي كنند ، اما براي اعمال CSS روي عناصر خود ، بايد كلاس ها را اضافه كنيد.
ابتدا ، در ويرايشگر متن ، برچسب هاي خالي ، <> را به

تغيير دهيد.
jsx-tutorial/src/App.js
import React from ‘react’;
import ‘./App.css’;

function App() {
return(


Hello, World


I am writing JSX



)
}

export default App;

در اين كد تگ هاي خالي – <> – را با برچسب هاي div جايگزين كرده ايد. تگ هاي خالي براي گروه بندي كد شما بدون اضافه كردن برچسب هاي اضافي مفيد هستند ، اما در اينجا شما بايد از div استفاده كنيد زيرا برچسب هاي خالي هيچ ويژگي HTML را نمي پذيرند.
در مرحله بعد بايد نام كلاس را اضافه كنيد. اينجاست كه JSX شروع به واگرايي از HTML مي كند. اگر مي خواهيد يك كلاس را به يك مولفه HTML معمولي اضافه كنيد ، اين كار را اينگونه انجام مي دهيد:


Copy

اما از آنجا كه JSX جاوا اسكريپت است ، محدوديت هايي دارد. يكي از محدوديت ها اين است كه جاوا اسكريپت كلمات كليدي خود را رزرو كرده است. اين بدان معناست كه شما نمي توانيد از كلمات خاصي در هر كد JavaScript استفاده كنيد. به عنوان مثال ، شما نمي توانيد يك متغير به نام null ايجاد كنيد زيرا اين كلمه در حال حاضر محفوظ است.
يكي از كلمات رزرو شده class است. React با كمي تغيير دادن اين كلمه كار خود را انجام ميدهد. به جاي اضافه كردن مشخصه class ، className را اضافه مي كنيد. به عنوان يك قاعده ، اگر يك مشخصه (attribute) همانطور كه انتظار مي رود كار نمي كند ، سعي كنيد نسخه camel case را اضافه كنيد. مشخصه ديگري كه كمي متفاوت است مشخصه for ميباشد كه براي برچسب ها استفاده ميكنيد. چند مورد ديگر نيز وجود دارد ، اما خوشبختانه اين ليست نسبتاً كوتاه است.
توجه: در React ، مشخصه ها اغلب prps خوانده مي شوند. Props داده هايي هستند كه مي توانيد به ساير مؤلفه هاي سفارشي منتقل كنيد. آنها مشابه مشخصه ها هستند به جز اينكه با هيچ يك از مشخصات HTML مطابقت ندارند. در اين آموزش ، آنها را مشخصه مي ناميم زيرا عمدتا مانند مشخصه هاي استاندارد HTML استفاده مي شوند. اين امر آنها را از propهايي كه مانند مشخصه هاي HTML رفتار نمي كنند ، متمايز مي كند ، كه بعداً در اين مجموعه پوشش داده مي شود.

اكنون كه مي دانيد چگونه از مشخصه calss در React استفاده مي شود ، مي توانيد كد خود را به روز كنيد تا طراحي ها را درج كنيد. در ويرايشگر متن خود ، className=”container” را به برچسب div اضافه كنيد
jsx-tutorial/src/App.js
import React from ‘react’;
import ‘./App.css’;

function App() {
return(


Hello, World


I am writing JSX



)
}

export default App;

فايل را ذخيره كنيد. با انجام اين كار ، صفحه مجدد لودد مي شود و محتوا در مركز قرار مي گيرد ..

ويژگي className در React بي نظير است. شما مي توانيد اكثر ويژگيهاي HTML را بدون هيچ تغييري به JSX اضافه كنيد. به عنوان نمونه ، به ويرايشگر متن خود برگرديد و شناسه greeting را به مولفه

خود اضافه كنيد. مانند HTML استاندارد به نظر مي رسد:
jsx-tutorial/src/App.js
import React from ‘react’;
import ‘./App.css’;

function App() {
return(


Hello, World


I am writing JSX



)
}

export default App;

صفحه را ذخيره كرده و مرورگر را مجدد لود كنيد. مشابه قبلي خواهد بود.
تاكنون ، JSX به عنوان نشانه گذاري استاندارد به نظر مي رسيد ، اما مزيت JSX اين است كه حتي اگر شبيهHTML به نظر مي رسد ، قدرت جاوا اسكريپت را دارد. اين بدان معناست كه مي توانيد متغيرها را اختصاص دهيد و آنها را در مشخصه هاي خود ارجاع دهيد. براي ارجاع به يك مشخصه ، آن را به جاي نقل قولها در پرانتزهاي به شكل {} قرار دهيد.
در ويرايشگر متن خود ، خطوط هايلايت شده زير را به عنوان يك مشخصه اضافه كنيد:
jsx-tutorial/src/App.js
import React from ‘react’;
import ‘./App.css’;

function App() {
const greeting = “greeting”;
return(


Hello, World


I am writing JSX



)
}

export default App;

در اين كد ، در بالاي عبارت return يك متغير به نام greeting با مقدار “greeting” ايجاد كرده ايد ، سپس متغير را در مشخصه id برچسب

خود ارجاع داده ايد.
فايل را ذخيره كنيد و از آن خارج شويد. صفحه همان خواهد بود، اما برچسب id خواهد داشت.

تاكنون با چند مولفه به تنهايي كار كرده ايد ، اما مي توانيد از JSX همچنين براي اضافه كردن بسياري از عناصر HTML استفاده كرده و آنها را براي ايجاد صفحات پيچيده مستقر نماييد.
براي نشان دادن اين موضوع ، مي توانيد با ليستي از ايموجي ها صفحه اي ايجاد كنيد. اين شكلك ها با يك مولفه









  • )
    }

    export default App;

    در اينجا شما براي نگه داشتن ليستي از ايموجي ها برچسب

      ايجاد كرده ايد. هر ايموجي در يك مولفه
    • جداگانه قرار دارد و با يك مولفه


    • onClick={event => alert(event.target.id)}
      >
      ????



    • onClick={event => alert(event.target.id)}
      >
      ????




    )
    }

    export default App;

    از آنجا كه اين JSX است ، onclick را به صورت camelCased درمي آوريد ، به اين معني كه آن را به صورت onClick اضافه كرده ايد. اين مشخصه onClick از يك تابع ناشناس براي بازيابي اطلاعات در مورد آيتمي كه كليك شده است استفاده مي كند.
    شما يك تابع فلش ناشناس اضافه كرديد كه اين رويداد را از روي دكمه كليك شده درياقن مي كند و رويداد داراي هدفي خواهد بود كه مولفه است. اطلاعات مورد نياز در مشخصه id است كه مي توانيد با event.target.id به آنها دسترسي پيدا كنيد. با تابع () alert مي توانيد هشدار را فعال كنيد.
    فايل را ذخيره كنيد. در مرورگر خود ، روي يكي از ايموجي ها كليك كرده و هشداري را به همراه نام دريافت خواهيد كرد.

    مي توانيد با يكبار اعلام تابع و انتقال آن به هر تابع onClick ، ​​ تكرار را كاهش دهيد. از آنجايي كه اين تابع به چيزي غير از ورودي و خروجي متكي نيست ، مي توانيد آن را خارج از تابع مؤلفه اصلي اعلام كنيد. به عبارت ديگر ، تابع نيازي به دسترسي به حوزه مولفه ندارد. مزيت جدا كردن آنها اين است كه تابع كامپوننت شما كمي كوتاه تر است و مي توانيد در صورت نياز بعدا تابع را به يك فايل جداگانه منتقل كنيد.
    در ويرايشگر متن خود ، تابعي به نام displayEmojiName ايجاد كنيد كه اين رويداد را بگيرد و تابع ()alert را با شناسه فراخواني كند. سپس تابع را به هر مشخصه onClick منتقل كنيد:
    jsx-tutorial/src/App.js
    import React from ‘react’;
    import ‘./App.css’;

    const displayEmojiName = event => alert(event.target.id);

    function App() {
    const greeting = “greeting”;
    return(


    Hello, World


    I am writing JSX




    • onClick={displayEmojiName}
      >
      ????



    • onClick={displayEmojiName}
      >
      ????



    • onClick={displayEmojiName}
      >
      ????




    )
    }

    export default App;

    فايل را ذخيره كنيد. در مرورگر خود ، روي emoji كليك كنيد و همان هشدار را مشاهده خواهيد كرد.
    در اين مرحله ، شما به هر مولفه رويدادهايي اضافه كرديد. همچنين ديديد كه چگونه JSX از اسامي كمي متفاوت براي رويدادهاي مولفه استفاده مي كند ، و با گرفتن تابع و استفاده مجدد از آن بر روي چندين مولفه ، شروع به نوشتن كد قابل استفاده مجدد كرديد. در مرحله بعد ، يك تابع قابل استفاده مجدد خواهيد نوشت كه به جاي نوشتن هر مولفه به صورت دستي، عناصر JSX را برمي گرداند. اين امر بيشتر باعث كاهش تكرار خواهد شد.
    مرحله 4 – نگاشت روي داده ها براي ايجاد عناصر
    در اين مرحله ، استفاده از JSX فراتر از نشانه گذاري ساده خواهد رفت. ياد مي گيريد كه آن را با جاوا اسكريپت تركيب كنيد تا نشانه گذاري پويا ايجاد كنيد كه كد را كوچك مي كند و خوانايي را بهبود مي بخشد. مي توانيد كد خود را در آرايه اي كه براي ايجاد عناصر HTML حلقه مي كنيد ، آناليز كنيد.
    JSX شما را به يك تركيب مشابه HTML محدود نمي كند. همچنين امكان استفاده مستقيم از JavaScript را در نشانه گذاري به شما مي دهد. اين كار را تا حدي با وارد كردن توابع به مشخصه ها امتحان كرده ايد. همچنين از متغيرها براي استفاده مجدد از داده ها استفاده كرده ايد. اكنون زمان آن رسيده كه JSX را مستقيماً از داده ها با استفاده از كد استاندارد JavaScript بسازيد.
    در ويرايشگر متن خود ، بايد آرايه اي از داده هاي ايموجي را در فايل src / App.js ايجاد كنيد. اگر بسته است ، فايل را مجدداً باز كنيد:
    ⦁ $ nano src/App.js

    آرايه اي را اضافه كنيد كه شامل آبجكت هاي داراي ايموجي و نام ايموجي باشد. توجه داشته باشيد كه ايموجي ها بايد با علامت نقل قول احاطه شوند. اين آرايه را فراتر از تابع app ايجاد كنيد:
    jsx-tutorial/src/App.js
    import React from ‘react’;
    import ‘./App.css’;

    const displayEmojiName = event => alert(event.target.id);
    const emojis = [
    {
    emoji: “????”,
    name: “grinning face”
    },
    {
    emoji: “????”,
    name: “party popper”
    },
    {
    emoji: “????”,
    name: “woman dancing”
    }
    ];

    function App() {

    }

    export default App;

    اكنون كه داده داريد مي توانيد از طريق آن حلقه بزنيد. براي استفاده از JavaScript در داخل JSX ، بايد آن را در پرانتز {} قرار دهيد. مشابه زماني است كه توابع را به مشخصه ها اضافه كرديد.
    براي ايجاد مؤلفه هاي React ، بايد داده ها را به عناصر JSX تبديل كنيد. براي انجام اين كار ، روي داده ها نگاشت مي كنيد و يك مولفه JSX را برمي گردانيد. چند نكته وجود دارد كه هنگام نوشتن كد بايد آنها را به خاطر بسپاريد.
    ابتدا ، يك گروه از آيتم ها بايد توسط يك كانتينر

    احاطه شوند. سپس ، هر آيتم به يك مشخصه خاص به نام key نياز دارد. Key نياز به يك سري داده منحصر به فرد دارد كه React مي تواند از آنها استفاده كند تا عناصر را رديابي كند و بداند چه موقع به روز رساني اين مؤلفه را انجام دهد. اين كليد از HTML كامپايل شده خارج مي شود ، زيرا فقط براي اهداف داخلي است. هر زمان كه با حلقه كار مي كنيد ، بايد يك رشته ساده را به عنوان كليد اضافه كنيد.
    در اينجا مثال ساده اي وجود دارد كه ليستي از نام ها را در يك
    نگاشت مي كند:

    const names = [
    “Atul Gawande”,
    “Stan Sakai”,
    “Barry Lopez”
    ];

    return(


    {names.map(name =>
    {name}
    )}

    )

    HTML حاصل از اين قرار است:


    Atul Gawande

    Stan Sakai

    Barry Lopez


    تبديل ليست ايموجي مشابه خواهد بود.

      كانتينر خواهد بود. روي داده ها نگاشت مي كنيد و
    • را با كليد نام كوتاه ايموجي برميگردانيد. شما داده هاي به سختي كد شده را در برچسب هاي

    • ))
      }


    )
    }
    export default App;
    Copy

    در اين كد ، شما بر روي آرايه emojis در برچسب

    استفاده از سرور از راه دور Docker

    ۶۱ بازديد

    تصاوير و باينري هاي داراي CPU فشرده ، فرايندي بسيار كند و زمان بري است كه مي تواند در بعضي مواقع لپ تاپ شما را به بخاري تبديل كند. وارد كردن تصاوير Docker با اتصال آهسته ، مدت زمان زيادي طول مي كشد. خوشبختانه ، رفع اين مشكلات آسان است. Docker به شما امكان مي دهد تمام كارها را به يك سرور مجازي از راه دور بسپاريد تا دستگاه محلي شما مجبور به انجام آن كار سخت نباشد.
    اين ويژگي در Docker 18.09 معرفي شده است. اين نسخه پشتيباني اتصال به يك ميزبان Docker از راه دور از طريق SSH را به همراه دارد. به تنظيمات بسيار كمي در كلاينت احتياج دارد و فقط به يك سرور مجازي Docker معمولي و بدون هيچگونه تنظيم خاص در حال اجرا بر روي يك دستگاه از راه دور نياز خواهد داشت. قبل از Docker 18.09 ، بايد از دستگاه Docker براي ايجاد يك سرور مجازي Docker از راه دور استفاده كرده و سپس محيط محلي Docker را پيكربندي كنيد تا از آن استفاده كنيد. اين روش جديد آن پيچيدگي اضافي را از بين مي برد.
    در اين آموزش ، شما يك Droplet ايجاد مي كنيد تا ميزبان سرور مجازي Docker از راه دور باشيد و دستور docker را روي دستگاه محلي خود پيكربندي كنيد تا از آن استفاده نماييد.
    پيش نيازها
    براي دنبال كردن اين آموزش ، به موارد زير نياز داريد:
    يك حساب DigitalOcean. اگر قبلاً حساب كاربري نداريد مي توانيد يك حساب كاربري ايجاد كنيد.
    Docker كه روي دستگاه محلي يا سرور مجازي توسعه شما نصب شده باشد. اگر با Ubuntu 18.04 كار مي كنيد ، مراحل 1 و 2 نحوه نصب و استفاده از Docker را در اوبونتو 18.04 دنبال كنيد. در غير اين صورت ، براي كسب اطلاعات در مورد نصب در سيستم عامل هاي ديگر ، مطالب رسمي را دنبال كنيد. حتماً كاربر غير ريشه خود را به گروه docker اضافه كنيد ، همانطور كه در مرحله 2 از آموزش مربوطه توضيح داده شده است.
    مرحله 1 – ايجاد هاست Docker
    براي شروع كار ، Droplet را با مقدار مناسب قدرت پردازش راه اندازي كنيد. برنامه هاي بهينه سازي CPU براي اين منظور ايده آل هستند ، اما برنامه هاي استاندارد ديگر نيز به خوبي كار مي كنند. اگر برنامه هايي با منابع فشرده را كامپايل مي كنيد ، برنامه هاي بهينه سازي CPU هسته هاي CPU اختصاصي را ارائه مي دهند كه امكان ساخت سريع تر را فراهم مي كنند. در غير اين صورت ، برنامه هاي استاندارد نسبت CPU به RAM متعادل تري را ارائه مي دهند.
    Docker One-click image از همه تنظيمات مربوطه براي ما مراقبت مي كند. اين لينك را دنبال كنيد تا يك دراپلت بهينه سازي شده با CPU 16 GB / 8vCPU با Docker از كنترل پنل ايجاد كنيد.
    از طرف ديگر ، مي توانيد براي ايجاد Droplet از خط فرمان محلي خود ، از doctl استفاده كنيد. براي نصب آن ، دستورالعمل موجود در فايل README doctl را در GitHub دنبال كنيد.
    دستور زير يك دراپلت جديد بهينه شده با CPU 16GB/8vCPU در ناحيه FRA1 را بر اساس تصوير تك كليك Docker ايجاد مي كند:
    $ doctl compute droplet create docker-host

    $ –image docker-18-04

    $ –region fra1

    $ –size c-8

    $ –wait

    $ –ssh-keys $(doctl compute ssh-key list –format ID –no-header | sed ‘s/$/,/’ | tr -d ‘n’ | sed ‘s/,$//’)

    دستور doctl از مقدار ssh-keys استفاده مي كند تا مشخص كند كدام كليد SSH را بايد براي Droplet جديد خود اعمال كند. براي بازيابي كليدهاي SSH مرتبط با حساب DigitalOcean از يك زيرپوسته استفاده مي كنيم تا doctl compute ssh-key-list را فراخواني كنيم و سپس نتايج را با استفاده از دستور sed و tr تجزيه و تحليل مي كنيم تا داده ها را در قالب صحيح قالب بندي كنيم. اين دستور شامل كليه كليدهاي SSH حساب شما مي باشد ، اما مي توانيد دستور فرعي هايلايت شده را با اثرانگشت هر كليد موجود در حساب خود جايگزين كنيد.
    پس از ايجاد دراپلت ، آدرس IP آن را در بين ساير جزئيات مشاهده خواهيد كرد:
    Output
    ID Name Public IPv4 Private IPv4 Public IPv6 Memory VCPUs Disk Region Image Status Tags Features Volumes
    148681562 docker-host your_server_ip 16384 8 100 fra1 Ubuntu Docker 5:18.09.6~3 on 18.04 active

    مي توانيد اطلاعات بيشتري در مورد استفاده از دستور doctl در آموزش نحوه استفاده از doctl ، كلاينت خط فرمان رسمي DigitalOcean دريافت كنيد.
    وقتي دراپلت ايجاد شد ، آماده استفاده از سرور مجازي Docker خواهيد بود. براي اهداف امنيتي ، يك كاربر لينوكس ايجاد كنيد تا به جاي root استفاده شود.
    ابتدا با SSH به عنوان كاربر اصلي به دراپلت وصل شويد:
    $ ssh root@your_server_ip
    پس از اتصال ، يك كاربر جديد اضافه كنيد. اين دستور شخصي را به نام SAMMY اضافه مي كند:
    # adduser sammy

    سپس كاربر را به گروه docker اضافه كنيد تا به وي اجازه اجراي دستورات روي هاست Docker را بدهد.
    # sudo usermod -aG docker sammy

    در آخر با تايپ كردن exit از سرور مجازي راه دور خارج شويد.
    اكنون كه سرور مجازي آماده است ، اجازه دهيد دستور docker محلي را براي استفاده از آن پيكربندي كنيم.
    مرحله 2 – پيكربندي Docker براي استفاده از ميزبان از راه دور
    براي استفاده از ميزبان از راه دور به عنوان ميزبان Docker خود به جاي دستگاه محلي ، متغير محيط DOCKER_HOST را تنظيم كنيد تا به ميزبان از راه دور اشاره كند. اين متغير به كلاينت Docker CLI دستور مي دهد تا به سرور مجازي از راه دور متصل شود.
    $ export DOCKER_HOST=ssh://sammy@your_server_ip

    اكنون هر دستور Docker كه اجرا مي كنيد ، روي Droplet اجرا مي شود. به عنوان مثال ، اگر يك كانتينر وب سرور مجازي راه اندازي كنيد و يك پورت را در معرض ديد قرار دهيد ، روي Droplet اجرا خواهد شد و از طريق درگاهي كه در آدرس IP Droplet به نمايش گذاشته ايد ، قابل دسترسي خواهد بود.
    براي تأييد اينكه به Droplet به عنوان ميزبان Docker دسترسي داريد ، docker info را اجرا كنيد.
    $ docker info

    نام ميزبان Droplet خود را كه در قسمت Name ذكر شده است ، مشاهده خواهيد كرد:
    Output

    Name: docker-host

    نكته اي كه بايد در نظر داشته باشيد اينست كه وقتي دستور docker build را اجرا مي كنيد ، محتواي ساخت (كليه فايل ها و پوشه هاي قابل دسترسي از Dockerfile) به هاست ارسال مي شود و سپس مراحل ساخت اجرا مي شود. بسته به اندازه محتواي ساخت و ميزان فايل ها ، ممكن است در مقايسه با ساخت تصوير روي يك دستگاه محلي زمان بيشتري طول بكشد. يكي از راه حل ها اين است كه يك دايركتوري جديد اختصاص داده شده به تصوير Docker ايجاد كنيد و فقط فايل هايي را كه در تصوير استفاده خواهد شد كپي كنيد يا پيوند دهيد تا هيچ فايلغير ضروري به صورت سهوي آپلود نشود.
    هنگامي كه متغير DOCKER_HOST را با استفاده از export تنظيم كرديد ، مقدار آن براي مدت زمان بخش پوسته دوام خواهد داشت. در صورت نياز به استفاده مجدد از سرور مجازي محلي Docker ، مي توانيد متغير را با دستور زير پاك كنيد:
    unset DOCKER_HOST
    نتيجه
    شما يك ميزبان Docker از راه دور ايجاد كرده ايد و به صورت محلي به آن متصل هستيد. دفعه بعد كه باتري لپ تاپ شما رو به كاهش بود يا مجبور بوديد يك تصوير سنگين Docker بسازيد ، به جاي دستگاه محلي خود از سرور مجازي از راه دور Docker خود استفاده كنيد.
    همچنين ممكن است علاقه مند به يادگيري در مورد چگونگي بهينه سازي تصاوير Docker براي توليد يا چگونگي بهينه سازي آنها به طور خاص براي Kubernetesباشيد.

     

     

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

    استفاده از nsh براي دستورات از راه دور اوبونتو 18 –  ميزباني وب سايت با Caddy اوبونتو 18

    تنظيم سرور ذخيره سازي آبجكت با استفاده از Minio در اوبونتو 18  –  ضبط و اشتراك گذاري ترمينال با Terminalizer اوبونتو

    تنظيم مسيريابي شرطي و پاسخگو با React Router v4  –  ايجاد يك URL كوتاه كننده با Django و GraphQL

    يك برنامه رديابي سلامت را با React ،GraphQL و Okta –  ساخت برنامه ******** زمان حقيقي React و GraphQL

    به روزرساني فيلترهاي مرتب سازي Angular (زاويه اي) –  با استفاده از React ، Superagent و API اينستاگرام

    نحوه ساختن يك برنامه جهاني با Nuxt.js و Django –  دكمه دانلود با ريزتعاملات با CSS ، anime.js و segment.js

    نحوه اضافه كردن عكسهاي پيشرفته در Node و Express  –  با Vue ،GraphQL و Apollo Client يك وبلاگ ساخت

    يك برنامه SSR با روتر Preact ، Unistore و Preact بسازيد  –  ساخت برنامه هاي وب پيشرونده با Angular

    اشكال زدايي JavaScript در توليد با نقشه هاي منبع  –  مي توان با Koa برنامه “سلام جهاني” ساخت

    ساختن يك برنامه با Node ، React ، Okta  –   مديريت حالت فرم در React با Redux Form

    نحوه تنظيم Laravel ، Nginx و MySQL  –  ارتقاء از AngularJS به Angular با ngUpgrade

    استفاده از ويژوال استوديو از راه دور  –  احراز هويت API با JSON Web Tokens و Passport

    راه اندازي يك پروژه React با Parcel  –  ايجاد Swiper مانند Netflix را در Vue

    ساختن يك ربات تلگرام با Laravel و BotMan  –  استفاده از map، filter، و reduce در جاوااسكريپت

    چگونه مي توان موتور جستجوي زمان واقعي را با Vue  –  ساختن سيستم مستندات (Documentation) با Vue و VuePress

    استفاده از اشتراك زنده با كد ويژوال استوديو  –  ساخت يك مقياس اندازه گيري قدرت رمز عبور را در React

    شروع عملي GraphQL با Node.js و Express  –  ساخت يك برنامه آب و هوا در Django

    نحوه نصب Discourse روي Ubuntu 18  –  تأييد رمز عبور با استفاده از درخواست فرم Laravel

    نحوه نصب MySQL در CentOS 8  –  استفاده از پسوند PDO PHP براي انجام تراكنش MySQL

    نصب و پيكربندي SNMP Daemon و Client در Ubuntu 18  –  نصب Linux، Nginx، MariaDB،PHP در Debian 10

     

     

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

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

     

    برچسب‌ها:CPU, Docker, Docker CLI,

    نحوه نصب Git در CentOS 8

    ۵۸ بازديد

    كنترل نسخه بخشي ضروري از توسعه نرم افزاري مدرن هستند. نسخه سازي به شما امكان مي دهد تا نرم افزار خود را در سطح منبع نگه داريد. مي توانيد تغييرات را رديابي كنيد ، به مراحل قبلي برگرديد و شاخه بدهيد تا نسخه هاي متفاوتي از فايل ها و فهرست ها ايجاد كنيد.
    يكي از محبوب ترين سيستم هاي كنترل نسخه در حال حاضر موجود Git است. بسياري از فايل هاي پروژه ها در يك مخزن Git نگهداري مي شوند و سايت هايي مانند GitHub ، GitLab و Bitbucket به تسهيل اشتراك و همكاري پروژه توسعه نرم افزار كمك مي كنند.
    در اين راهنما نحوه نصب و پيكربندي Git روي سرور مجازي CentOS 8 را بررسي خواهيم كرد. نحوه نصب نرم افزار را به دو روش مختلف پوشش خواهيم داد: از طريق مدير بسته داخلي و از طريق منبع. هر يك از اين رويكردها بسته به نيازهاي خاص شما مزاياي خاص خود را دارد.
    پيش نيازها
    شما به يك سرور مجازي CentOS 8 با يك حساب كاربري فوق كاربري غير ريشه نياز خواهيد داشت.
    براي انجام اين كار، مي توانيد راهنماي تنظيم اوليه سرور مجازي براي CentOS 8 را دنبال كنيد.
    با راه اندازي سرور مجازي و كاربر ، آماده شروع كار هستيد.
    نصب Git با بسته هاي پيش فرض
    اولين گزينه ما براي نصب Git از طريق بسته هاي پيش فرض CentOS است.
    اين گزينه براي كساني كه مي خواهند به سرعت با Git پيش بروند، يا كساني كه نسخه پايدار و پر كاربرد را ترجيح مي دهند ، يا كساني كه به دنبال جديدترين گزينه هاي موجود نيستند، بهترين انتخاب است. اگر به دنبال جديدترين نسخه منتشر شده هستيد ، بايد به سراغ بخش نصب آن از منبع برويد.
    ما از ابزار مديريت منبع باز DNF استفاده مي كنيم ، كه مخفف Dandified YUM نسخه نسل بعدي Yellowdog Updater ، اصلاح شده است (يعني yum) . DNF مدير بسته اي است كه هم اكنون مدير بسته پيش فرض سيستم هاي لينوكس مبتني بر Red Hat مانند CentOS ميباشد. به شما امكان مي دهد بسته هاي نرم افزاري را بر روي سرور مجازي خود نصب ، به روز و حذف كنيد.
    ابتدا ، از ابزارهاي مديريت بسته مناسب براي به روزرساني فهرست بسته محلي خود استفاده كنيد.

    $ sudo dnf update -y

    پرچم -y براي هشدار به سيستم است مبني بر اينكه ما آگاهيم كه در حال ايجاد تغيير هستيم و از اعلان تأييد توسط ترمينال جلوگيري شود.
    با تكميل به روزرساني ، مي توانيد Git را نصب كنيد:
    $ sudo dnf install git -y

    با اجراي دستور زير مي توانيد تاييد كنيد كه Git را به درستي نصب كرده ايد:
    $ git –version

    Output
    git version 2.18.2

    با نصب موفقيت آميز Git ، اكنون مي توانيد براي تكميل تنظيم خود به بخش Setting Up Git برويد.
    نصب Git از Source
    يك روش انعطاف پذيرتر براي نصب Git ، كامپايل نرم افزار از منبع است. اين كار زمان بيشتري طول مي كشد و از طريق مدير بسته شما نگه داري نمي شود ، اما به شما امكان مي دهد آخرين نسخه را دانلود كنيد و در صورت تمايل به شخصي سازي ، كنترل برخي گزينه ها را در اختيار شما قرار مي دهد.
    قبل از شروع ، بايد نرم افزاري را نصب كنيد كه Git به آن بستگي دارد. اين همه ي چيزي است كه در مخازن پيش فرض موجود است ، بنابراين مي توانيم فهرست بسته محلي خود را بروزرساني كنيم و سپس بسته ها را نصب كنيم.
    $ sudo dnf update -y

    $ sudo dnf install gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel gcc autoconf -y

    بعد از اينكه متعلقات لازم را نصب كرديد ، يك ديركتوري موقت ايجاد كنيد و به داخل آن برويد. اينجاست كه تاربال Git خود را دانلود خواهيم كرد.
    $ mkdir tmp

    $ cd /tmp

    از وب سايت پروژه Git ، مي توانيم به ليست تاربل توزيع Red Hat لينوكس موجود در https://mirrors.edge.kernel.org/pub/software/scm/git/ برويم و نسخه مورد نظر خود را دانلود كنيم. در زمان نوشتن اين مقاله ، جديدترين نسخه 2.26.0 است ، بنابراين ما آن را براي اهداف نمايشي دانلود خواهيم كرد. ما از curl استفاده مي كنيم و فايلي را كه دانلود مي كنيم به git.tar.gz. ميفرستيم:

    $ curl -o git.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.26.0.tar.gz

    فايل تاربال فشرده را باز كنيد:

    $ tar -zxf git.tar.gz
    سپس، وارد ديركتوري جديد Git شويد:

    $ cd git-*

    اكنون مي توانيد بسته را ايجاد كرده و با تايپ اين دو دستور آن را نصب كنيد:
    $ make prefix=/usr/local all

    $ sudo make prefix=/usr/local install

    پس از تكميل اين كار ، مي توانيد با بررسي نسخه مطمئن باشيد كه نصب شما موفقيت آميز بوده است.
    $ git –version

    Output
    git version 2.26.0
    با نصب موفقيت آميز Git ، اكنون مي توانيد ستاپ خود را تكميل كنيد.

    راه اندازي Git
    اكنون كه Git را نصب كرده ايد ، بايد آن را پيكربندي كنيد تا پيام هاي commit توليد شده حاوي اطلاعات صحيح شما باشند.
    اين كار را مي توان با استفاده از دستور git config انجام داد. به طور خاص ، بايد نام و آدرس ايميل خود را ارائه كنيم زيرا Git اين اطلاعات را در هر كاري كه انجام مي دهيم تعبيه مي كند. مي توانيم پيش برويم و با تايپ كردن اين دستور اين اطلاعات را اضافه كنيم:
    $ git config –global user.name “Your Name”

    $ git config –global user.email “youremail@domain.com”

    مي توانيم تمام موارد پيكربندي تنظيم شده را با تايپ دستور زير نمايش دهيم:
    $ git config –list

    Output
    user.name=Your Name
    user.email=youremail@domain.com

    اطلاعاتي كه وارد مي كنيد در فايل پيكربندي Git شما ذخيره مي شود ، كه مي توانيد به صورت اختياري و دستي با يك ويرايشگر متن مانند اين ويرايش كنيد:
    $ vi ~/.gitconfig

    ~/.gitconfig contents
    [user]
    name = Your Name
    email = youremail@domain.com

    سپس براي خروج از ويرايشگر متن ESC را فشار دهيد.
    گزينه هاي بسيار ديگري وجود دارد كه مي توانيد تنظيم كنيد ، اما اين دو مورد ضروري هستند. اگر اين مرحله را رد كنيد ، احتمالاً هنگام ورود به Git هشدارهايي مشاهده خواهيد كرد. اين باعث مي شود كار بيشتري براي شما ايجاد شود زيرا مجبور خواهيد بود كارهايي را كه انجام داده ايد با اطلاعات اصلاح شده عوض كنيد.
    نتيجه
    اكنون بايد Git را نصب كرده و آماده استفاده در سيستم خود باشيد.
    براي كسب اطلاعات بيشتر در مورد نحوه استفاده از Git ، اين مقاله ها و مجموعه ها را بررسي كنيد:
    • نحوه استفاده كارآمد از Git
    • نحوه استفاده از انشعابات Git
    • مقدمه اي بر منبع آزاد

     

     

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

    استفاده از nsh براي دستورات از راه دور اوبونتو 18 –  ميزباني وب سايت با Caddy اوبونتو 18

    تنظيم سرور ذخيره سازي آبجكت با استفاده از Minio در اوبونتو 18  –  ضبط و اشتراك گذاري ترمينال با Terminalizer اوبونتو

    تنظيم مسيريابي شرطي و پاسخگو با React Router v4  –  ايجاد يك URL كوتاه كننده با Django و GraphQL

    يك برنامه رديابي سلامت را با React ،GraphQL و Okta –  ساخت برنامه ******** زمان حقيقي React و GraphQL

    به روزرساني فيلترهاي مرتب سازي Angular (زاويه اي) –  با استفاده از React ، Superagent و API اينستاگرام

    نحوه ساختن يك برنامه جهاني با Nuxt.js و Django –  دكمه دانلود با ريزتعاملات با CSS ، anime.js و segment.js

    نحوه اضافه كردن عكسهاي پيشرفته در Node و Express  –  با Vue ،GraphQL و Apollo Client يك وبلاگ ساخت

    يك برنامه SSR با روتر Preact ، Unistore و Preact بسازيد  –  ساخت برنامه هاي وب پيشرونده با Angular

    اشكال زدايي JavaScript در توليد با نقشه هاي منبع  –  مي توان با Koa برنامه “سلام جهاني” ساخت

    ساختن يك برنامه با Node ، React ، Okta  –   مديريت حالت فرم در React با Redux Form

    نحوه تنظيم Laravel ، Nginx و MySQL  –  ارتقاء از AngularJS به Angular با ngUpgrade

    استفاده از ويژوال استوديو از راه دور  –  احراز هويت API با JSON Web Tokens و Passport

    راه اندازي يك پروژه React با Parcel  –  ايجاد Swiper مانند Netflix را در Vue

    ساختن يك ربات تلگرام با Laravel و BotMan  –  استفاده از map، filter، و reduce در جاوااسكريپت

    چگونه مي توان موتور جستجوي زمان واقعي را با Vue  –  ساختن سيستم مستندات (Documentation) با Vue و VuePress

    استفاده از اشتراك زنده با كد ويژوال استوديو  –  ساخت يك مقياس اندازه گيري قدرت رمز عبور را در React

    شروع عملي GraphQL با Node.js و Express  –  ساخت يك برنامه آب و هوا در Django

    نحوه نصب Discourse روي Ubuntu 18  –  تأييد رمز عبور با استفاده از درخواست فرم Laravel

    نحوه نصب MySQL در CentOS 8  –  استفاده از پسوند PDO PHP براي انجام تراكنش MySQL

    نصب و پيكربندي SNMP Daemon و Client در Ubuntu 18  –  نصب Linux، Nginx، MariaDB،PHP در Debian 10

     

     

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

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

    كنترل نسخه بخشي ضروري از توسعه نرم افزاري مدرن هستند. نسخه سازي به شما امكان مي دهد تا نرم افزار خود را در سطح منبع نگه داريد. مي توانيد تغييرات را رديابي كنيد ، به مراحل قبلي برگرديد و شاخه بدهيد تا نسخه هاي متفاوتي از فايل ها و فهرست ها ايجاد كنيد.
    يكي از محبوب ترين سيستم هاي كنترل نسخه در حال حاضر موجود Git است. بسياري از فايل هاي پروژه ها در يك مخزن Git نگهداري مي شوند و سايت هايي مانند GitHub ، GitLab و Bitbucket به تسهيل اشتراك و همكاري پروژه توسعه نرم افزار كمك مي كنند.
    در اين راهنما نحوه نصب و پيكربندي Git روي سرور مجازي CentOS 8 را بررسي خواهيم كرد. نحوه نصب نرم افزار را به دو روش مختلف پوشش خواهيم داد: از طريق مدير بسته داخلي و از طريق منبع. هر يك از اين رويكردها بسته به نيازهاي خاص شما مزاياي خاص خود را دارد.
    پيش نيازها
    شما به يك سرور مجازي CentOS 8 با يك حساب كاربري فوق كاربري غير ريشه نياز خواهيد داشت.
    براي انجام اين كار، مي توانيد راهنماي تنظيم اوليه سرور مجازي براي CentOS 8 را دنبال كنيد.
    با راه اندازي سرور مجازي و كاربر ، آماده شروع كار هستيد.
    نصب Git با بسته هاي پيش فرض
    اولين گزينه ما براي نصب Git از طريق بسته هاي پيش فرض CentOS است.
    اين گزينه براي كساني كه مي خواهند به سرعت با Git پيش بروند، يا كساني كه نسخه پايدار و پر كاربرد را ترجيح مي دهند ، يا كساني كه به دنبال جديدترين گزينه هاي موجود نيستند، بهترين انتخاب است. اگر به دنبال جديدترين نسخه منتشر شده هستيد ، بايد به سراغ بخش نصب آن از منبع برويد.
    ما از ابزار مديريت منبع باز DNF استفاده مي كنيم ، كه مخفف Dandified YUM نسخه نسل بعدي Yellowdog Updater ، اصلاح شده است (يعني yum) . DNF مدير بسته اي است كه هم اكنون مدير بسته پيش فرض سيستم هاي لينوكس مبتني بر Red Hat مانند CentOS ميباشد. به شما امكان مي دهد بسته هاي نرم افزاري را بر روي سرور مجازي خود نصب ، به روز و حذف كنيد.
    ابتدا ، از ابزارهاي مديريت بسته مناسب براي به روزرساني فهرست بسته محلي خود استفاده كنيد.

    $ sudo dnf update -y

    پرچم -y براي هشدار به سيستم است مبني بر اينكه ما آگاهيم كه در حال ايجاد تغيير هستيم و از اعلان تأييد توسط ترمينال جلوگيري شود.
    با تكميل به روزرساني ، مي توانيد Git را نصب كنيد:
    $ sudo dnf install git -y

    با اجراي دستور زير مي توانيد تاييد كنيد كه Git را به درستي نصب كرده ايد:
    $ git –version

    Output
    git version 2.18.2

    با نصب موفقيت آميز Git ، اكنون مي توانيد براي تكميل تنظيم خود به بخش Setting Up Git برويد.
    نصب Git از Source
    يك روش انعطاف پذيرتر براي نصب Git ، كامپايل نرم افزار از منبع است. اين كار زمان بيشتري طول مي كشد و از طريق مدير بسته شما نگه داري نمي شود ، اما به شما امكان مي دهد آخرين نسخه را دانلود كنيد و در صورت تمايل به شخصي سازي ، كنترل برخي گزينه ها را در اختيار شما قرار مي دهد.
    قبل از شروع ، بايد نرم افزاري را نصب كنيد كه Git به آن بستگي دارد. اين همه ي چيزي است كه در مخازن پيش فرض موجود است ، بنابراين مي توانيم فهرست بسته محلي خود را بروزرساني كنيم و سپس بسته ها را نصب كنيم.
    $ sudo dnf update -y

    $ sudo dnf install gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel gcc autoconf -y

    بعد از اينكه متعلقات لازم را نصب كرديد ، يك ديركتوري موقت ايجاد كنيد و به داخل آن برويد. اينجاست كه تاربال Git خود را دانلود خواهيم كرد.
    $ mkdir tmp

    $ cd /tmp

    از وب سايت پروژه Git ، مي توانيم به ليست تاربل توزيع Red Hat لينوكس موجود در https://mirrors.edge.kernel.org/pub/software/scm/git/ برويم و نسخه مورد نظر خود را دانلود كنيم. در زمان نوشتن اين مقاله ، جديدترين نسخه 2.26.0 است ، بنابراين ما آن را براي اهداف نمايشي دانلود خواهيم كرد. ما از curl استفاده مي كنيم و فايلي را كه دانلود مي كنيم به git.tar.gz. ميفرستيم:

    $ curl -o git.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.26.0.tar.gz

    فايل تاربال فشرده را باز كنيد:

    $ tar -zxf git.tar.gz
    سپس، وارد ديركتوري جديد Git شويد:

    $ cd git-*

    اكنون مي توانيد بسته را ايجاد كرده و با تايپ اين دو دستور آن را نصب كنيد:
    $ make prefix=/usr/local all

    $ sudo make prefix=/usr/local install

    پس از تكميل اين كار ، مي توانيد با بررسي نسخه مطمئن باشيد كه نصب شما موفقيت آميز بوده است.
    $ git –version

    Output
    git version 2.26.0
    با نصب موفقيت آميز Git ، اكنون مي توانيد ستاپ خود را تكميل كنيد.

    راه اندازي Git
    اكنون كه Git را نصب كرده ايد ، بايد آن را پيكربندي كنيد تا پيام هاي commit توليد شده حاوي اطلاعات صحيح شما باشند.
    اين كار را مي توان با استفاده از دستور git config انجام داد. به طور خاص ، بايد نام و آدرس ايميل خود را ارائه كنيم زيرا Git اين اطلاعات را در هر كاري كه انجام مي دهيم تعبيه مي كند. مي توانيم پيش برويم و با تايپ كردن اين دستور اين اطلاعات را اضافه كنيم:
    $ git config –global user.name “Your Name”

    $ git config –global user.email “youremail@domain.com”

    مي توانيم تمام موارد پيكربندي تنظيم شده را با تايپ دستور زير نمايش دهيم:
    $ git config –list

    Output
    user.name=Your Name
    user.email=youremail@domain.com

    اطلاعاتي كه وارد مي كنيد در فايل پيكربندي Git شما ذخيره مي شود ، كه مي توانيد به صورت اختياري و دستي با يك ويرايشگر متن مانند اين ويرايش كنيد:
    $ vi ~/.gitconfig

    ~/.gitconfig contents
    [user]
    name = Your Name
    email = youremail@domain.com

    سپس براي خروج از ويرايشگر متن ESC را فشار دهيد.
    گزينه هاي بسيار ديگري وجود دارد كه مي توانيد تنظيم كنيد ، اما اين دو مورد ضروري هستند. اگر اين مرحله را رد كنيد ، احتمالاً هنگام ورود به Git هشدارهايي مشاهده خواهيد كرد. اين باعث مي شود كار بيشتري براي شما ايجاد شود زيرا مجبور خواهيد بود كارهايي را كه انجام داده ايد با اطلاعات اصلاح شده عوض كنيد.
    نتيجه
    اكنون بايد Git را نصب كرده و آماده استفاده در سيستم خود باشيد.
    براي كسب اطلاعات بيشتر در مورد نحوه استفاده از Git ، اين مقاله ها و مجموعه ها را بررسي كنيد:
    • نحوه استفاده كارآمد از Git
    • نحوه استفاده از انشعابات Git
    • مقدمه اي بر منبع آزاد

     

     

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

    استفاده از nsh براي دستورات از راه دور اوبونتو 18 –  ميزباني وب سايت با Caddy اوبونتو 18

    تنظيم سرور ذخيره سازي آبجكت با استفاده از Minio در اوبونتو 18  –  ضبط و اشتراك گذاري ترمينال با Terminalizer اوبونتو

    تنظيم مسيريابي شرطي و پاسخگو با React Router v4  –  ايجاد يك URL كوتاه كننده با Django و GraphQL

    يك برنامه رديابي سلامت را با React ،GraphQL و Okta –  ساخت برنامه ******** زمان حقيقي React و GraphQL

    به روزرساني فيلترهاي مرتب سازي Angular (زاويه اي) –  با استفاده از React ، Superagent و API اينستاگرام

    نحوه ساختن يك برنامه جهاني با Nuxt.js و Django –  دكمه دانلود با ريزتعاملات با CSS ، anime.js و segment.js

    نحوه اضافه كردن عكسهاي پيشرفته در Node و Express  –  با Vue ،GraphQL و Apollo Client يك وبلاگ ساخت

    يك برنامه SSR با روتر Preact ، Unistore و Preact بسازيد  –  ساخت برنامه هاي وب پيشرونده با Angular

    اشكال زدايي JavaScript در توليد با نقشه هاي منبع  –  مي توان با Koa برنامه “سلام جهاني” ساخت

    ساختن يك برنامه با Node ، React ، Okta  –   مديريت حالت فرم در React با Redux Form

    نحوه تنظيم Laravel ، Nginx و MySQL  –  ارتقاء از AngularJS به Angular با ngUpgrade

    استفاده از ويژوال استوديو از راه دور  –  احراز هويت API با JSON Web Tokens و Passport

    راه اندازي يك پروژه React با Parcel  –  ايجاد Swiper مانند Netflix را در Vue

    ساختن يك ربات تلگرام با Laravel و BotMan  –  استفاده از map، filter، و reduce در جاوااسكريپت

    چگونه مي توان موتور جستجوي زمان واقعي را با Vue  –  ساختن سيستم مستندات (Documentation) با Vue و VuePress

    استفاده از اشتراك زنده با كد ويژوال استوديو  –  ساخت يك مقياس اندازه گيري قدرت رمز عبور را در React

    شروع عملي GraphQL با Node.js و Express  –  ساخت يك برنامه آب و هوا در Django

    نحوه نصب Discourse روي Ubuntu 18  –  تأييد رمز عبور با استفاده از درخواست فرم Laravel

    نحوه نصب MySQL در CentOS 8  –  استفاده از پسوند PDO PHP براي انجام تراكنش MySQL

    نصب و پيكربندي SNMP Daemon و Client در Ubuntu 18  –  نصب Linux، Nginx، MariaDB،PHP در Debian 10

     

     

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

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

     

    برچسب‌ها:BitBucket, Dandified YUM,

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

     

    برچسب‌ها:BitBucket, Dandified YUM,

    نصب و پيكربندي Zabbix براي رديابي ايمن سرورهاي

    ۵۷ بازديد

    يك نرم افزار مانيتورينگ منبع باز براي شبكه ها و برنامه ها است. اين برنامه نظارت بر هزاران معيار (metricها) جمع آوري شده از سرور مجازي ها ، ماشين هاي مجازي ، دستگاه هاي شبكه و برنامه هاي وب را در زمان واقعي ارائه مي دهد. اين معيارها به شما كمك مي كند تا سلامت فعلي زيرساخت IT خود را تعيين كنيد و قبل از شكايت مشتريان مشكلات سخت افزار يا اجزاي نرم افزاري را تشخيص دهيد. اطلاعات مفيد در يك پايگاه داده ذخيره مي شود ، بنابراين مي توانيد داده ها را با گذشت زمان تجزيه و تحليل كرده و كيفيت خدمات ارائه شده را بهبود بخشيد ، يا براي ارتقاء برنامه هاي خود تصميم گيري كنيد.
    Zabbix از گزينه هاي مختلفي براي جمع آوري معيارها استفاده مي كند ، از جمله آن مي توان به نظارت بدون عامل بر خدمات كاربر و معماري كلاينت-سرور مجازي اشاره كرد. براي جمع آوري متريك سرور مجازي ، از يك عامل كوچك در سرويس گيرنده تحت نظارت براي جمع آوري داده ها و ارسال آن به سرور مجازي Zabbix استفاده مي كند. Zabbix از ارتباط رمزگذاري شده بين سرور مجازي و كلاينت هاي متصل پشتيباني مي كند ، بنابراين هنگام گذر از شبكه هاي ناايمن ، از داده هاي شما محافظت مي شود.
    سرور مجازي Zabbix داده هاي خود را در يك پايگاه داده رابطه اي ايجاد مي كند كه توسط MySQL ، PostgreSQL يا Oracle تهيه مي شود. همچنين مي توانيد داده هاي تاريخي را در پايگاه هاي داده nosql مانند Elasticsearch و TimescaleDB ذخيره كنيد. Zabbix يك رابط وب فراهم مي كند تا بتوانيد داده ها را مشاهده كرده و تنظيمات سيستم را پيكربندي كنيد.
    در اين آموزش دو ماشين پيكربندي خواهيد كرد. يكي به عنوان سرور مجازي پيكربندي مي شود و ديگري به عنوان كلاينت كه بر آن نظارت مي كنيد. سرور مجازي از يك پايگاه داده MySQL براي ضبط داده هاي مانيتورينگ استفاده مي كند و از Apache براي سرويس رابط وب استفاده مي شود.
    پيش نيازها
    براي دنبال كردن اين آموزش ، به موارد زير نياز داريد:
    • دو سرور مجازي CentOS 7 كه با طبق مقاله نحوه راه اندازي سرور مجازي اوليه با CentOS تنظيم شده باشد ، و شامل يك كاربر غير ريشه با امتيازات sudo و فايروال باشد. روي يك سرور مجازي ، Zabbix را نصب مي كنيد. اين آموزش به اين سرور مجازي، سرور مجازي Zabbix خواهد گفت. در واقع سرور مجازي دوم شما را كنترل مي كند. به اين سرور مجازي دوم سرور مجازي دوم CentOS گفته مي شود.
    سرور مجازي Zabbix به نصب Apache ، MySQL و PHP نياز دارد. نحوه نصب Linux ، Apache ، MySQL ، PHP (LAMP) را بر روي CentOS 7 دنبال كنيد تا اين موارد را روي سرور مجازي Zabbix پيكربندي كنيد.
    توجه: CentOS به جاي MySQL از MariaDB استفاده مي كند ، اما در دنبال كردن اين آموزش مشكلي ايجاد نمي كند.

    علاوه بر اين ، از آنجا كه شما از سرور مجازي Zabbix براي دسترسي به اطلاعات با ارزش در مورد زيرساخت هاي خود استفاده مي كنيد كه نمي خواهيد كاربران غيرمجاز به آنها دسترسي پيدا كنند ، مهم است كه با نصب گواهي TLS / SSL ، سرور مجازي خود را ايمن نگه داريد. اين كار اختياري است اما به شدت توصيه ميشود. براي به دست آوردن گواهينامه رايگان TLS / SSL مي توانيد راهنماي Let’s Encrypt on CentOS 7 را دنبال كنيد.
    مرحله 1 – نصب سرور مجازي Zabbix
    ابتدا بايد Zabbix را روي سرور مجازي ي كه MySQL ،Apache و PHP را نصب كرده ايد ، نصب كنيد. به عنوان كاربر غير ريشه خود به اين دستگاه وارد شويد:
    ⦁ $ ssh sammy@zabbix_server_ip_address

    Zabbix به طور پيش فرض در مدير بسته موجود نيست ، بنابراين بسته بندي پيكربندي مخزن را با استفاده از مخزن رسمي Zabbix براي CentOS نصب كنيد. در اين آموزش از نسخه 4.2 Zabbix استفاده مي شود:
    ⦁ $ sudo rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm

    خروجي زير را مشاهده خواهيد كرد:
    Output
    Retrieving https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
    warning: /var/tmp/rpm-tmp.WXsYNB: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
    Preparing… ################################# [100%]
    Updating / installing…
    1:zabbix-release-4.2-1.el7 ################################# [100%]

    فعلا همه ورودي هاي مخازن فعال را از حافظه نهان پاك كنيد:
    ⦁ $ sudo yum clean all

    سپس سرور مجازي Zabbix و Web Frontend را با پشتيباني پايگاه داده MySQL نصب كنيد:
    ⦁ $ sudo yum install zabbix-server-mysql zabbix-web-mysql

    در طي مراحل نصب از شما در مورد وارد كردن يك كليد GPG سؤال مي شود. اين كليد صحت بسته اي را كه نصب مي كنيد تأييد مي كند. براي پايان دادن به نصب ، كليد GPG را با تايپ y و فشار دادن ENTER هنگام درخواست، بپذيريد.

    همچنين ، عامل Zabbix را نصب كنيد ، كه به شما امكان مي دهد اطلاعات مربوط به وضعيت سرور مجازي Zabbix را جمع كنيد.
    ⦁ $ sudo yum install zabbix-agent

    قبل از استفاده از Zabbix ، شما بايد يك بانك اطلاعاتي را تنظيم كنيد تا داده هايي را كه سرور مجازي Zabbix از عاملين آن جمع آوري خواهد كرد ، نگه داريد. مي توانيد اين كار را در مرحله بعدي انجام دهيد.
    مرحله 2 – پيكربندي پايگاه داده MySQL براي Zabbix
    بايد يك پايگاه داده MySQL جديد ايجاد كرده و آن را با برخي از اطلاعات اصلي پر كنيد تا براي Zabbix مناسب باشد. همچنين يك كاربر خاص براي اين بانك اطلاعات ايجاد خواهيد كرد تا Zabbix با حساب ريشه وارد MySQL نشود.
    به عنوان كاربر ريشه با استفاده از رمز ريشه كه هنگام نصب سرور مجازي MySQL تنظيم كرده ايد به MySQL وارد شويد:
    ⦁ mariaDB [(none)]> mysql -uroot -p

    پايگاه داده Zabbix را با پشتيباني كاراكتر UTF-8 ايجاد كنيد:
    ⦁ mariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

    سپس كاربري ايجاد كنيد كه سرور مجازي Zabbix از آن استفاده كند ، به آن دسترسي به پايگاه داده جديد را بدهيد و رمز عبور را براي كاربر تنظيم كنيد:
    ⦁ mariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by ‘your_zabbix_mysql_password’;

    سپس اين مجوزهاي جديد را اعمال كنيد:
    ⦁ mariaDB [(none)]> flush privileges;

    اين امر از كاربر و بانك اطلاعاتي مراقبت ميكند. از كنسول پايگاه داده خارج شويد:
    ⦁ mariaDB [(none)]> quit;

    در مرحله بعد ، طرح و داده هاي اوليه را وارد كنيد. نصب Zabbix فايلي را در اختيارتان قرار مي دهد.
    براي تنظيم شماتيك و وارد كردن داده ها به پايگاه داده zabbix ، دستور زير را اجرا كنيد. ازzcat  استفاده كنيد چرا كه اطلاعات موجود در فايل ، فشرده است.
    ⦁ $ zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

    رمزعبور را براي كاربر zabbix MySQL كه هنگام درخواست از شما پيكربندي كرديد وارد نماييد.
    در صورت موفقيت، اين فرمان خطايي به همراه نخواهد داشت. اگر خطاي ERROR 1045 (28000): Access denied for user zabbix@’localhost’ (using password: YES) را مشاهده كرديد ، مطمئن شويد كه از رمز عبور براي كاربر zabbix استفاده كرده ايد و نه كاربر root.
    به منظور استفاده سرور مجازي Zabbix از اين پايگاه داده ، بايد گذرواژه پايگاه داده را در فايل پيكربندي سرور مجازي Zabbix تنظيم كنيد. فايل پيكربندي را در ويرايشگر متن مورد نظر خود باز كنيد. اين آموزش از vi استفاده مي كند:
    ⦁ $ sudo vi /etc/zabbix/zabbix_server.conf

    توجه: براي كسب اطلاعات بيشتر در مورد ويرايشگر متن vi و vim جانشين آن ، از نصب و استفاده از ويرايشگر متن Vim در آموزش Cloud Server استفاده كنيد.
    به دنبال قسمت زير در فايل باشيد:
    /etc/zabbix/zabbix_server.conf

    ### Option: DBPassword
    # Database password. Ignored for SQLite.
    # Comment this line if no password is used.
    #
    # Mandatory: no
    # Default:
    # DBPassword=

    اين نظرات در فايل نحوه اتصال به پايگاه داده را توضيح مي دهkد. شما بايد مقدار DBPassword را در فايل براي كاربر پايگاه داده خود تنظيم كنيد . با وارد كردن دكمه i حالت insert را وارد كرده ،DBPassword = را حذف كنيد و و رمز خود را براي پيكربندي بانك اطلاعات اضافه كنيد:
    /etc/zabbix/zabbix_server.conf

    # Mandatory: no
    # Default
    DBPassword=your_zabbix_mysql_password

    پس از اتمام ، ESC را فشار دهيد تا حالت درج باقي بماند ، سپس: wq و ENTER براي ذخيره و خروج از فايل تايپ كنيد.
    اين امر از پيكربندي سرور مجازي Zabbix محافظت ميكند. در مرحله بعد ، براي كاركرد صحيح رابط وب Zabbix اصلاحاتي را در تنظيمات PHP ايجاد خواهيد كرد.
    مرحله 3 – پيكربنديPHP براي Zabbix
    رابط وب Zabbix به زبان PHP نوشته شده است و به برخي تنظيمات ويژه سرور مجازي PHP احتياج دارد. مراحل نصب Zabbix يك فايل پيكربندي Apache ايجاد كرد كه شامل اين تنظيمات است. شما بايد تغيير كوچكي در اين فايل ايجاد كنيد ، بنابراين آن را با دستور زير باز كنيد:
    ⦁ $ sudo vi /etc/httpd/conf.d/zabbix.conf

    اين فايل شامل تنظيمات PHP است كه شرايط لازم براي رابط وب Zabbix را برآورده مي كند. با اين حال ، تنظيم منطقه زماني به طور پيش فرض حذف مي شود. براي اينكه مطمئن شويد Zabbix از زمان صحيح استفاده مي كند ، بايد منطقه زماني مناسب را تنظيم كنيد.
    /etc/httpd/conf.d/zabbix.conf


    php_value max_execution_time 300
    php_value memory_limit 128M
    php_value post_max_size 16M
    php_value upload_max_filesize 2M
    php_value max_input_time 300
    php_value max_input_vars 10000
    php_value always_populate_raw_post_data -1
    # php_value date.timezone Europe/Riga

    خط منطقه زماني كه در بلوك كد قبلي هايلايت شده است را باطل كنيد و آن را به منطقه زماني خود تغيير دهيد. مي توانيد از اين ليست از مناطق زماني پشتيباني شده استفاده كنيد تا يك ليست مناسب براي شما پيدا شود. سپس فايل را ذخيره كنيد و ببنديد.
    اكنون Apache را مجدداً راه اندازي كنيد تا اين تنظيمات جديد اعمال شود:
    ⦁ $ sudo systemctl restart httpd

    توجه: اگر SELinux در حالت اجباري در حال اجرا است ، بايد با استفاده از دستور sudo setenforce 0 آن را در حالت مجاز قرار دهيد تا به عامل Zabbix اجازه دهيد به طور آزادانه عمل كند. مي توانيد از اين آموزش براي اطلاعات بيشتر درباره مكانيسم كنترل امنيت Security Enhanced Linux استفاده كنيد.

    اكنون مي توانيد سرور مجازي و عامل Zabbix را راه اندازي كنيد:
    ⦁ $ sudo systemctl start zabbix-server

    ⦁ $ sudo systemctl start zabbix-agent
    سپس بررسي كنيد كه آيا سرور مجازي Zabbix به درستي كار مي كند:
    ⦁ $ sudo systemctl status zabbix-server

    وضعيت زير را مشاهده خواهيد كرد:
    Output
    ● zabbix-server.service – Zabbix Server
    Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; disabled; vendor preset: disabled)
    Active: active (running) since Fri 2019-05-03 05:57:29 UTC; 2s ago
    Process: 4461 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)

    در آخر ، سرور مجازي و نماينده را فعال كنيد تا در زمان بوت شروع شوند:
    ⦁ $ sudo systemctl enable zabbix-server

    ⦁ 4 sudo systemctl enable zabbix-agent

    اين سرور مجازي تنظيم شده و به بانك اطلاعاتي وصل ميباشد. سپس ، ظاهر وب را تنظيم كنيد.
    توجه: همانطور كه در بخش Preferences ذكر شد ، توصيه مي شود SSL / TLS را روي سرور مجازي خود فعال كنيد. براي بدست آوردن يك گواهينامه SSL رايگان براي Apache در CentOS 7مي توانيد اين آموزش را دنبال كنيد. پس از اخذ گواهينامه هاي SSL / TLS ، مي توانيد دوباره برگشته و اين آموزش را تكميل كنيد.

    مرحله 4 – پيكربندي تنظيمات رابط وب Zabbix
    رابط وب به شما امكان مي دهد گزارش ها را مشاهده كنيد و ميزبان هايي را كه مي خواهيد نظارت كنيد اضافه نماييد ، اما قبل از استفاده از آن نياز به تنظيمات اوليه دارد. مرورگر خود را راه اندازي كنيد و به آدرس http: // zabbix_server_name / zabbix / برويد. در صفحه اول يك پيام خوش آمديد مشاهده خواهيد كرد. براي ادامه بر روي next step كليك كنيد.
    در صفحه بعدي ، جدول را مشاهده خواهيد كرد كه ليست تمامي پيش نيازهاي اجراي Zabbix را نشان مي دهد.

    همه مقادير موجود در اين جدول بايد ok باشد ، بنابراين تأييد كنيد كه هستند. حتماً تا پايين صفحه رفته و همه پيش نيازها را نگاه كنيد. هنگامي كه تأييد كرديد كه همه چيز آماده است ، براي ادامه روي next step كليك كنيد.
    صفحه بعدي اطلاعات اتصال داده را مي پرسد.

    به سرور مجازي Zabbix در مورد بانك اطلاعاتي خود آگاهي داديد ، اما رابط وب Zabbix براي مديريت هاست و خواندن داده نيز به دسترسي به بانك اطلاعاتي احتياج دارد. بنابراين اعتبارات MySQL را كه در مرحله 2 پيكربندي كرده ايد وارد كنيد و براي ادامه بر روي next step كليك كنيد.
    در صفحه بعدي مي توانيد گزينه ها را در مقادير پيش فرض آنها قرار دهيد.

    name اختياري است. در صورت داشتن چندين سرور مجازي نظارت ، از آن در رابط وب استفاده مي شود. براي ادامه بر روي next step كليك كنيد.
    صفحه بعدي خلاصه پيش از نصب را نشان مي دهد تا بتوانيد تأييد كنيد كه همه چيز صحيح است.

    بر روي next step كليك كنيد تا به صفحه نهايي برويد.
    ستاپ رابط وب اكنون تكميل شده است. اين فرآيند فايل پيكربندي /etc/zabbix/web/zabbix.conf.php را ايجاد مي كند كه مي توانيد در آينده از آنها نسخه پشتيبان تهيه كنيد و استفاده كنيد. براي رفتن به صفحه ورود ، روي Finish كليك كنيد. كاربر پيش فرض Admin و پسورد zabbix است.
    قبل از ورود به سيستم ، عامل Zabbix را در دومين سرور مجازي CentOS خود تنظيم كنيد.
    مرحله 5 – نصب و پيكربندي عامل Zabbix
    حال بايد نرم افزار عامل را تنظيم كنيد كه داده هاي مانيتورينگ را به سرور مجازي Zabbix ارسال مي كند.
    وارد سرور مجازي CentOS دوم شويد:
    ⦁ $ ssh sammy@second_centos_server_ip_address

    سپس ، دقيقاً مانند سرور مجازي Zabbix ، دستور زير را براي نصب بسته تنظيمات مخزن اجرا كنيد:
    ⦁ $ sudo rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm

    بعد ، حافظه yum را پاك كنيد:
    ⦁ $ sudo yum clean all
    سپس عامل Zabbix را نصب كنيد:
    ⦁ $ sudo yum install zabbix-agent

    در طي مراحل نصب در مورد وارد كردن يك كليد GPG از شما سؤال مي شود. آن را تأييد كنيد تا نصب كامل شود.
    در حالي كه Zabbix از رمزگذاري مبتني بر گواهي پشتيباني مي كند ، تنظيم مجوز قانوني فراتر از محدوده اين آموزش است. در عوض ، در اين آموزش از كليدهاي از پيش اشتراكي (PSK) براي برقراري ارتباط بين سرور مجازي و عامل استفاده خواهيد كرد.
    ابتدا يك PSK ايجاد كنيد:
    ⦁ $ sudo sh -c “openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk”

    كليد را نشان دهيد تا بتوانيد آن را در جايي كپي كنيد. براي پيكربندي هاست به آن احتياج خواهيد داشت.
    ⦁ $ cat /etc/zabbix/zabbix_agentd.psk

    كليد چيزي شبيه به اين خواهد بود:
    Output
    a4374c8c3b55de472225dbf96aa7cd3ce6a34abc95d0eb2a601d954ee0cd4410

    اكنون تنظيمات عامل Zabbix را ويرايش كنيد تا اتصال ايمن آن به سرور مجازي Zabbix تنظيم شود. فايل پيكربندي عامل را در ويرايشگر متن خود باز كنيد:
    ⦁ $ sudo vi /etc/zabbix/zabbix_agentd.conf

    هر تنظيماتي درون اين فايل از طريق كامنت هاي آگاهي دهنده در سراسر فايل مستند ميشود ، اما نياز به ويرايش برخي از آنها داريد.
    ابتدا بايد آدرس IP سرور مجازي Zabbix را ويرايش كنيد. بخش زير را پيدا كنيد:
    /etc/zabbix/zabbix_agentd.conf

    ### Option: Server
    # List of comma delimited IP addresses (or hostnames) of Zabbix servers.
    # Incoming connections will be accepted only from the hosts listed here.
    # If IPv6 support is enabled then ‘127.0.0.1’, ‘::127.0.0.1’, ‘::ffff:127.0.0.1’ are treated equally.
    #
    # Mandatory: no
    # Default:
    # Server=

    Server=127.0.0.1

    مقدار پيش فرض را به IP سرور مجازي Zabbix تغيير دهيد:
    /etc/zabbix/zabbix_agentd.conf

    # Mandatory: no
    # Default:
    # Server=

    Server=zabbix_server_ip_address

    در مرحله بعد ، بخشي را پيدا كنيد كه اتصال ايمن به سرور مجازي Zabbix را پيكربندي كرده و پشتيباني از كليد پيش اشتراك گذاري شده را فعال كنيد. بخش TLSConnect را پيدا كنيد ، كه اينگونه به نظر مي رسد:
    /etc/zabbix/zabbix_agentd.conf

    ### Option: TLSConnect
    # How the agent should connect to server or غير مجاز مي باشد. Used for active checks.
    # Only one value can be specified:
    # unencrypted – connect without encryption
    # psk – connect using TLS and a pre-shared key
    # cert – connect using TLS and a certificate
    #
    # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for ‘unencrypted’ connection)
    # Default:
    # TLSConnect=unencrypted

    سپس TLSConnect = را باطل كنيد و unencrypted را با psk جايگزين كنيد تا پشتيباني از كليد پيش اشتراكي را پيكربندي كنيد:
    /etc/zabbix/zabbix_agentd.conf

    TLSConnect=psk

    سپس ، بخش TLSAccept را پيدا كنيد ، كه اينگونه به نظر مي رسد:
    /etc/zabbix/zabbix_agentd.conf

    ### Option: TLSAccept
    # What incoming connections to accept.
    # Multiple values can be specified, separated by comma:
    # unencrypted – accept connections without encryption
    # psk – accept connections secured with TLS and a pre-shared key
    # cert – accept connections secured with TLS and a certificate
    #
    # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for ‘unencrypted’ connection)
    # Default:
    # TLSAccept=unencrypted

    پيوندهاي ورودي را براي پشتيباني از كليدهاي از پيش اشتراكي با استفاده از TLSAccept = و اضافه كردن psk پيكربندي كنيد:
    /etc/zabbix/zabbix_agentd.conf

    TLSAccept=psk

    سپس ، بخش TLSPSKIdentity را پيدا كنيد ، كه اينگونه به نظر مي رسد:
    /etc/zabbix/zabbix_agentd.conf

    ### Option: TLSPSKIdentity
    # Unique, case sensitive string used to identify the pre-shared key.
    #
    # Mandatory: no
    # Default:
    # TLSPSKIdentity=

    با باطل كردن TLSPSKIdentity = و اضافه كردن كد هايلايت شده ، يك نام منحصر به فرد براي شناسايي كليد از پيش اشتراك گذاري خود انتخاب كنيد:
    /etc/zabbix/zabbix_agentd.conf

    TLSPSKIdentity=PSK 001

    هنگامي كه ميزبان خود را از طريق رابط وب Zabbix اضافه مي كنيد ، از اين به عنوان شناسه PSK استفاده خواهيد كرد.
    سپس گزينه اي را انتخاب كنيد كه به كليد پيش اشتراك شده قبلي شما اشاره دارد. گزينه TLSPSKFile را بيابيد:
    /etc/zabbix/zabbix_agentd.conf

    ### Option: TLSPSKFile
    # Full pathname of a file containing the pre-shared key.
    #
    # Mandatory: no
    # Default:
    # TLSPSKFile=

    TLSPSKFile = را حذف كنيد و اين متن را اضافه كنيد تا عامل Zabbix را به فايل PSK كه ايجاد كرديد، معرفي كند:
    /etc/zabbix/zabbix_agentd.conf

    TLSPSKFile=/etc/zabbix/zabbix_agentd.psk

    فايل را ذخيره كنيد و ببنديد. اكنون مي توانيد عامل Zabbix را شروع كرده و آن را به گونه اي تنظيم كنيد كه در زمان بوت شروع شود:
    ⦁ $ sudo systemctl start zabbix-agent

    ⦁ $ sudo systemctl enable zabbix-agent

    براي محاسبات دقيق ، بررسي كنيد كه عامل Zabbix به درستي اجرا شده است:
    ⦁ $ sudo systemctl status zabbix-agent

    وضعيت زير را مشاهده خواهيد كرد ، نشان مي دهد عامل در حال اجرا است:
    Output
    ● zabbix-agent.service – Zabbix Agent
    Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: disabled)
    Active: active (running) since Fri 2019-05-03 06:25:06 UTC; 28s ago

    عامل براي پيگيري اتصالات از سرور مجازي، پورت 10050 را شنود مي كند. به منظور پيكربندي دسترسي از آدرس هاي IP خاص يا زير شبكه ها ، از قابليت rich rule در firewalld استفاده كنيد:
    ⦁ $ sudo firewall-cmd –permanent –zone=public –add-rich-rule=’rule family=”ipv4″ source address=”zabbix_server_ip_address/32″ port protocol=”tcp” port=”10050″ accept’

    rich rule ها به شما امكان مي دهند قوانيني پيچيده تر و قابل تنظيم تر firewalld را ايجاد كنيد تا كنترل بيشتري بر فايروال خود داشته باشيد. در اين دستور ، شما يك قاعده اضافه مي كنيد كه ترافيك ipv4 را از مبدأ ، كه به عنوان آدرس IP سرور مجازي Zabbix تعيين كرده ايد ، تا پورت 10050 سرور مجازي CentOS دوم مي پذيرد.
    در مرحله بعدي ، Firewalld را دوباره لود كنيد تا قانون جديد را فعال كنيد:
    ⦁ $ sudo firewall-cmd –reload

    اكنون عامل شما آماده پذيرش اتصالات و ارسال داده به سرور مجازي Zabbix است. اما براي استفاده از آن ، بايد از طريق كنسول وب سرور مجازي به آن پيوند دهيد. در مرحله بعد ، پيكربندي را كامل مي كنيد.
    مرحله 6 – اضافه كردن هاست جديد به سرور مجازي Zabbix
    نصب يك عامل بر روي سرور مجازي ي كه مي خواهيد نظارت كنيد ، فقط نيمي از روند كار است. هر هاستي كه براي نظارت مي خواهيد نياز به ثبت در سرور مجازي Zabbix دارد، كه مي توانيد اين كار را از طريق رابط وب انجام دهيد.
    با رفتن به آدرس http: // zabbix_server_name / zabbix / وارد رابط وب سرور مجازي Zabbix شويد.

    هنگامي كه وارد سيستم شده ايد ، در نوار پيمايش بالا بر روي Configuration و سپس Hosts  كليك كنيد. سپس بر روي دكمه Create host در گوشه سمت راست بالاي صفحه كليك كنيد. با اين كار صفحه پيكربندي ميزبان باز مي شود.

    نام هاست و آدرس IP را تنظيم كنيد تا نام هاست و آدرس IP سرور مجازي دوم CentOS شما را منعكس نمايد ، سپس هاست را به يك گروه اضافه كنيد. مي توانيد يك گروه موجود ، به عنوان مثال سرور مجازي هاي لينوكس را انتخاب كنيد يا گروه خود را ايجاد كنيد. هاست مي تواند در چند گروه باشد. براي اين كار ، نام گروه موجود يا جديد را در قسمت Groups وارد كرده و از ليست پيشنهادي مقدار مورد نظر را انتخاب كنيد.
    پس از افزودن گروه ، بر روي تب Templates كليك كنيد.

    Template OS Linux را در قسمت جستجو تايپ كنيد و سپس بلافاصله در زير نوار جستجو روي add كليك كنيد تا اين الگو به هاست اضافه شود.
    در مرحله بعد ، به سربرگ Encryption  برويد. PSK  را هم براي اتصال به هاست و هم اتصالات حاصله از هاست انتخاب كنيد و براي اتصالات از سوي هاست، No encryption را uncheck كنيد. سپس PSK identity  را روي PSK 001 قرار دهيد ، كه مقدار تنظيم TLSPSKIdentity عامل Zabbix است كه قبلاً پيكربندي كرده ايد. سپس مقدار PSK را روي كليد توليد شده براي عامل Zabbix تنظيم كنيد. اين چيزي است كه در فايل /etc/zabbix/zabbix_agentd.psk در دستگاه عامل دخيره شده است.

    در آخر ، بر روي دكمه Add در پايين فرم كليك كنيد تا ميزبان ايجاد شود.
    ميزبان جديد خود را در اين ليست مشاهده خواهيد كرد. يك دقيقه صبر كنيد و صفحه را مجدد لود كنيد تا برچسب هاي سبز نشان دهند كه همه چيز خوب است و اتصال رمزگذاري شده است.

    در صورت داشتن سرور مجازيهاي اضافي كه بايد نظارت شوند ، به هر هاست وارد شويد ، عامل Zabbix را نصب كنيد ، يك PSK توليد كنيد ، عامل را پيكربندي كنيد و با دنبا كردن همان مراحل براي اضافه كردن اولين هاست ، هاست بعدي را به رابط وب اضافه كنيد.
    سرور مجازي Zabbix اكنون سرور مجازي دوم CentOS شما را تحت نظر دارد. اكنون ، اعلان هاي ايميل را تنظيم كنيد تا در مورد مشكلات به شما اطلاع داده شود.
    مرحله 7 – پيكربندي اعلان هاي ايميل
    Zabbix به طور خودكار انواع مختلفي از اعلان ها را پشتيباني مي كند: ايميل ، Jabber ، پيام كوتاه و غيره. همچنين مي توانيد از روش هاي اعلان جايگزين مانند Telegram يا Slack نيز استفاده كنيد. ليست كامل ادغام ها را مي توانيد در اينجا مشاهده كنيد.
    ساده ترين روش ارتباطي ايميل است و اين آموزش اعلان ها را براي اين نوع رسانه پيكربندي مي كند.
    در نوار پيمايش بالا بر روي Administration ، و سپس Media types كليك كنيد. ليست انواع رسانه ها را مشاهده خواهيد كرد. روي ايميل كليك كنيد.
    گزينه هاي SMTP را مطابق تنظيمات ارائه شده توسط سرويس ايميل خود تنظيم كنيد. اين آموزش از ويژگي هاي SMTP Gmail براي تنظيم اعلان هاي ايميل استفاده مي كند. اگر مي خواهيد اطلاعات بيشتري درباره اين تنظيمات داشته باشيد ، به نحوه استفاده از سرور مجازي SMTP Google مراجعه كنيد.
    توجه: اگر از تأييد صحت دو مرحله اي با Gmail استفاده مي كنيد ، بايد يك رمزعبور app براي Zabbix توليد كنيد. لازم نيست آن را به خاطر بسپاريد ، فقط بايد يك بار رمز عبور برنامه را هنگام تنظيم وارد كنيد. در مركز راهنمايي Google دستورالعملهايي درباره نحوه توليد اين رمز عبور پيدا خواهيد كرد.

    همچنين مي توانيد قالب پيام — html يا متن ساده را انتخاب كنيد. در آخر ، بر روي دكمه Update در پايين فرم كليك كنيد تا پارامترهاي ايميل به روز شود.

    اكنون يك كاربر جديد ايجاد كنيد. در نوار پيمايش بالا روي Administrator و سپس Users كليك كنيد. ليست كاربران را مشاهده خواهيد كرد. سپس بر روي دكمه Create user در گوشه سمت راست بالاي صفحه كليك كنيد. با اين كار صفحه پيكربندي كاربر باز مي شود.

    نام كاربري جديد را در قسمت Alias ​​وارد كرده و رمزعبور جديدي تنظيم كنيد. در مرحله بعد كاربر را به گروه administrator اضافه كنيد. Zabbix administrators را در قسمت Groups تايپ كرده و آن را از ليست پيشنهادي انتخاب كنيد.
    پس از افزودن گروه ، بر روي تب Media كليك كرده و روي لينك Add كه زير آن خط كشيده شده كليك كنيد. يك پنجره pop-up مشاهده خواهيد كرد.

    آدرس ايميل خود را در قسمت Send to وارد كنيد. مي توانيد بقيه گزينه ها را روي مقادير پيش فرض بگذاريد. براي ارسال ، روي دكمه add در پايين كليك كنيد.
    اكنون به سربرگ Permissions  برويد.Zabbix Super Admin را از منوي كشويي نوع كاربر انتخاب كنيد.
    در آخر ، بر روي دكمه Add در پايين فرم كليك كنيد تا كاربر ايجاد شود.
    اكنون بايد اعلان ها را فعال كنيد. بر روي تب Configuration  و سپس Actions  در نوار پيمايش بالا كليك كنيد. عملكردي از پيش تنظيم شده را مشاهده خواهيد كرد ، كه وظيفه ارسال اعلان ها به همه ادمين هاي Zabbix را بر عهده دارد. مي توانيد تنظيمات را با كليك روي نام آن بررسي و تغيير دهيد. براي اهداف اين آموزش از پارامترهاي پيش فرض استفاده كنيد. براي فعال كردن اين عمل ، بر روي لينك قرمز Disabled در ستون Status كليك كنيد.
    اكنون آماده دريافت هشدار هستيد. در مرحله بعدي ، يك مورد را آزمايش مي كنيد تا تنظيم اعلان خود بررسي نماييد.
    مرحله 8 – ايجاد هشدار آزمايشي
    در اين مرحله ، براي اطمينان از اتصال همه موارد ، يك هشدار تست توليد مي كنيد. به طور پيش فرض ، Zabbix مقدار فضاي ديسك خالي روي سرور مجازي شما را پيگيري مي كند. به طور خودكار تمام ديسك هاي قرار داده شده را شناسايي ميكند و بررسي هاي مربوطه را اضافه مي كند. اين شناسايي هر ساعت اجرا مي شود ، بنابراين بايد مدت زماني صبر كنيد تا اعلان شروع شود.
    يك فايل موقت ايجاد كنيد كه به اندازه كافي بزرگ باشد تا هشدار استفاده از سيستم فايل Zabbix را فعال كند. براي اين كار ، اگر هنوز به سيستم متصل نشده ايد ، به سرور مجازي CentOS دوم خود وارد شويد.
    ⦁ $ ssh sammy@second_centos_server_ip_address

    در مرحله بعد مشخص كنيد كه چه مقدار فضاي خالي روي سرور مجازي داريد. براي فهميدن مي توانيد از دستور df استفاده كنيد:
    ⦁ $ df -h

    دستور df ميزان استفاده از فضاي ديسك سيستم فايل شما را گزارش مي كند ، و -h باعث مي شود كه خروجي قابل خواندن باشد. خروجي مانند زير را مشاهده خواهيد كرد:
    Output
    Filesystem Size Used Avail Use% Mounted on
    /dev/vda1 25G 958M 25G 4% /
    در اين حالت فضاي آزاد 25 گيگابايت است. فضاي آزاد شما ممكن است متفاوت باشد.
    از دستور fallocate استفاده كنيد ، كه به شما امكان مي دهد فضاي اختصاصي را به يك فايل اختصاص بدهيد يا ندهيد، تا فايلي ايجاد كنيد كه بيش از 80٪ فضاي موجود ديسك را داشته باشد. اين كار براي ايجاد هشدار كافي خواهد بود:
    ⦁ $ fallocate -l 20G /tmp/temp.img

    Zabbix پس از گذشت حدود يك ساعت ، هشداري در مورد ميزان فضاي خالي ديسك ارائه مي كند و عملي را كه پيكربندي كرده ايد ، اجرا مي كند كه پيامي را ارسال خواهد كرد. مي توانيد صندوق ورودي خود را براي دريافت پيام از سرور مجازي Zabbix بررسي كنيد. پيامي مانند خواهيد ديد:
    Problem started at 10:49:25 on 2019.05.03
    Problem name: Free disk space is less than 20% on volume /
    Host: Second Centos Server
    Severity: Warning

    Original problem ID: 34

    همچنين مي توانيد براي مشاهده اطلاعيه و جزئيات آن به سربرگ Monitoring و سپس Dashboard حركت كنيد.

    اكنون كه مي دانيد هشدارها كار مي كنند ، فايل موقت ايجاد شده را حذف كنيد تا بتوانيد فضاي ديسك خود را دوباره پس بگيريد:
    ⦁ $ rm -f /tmp/temp.img

    پس از يك دقيقه Zabbix پيام بازيابي را ارسال مي كند و هشدار از داشبورد اصلي ناپديد مي شود.
    نتيجه
    در اين آموزش يك راه حل ساده و ايمن براي نظارت تنظيم كرده ايد كه به شما در نظارت بر وضعيت سرور مجازي هاي خود كمك مي كند. اكنون مي تواند مشكلات را به شما هشدار دهد ، و شما اين فرصت را داريد كه فرآيندهاي رخ داده در زيرساخت IT خود را تجزيه و تحليل كنيد.
    براي كسب اطلاعات بيشتر درباره راه اندازي زيرساخت هاي نظارت ، نحوه نصب Elasticsearch ، Logstash و Kibana (Elastic Stack) را در CentOS 7 و نحوه جمع آوري معيارهاي زيرساخت با Metricbeat در CentOS 7 را بررسي كنيد.

     

     

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

    استفاده از nsh براي دستورات از راه دور اوبونتو 18 –  ميزباني وب سايت با Caddy اوبونتو 18

    تنظيم سرور ذخيره سازي آبجكت با استفاده از Minio در اوبونتو 18  –  ضبط و اشتراك گذاري ترمينال با Terminalizer اوبونتو

    تنظيم مسيريابي شرطي و پاسخگو با React Router v4  –  ايجاد يك URL كوتاه كننده با Django و GraphQL

    يك برنامه رديابي سلامت را با React ،GraphQL و Okta –  ساخت برنامه ******** زمان حقيقي React و GraphQL

    به روزرساني فيلترهاي مرتب سازي Angular (زاويه اي) –  با استفاده از React ، Superagent و API اينستاگرام

    نحوه ساختن يك برنامه جهاني با Nuxt.js و Django –  دكمه دانلود با ريزتعاملات با CSS ، anime.js و segment.js

    نحوه اضافه كردن عكسهاي پيشرفته در Node و Express  –  با Vue ،GraphQL و Apollo Client يك وبلاگ ساخت

    يك برنامه SSR با روتر Preact ، Unistore و Preact بسازيد  –  ساخت برنامه هاي وب پيشرونده با Angular

    اشكال زدايي JavaScript در توليد با نقشه هاي منبع  –  مي توان با Koa برنامه “سلام جهاني” ساخت

    ساختن يك برنامه با Node ، React ، Okta  –   مديريت حالت فرم در React با Redux Form

    نحوه تنظيم Laravel ، Nginx و MySQL  –  ارتقاء از AngularJS به Angular با ngUpgrade

    استفاده از ويژوال استوديو از راه دور  –  احراز هويت API با JSON Web Tokens و Passport

    راه اندازي يك پروژه React با Parcel  –  ايجاد Swiper مانند Netflix را در Vue

    ساختن يك ربات تلگرام با Laravel و BotMan  –  استفاده از map، filter، و reduce در جاوااسكريپت

    چگونه مي توان موتور جستجوي زمان واقعي را با Vue  –  ساختن سيستم مستندات (Documentation) با Vue و VuePress

    استفاده از اشتراك زنده با كد ويژوال استوديو  –  ساخت يك مقياس اندازه گيري قدرت رمز عبور را در React

    شروع عملي GraphQL با Node.js و Express  –  ساخت يك برنامه آب و هوا در Django

    نحوه نصب Discourse روي Ubuntu 18  –  تأييد رمز عبور با استفاده از درخواست فرم Laravel

    نحوه نصب MySQL در CentOS 8  –  استفاده از پسوند PDO PHP براي انجام تراكنش MySQL

    نصب و پيكربندي SNMP Daemon و Client در Ubuntu 18  –  نصب Linux، Nginx، MariaDB،PHP در Debian 10

     

     

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

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

     

    برچسب‌ها:Elasticsearch, Oracle, TimescaleDB,

    نصب وب سرور Apache در CentOS 7

    ۵۸ بازديد

    ، يك سرور مجازي وب Apache با ميزبان هاي مجازي روي سرور مجازي CentOS 7 خود نصب خواهيد كرد.
    پيش نيازها
    براي تكميل اين راهنما به موارد زير نياز داريد:
    • كاربر غير ريشه اي با امتيازات sudo كه با دنبال كردن راهنماي اوليه تنظيم سرور مجازي براي CentOS 7 بر روي سرور مجازي شما پيكربندي شده باشد.
    •يك فايروال پايه كه با دنبال كردن مراحل اضافي توصيه شده براي سرور مجازي هاي جديد CentOS 7 ، پيكربندي شده است.
    مرحله 1 – نصب Apache
    Apache در مخازن پيش فرض نرم افزار CentOS موجود است ، به اين معني كه مي توانيد آن را با مدير بسته yum نصب كنيد.
    وقتي كه كاربر sudo غير ريشه در پيش شرط ها پيكربندي شد، فهرست بسته محلي httpd Apache را به روز كنيد تا آخرين تغييرات بالادست را منعكس كند:
    ⦁ $ sudo yum update httpd

    پس از به روزرساني بسته ها ، بسته Apache را نصب كنيد:
    ⦁ $ sudo yum install httpd

    پس از تأييد نصب ، yum ، Apache و تمام متعلقات لازم را نصب مي كند.
    اگر راهنماي مراحل توصيخ شده اضافي را براي سرور مجازي هاي جديد CentOS 7 كه در بخش پيش نيازها ذكر شد، تكميل كرده باشيد ، فايروال را روي سرور مجازي خود نصب كرده ايد و بايد پورت 80 را باز كنيد تا به Apache امكان ارائه درخواست از طريق HTTP را بدهد. اگر قبلاً اين كار را نكرده ايد ، مي توانيد با فعال كردن سرويس http firewalld با دستور زير اين كار را انجام دهيد:
    ⦁ $ sudo firewall-cmd –permanent –add-service=http

    اگر قصد داريد Apache را براي ارائه محتوا از طريق HTTPS پيكربندي كنيد ، بهتر است با فعال كردن سرويس https ، پورت 443 را نيز باز كنيد:
    ⦁ $ sudo firewall-cmd –permanent –add-service=https

    در مرحله بعد ، فايروال را مجدد لود كنيد تا اين قوانين جديد به مرحله اجرا در بيايند:
    ⦁ $ sudo firewall-cmd –reload

    پس از لود مجدد فايروال ، شما آماده شروع سرويس و بررسي سرور مجازي وب هستيد.
    مرحله 2 – بررسي سرور مجازي وب خود
    Apache پس از اتمام نصب به طور خودكار در CentOS شروع نمي شود. شما بايد فرايند Apache را بصورت دستي شروع كنيد:
    ⦁ $ sudo systemctl start httpd

    با دستور زير تأييد كنيد كه اين سرويس در حال اجرا است:
    ⦁ $ sudo systemctl status httpd

    هنگام اجراي سرويس وضعيت فعال را مشاهده خواهيد كرد:
    Output
    Redirecting to /bin/systemctl status httpd.service
    ● httpd.service – The Apache HTTP Server
    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
    Active: active (running) since Wed 2019-02-20 01:29:08 UTC; 5s ago
    Docs: man:httpd(8)
    man:apachectl(8)
    Main PID: 1290 (httpd)
    Status: “Processing requests…”
    CGroup: /system.slice/httpd.service
    ├─1290 /usr/sbin/httpd -DFOREGROUND
    ├─1291 /usr/sbin/httpd -DFOREGROUND
    ├─1292 /usr/sbin/httpd -DFOREGROUND
    ├─1293 /usr/sbin/httpd -DFOREGROUND
    ├─1294 /usr/sbin/httpd -DFOREGROUND
    └─1295 /usr/sbin/httpd -DFOREGROUND

    همانطور كه از اين خروجي مي بينيد ، به نظر مي رسد اين سرويس با موفقيت شروع شده است. با اين حال ، بهترين راه براي آزمايش ، درخواست يك صفحه از Apache است.
    براي تأييد صحت اجراي نرم افزار از طريق آدرس IP خود ، مي توانيد به صفحه فرود پيش فرض Apache دسترسي پيدا كنيد. اگر آدرس IP سرور مجازي خود را نمي دانيد ، مي توانيد آن را چند راه مختلف از خط فرمان دريافت كنيد.
    اين دستور را در اعلان فرمان سرور مجازي خود تايپ كنيد:
    ⦁ $ hostname -I

    اين دستور همه آدرس هاي شبكه ميزبان را نشان مي دهد ، بنابراين چند آدرس IP كه با فاصله جدا شده اند را دريافت خواهيد كرد. مي توانيد هركدام را در مرورگر وب خود امتحان كنيد تا ببينيد كه آيا كار مي كنند.
    از طرف ديگر ، مي توانيد از Curl براي درخواست IP خود از icanhazip.com استفاده كنيد ، كه آدرس IPv4 عمومي شما را به عنوان مكان ديگري در اينترنت مشاهده مي كند:
    ⦁ $ curl -4 icanhazip.com

    هنگامي كه آدرس IP سرور مجازي خود را داريد ، آن را در نوار آدرس مرورگر خود وارد كنيد:
    http://your_server_ip
    صفحه پيش فرض CentOS 7 Apache را مشاهده خواهيد كرد:

    اين صفحه نشان مي دهد كه Apache درست كار مي كند. اين برنامه همچنين شامل برخي از اطلاعات اوليه در مورد فايل هاي مهم Apache و مكان هاي فهرست بندي است. اكنون كه سرويس نصب و راه اندازي شده است ، مي توانيد از دستورات مختلف systemctl براي مديريت سرويس استفاده كنيد.
    مرحله 3 – مديريت فرايند Apache
    اكنون كه سرور مجازي وب شما فعال و در حال كار است ، اجازه دهيد برخي از دستورات مديريت اصلي را مرور كنيم.
    براي متوقف كردن سرور مجازي وب خود ، تايپ كنيد:
    ⦁ $ sudo systemctl stop httpd

    براي شروع سرور مجازي وب پس از متوقف كردن ، تايپ كنيد:
    ⦁ $ sudo systemctl start httpd

    براي متوقف كردن و شروع مجدد سرويس ، تايپ كنيد:
    ⦁ $ sudo systemctl restart httpd

    اگر به سادگي تغييرات پيكربندي را انجام مي دهيد ، Apache اغلب مي تواند بدون افت اتصالات مجدد لود شود. براي انجام اين كار ، از اين دستور استفاده كنيد:
    ⦁ $ sudo systemctl reload httpd

    به طور پيش فرض ، Apache به گونه اي تنظيم مي شود كه به طور خودكار شروع به كار كند. اگر اين چيزي نيست كه شما مي خواهيد ، با تايپ كردن دستور زير اين رفتار را غيرفعال كنيد:
    ⦁ $ sudo systemctl disable httpd

    براي فعال كردن مجدد سرويس در هنگام بوت شدن ، اين دستور را تايپ كنيد:
    ⦁ $ sudo systemctl enable httpd

    با دوباره بوت شدن سرور مجازي ، Apache به طور خودكار شروع مي شود.
    پيكربندي پيش فرض براي Apache به سرور مجازي شما امكان ميزباني وب سايت واحد را مي دهد. اگر قصد داريد ميزبان چندين دامنه در سرور مجازي خود باشيد ، بايد هاست هاي مجازي را در سرور مجازي وب Apache خود پيكربندي كنيد.
    مرحله 4 – تنظيم هاست هاي مجازي (توصيه مي شود)
    هنگام استفاده از وب سرور مجازي Apache ، مي توانيد از هاست هاي مجازي (مشابه بلوك هاي سرور مجازي در Nginx) براي محصور كردن جزئيات پيكربندي و ميزباني بيش از يك دامنه از يك سرور مجازي واحد استفاده كنيد. در اين مرحله دامنه اي به نام example.com را تنظيم مي كنيد ، اما بايد اين را با نام دامنه خود جايگزين كنيد. براي كسب اطلاعات بيشتر در مورد تنظيم نام دامنه با vpsgol ، به مقدمه ما در vpsgol DNS مراجعه كنيد.
    Apache در CentOS 7 داراي يك بلوك سرور مجازي است كه بصورت پيش فرض فعال شده است تا براي ارائه اسناد از ديركتوري / var / www / html پيكربندي شود. اگرچه براي يك سايت واحد به خوبي كار مي كند ، اما اگر ميزبان چندين سايت باشيد ، مي تواند مشكل ساز شود. به جاي تغيير / var / www / html ، يك ساختار دايركتوري را در / var / www براي سايت example.com ايجاد مي كنيد ، در صورت عدم تطابق درخواست كلاينت با هيچ يك از سايت هاي ديگر، / var / www / html را به عنوان دايركتوري پيش فرض قرار ميدهيد.
    دايركتوري html را براي example.com به شرح زير بسازيد ، از پرچم -p براي ايجاد ديركتوري هاي لازم استفاده كنيد:
    ⦁ $ sudo mkdir -p /var/www/example.com/html

    دايركتوري ديگري را براي ذخيره فايل هاي ورود به سايت ايجاد كنيد:
    ⦁ $ sudo mkdir -p /var/www/example.com/log

    سپس ، مالكيت دايركتوري html را به متغير محيطي $USER اختصاص دهيد:
    ⦁ $ sudo chown -R $USER:$USER /var/www/example.com/html

    اطمينان حاصل كنيد كه ريشه وب شما داراي مجوزهاي پيش فرض است:
    ⦁ $ sudo chmod -R 755 /var/www

    سپس ، با استفاده از vi يا ويرايشگر مورد علاقه خود ، صفحه index.html نمونه را ايجاد كنيد:
    ⦁ $ sudo vi /var/www/example.com/html/index.html

    i را فشار دهيد تا به حالت INSERT برويد و نمونه HTML زير را به فايل اضافه كنيد:
    /var/www/example.com/html/index.html


    Welcome to Example.com!


    Success! The example.com virtual host is working!



    با فشردن ESC ، تايپ: wq و فشار دادن ENTER فايل را ذخيره كنيد و ببنديد.
    با قرارگيري دايركتوري سايت و فايل درج شده نمونه در جاي خود، تقريباً آماده ساختن فايل هاي هاست مجازي هستيد. فايلهاي هاست مجازي پيكربندي سايتهاي جداگانه شما را مشخص مي كنند و به سرور مجازي وب Apache نشان مي دهند كه چگونه به درخواستهاي دامنه مختلف پاسخ دهد.
    قبل از ايجاد هاست مجازي ، بايد يك ديركتوري sites-available ايجاد كنيد تا آنها را ذخيره كنيد. همچنين دايركتوري sites-enabled را ايجاد خواهيد كرد كه به Apache مي گويد يك هاست مجازي آماده خدمت به بازديد كنندگان است. دايركتوري sites-enabled پيوندهاي سمبوليكي را براي هاست هاي مجازي كه مي خواهيم منتشر كنيم ، نگه مي دارد. هر دو ديركتوري را با دستور زير ايجاد كنيد:
    ⦁ $ sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

    در مرحله بعد ، به Apache مي گوييد كه در دايركتوري sites-enabled به دنبال هاست هاي مجازي باشد. براي انجام اين كار ، فايل پيكربندي اصلي Apache را ويرايش كنيد و خطي را اضافه كنيد كه يك ديركتوري اختياري براي فايل هاي پيكربندي اضافي را اعلام مي كند:
    ⦁ $ sudo vi /etc/httpd/conf/httpd.conf

    اين خط را به انتهاي فايل اضافه كنيد:
    IncludeOptional sites-enabled/*.conf

    پس از اتمام افزودن آن خط ، فايل را ذخيره كنيد و ببنديد. اكنون كه دايركتوري هاي هاست مجازي خود را در اختيار داريد ، فايل هاست مجازي خود را ايجاد خواهيد كرد.
    با ايجاد يك فايل جديد در ديركتوري sites-available شروع كنيد:
    ⦁ $ sudo vi /etc/httpd/sites-available/example.com.conf

    بلوك پيكربندي زير را اضافه كنيد ، و دامنه example.com را به نام دامنه خود تغيير دهيد:
    /etc/httpd/sites-available/example.com.conf

    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog /var/www/example.com/log/error.log
    CustomLog /var/www/example.com/log/requests.log combined

    اين كار به Apache مي گويد كه كجا مستقيماً ريشه اي را كه اسناد وب در دسترس را نگه مي دارد ، پيدا كند. همچنين به Apache مي گويد خطا و ورود هاي درخواست مربوط به اين سايت خاص را كجا ذخيره كند.
    پس از اتمام فايل را ذخيره كنيد و ببنديد.
    اكنون كه فايلهاي هاست مجازي را ايجاد كرده ايد ، آنها را فعال خواهيد كرد تا Apache بداند كه مي تواند آنها را در اختيار بازديد كنندگان قرار دهد. براي انجام اين كار ، براي هر هاست مجازي در ديركتوري sites-enabled ، يك لينك نمادين ايجاد كنيد:
    ⦁ $ sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

    ميزبان مجازي شما اكنون پيكربندي شده و آماده ارائه مطالب است. قبل از راه اندازي مجدد سرويس Apache ، مطمئن شويد كه SELinux رويكرد هاي صحيحي را براي هاست هاي مجازي شما اعمال كرده است.
    مرحله 5 – تنظيم مجوزهاي SELinux براي هاست هاي مجازي (توصيه مي شود)
    SELinux به گونه اي پيكربندي شده است تا با پيكربندي پيش فرض Apache كار كند. از آنجا كه دايركتوري ورود به سيستم سفارشي را در فايل پيكربندي هاست مجازي تنظيم كرده ايد ، در صورت تلاش براي شروع سرويس Apache ، خطايي دريافت خواهيد كرد. براي رفع اين مشكل ، بايد رويكردهاي SELinux را به روز كنيد تا Apache بتواند در فايل هاي لازم بنويسد. SELinux باعث افزايش امنيت در محيط CentOS 7 شما مي شود ، بنابراين توصيه نمي شود كه ماژول هسته را به طور كامل غيرفعال كنيد.
    روش هاي مختلفي براي تنظيم رويكردها بر اساس نياز محيط شما وجود دارد ، زيرا SELinux به شما امكان مي دهد سطح امنيتي خود را شخصي سازي كنيد. اين مرحله شامل دو روش تنظيم خط مشي Apache خواهد بود: جهاني و در يك ديركتوري خاص. تنظيم رويكرد در دايركتوري ها ايمن تر است ، و بنابراين رويكرد توصيه شده است.
    تنظيم رويكردهاي Apache به صورت جهاني
    تنظيم رويكرد Apache به صورت جهاني به SELinux مي گويد كه با استفاده از دوبايتي httpd_unified ، با تمام مراحل Apache را به طور يكسان رفتار كند. اگرچه اين رويكرد راحت تر است ، اما كنترل مشابه با رويكردي كه روي يك فايل يا ديركتوري تمركز دارد را به شما نمي دهد.
    دستور زير را براي تنظيم رويكرد جهاني Apache اجرا كنيد:
    ⦁ $ sudo setsebool -P httpd_unified 1

    دستور setsebool مقادير بولي SELinux را تغيير مي دهد. پرچم -P مقدار زمان بوت را به روز مي كند ، و اين تغيير در ريبوت ادامه مي يابد. httpd_unified مقدار بولي است كه به SELinux مي گويد با تمام مراحل Apache به يك نوع رفتار كند ، بنابراين شما آن را با مقدار 1 فعال مي كنيد.
    تنظيم رويكردهاي Apache در يك دايركتوري
    تنظيم مجوزهاي SELinux به صورت جداگانه براي ديركتوري /var/www/example.com/log به شما امكان كنترل بيشتر روي رويكرد هاي Apache را مي دهد ، اما ممكن است به نگهداري بيشتري نيز نياز داشته باشد. از آنجا كه اين گزينه رويكرد هاي تنظيم جهاني نيست ، لازم است به طور دستي نوع متن را براي هر ديركتوري جديد وارد كنيد كه در تنظيمات هاست مجازي شما مشخص شده است.
    ابتدا نوع محتوايي را كه SELinux به ديركتوري /var/www/example.com/log داده است بررسي كنيد:
    ⦁ $ sudo ls -dZ /var/www/example.com/log/

    اين دستور محتواي SELinux ديركتوري را ليست و چاپ مي كند. خروجي مشابه زير را مشاهده خواهيد كرد:
    Output
    drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/example.com/log/

    محتواي فعلي httpd_sys_content_t است ، كه به SELinux مي گويد فرآيند Apache فقط مي تواند فايل هاي ايجاد شده در اين ديركتوري را بخواند. در اين آموزش ، نوع متن ديركتوري /var/www/example.com/log را به آدرس httpd_log_t تغيير مي دهيد كه به Apache امكان مي دهد فايل هاي ورود به سيستم برنامه وب را توليد و پيوست كند:
    ⦁ $ sudo semanage fcontext -a -t httpd_log_t “/var/www/example.com/log(/.*)?”

    در مرحله بعدي ، از دستور restorecon براي اعمال اين تغييرات استفاده كنيد و آنها را در ريبوت ادامه دهيد:
    ⦁ $ sudo restorecon -R -v /var/www/example.com/log

    پرچم -R اين دستور را به صورت بازگشتي اجرا مي كند ، به اين معني كه هر فايل موجود را براي استفاده از متن جديد به روز مي كند. پرچم -v تغييرات محتوايي را كه فرمان انجام داده را چاپ مي كند. خروجي زير را مشاهده مي كنيد كه تغييرات را تأييد ميكند:
    Output
    restorecon reset /var/www/example.com/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0

    براي ديدن تغييرات مي توانيد يك بار ديگر محتوا را فهرست كنيد:
    ⦁ $ sudo ls -dZ /var/www/example.com/log/

    خروجي نوع متن به روز شده را منعكس مي كند:
    Output
    drwxr-xr-x. root root unconfined_u:object_r:httpd_log_t:s0 /var/www/example.com/log

    اكنون كه ديركتوري /var/www/example.com/log از نوع httpd_log_t استفاده مي كند ، آماده آزمايش پيكربندي هاست مجازي خود هستيد.
    مرحله 6 – آزمايش هاست مجازي (توصيه مي شود)
    پس از به روزرساني متن SELinux با هر روش ، Apache مي تواند به روي ديركتوري /var/www/example.com/log بنويسد. اكنون مي توانيد سرويس Apache را با موفقيت مجدداً راه اندازي كنيد:
    ⦁ $ sudo systemctl restart httpd

    محتويات ديركتوري /var/www/example.com/log را فهرست كنيد تا ببينيد آيا Apache فايلهاي ورود را ايجاد كرده است:
    ⦁ $ ls -lZ /var/www/example.com/log

    خواهيد ديد كه Apache قادر به ايجاد فايل هاي error.log و requests.log مشخص شده در پيكربندي هاست مجازي است:
    Output
    -rw-r–r–. 1 root root 0 Feb 26 22:54 error.log
    -rw-r–r–. 1 root root 0 Feb 26 22:54 requests.log

    اكنون كه هاست مجازي خود را تنظيم كرده و مجوزهاي SELinux را به روز كرده ايد ، Apache اكنون نام دامنه شما را ارائه مي دهد. مي توانيد با رفتن به http://example.com ، جايي كه بايد چيزي شبيه به اين را مشاهده كنيد ، اين كار را آزمايش كنيد:

    اين امر تأييد مي كند كه هاست مجازي شما با موفقيت پيكربندي شده و محتوا را ارائه ميكند. مراحل 4 و 5 را تكرار كنيد تا هاست مجازي جديدي با مجوز SELinux براي دامنه هاي بعدي ايجاد كنيد.
    نتيجه
    در اين آموزش وب سرور مجازي Apache را نصب و مديريت كرده ايد. اكنون كه سرور مجازي وب خود را نصب كرده ايد ، براي نوع محتوايي كه مي توانيد ارائه كنيد و فناوري هايي كه مي توانيد براي ايجاد يك تجربه غني تر استفاده نماييد ، گزينه هاي بسياري را خواهيد داشت.
    اگر مي خواهيد يك برنامه كاربردي كامل تر ايجاد كنيد ، مي توانيد مقاله نحوه پيكربندي پشته LAMP در CentOS 7 را مطالعه كنيد.

     

     

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

    استفاده از nsh براي دستورات از راه دور اوبونتو 18 –  ميزباني وب سايت با Caddy اوبونتو 18

    تنظيم سرور ذخيره سازي آبجكت با استفاده از Minio در اوبونتو 18  –  ضبط و اشتراك گذاري ترمينال با Terminalizer اوبونتو

    تنظيم مسيريابي شرطي و پاسخگو با React Router v4  –  ايجاد يك URL كوتاه كننده با Django و GraphQL

    يك برنامه رديابي سلامت را با React ،GraphQL و Okta –  ساخت برنامه ******** زمان حقيقي React و GraphQL

    به روزرساني فيلترهاي مرتب سازي Angular (زاويه اي) –  با استفاده از React ، Superagent و API اينستاگرام

    نحوه ساختن يك برنامه جهاني با Nuxt.js و Django –  دكمه دانلود با ريزتعاملات با CSS ، anime.js و segment.js

    نحوه اضافه كردن عكسهاي پيشرفته در Node و Express  –  با Vue ،GraphQL و Apollo Client يك وبلاگ ساخت

    يك برنامه SSR با روتر Preact ، Unistore و Preact بسازيد  –  ساخت برنامه هاي وب پيشرونده با Angular

    اشكال زدايي JavaScript در توليد با نقشه هاي منبع  –  مي توان با Koa برنامه “سلام جهاني” ساخت

    ساختن يك برنامه با Node ، React ، Okta  –   مديريت حالت فرم در React با Redux Form

    نحوه تنظيم Laravel ، Nginx و MySQL  –  ارتقاء از AngularJS به Angular با ngUpgrade

    استفاده از ويژوال استوديو از راه دور  –  احراز هويت API با JSON Web Tokens و Passport

    راه اندازي يك پروژه React با Parcel  –  ايجاد Swiper مانند Netflix را در Vue

    ساختن يك ربات تلگرام با Laravel و BotMan  –  استفاده از map، filter، و reduce در جاوااسكريپت

    چگونه مي توان موتور جستجوي زمان واقعي را با Vue  –  ساختن سيستم مستندات (Documentation) با Vue و VuePress

    استفاده از اشتراك زنده با كد ويژوال استوديو  –  ساخت يك مقياس اندازه گيري قدرت رمز عبور را در React

    شروع عملي GraphQL با Node.js و Express  –  ساخت يك برنامه آب و هوا در Django

    نحوه نصب Discourse روي Ubuntu 18  –  تأييد رمز عبور با استفاده از درخواست فرم Laravel

    نحوه نصب MySQL در CentOS 8  –  استفاده از پسوند PDO PHP براي انجام تراكنش MySQL

    نصب و پيكربندي SNMP Daemon و Client در Ubuntu 18  –  نصب Linux، Nginx، MariaDB،PHP در Debian 10

     

     

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

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

     

    برچسب‌ها:Apache,

    نصب و پيكربندي Zabbix براي رديابي ايمن سرور

    ۵۵ بازديد

    يك نرم افزار مانيتورينگ منبع باز براي شبكه ها و برنامه ها است. اين برنامه نظارت بر هزاران معيار (metricها) جمع آوري شده از سرور مجازي ها ، ماشين هاي مجازي ، دستگاه هاي شبكه و برنامه هاي وب را در زمان واقعي ارائه مي دهد. اين معيارها به شما كمك مي كند تا سلامت فعلي زيرساخت IT خود را تعيين كنيد و قبل از شكايت مشتريان مشكلات سخت افزار يا اجزاي نرم افزاري را تشخيص دهيد. اطلاعات مفيد در يك پايگاه داده ذخيره مي شود ، بنابراين مي توانيد داده ها را با گذشت زمان تجزيه و تحليل كرده و كيفيت خدمات ارائه شده را بهبود بخشيد ، يا براي ارتقاء برنامه هاي خود تصميم گيري كنيد.
    Zabbix از گزينه هاي مختلفي براي جمع آوري معيارها استفاده مي كند ، از جمله آن مي توان به نظارت بدون عامل بر خدمات كاربر و معماري كلاينت-سرور مجازي اشاره كرد. براي جمع آوري متريك سرور مجازي ، از يك عامل كوچك در سرويس گيرنده تحت نظارت براي جمع آوري داده ها و ارسال آن به سرور مجازي Zabbix استفاده مي كند. Zabbix از ارتباط رمزگذاري شده بين سرور مجازي و كلاينت هاي متصل پشتيباني مي كند ، بنابراين هنگام گذر از شبكه هاي ناايمن ، از داده هاي شما محافظت مي شود.
    سرور مجازي Zabbix داده هاي خود را در يك پايگاه داده رابطه اي ايجاد مي كند كه توسط MySQL ، PostgreSQL يا Oracle تهيه مي شود. همچنين مي توانيد داده هاي تاريخي را در پايگاه هاي داده nosql مانند Elasticsearch و TimescaleDB ذخيره كنيد. Zabbix يك رابط وب فراهم مي كند تا بتوانيد داده ها را مشاهده كرده و تنظيمات سيستم را پيكربندي كنيد.
    در اين آموزش دو ماشين پيكربندي خواهيد كرد. يكي به عنوان سرور مجازي پيكربندي مي شود و ديگري به عنوان كلاينت كه بر آن نظارت مي كنيد. سرور مجازي از يك پايگاه داده MySQL براي ضبط داده هاي مانيتورينگ استفاده مي كند و از Apache براي سرويس رابط وب استفاده مي شود.
    پيش نيازها
    براي دنبال كردن اين آموزش ، به موارد زير نياز داريد:
    • دو سرور مجازي Ubuntu 18.04 كه طبق مقاله نحوه راه اندازي سرور مجازي اوليه با Ubuntu 18.04 تنظيم شده باشد ، و شامل يك كاربر غير ريشه با امتيازات sudo و فايروال پيكربندي شده با ufw باشد. روي يك سرور مجازي ، Zabbix را نصب مي كنيد. اين آموزش به اين سرور مجازي، سرور مجازي Zabbix خواهد گفت. در واقع سرور مجازي دوم شما را كنترل مي كند. به اين سرور دوم، سرور دوم Ubuntu 18.04 گفته مي شود.
    سرور مجازي ي كه Zabbix را اجرا ميكند، به نصب Apache ، MySQL و PHP نياز دارد. اين لينك را دنبال كنيد تا اين موارد را روي سرور Zabbix پيكربندي كنيد.
    علاوه بر اين ، از آنجا كه شما از سرور مجازي Zabbix براي دسترسي به اطلاعات با ارزش در مورد زيرساخت هاي خود استفاده مي كنيد كه نمي خواهيد كاربران غيرمجاز به آنها دسترسي پيدا كنند ، مهم است كه با نصب گواهي TLS / SSL ، سرور مجازي خود را ايمن نگه داريد. اين كار اختياري است اما به شدت توصيه ميشود. براي به دست آوردن گواهينامه رايگان TLS / SSL مي توانيد راهنماي Let’s Encrypt on Ubuntu 18.04 را دنبال كنيد.
    مرحله 1 – نصب سرور مجازي Zabbix
    ابتدا بايد Zabbix را روي سرور مجازي ي كه MySQL ،Apache و PHP را نصب كرده ايد ، نصب كنيد. به عنوان كاربر غير ريشه خود به اين دستگاه وارد شويد:
    ⦁ $ ssh sammy@zabbix_server_ip_address

    Zabbix در مدير بسته Ubuntu موجود است ، اما قديمي است ، بنابراين از مخزن رسمي Zabbix براي نصب آخرين نسخه پايدار استفاده كنيد. بسته تنظيمات را دانلود و نصب كنيد:
    ⦁ $ wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1+bionic_all.deb

    ⦁ $ sudo dpkg -i zabbix-release_4.2-1+bionic_all.deb

    خروجي زير را مشاهده خواهيد كرد:
    Output
    Selecting previously unselected package zabbix-release.
    (Reading database … 61483 files and directories currently installed.)
    Preparing to unpack zabbix-release_4.2-1+bionic_all.deb …
    Unpacking zabbix-release (4.2-1+bionicc) …
    Setting up zabbix-release (4.2-1+bionicc) …

    فهرست بسته را به روز كنيد تا مخزن جديد را شامل شود:
    ⦁ $ sudo apt update

    سپس سرور مجازي Zabbix و Web Frontend را با پشتيباني پايگاه داده MySQL نصب كنيد:
    ⦁ $ sudo apt install zabbix-server-mysql zabbix-frontend-php

    همچنين ، عامل Zabbix را نصب كنيد ، كه به شما امكان مي دهد اطلاعات مربوط به وضعيت سرور مجازي Zabbix را جمع آوري كنيد.
    ⦁ $ sudo apt install zabbix-agent

    قبل از استفاده از Zabbix ، بايد يك بانك اطلاعاتي را تنظيم كنيد تا داده هايي را كه سرور مجازي Zabbix از عاملين خود جمع آوري خواهد كرد ، نگه داريد. مي توانيد اين كار را در مرحله بعدي انجام دهيد.
    مرحله 2 – پيكربندي پايگاه داده MySQL براي Zabbix
    بايد يك پايگاه داده MySQL جديد ايجاد كرده و آن را با برخي از اطلاعات اصلي پر كنيد تا براي Zabbix مناسب باشد. همچنين يك كاربر خاص براي اين بانك اطلاعات ايجاد خواهيد كرد تا Zabbix با حساب ريشه وارد MySQL نشود.
    به عنوان كاربر ريشه با استفاده از رمز ريشه كه هنگام نصب سرور مجازي MySQL تنظيم كرده ايد وارد شويد
    ⦁ $ mysql -uroot -p

    پايگاه داده Zabbix را با پشتيباني كاراكتر UTF-8 ايجاد كنيد:
    ⦁ Mysql> create database zabbix character set utf8 collate utf8_bin;

    سپس كاربري ايجاد كنيد كه سرور مجازي Zabbix از آن استفاده كند ، به آن دسترسي به پايگاه داده جديد را بدهيد و رمز عبور را براي كاربر تنظيم كنيد:
    ⦁ Mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘your_zabbix_mysql_password’;

    سپس اين مجوزهاي جديد را اعمال كنيد:
    ⦁ Mysql>flush privileges;

    اين امر از كاربر و بانك اطلاعاتي مراقبت ميكند. از كنسول پايگاه داده خارج شويد:
    ⦁ Mysql>quit;

    در مرحله بعد ، طرح و داده هاي اوليه را وارد كنيد. نصب Zabbix فايلي را در اختيارتان قرار مي دهد.
    براي تنظيم شماتيك و وارد كردن داده ها به پايگاه داده zabbix ، دستور زير را اجرا كنيد. ازzcat  استفاده كنيد چرا كه اطلاعات موجود در فايل ، فشرده است.
    ⦁ $ zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

    رمزعبور را براي كاربر zabbix MySQL كه هنگام درخواست از شما پيكربندي كرديد وارد نماييد.
    در صورت موفقيت، اين فرمان خطايي به همراه نخواهد داشت. اگر خطاي ERROR 1045 (28000): Access denied for userzabbix@’localhost’ (using password: YES) را مشاهده كرديد ، مطمئن شويد كه از رمز عبور براي كاربر zabbix استفاده كرده ايد و نه كاربر root.
    به منظور استفاده سرور مجازي Zabbix از اين پايگاه داده ، بايد گذرواژه پايگاه داده را در فايل پيكربندي سرور مجازي Zabbix تنظيم كنيد. فايل پيكربندي را در ويرايشگر متن مورد نظر خود باز كنيد. اين آموزش از nano استفاده مي كند:
    ⦁ $ sudo nano /etc/zabbix/zabbix_server.conf

    به دنبال قسمت زير در فايل باشيد:
    /etc/zabbix/zabbix_server.conf
    ### Option: DBPassword
    # Database password. Ignored for SQLite.
    # Comment this line if no password is used.
    #
    # Mandatory: no
    # Default:
    # DBPassword=
    اين نظرات در فايل، نحوه اتصال به پايگاه داده را توضيح مي دهد. بايد مقدار DBPassword را در فايل براي كاربر پايگاه داده خود تنظيم كنيد . براي پيكربندي پايگاه داده، اين خط را زير كامنت ها اضافه كنيد:
    /etc/zabbix/zabbix_server.conf

    DBPassword=your_zabbix_mysql_password

    اگر از nano استفاده مي كنيد با فشار دادن CTRL + X و سپس Y و ENTER، zabbix_server.conf را ذخيره كرده و ببنديد .
    اين امر از پيكربندي سرور مجازي Zabbix مراقبت ميكند. در مرحله بعد ، براي كاركرد صحيح رابط وب Zabbix اصلاحاتي را در تنظيمات PHP ايجاد خواهيد كرد.
    مرحله 3 – پيكربنديPHP براي Zabbix
    رابط وب Zabbix به زبان PHP نوشته شده است و به برخي تنظيمات ويژه سرور مجازي PHP احتياج دارد. مراحل نصب Zabbix يك فايل پيكربندي Apache ايجاد كرد كه شامل اين تنظيمات است. در ديركتوري /etc/zabbix قرار دارد و به طور اوتوماتيك توسط Apache لود ميشود. شما بايد تغيير كوچكي در اين فايل ايجاد كنيد ، بنابراين آن را با دستور زير باز كنيد:
    ⦁ $ sudo nano /etc/zabbix/apache.conf

    اين فايل شامل تنظيمات PHP است كه شرايط لازم براي رابط وب Zabbix را برآورده مي كند. با اين حال ، تنظيم منطقه زماني به طور پيش فرض باطل مي شود. براي اينكه مطمئن شويد Zabbix از زمان صحيح استفاده مي كند ، بايد منطقه زماني مناسب را تنظيم كنيد.
    /etc/zabbix/apache.conf


    php_value max_execution_time 300
    php_value memory_limit 128M
    php_value post_max_size 16M
    php_value upload_max_filesize 2M
    php_value max_input_time 300
    php_value always_populate_raw_post_data -1
    # php_value date.timezone Europe/Riga

    خط منطقه زماني كه در بلوك كد قبلي هايلايت شده است را باطل كنيد و آن را به منطقه زماني خود تغيير دهيد. مي توانيد از اين ليست از مناطق زماني پشتيباني شده استفاده نماييد تا يك ليست مناسب براي خود پيدا كنيد. سپس فايل را ذخيره كنيد و ببنديد.
    اكنون Apache را مجدداً راه اندازي كنيد تا اين تنظيمات جديد اعمال شود:
    ⦁ $ sudo systemctl restart apache2

    اكنون مي توانيد سرور مجازي Zabbix را شروع كنيد.
    ⦁ $ sudo systemctl start zabbix-server

    سپس بررسي كنيد كه آيا سرور مجازي Zabbix به درستي كار مي كند:
    ⦁ $ sudo systemctl status zabbix-server

    وضعيت زير را مشاهده خواهيد كرد:
    Output
    ● zabbix-server.service – Zabbix Server
    Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled)
    Active: active (running) since Fri 2019-04-05 08:50:54 UTC; 3s ago
    Process: 16497 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)

    سرانجام ، سرور مجازي را فعال كنيد تا در زمان بوت شروع شود:
    ⦁ $ sudo systemctl enable zabbix-server

    سرور مجازي تنظيم شده و به بانك اطلاعاتي وصل مي شود. سپس ، ظاهر وب را تنظيم كنيد.
    توجه: همانطور كه در بخش پيش نيازها ذكر شد ، توصيه مي شود SSL / TLS را روي سرور مجازي خود فعال كنيد. براي بدست آوردن يك گواهينامه رايگان SSL براي Apache در Ubuntu 18.04 مي توانيد هم اكنون اين آموزش را دنبال كنيد. پس از اخذ گواهينامه هاي SSL / TLS مي توانيد دوباره به اين مرحله برگرديد و اين آموزش را ادامه دهيد.

    مرحله 4 – پيكربندي تنظيمات رابط وب Zabbix
    رابط وب به شما امكان مي دهد گزارش ها را مشاهده كنيد و ميزبان هايي را كه مي خواهيد تحت نظارت قرار دهيد اضافه نماييد ، اما قبل از استفاده از آن نياز به تنظيمات اوليه دارد. مرورگر خود را راه اندازي كنيد و به آدرس http: // zabbix_server_name / zabbix / برويد. در صفحه اول يك پيام خوش آمديد مشاهده خواهيد كرد. براي ادامه بر روي next step كليك كنيد.
    در صفحه بعدي ، جدول را مشاهده خواهيد كرد كه ليست تمامي پيش نيازهاي اجراي Zabbix را نشان مي دهد.

    همه مقادير موجود در اين جدول بايد ok باشد ، بنابراين تأييد كنيد كه هستند. حتماً تا پايين صفحه رفته و همه پيش نيازها را نگاه كنيد. هنگامي كه تأييد كرديد كه همه چيز آماده است ، براي ادامه روي next step كليك كنيد.
    صفحه بعدي اطلاعات اتصال داده را مي پرسد.

    به سرور مجازي Zabbix در مورد بانك اطلاعاتي خود آگاهي داديد ، اما رابط وب Zabbix براي مديريت هاست و خواندن داده نيز به دسترسي به بانك اطلاعاتي احتياج دارد. بنابراين اعتبارات MySQL را كه در مرحله 2 پيكربندي كرده ايد وارد كنيد و براي ادامه بر روي next step كليك كنيد.
    در صفحه بعدي مي توانيد گزينه ها را روي مقادير پيش فرض آنها قرار دهيد.

    name اختياري است. در صورت داشتن چندين سرور مجازي نظارت ، از آن در رابط وب استفاده مي شود. براي ادامه بر روي next step كليك كنيد.
    صفحه بعدي خلاصه پيش از نصب را نشان مي دهد تا بتوانيد تأييد كنيد كه همه چيز صحيح است.

    بر روي next step كليك كنيد تا به صفحه نهايي برويد.
    ستاپ رابط وب اكنون تكميل شده است. اين فرآيند فايل پيكربندي /usr/share/zabbix/conf/zabbix.conf.php را ايجاد مي كند كه مي توانيد در آينده از آنها نسخه پشتيبان تهيه كنيد و استفاده كنيد. براي رفتن به صفحه ورود ، روي Finish كليك كنيد. كاربر پيش فرض Admin و پسورد zabbix است.
    قبل از ورود به سيستم ، عامل Zabbix را در دومين سرور مجازي Ubuntu خود تنظيم كنيد.
    مرحله 5 – نصب و پيكربندي عامل Zabbix
    حال بايد نرم افزار عامل را تنظيم كنيد كه داده هاي مانيتورينگ را به سرور مجازي Zabbix ارسال مي كند.
    وارد سرور مجازي Ubuntu دوم شويد:
    ⦁ $ ssh sammy@second_ubuntu_server_ip_address

    سپس ، دقيقاً مانند سرور مجازي Zabbix ، دستورات زير را براي نصب بسته تنظيمات مخزن اجرا كنيد:
    ⦁ $ wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1+bionic_all.deb

    ⦁ $ sudo dpkg -i zabbix-release_4.2-1+bionic_all.deb
    سپس ، شاخص بسته را به روز كنيد:
    ⦁ $ sudo apt update

    سپس عامل Zabbix را نصب كنيد:
    ⦁ $ sudo apt install zabbix-agent

    در حالي كه Zabbix از رمزگذاري مبتني بر گواهي پشتيباني مي كند ، تنظيم مجوز فراتر از محدوده اين آموزش است ، اما مي توانيد از كليدهاي از پيش اشتراكي (PSK) براي برقراري ارتباط بين سرور مجازي و كلاينت استفاده كنيد.
    ابتدا يك PSK ايجاد كنيد:
    ⦁ $ sudo sh -c “openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk”

    كليد را نشان دهيد تا بتوانيد آن را در جايي كپي كنيد. براي پيكربندي هاست به آن احتياج خواهيد داشت.
    ⦁ $ cat /etc/zabbix/zabbix_agentd.psk

    كليد چيزي شبيه به اين خواهد بود:
    Output
    12eb854dea38ac9ee7d1ded2d74cee6262b0a56710f6946f7913d674ab82cdd4

    اكنون تنظيمات عامل Zabbix را ويرايش كنيد تا اتصال ايمن آن به سرور مجازي Zabbix تنظيم شود. فايل پيكربندي عامل را در ويرايشگر متن خود باز كنيد:
    ⦁ $ sudo nano /etc/zabbix/zabbix_agentd.conf

    هر تنظيماتي درون اين فايل از طريق كامنت هاي آگاهي دهنده در سراسر فايل مستند ميشود ، اما نياز به ويرايش برخي از آنها داريد.
    ابتدا بايد آدرس IP سرور مجازي Zabbix را ويرايش كنيد. بخش زير را پيدا كنيد:
    /etc/zabbix/zabbix_agentd.conf

    ### Option: Server
    # List of comma delimited IP addresses (or hostnames) of Zabbix servers.
    # Incoming connections will be accepted only from the hosts listed here.
    # If IPv6 support is enabled then ‘127.0.0.1’, ‘::127.0.0.1’, ‘::ffff:127.0.0.1’ are treated equally.
    #
    # Mandatory: no
    # Default:
    # Server=

    Server=127.0.0.1

    مقدار پيش فرض را به IP سرور مجازي Zabbix تغيير دهيد:
    /etc/zabbix/zabbix_agentd.conf

    Server=zabbix_server_ip_address

    در مرحله بعد ، بخشي را پيدا كنيد كه اتصال ايمن به سرور مجازي Zabbix را پيكربندي كرده و پشتيباني از پيش اشتراك گذاري شده كليد را فعال كنيد. بخش TLSConnect را پيدا كنيد ، كه اينگونه به نظر مي رسد:
    /etc/zabbix/zabbix_agentd.conf

    ### Option: TLSConnect
    # How the agent should connect to server or غير مجاز مي باشد. Used for active checks.
    # Only one value can be specified:
    # unencrypted – connect without encryption
    # psk – connect using TLS and a pre-shared key
    # cert – connect using TLS and a certificate
    #
    # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for ‘unencrypted’ connection)
    # Default:
    # TLSConnect=unencrypted

    سپس اين پيوند را براي پيكربندي پشتيباني از كليد پيش اشتراكي اضافه كنيد:
    /etc/zabbix/zabbix_agentd.conf

    TLSConnect=psk

    سپس ، بخش TLSAccept را پيدا كنيد ، كه اينگونه خواهد بود :
    /etc/zabbix/zabbix_agentd.conf

    ### Option: TLSAccept
    # What incoming connections to accept.
    # Multiple values can be specified, separated by comma:
    # unencrypted – accept connections without encryption
    # psk – accept connections secured with TLS and a pre-shared key
    # cert – accept connections secured with TLS and a certificate
    #
    # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for ‘unencrypted’ connection)
    # Default:
    # TLSAccept=unencrypted

    با افزودن اين خط پيوندهاي ورودي را براي پشتيباني از كليدهاي از پيش اشتراك گذاري پيكربندي كنيد:
    /etc/zabbix/zabbix_agentd.conf

    TLSAccept=psk

    سپس بخش TLSPSKIdentity را پيدا كنيد كه اينگونه خواهد بود:
    /etc/zabbix/zabbix_agentd.conf

    ### Option: TLSPSKIdentity
    # Unique, case sensitive string used to identify the pre-shared key.
    #
    # Mandatory: no
    # Default:
    # TLSPSKIdentity=

    با افزودن اين خط ، يك نام منحصر به فرد براي شناسايي كليد پيش اشتراكي خود انتخاب كنيد:
    /etc/zabbix/zabbix_agentd.conf

    TLSPSKIdentity=PSK 001

    هنگامي كه هاست خود را از طريق رابط وب Zabbix اضافه مي كنيد ، از اين به عنوان شناسه PSK استفاده خواهيد كرد.
    سپس گزينه اي را انتخاب كنيد كه به كليد پيش اشتراكي قبلي تان اشاره دارد. گزينه TLSPSKFile را بيابيد:
    /etc/zabbix/zabbix_agentd.conf

    ### Option: TLSPSKFile
    # Full pathname of a file containing the pre-shared key.
    #
    # Mandatory: no
    # Default:
    # TLSPSKFile=

    اين خط را اضافه كنيد تا عامل Zabbix به فايل PSK شما اشاره كند:
    /etc/zabbix/zabbix_agentd.conf

    TLSPSKFile=/etc/zabbix/zabbix_agentd.psk

    فايل را ذخيره كنيد و ببنديد. اكنون مي توانيد عامل Zabbix را مجدداً راه اندازي كنيد و آن را به گونه اي تنظيم كنيد تا در زمان بوت شروع شود:
    ⦁ $ sudo systemctl restart zabbix-agent

    ⦁ $ sudo systemctl enable zabbix-agent

    بهتر است بررسي كنيد كه عامل Zabbix به درستي اجرا شده است يا خير:
    ⦁ $ sudo systemctl status zabbix-agent

    وضعيت زير را مشاهده خواهيد كرد ، نشان مي دهد عامل در حال اجرا است:
    Output
    ● zabbix-agent.service – Zabbix Agent
    Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
    Active: active (running) since Fri 2019-04-05 09:03:04 UTC; 1s ago

    عامل ، اتصالات حاصله از سرور مجازي را از پورت 10050 گوش مي دهد. UFW را براي برقراري اتصال به اين پورت پيكربندي كنيد:
    ⦁ $ sudo ufw allow 10050/tcp

    مي توانيد اطلاعات بيشتري در مورد UFW در راهنماي نحوه راه اندازي فايروال با UFW در Ubuntu 18.04 كسب كنيد.
    اكنون عامل شما آماده پذيرش اتصالات و ارسال داده به سرور مجازي Zabbix است. اما براي استفاده از آن ، بايد از طريق كنسول وب سرور مجازي به آن پيوند دهيد. در مرحله بعد ، پيكربندي را كامل مي كنيد.
    مرحله 6 – اضافه كردن هاست جديد به سرور مجازي Zabbix
    نصب يك عامل بر روي سرور مجازي ي كه مي خواهيد نظارت كنيد ، فقط نيمي از روند كار است. هر هاستي كه براي نظارت مي خواهيد نياز به ثبت در سرور Zabbix دارد، كه مي توانيد اين كار را از طريق رابط وب انجام دهيد.
    با رفتن به آدرس http: // zabbix_server_name / zabbix / وارد رابط وب سرور مجازي Zabbix شويد.

    هنگامي كه وارد سيستم شده ايد ، در نوار پيمايش بالا بر روي Configuration و سپس Hosts  كليك كنيد. سپس بر روي دكمه Create host در گوشه سمت راست بالاي صفحه كليك كنيد. با اين كار صفحه پيكربندي ميزبان باز مي شود.

    نام هاست و آدرس IP را تنظيم كنيد تا نام هاست و آدرس IP سرور مجازي دوم Ubuntu شما را منعكس نمايد ، سپس هاست را به يك گروه اضافه كنيد. مي توانيد يك گروه موجود ، به عنوان مثال سرور مجازي هاي لينوكس را انتخاب كنيد يا گروه خود را ايجاد كنيد. هاست مي تواند در چند گروه باشد. براي اين كار ، نام گروه موجود يا جديد را در قسمت Groups وارد كرده و از ليست پيشنهادي مقدار مورد نظر را انتخاب كنيد.
    پس از افزودن گروه ، بر روي تب Templates كليك كنيد.

    Template OS Linux را در قسمت جستجو تايپ كنيد و سپس بلافاصله در زير نوار جستجو روي add كليك كنيد تا اين الگو به هاست اضافه شود.
    در مرحله بعد ، به سربرگ Encryption  برويد. PSK  را هم براي اتصال به هاست و هم اتصالات حاصله از هاست انتخاب كنيد. سپس PSK identity  را روي PSK 001 قرار دهيد ، كه مقدار تنظيم TLSPSKIdentity عامل Zabbix است كه قبلاً پيكربندي كرده ايد. سپس مقدار PSK را روي كليد توليد شده براي عامل Zabbix تنظيم كنيد. اين چيزي است كه در فايل /etc/zabbix/zabbix_agentd.psk در دستگاه عامل ذخيره شده است.

    در آخر ، بر روي دكمه Add در پايين فرم كليك كنيد تا ميزبان ايجاد شود.
    ميزبان جديد خود را در اين ليست مشاهده خواهيد كرد. يك دقيقه صبر كنيد و صفحه را مجدد لود كنيد تا برچسب هاي سبز نشان دهند كه همه چيز خوب است و اتصال رمزگذاري شده است.

    در صورت داشتن سرور مجازي هاي اضافي كه بايد نظارت كنيد ، به هر هاست وارد شويد ، عامل Zabbix را نصب كنيد ، يك PSK توليد كنيد ، عامل را پيكربندي كنيد و سپس همان مراحل اضافه كردن اولين هاست خود را تكرار كنيد، تا هاست را به رابط وب اضافه كنيد.
    سرور مجازي Zabbix اكنون سرور مجازي دوم Ubuntu را كنترل مي كند. اكنون ، اعلان هاي ايميل را تنظيم كنيد تا در مورد مشكلات به شما اطلاع داده شود.
    مرحله 7 – پيكربندي اعلان هاي ايميل
    Zabbix به طور خودكار انواع مختلفي از اعلان ها را پشتيباني مي كند: ايميل ، Jabber ، پيام كوتاه و غيره. همچنين مي توانيد از روش هاي اعلان جايگزين مانند Telegram يا Slack نيز استفاده كنيد. ليست كامل ادغام ها را مي توانيد در اينجا مشاهده كنيد.
    ساده ترين روش ارتباطي ايميل است و اين آموزش اعلان ها را براي اين نوع رسانه پيكربندي مي كند.
    در نوار پيمايش بالا بر روي Administration ، و سپس Media types كليك كنيد. ليست انواع رسانه ها را مشاهده خواهيد كرد. روي ايميل كليك كنيد.
    گزينه هاي SMTP را مطابق تنظيمات ارائه شده توسط سرويس ايميل خود تنظيم كنيد. اين آموزش از ويژگي هاي SMTP Gmail براي تنظيم اعلان هاي ايميل استفاده مي كند. اگر مي خواهيد اطلاعات بيشتري درباره اين تنظيمات داشته باشيد ، به نحوه استفاده از سرور مجازي SMTP Google مراجعه كنيد.
    توجه: اگر از تأييد صحت دو مرحله اي با Gmail استفاده مي كنيد ، بايد يك رمزعبور app براي Zabbix توليد كنيد. لازم نيست آن را به خاطر بسپاريد ، فقط بايد يك بار رمز عبور برنامه را هنگام تنظيم وارد كنيد. در مركز راهنمايي Google دستورالعملهايي درباره نحوه توليد اين رمز عبور پيدا خواهيد كرد.

    همچنين مي توانيد قالب پيام — html يا متن ساده را انتخاب كنيد. در آخر ، بر روي دكمه Update در پايين فرم كليك كنيد تا پارامترهاي ايميل به روز شود.

    اكنون يك كاربر جديد ايجاد كنيد. در نوار پيمايش بالا روي Administrator و سپس Users كليك كنيد. ليست كاربران را مشاهده خواهيد كرد. سپس بر روي دكمه Create user در گوشه سمت راست بالاي صفحه كليك كنيد. با اين كار صفحه پيكربندي كاربر باز مي شود.

    نام كاربري جديد را در قسمت Alias ​​وارد كرده و رمزعبور جديدي تنظيم كنيد. در مرحله بعد كاربر را به گروه administrator اضافه كنيد. Zabbix administrators را در قسمت Groups تايپ كرده و آن را از ليست پيشنهادي انتخاب كنيد.
    پس از افزودن گروه ، بر روي تب Media كليك كرده و روي لينك Add كه زير آن خط كشيده شده كليك كنيد. يك پنجره pop-up مشاهده خواهيد كرد.

    آدرس ايميل خود را در قسمت Send to وارد كنيد. مي توانيد بقيه گزينه ها را روي مقادير پيش فرض بگذاريد. براي ارسال ، روي دكمه add در پايين كليك كنيد.
    اكنون به سربرگ Permissions  برويد.Zabbix Super Admin را از منوي كشويي نوع كاربر انتخاب كنيد.
    در آخر ، بر روي دكمه Add در پايين فرم كليك كنيد تا كاربر ايجاد شود.
    اكنون بايد اعلان ها را فعال كنيد. بر روي تب Configuration  و سپس Actions  در نوار پيمايش بالا كليك كنيد. عملكردي از پيش تنظيم شده را مشاهده خواهيد كرد ، كه وظيفه ارسال اعلان ها به همه ادمين هاي Zabbix را بر عهده دارد. مي توانيد تنظيمات را با كليك روي نام آن بررسي و تغيير دهيد. براي اهداف اين آموزش از پارامترهاي پيش فرض استفاده كنيد. براي فعال كردن اين عمل ، بر روي لينك قرمز Disabled در ستون Status كليك كنيد.
    اكنون آماده دريافت هشدار هستيد. در مرحله بعدي ، يك مورد را آزمايش مي كنيد تا تنظيم اعلان خود بررسي نماييد.
    مرحله 8 – ايجاد هشدار آزمايشي
    در اين مرحله ، براي اطمينان از اتصال همه موارد ، يك هشدار تست توليد مي كنيد. به طور پيش فرض ، Zabbix مقدار فضاي ديسك خالي روي سرور مجازي شما را پيگيري مي كند. به طور خودكار تمام ديسك هاي قرار داده شده را شناسايي ميكند و بررسي هاي مربوطه را اضافه مي كند. اين شناسايي هر ساعت اجرا مي شود ، بنابراين بايد مدت زماني صبر كنيد تا اعلان شروع شود.
    يك فايل موقت ايجاد كنيد كه به اندازه كافي بزرگ باشد تا هشدار استفاده از سيستم فايل Zabbix را فعال كند. براي اين كار ، اگر هنوز به سيستم متصل نشده ايد ، به سرور مجازي Ubuntu دوم خود وارد شويد.
    ⦁ $ ssh sammy@second_ubuntu_server_ip_address

    در مرحله بعد مشخص كنيد كه چه مقدار فضاي خالي روي سرور مجازي داريد. براي اين كار مي توانيد از دستور df استفاده كنيد:
    ⦁ $ df -h

    دستور df ميزان استفاده از فضاي ديسك سيستم فايل شما را گزارش مي كند ، و -h باعث مي شود كه خروجي قابل خواندن باشد. خروجي مانند زير را مشاهده خواهيد كرد:
    Output
    Filesystem Size Used Avail Use% Mounted on
    /dev/vda1 25G 1.2G 23G 5% /

    در اين حالت فضاي آزاد 23 گيگابايت است. فضاي آزاد شما ممكن است متفاوت باشد.
    از دستور fallocate استفاده كنيد ، كه به شما امكان مي دهد فضاي اختصاصي را به يك فايل اختصاص بدهيد يا ندهيد، تا فايلي ايجاد كنيد كه بيش از 80٪ فضاي موجود ديسك را داشته باشد. اين كار براي ايجاد هشدار كافي خواهد بود:
    ⦁ $ fallocate -l 20G /tmp/temp.img

    Zabbix پس از گذشت حدود يك ساعت ، هشداري در مورد ميزان فضاي خالي ديسك ارائه مي كند و عملي را كه پيكربندي كرده ايد ، اجرا مي كند كه پيامي را ارسال خواهد كرد. مي توانيد صندوق ورودي خود را براي دريافت پيام از سرور مجازي Zabbix بررسي كنيد. پيامي مانند خواهيد ديد:
    Output
    Problem started at 10:37:54 on 2019.04.05
    Problem name: Free disk space is less than 20% on volume /
    Host: Second Ubuntu server
    Severity: Warning

    Original problem ID: 34

    همچنين مي توانيد براي مشاهده نوتيفيكيشن و جزئيات آن به سربرگ Monitoring و سپس Dashboard برويد.

    اكنون كه مي دانيد هشدارها كار مي كنند ، فايل موقت ايجاد شده را حذف كنيد تا بتوانيد فضاي ديسك خود را دوباره پس بگيريد:
    ⦁ $ rm -f /tmp/temp.img

    پس از يك دقيقه Zabbix پيام بازيابي را ارسال مي كند و هشدار از داشبورد اصلي ناپديد مي شود.
    نتيجه
    در اين آموزش يك راه حل ساده و ايمن براي نظارت تنظيم كرديد كه به شما در نظارت بر وضعيت سرور مجازي هاي تان كمك مي كند. اكنون مي تواند مشكلات را به شما هشدار دهد ، و شما اين فرصت را داريد كه فرآيندهاي رخ داده در زيرساخت IT خود را تجزيه و تحليل كنيد.
    براي كسب اطلاعات بيشتر درباره راه اندازي زيرساخت هاي نظارتي ، راهنماي نحوه نصب Elasticsearch ، Logstash و Kibana (Elastic Stack) در Ubuntu 18.04 و مقاله نحوه جمع آوري معيارهاي زيرساخت با Metricbeat در Ubuntu 18.04 را بررسي كنيد.

     

     

     

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

    استفاده از nsh براي دستورات از راه دور اوبونتو 18 –  ميزباني وب سايت با Caddy اوبونتو 18

    تنظيم سرور ذخيره سازي آبجكت با استفاده از Minio در اوبونتو 18  –  ضبط و اشتراك گذاري ترمينال با Terminalizer اوبونتو

    تنظيم مسيريابي شرطي و پاسخگو با React Router v4  –  ايجاد يك URL كوتاه كننده با Django و GraphQL

    يك برنامه رديابي سلامت را با React ،GraphQL و Okta –  ساخت برنامه ******** زمان حقيقي React و GraphQL

    به روزرساني فيلترهاي مرتب سازي Angular (زاويه اي) –  با استفاده از React ، Superagent و API اينستاگرام

    نحوه ساختن يك برنامه جهاني با Nuxt.js و Django –  دكمه دانلود با ريزتعاملات با CSS ، anime.js و segment.js

    نحوه اضافه كردن عكسهاي پيشرفته در Node و Express  –  با Vue ،GraphQL و Apollo Client يك وبلاگ ساخت

    يك برنامه SSR با روتر Preact ، Unistore و Preact بسازيد  –  ساخت برنامه هاي وب پيشرونده با Angular

    اشكال زدايي JavaScript در توليد با نقشه هاي منبع  –  مي توان با Koa برنامه “سلام جهاني” ساخت

    ساختن يك برنامه با Node ، React ، Okta  –   مديريت حالت فرم در React با Redux Form

    نحوه تنظيم Laravel ، Nginx و MySQL  –  ارتقاء از AngularJS به Angular با ngUpgrade

    استفاده از ويژوال استوديو از راه دور  –  احراز هويت API با JSON Web Tokens و Passport

    راه اندازي يك پروژه React با Parcel  –  ايجاد Swiper مانند Netflix را در Vue

    ساختن يك ربات تلگرام با Laravel و BotMan  –  استفاده از map، filter، و reduce در جاوااسكريپت

    چگونه مي توان موتور جستجوي زمان واقعي را با Vue  –  ساختن سيستم مستندات (Documentation) با Vue و VuePress

    استفاده از اشتراك زنده با كد ويژوال استوديو  –  ساخت يك مقياس اندازه گيري قدرت رمز عبور را در React

    شروع عملي GraphQL با Node.js و Express  –  ساخت يك برنامه آب و هوا در Django

    نحوه نصب Discourse روي Ubuntu 18  –  تأييد رمز عبور با استفاده از درخواست فرم Laravel

    نحوه نصب MySQL در CentOS 8  –  استفاده از پسوند PDO PHP براي انجام تراكنش MySQL

    نصب و پيكربندي SNMP Daemon و Client در Ubuntu 18  –  نصب Linux، Nginx، MariaDB،PHP در Debian 10

     

     

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

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

     

    برچسب‌ها:Dashboard, Logstash, Metricbeat, Monitoring,