Tumgik
vpsgol12-blog · 4 years
Text
نصب Nginx، MySQL، PHP در CentOS 7
ک پشته نرم افزاری LEMP گروهی از نرم افزارهای منبع باز است که به طور معمول در کنار هم نصب می شوند تا سرور بتواند میزبان وب سایت های پویا و برنامه های وب باشد. این اصطلاح در واقع حاصل یک مخفف است که سیستم عامل لینوکس ، با سرور وب ENginx (که جایگزین مولفه Apache یک پشته LAMP می شود) را نشان میدهد. داده های سایت در یک پایگاه داده مبتنی بر MySQL ذخیره می شوند و محتوای پویا توسط PHP پردازش می شود. در این راهنما ، یک پشته LEMP را با PHP 7.4 که روی یک سرور CentOS 7 نصب شده است ، با استفاده از MariaDB به عنوان سیستم مدیریت پایگاه داده ، دریافت خواهیم کرد. MariaDB به عنوان یک جایگزین برای سرور اصلی MySQL کار می کند ، که در عمل به این معنی است که می توانید بدون نیاز به ایجاد پیکربندی یا تغییر کد در برنامه ، به MariaDB سوییچ کنید. پیش نیازها قبل از شروع این راهنما ، باید یک حساب کاربری جداگانه و غیر ریشه در سرور خود تنظیم کنید. با انجام مراحل 1-4 در تنظیم اولیه سرور برای CentOS 7 می توانید نحوه انجام این کار را یاد بگیرید. مرحله 1 – نصب Nginx به منظور نمایش صفحات وب برای بازدید کنندگان سایت ، قصد داریم از Nginx ، سرور وبی با کارایی بالا استفاده کنیم. برای به دست آوردن آخرین نسخه Nginx ، ابتدا مخزن EPEL را نصب خواهیم کرد که حاوی نرم افزار اضافی برای سیستم عامل CentOS 7 است. برای اضافه کردن مخزن CentOS 7 EPEL ، دستور زیر را اجرا کنید: ⦁ $ sudo yum install epel-release ⦁ از آنجا که ما از یک دستور sudo استفاده می کنیم ، این عملیات با امتیازات اصلی انجام می شود. از شما رمزعبور کاربر معمولی را میخواهد تا تأیید کند که شما اجازه اجرای دستورات دارای امتیازات اصلی را دارید. همچنین از شما خواسته می شود نصب را تأیید کنید ، بنابراین Y را برای ادامه فشار دهید. اکنون که مخزن EPEL روی سرور شما نصب شده است ، Nginx را با استفاده از دستور yum زیر نصب کنید: ⦁ $ sudo yum install nginx ⦁ پس از اتمام نصب ، سرویس Nginx را با این دستور راه اندازی کنید: ⦁ $ sudo systemctl start nginx ⦁ با مراجعه به آدرس IP عمومی سرور خود در مرورگر وب ، می توانید بلافاصله چک کنید که همه چیز مطابق پیش بینی جلو میرود (اگر این اطلاعات را ندارید ، میتوانید آدرس IP عمومی خود را در زیر عنوان بعدی ببینید): Open in a web browser: http://server_domain_name_or_IP/
صفحه پیش فرض CentOS 7 Nginx را مشاهده خواهید کرد ، که برای اهداف اطلاع رسانی و آزمایش میباشد. باید چیزی شبیه به این ببینید:
اگر این صفحه را مشاهده کردید ، اکنون سرور وب شما به درستی نصب شده است. برای فعال کردن Nginx در بوت ، دستور زیر را اجرا کنید: ⦁ $ sudo systemctl enable nginx ⦁ چگونه آدرس IP عمومی سرور خود را پیدا کنید اگر نمی دانید آدرس IP عمومی سرور شما چیست ، روش های مختلفی برای یافتن آن وجود دارد. معمولاً آدرسی است که شما برای اتصال به سرور خود از طریق SSH استفاده می کنید. از خط فرمان می توانید این چند روش را پیدا کنید. ابتدا می توانید از ابزار iproute2 استفاده کنید تا آدرس خود را دریافت کنید: ⦁ $ ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’ ⦁ این دستور یک یا دو خط شما را به عقب باز می گرداند. هر دو آدرس صحیح هستند ، اما رایانه شما فقط می تواند یکی از آنها را استفاده میکند ، بنابراین به راحتی هر یک را امتحان کنید. یک روش دیگر استفاده از یک جناح خارج است تا به شما بگوید سرور شما را چگونه می بیند. می توانید با پرسیدن از یک سرور خاص آدرس IP خود را پیدا کنید: ⦁ $ curl http://icanhazip.com ⦁ صرف نظر از روشی که برای دریافت آدرس IP خود استفاده می کنید ، می توانید آن را در نوار آدرس مرورگر وب خود وارد کنید تا به سرور خود برسید. مرحله 2 – نصب MariaDB اکنون که سرور وب خود را راه اندازی کرده ایم ، زمان آن است که MariaDB ، یک جایگزین داخلی MySQL را نصب کنید. MariaDB یک فورک توسعه یافته از سیستم مدیریت پایگاه داده رابطه ای MySQL است. باز هم ، می توانیم از yum برای به دست آوردن و نصب نرم افزار خود استفاده کنیم. این بار ، ما بسته های کمکی دیگری را نیز نصب خواهیم کرد که در برقراری ارتباط با مؤلفه ها به ما کمک می کنند: ⦁ $ sudo yum install mariadb-server mariadb ⦁ پس از اتمام نصب ، باید MariaDB را با دستور زیر شروع کنیم: ⦁ $ sudo systemctl start mariadb ⦁ اکنون که پایگاه داده MariaDB ما در حال اجراست ، می خواهیم یک اسکریپت امنیتی را اجرا کنیم که برخی پیش فرض های پرخطر را حذف کرده و دسترسی به پایگاه داده ما را خاموش می کند. اسکریپت تعاملی را با اجرای این دستور شروع کنید: ⦁ $ sudo mysql_secure_installation ⦁ اعلان از شما می خواهد رمز عبور فعلی MariaDB خود را وارد کنید. از آنجا که شما به تازگی MariaDB را نصب کرده اید ، به احتمال زیاد رمز را نخواهید داشت ، بنابراین با فشار دادن enter آن را خالی بگذارید. سپس اعلان از شما سؤال می کند که آیا می خواهید رمز اصلی را تنظیم کنید. پیش بروید و Y را وارد کنید ، و دستورالعمل ها را دنبال کنید: mysql_secure_installation prompts: Enter current password for root (enter for none): OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation.
Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. … Success!
برای بقیه سؤالات ، باید مقادیر پیش فرض را با زدن “ENTER” بپذیرید. این کار باعث حذف برخی از کاربران و دیتابیس های نمونه میشود، ورود به سیستم ریشه از راه دور غیرفعال می شود و این قوانین جدید را بارگذاری می کند تا MySQL فوراً با تغییراتی که ایجاد کرده ایم منطبق شود. آخرین کاری که باید انجام دهید این است که MariaDB را فعال کنید که در بوت شروع شود. برای انجام این کار از دستور زیر استفاده کنید: ⦁ $ sudo systemctl enable mariadb ⦁ در این مرحله ، سیستم پایگاه داده شما اکنون تنظیم شده است و ما می توانیم پیش برویم. مرحله 3 – نصب PHP PHP مؤلفه ای از ستاپ ما است که کد را برای نمایش محتوای پویا پردازش می کند. این برنامه می تواند اسکریپت ها را اجرا کند ، برای بدست آوردن اطلاعات به پایگاه داده های MySQL ما متصل شود و محتوای پردازش شده را برای نمایش به سرور وب ما تحویل دهد. نسخه PHP موجود به طور پیش فرض در سرورهای CentOS 7 منسوخ شده است ، و به همین دلیل ، باید یک مخزن بسته شخص ثالث را نصب کنیم تا PHP 7+ را دریافت کرده و آن بر روی سرور CentOS 7نصب کنیم. Remi یک مخزن بسته محبوب است که جدیدترین نسخه های PHP را برای سرورهای CentOS ارائه می دهد. برای نصب مخزن Remi برای CentOS 7 ، دستور زیر را اجرا کنید: ⦁ $ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm ⦁ پس از اتمام نصب ، باید دستوری اجرا کنید تا مخزن حاوی نسخه دلخواه PHP شما فعال شود. برای بررسی اینکه نسخه های PHP 7+ در مخزن Remi در دسترس هستند ، این دستور را اجرا کنید: ⦁ $ yum –disablerepo=”*” –enablerepo=”remi-safe” list php[7-9][0-9].x86_64 ⦁ خروجی مانند این را خواهید دید: Output Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * remi-safe: mirrors.ukfast.co.uk Available Packages php70.x86_64 2.0-1.el7.remi remi-safe php71.x86_64 2.0-1.el7.remi remi-safe php72.x86_64 2.0-1.el7.remi remi-safe php73.x86_64 2.0-1.el7.remi remi-safe php74.x86_64 1.0-3.el7.remi remi-safe php80.x86_64
در این راهنما ، PHP 7.4 را نصب خواهیم کرد که در حال حاضر به روزترین نسخه PHP است. برای فعال کردن بسته صحیح Remi برای نصب PHP 7.4 ، اجرا کنید: ⦁ $ sudo yum-config-manager –enable remi-php74 ⦁ اکنون می توانیم پیش برویم و از yum برای نصب PHP استفاده کنیم. دستور زیر کلیه بسته های لازم را برای تنظیم PHP 7.4 در Nginx نصب می کند و به آن اجازه می دهد تا به پایگاه داده های مبتنی بر MySQL متصل شود: ⦁ $ sudo yum install php php-mysqlnd php-fpm ⦁ برای تأیید اینکه PHP به عنوان نسخه انتخابی شما موجود است ، این دستور را اجرا کنید: ⦁ $ php –version ⦁ خروجی مانند این را خواهید دید: Output PHP 7.4.5 (cli) (built: Apr 14 2020 12:54:33) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies
اکنون PHP با موفقیت روی سیستم شما نصب شده است. در مرحله بعد ، باید تغییراتی در تنظیمات پیش فرض ایجاد کنیم. برای تسهیل ویرایش فایل ها در CentOS ، ابتدا nano که ویرایشگر متن کاربر پسند تری نسبت به vi است نصب خواهیم کرد: ⦁ $ sudo yum install nano ⦁ فایل پیکربندی /etc/php-fpm.d/www.conf را با استفاده از nano یا ویرایشگر مورد نظر خود باز کنید: ⦁ $ sudo nano /etc/php-fpm.d/www.conf ⦁ اکنون به دنبال دستورالعمل های user  و group  باشید. اگر از nano استفاده می کنید ، می توانید با فشردن CTRL + W این عبارات را در فایل باز جستجو کنید. /etc/php-fpm.d/www.conf … ; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user’s group ; will be used. ; RPM: apache user chosen to provide access to the same directories as httpd user = apache ; RPM: Keep a group allowed to write in log dir. group = apache …
توجه خواهید کرد که متغیرهای کاربر و گروه روی apache تنظیم شده اند. ما باید این موارد را به nginx تغییر دهیم: /etc/php-fpm.d/www.conf … ; RPM: apache user chosen to provide access to the same directories as httpd user = nginx ; RPM: Keep a group allowed to write in log dir. group = nginx …
سپس ، دستورالعمل listen را پیدا کنید. به طور پیش فرض ، php-fpm به هاست و پورت خاصی از طریق TCP گوش می دهد. ما می خواهیم این تنظیمات را تغییر دهیم تا در یک فایل سوکت محلی شنود کند ، زیرا این کار باعث بهبود عملکرد کلی سرور می شود. خط حاوی دستورالعمل listen را به شرح زیر تغییر دهید: /etc/php-fpm.d/www.conf listen = /var/run/php-fpm/php-fpm.sock;
در آخر ، ما باید تنظیمات مالک و گروه را برای فایل سوکت که اخیراً در دستورالعمل listen تعریف کرده ایم ، تغییر دهیم. دستورالعمل listen.owner ، listen.group و listen.mode را پیدا کنید. این خطوط بطور پیش فرض حذف می شوند. با حذف علامت ; در شروع خط آنها را باطل کنید. سپس ، مالک و گروه را به nginx تغییر دهید: /etc/php-fpm.d/www.conf listen.owner = nginx listen.group = nginx listen.mode = 0660
هنگام ویرایش ، فایل را ذخیره کنید و ببندید. اگر از nano استفاده می کنید ، این کار را با فشار دادن CTRL + X ، سپس Y و ENTER انجام دهید. برای فعال و شروع سرویس php-fpm ، دستور زیر را اجرا کنید: ⦁ $ sudo systemctl start php-fpm ⦁ اکنون محیط PHP شما آماده است. در مرحله بعد ، Nginx را پیکربندی خواهیم کرد تا همه درخواست های ارسال شده برای اسکریپت های PHP توسط php-fpm پردازش شود. مرحله 4 – پیکربندی Nginx برای پردازش صفحات PHP اکنون همه اجزای لازم نصب شده است. تنها تغییر پیکربندی که باید انجام دهیم این است که به Nginx بگوییم از پردازنده PHP ما برای محتوای پویا استفاده کند. Nginx یک دایرکتوری اختصاصی دارد که می توانیم با استفاده از بلوک سرور ، هر وب سایت هاست را به عنوان یک فایل پیکربندی جداگانه تعریف کنیم. در واقع شبیه به هاست های مجازی Apache است. با وجود نصب پیش فرض ، این دایرکتوری خالی است. ما یک فایل جدید ایجاد خواهیم کرد تا به عنوان وب سایت پیش فرض PHP در این سرور ، سرویس دهی کند ، که باعث لغو بلوک سرور پیش فرض مشخص شده در فایل /etc/nginx/nginx.conf خواهد شد. ابتدا یک فایل جدید را در دیرکتوری /etc/nginx/conf.d باز کنید: ⦁ $ sudo nano /etc/nginx/conf.d/default.conf ⦁ بلوک تعریف سرور PHP زیر را در فایل پیکربندی خود کپی کنید و فراموش نکنید که دستورالعمل server_name را جایگزین کنید تا به نام دامنه یا آدرس IP سرور شما اشاره کند: /etc/nginx/conf.d/default.conf server { listen 80; server_name server_domain_or_IP;
root /usr/share/nginx/html; index index.php index.html index.htm;
location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html;
location = /50x.html { root /usr/share/nginx/html; }
location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
پس از پایان کار ، فایل را ذخیره کنید و ببندید. پس ، Nginx را مجدداً ریستارت کنید تا تغییرات اعمال شود: ⦁ $ sudo systemctl restart nginx ⦁ اکنون سرور وب شما کاملاً تنظیم شده است. در مرحله بعدی ، ادغام PHP را با Nginx آزمایش خواهیم کرد. مرحله 5 – تست پردازش PHP در وب سرور خود اکنون که سرور وب شما تنظیم شده است ، می توانیم یک اسکریپت آزمایشی PHP ایجاد کنیم تا مطمئن شویم Nginx با کمک php-fpm به درستی اسکریپت های .php را اداره می کند. قبل از ایجاد اسکریپت ، ما در تنظیمات پیش فرض مالکیت در ریشه سند Nginx تغییری ایجاد خواهیم کرد ، به طوری که کاربر sudo معمولی ما قادر به ایجاد فایل هایی در آن مکان باشد. دستور زیر مالکیت ریشه اصلی پیش فرض Nginx را به کاربر و گروهی به نام sammy تغییر می دهد ، بنابراین حتماً نام کاربری و گروه هایلایت شده را در این دستور جایگزین کنید تا نام کاربری و گروه سیستم شما منعکس شود. ⦁ $ sudo chown -R sammy.sammy /usr/share/nginx/html/ ⦁ اکنون یک صفحه PHP تست ایجاد میکنیم تا مطمئن شویم که سرور وب همانطور که انتظار می رود کار میکند. یک فایل PHP جدید با نام info.php در دیرکتوری / usr / share / nginx / html ایجاد کنید: ⦁ $ nano /usr/share/nginx/html/info.php ⦁ کد PHP زیر اطلاعات مربوط به محیط PHP فعلی را که روی سرور در حال اجرا است نمایش می دهد: /usr/share/nginx/html/info.php <?php
phpinfo();
پس از اتمام ، فایل را ذخیره کنید و ببندید. اکنون می توانیم آزمایش کنیم که آیا سرور وب ما می تواند محتوای تولید شده توسط یک اسکریپت PHP را به درستی نمایش دهد. به مرورگر خود بروید و به نام میزبان یا آدرس IP سرور خود که به دنبال آن /info.phpنوشته شده است، دسترسی پیدا کنید: http://server_host_or_IP/info.php
صفحه ای شبیه به این را مشاهده خواهید کرد:
پس از بررسی اطلاعات مربوط به سرور PHP خود از طریق آن صفحه ، بهتر است فایل ایجاد شده را حذف کنید زیرا حاوی اطلاعات حساسی در مورد محیط PHP و سرور CentOS شما است. برای حذف آن فایل می توانید از rm استفاده کنید: ⦁ rm /usr/share/nginx/html/info.php ⦁ در صورت نیاز بعداً می توانید این فایل را دوباره بازیابی کنید. نتیجه در این راهنما ، با استفاده از Nginx به عنوان سرور وب و آخرین نسخه PHP ، یک پایه انعطاف پذیر برای ارائه وب سایت های PHP و برنامه ها به بازدید کنندگان خود ایجاد کردید. شما Nginx را به گونه ای تنظیم کرده اید تا بتوانید درخواست های PHP را از طریق php-fpm انجام دهید ، همچنین یک پایگاه داده MariaDB را برای ذخیره اطلاعات وب سایت خود تنظیم نموده اید.
برچسب‌ها:
ENginx
,
LEMP
,
MariaDB
,
Nginx
,
PHP 7.4
0 notes
vpsgol12-blog · 4 years
Text
نصب 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-users> . . . <user username=”admin” password=”password” roles=”manager-gui,admin-gui”/> </tomcat-users>
پس از اتمام فایل را ذخیره کنید و ببندید. به طور پیش فرض ، نسخه های جدیدتر 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 <Context antiResourceLocking=”false” privileged=”true” > <!–<Valve className=”org.apache.catalina.valves.RemoteAddrValve” allow=”127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1″ />–> </Context>
پس از اتمام ، فایل ها را ذخیره کنید و ببندید. برای اعمال تغییرات خود ، سرویس 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 پوشش می دهد).
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
Apache Tomcat
,
APT
,
OpenJDK
,
opt
0 notes
vpsgol12-blog · 4 years
Text
راه اندازی سرور اولیه با 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
برای اولین بار در هر بخش (و به صورت دوره ای بعد از آن) رمزعبور کاربر معمولی از شما خواسته می شود. از اینجا به کجا برویم؟ در این مرحله ، شما یک پایه محکم برای سرور مجازی خود دارید. اکنون می توانید هرکدام از نرم افزارهای مورد نیاز خود را بر روی سرور مجازی خود نصب کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
OpenSSH
0 notes
vpsgol12-blog · 4 years
Text
چگونه با 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 تست شده است. برای نصب این برنامه در macOS یا Ubuntu 18.04 ، مراحل نحوه نصب Node.js و ایجاد محیط توسعه محلی را در macOS یا نصب با استفاده از بخش 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 است که چیزی شبیه به این میباشد: <div> {inventory.filter(item => item.available).map(item => ( <Card> <div className=”title”}>{item.name}</div> <div className=”price”>{item.price}</div> </Card> )) } </div>
برخی از قابلیت های JavaScript مانند .filter و .map و همچنین برخی HTML های استاندارد مانند <div> را خواهید شناخت. اما بخش های دیگری مانند <card> و 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 ( <div className=”App”> <header className=”App-header”> <img src={logo} className=”App-logo” alt=”logo” /> <p> Edit <code>src/App.js</code> and save to reload. </p> <a className=”App-link” href=”https://reactjs.org” target=”_blank” rel=”noopener noreferrer” > Learn React </a> </header> </div> ); }
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 <h1>Hello, World</h1>; }
export default App;
فایل را ذخیره کنید. اگر به ترمینال با سرور مجازی در حال اجرا نگاه کنید ، پیام اخطار از بین خواهد رفت. اگر از مرورگر خود بازدید کنید ، پیام را به عنوان مولفه h1 مشاهده خواهید کرد.
سپس ، در زیر برچسب <h1> ، یک برچسب پاراگراف اضافه کنید که شامل رشته I am writing JSX است. کد به صورت زیر خواهد بود: jsx-tutorial/src/App.js import React from ‘react’; import ‘./App.css’;
function App() { return( <h1>Hello, World</h1> <p>I am writing JSX</p> ) }
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 | <h1>Hello, World</h1> > 7 | <p>I am writing JSX</p> | ^ 8 | ) 9 | } 10 |
وقتی JSX را از یک تابع یا عبارت باز می گردانید ، باید یک مولفه واحد را برگردانید. این مولفه ممکن است بخش های لانه گزیده باشد ، اما اگر یک مولفه سطح بالا باشد. در این حالت ، دو مولفه را بر می گردانید. fix یک تغییر کد جزیی است. با یک برچسب خالی کد را محصور کنید. برچسب خالی یک مولفه HTML است که هیچ کلمه ای ندارد. به این شکل: <> </> به./src/App.js در ویرایشگر خود بروید و برچسب خالی را اضافه کنید: jsx-tutorial/src/App.js import React from ‘react’; import ‘./App.css’;
function App() { return( <> <h1>Hello, World</h1> <p>I am writing JSX</p> </> ) }
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 روی عناصر خود ، باید کلاس ها را اضافه کنید. ابتدا ، در ویرایشگر متن ، برچسب های خالی ، <> را به <div> تغییر دهید. jsx-tutorial/src/App.js import React from ‘react’; import ‘./App.css’;
function App() { return( <div> <h1>Hello, World</h1> <p>I am writing JSX</p> </div> ) }
export default App;
در این کد تگ های خالی – <> – را با برچسب های div جایگزین کرده اید. تگ های خالی برای گروه بندی کد شما بدون اضافه کردن برچسب های اضافی مفید هستند ، اما در اینجا شما باید از div استفاده کنید زیرا برچسب های خالی هیچ ویژگی HTML را نمی پذیرند. در مرحله بعد باید نام کلاس را اضافه کنید. اینجاست که JSX شروع به واگرایی از HTML می کند. اگر می خواهید یک کلاس را به یک مولفه HTML معمولی اضافه کنید ، این کار را اینگونه انجام می دهید: <div class=”container”> 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( <div className=”container”> <h1>Hello, World</h1> <p>I am writing JSX</p> </div> ) }
export default App;
فایل را ذخیره کنید. با انجام این کار ، صفحه مجدد لودد می شود و محتوا در مرکز قرار می گیرد ..
ویژگی className در React بی نظیر است. شما می توانید اکثر ویژگیهای HTML را بدون هیچ تغییری به JSX اضافه کنید. به عنوان نمونه ، به ویرایشگر متن خود برگردید و شناسه greeting را به مولفه <h1> خود اضافه کنید. مانند HTML استاندارد به نظر می رسد: jsx-tutorial/src/App.js import React from ‘react’; import ‘./App.css’;
function App() { return( <div className=”container”> <h1 id=”greeting”>Hello, World</h1> <p>I am writing JSX</p> </div> ) }
export default App;
صفحه را ذخیره کرده و مرورگر را مجدد لود کنید. مشابه قبلی خواهد بود. تاکنون ، JSX به عنوان نشانه گذاری استاندارد به نظر می رسید ، اما مزیت JSX این است که حتی اگر شبیهHTML به نظر می رسد ، قدرت جاوا اسکریپت را دارد. این بدان معناست که می توانید متغیرها را اختصاص دهید و آنها را در مشخصه های خود ارجاع دهید. برای ارجاع به یک مشخصه ، آن را به جای نقل قولها در پرانتزهای به شکل {} قرار دهید. در ویرایشگر متن خود ، خطوط هایلایت شده زیر را به عنوان یک مشخصه اضافه کنید: jsx-tutorial/src/App.js import React from ‘react’; import ‘./App.css’;
function App() { const greeting = “greeting”; return( <div className=”container”> <h1 id={greeting}>Hello, World</h1> <p>I am writing JSX</p> </div> ) }
export default App;
در این کد ، در بالای عبارت return یک متغیر به نام greeting با مقدار “greeting” ایجاد کرده اید ، سپس متغیر را در مشخصه id برچسب <h1> خود ارجاع داده اید. فایل را ذخیره کنید و از آن خارج شوید. صفحه همان خواهد بود، اما برچسب id خواهد داشت.
تاکنون با چند مولفه به تنهایی کار کرده اید ، اما می توانید از JSX همچنین برای اضافه کردن بسیاری از عناصر HTML استفاده کرده و آنها را برای ایجاد صفحات پیچیده مستقر نمایید. برای نشان دادن این موضوع ، می توانید با لیستی از ایموجی ها صفحه ای ایجاد کنید. این شکلک ها با یک مولفه <button> محصور می شوند. هنگامی که روی ایموجی ها کلیک می کنید ، نام کوتاه CLDR آنها را دریافت خواهید کرد. برای شروع ، باید چند مولفه دیگر به صفحه اضافه کنید. . src / App.js را در ویرایشگر متن خود باز کنید. در طول این مرحله آن را باز نگه دارید. ⦁ $ nano src/App.js ⦁
ابتدا با افزودن خطوط هایلایت شده زیر لیستی از ایموجی ها را اضافه کنید: jsx-tutorial/src/App.js import React from ‘react’; import ‘./App.css’;
function App() { const greeting = “greeting”; return( <div className=”container”> <h1 id={greeting}>Hello, World</h1> <p>I am writing JSX</p> <ul> <li> <button> <span role=”img” aria-label=”grinning face” id=”grinning face”>😀</span> </button> </li> <li> <button> <span role=”img” aria-label=”party popper” id=”party popper”>🎉</span> </button> </li> <li> <button> <span role=”img” aria-label=”woman dancing” id=”woman dancing”>💃</span> </button> </li> </ul> </div> ) }
export default App;
در اینجا شما برای نگه داشتن لیستی از ایموجی ها برچسب <ul> ایجاد کرده اید. هر ایموجی در یک مولفه <li> جداگانه قرار دارد و با یک مولفه <button> احاطه شده است. در مرحله بعد رویدادی را به این دکمه اضافه خواهید کرد. همچنین ایموجی ها را با یک برچسب <span> محاصره کرده اید که دارای چند ویژگی دیگر است. هر span دارای مشخصه role میباشد که روی img تنظیم شده است. این به نرم افزار در دسترس سیگنال میفرستد که این عنصر به شکل تصویر عمل میکند. علاوه بر این ، هر <span> همچنین دارای یک aria-label و یک ویژگی id با نام ایموجی است. aria-label آنچه نمایش داده می شود را به بازدید کنندگان می گوید. در مرحله بعدی از id در حین نوشتن رویداد استفاده خواهید کرد. وقتی کد را به این روش می نویسید ، از عناصر معنایی استفاده می کنید ، که به شما کمک می کند صفحه را در دسترس قرار دهید و دنبال کردن آن برای صفحه خوان (screen readers) راحت باشد. فایل را ذخیره کنید و از آن خارج شوید. مرورگر شما ریفرش می شود و این تصویر را مشاهده خواهید کرد:
اکنون کمی طراحی اضافه کنید. کد CSS را در ویرایشگر متن خود باز کنید: ⦁ $ nano src/App.css ⦁
کد هایلایت شده زیر را اضافه کنید تا ضمن افزایش اندازه فونت ، پیش زمینه و حاشیه پیش فرض دکمه ها را حذف کنید: jsx-tutorial/src/App.css .container { display: flex; flex-direction: column; align-items: center; }
button { font-size: 2em; border: 0; padding: 0; background: none; cursor: pointer; }
ul { display: flex; padding: 0; }
li { margin: 0 20px; list-style: none; padding: 0; }
در این کد از تنظیمات اندازه قلم ، حاشیه و پارامترهای دیگر برای تنظیم ظاهر دکمه های خود و تغییر فونت استفاده کرده اید. همچنین سبک های لیست را حذف کرده و display: flex را به مولفه <ul>اضافه می کنید تا افقی شود. فایل CSS را ذخیره کنید و ببندید. مرورگر شما ریفرش می شود و شما این را مشاهده خواهید کرد:
اکنون با چندین مولفه JSX کار کرده اید که مانند HTML معمولی به نظر می رسند. شما کلاس ها ، شناسه ها و برچسب های Aria را اضافه کرده اید و با داده ها به عنوان رشته ها و متغیرها کار کرده اید. اما React همچنین از ویژگیهایی برای تعریف نحوه پاسخگویی عناصر شما به رویدادهای کاربر استفاده می کند. در مرحله بعدی ، با افزودن رویدادها به دکمه ، صفحه را به صورت تعاملی خواهید ساخت. مرحله 3 – افزودن رویدادها به عناصر در این مرحله ، با استفاده از ویژگی های خاص ، رویدادها را به عناصر اضافه می کنید و یک رویداد کلیک را روی یک مولفه دکمه دریافت می کنید. یاد می گیرید که چگونه اطلاعات را از این رویداد دریافت کنید تا عملی دیگر ارسال شود یا از سایر اطلاعات در دامنه فایل استفاده کند. اکنون که یک صفحه اصلی با اطلاعات دارید ، زمان آن رسیده که چند رویداد را به آن اضافه کنید. event handler بسیاری وجود دارند که می توانید به عناصر HTML اضافه کنید. React به شما امکان دسترسی به همه اینها را می دهد. از آنجا که کد جاوا اسکریپت همراه با نشانه گذاری شما است ، می توانید ضمن نگه داشتن نظم کد خود ، به سرعت رویدادها را اضافه کنید. برای شروع ، کنترل کننده رویداد onclick را اضافه کنید. به شما امکان می دهد به جای ضمیمه کردن شنونده رویداد (event listener) ، تعدادی کد جاوا اسکریپت را مستقیماً به مولفه خود اضافه کنید: jsx-tutorial/src/App.js import React from ‘react’; import ‘./App.css’;
function App() { const greeting = “greeting”; return( <div className=”container”> <h1 id={greeting}>Hello, World</h1> <p>I am writing JSX</p> <ul> <li> <button onClick={event => alert(event.target.id)} > <span role=”img” aria-label=”grinning face” id=”grinning face”>😀</span> </button> </li> <li> <button onClick={event => alert(event.target.id)} > <span role=”img” aria-label=”party popper” id=”party popper”>🎉</span> </button> </li> <li> <button onClick={event => alert(event.target.id)} > <span role=”img” aria-label=”woman dancing” id=”woman dancing”>💃</span> </button> </li> </ul> </div> ) }
export default App;
از آنجا که این JSX است ، onclick را به صورت camelCased درمی آورید ، به این معنی که آن را به صورت onClick اضافه کرده اید. این مشخصه onClick از یک تابع ناشناس برای بازیابی اطلاعات در مورد آیتمی که کلیک شده است استفاده می کند. شما یک تابع فلش ناشناس اضافه کردید که این رویداد را از روی دکمه کلیک شده دریاقن می کند و رویداد دارای هدفی خواهد بود که مولفه <span> است. اطلاعات مورد نیاز در مشخصه 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( <div className=”container”> <h1 id={greeting}>Hello, World</h1> <p>I am writing JSX</p> <ul> <li> <button onClick={displayEmojiName} > <span role=”img” aria-label=”grinning face” id=”grinning face”>😀</span> </button> </li> <li> <button onClick={displayEmojiName} > <span role=”img” aria-label=”party popper” id=”party popper”>🎉</span> </button> </li> <li> <button onClick={displayEmojiName} > <span role=”img” aria-label=”woman dancing” id=”woman dancing”>💃</span> </button> </li> </ul> </div> ) }
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 را برمی گردانید. چند نکته وجود دارد که هنگام نوشتن کد باید آنها را به خاطر بسپارید. ابتدا ، یک گروه از آیتم ها باید توسط یک کانتینر <div> احاطه شوند. سپس ، هر آیتم به یک مشخصه خاص به نام key نیاز دارد. Key نیاز به یک سری داده منحصر به فرد دارد که React می تواند از آنها استفاده کند تا عناصر را ردیابی کند و بداند چه موقع به روز رسانی این مؤلفه را انجام دهد. این کلید از HTML کامپایل شده خارج می شود ، زیرا فقط برای اهداف داخلی است. هر زمان که با حلقه کار می کنید ، باید یک رشته ساده را به عنوان کلید اضافه کنید. در اینجا مثال ساده ای وجود دارد که لیستی از نام ها را در یک <div> نگاشت می کند: … const names = [ “Atul Gawande”, “Stan Sakai”, “Barry Lopez” ];
return( <div> {names.map(name => <div key={name}>{name}</div>)} </div> ) …
HTML حاصل از این قرار است: … <div> <div>Atul Gawande</div> <div>Stan Sakai</div> <div>Barry Lopez</div> </div> …
تبدیل لیست ایموجی مشابه خواهد بود. <ul> کانتینر خواهد بود. روی داده ها نگاشت می کنید و <li> را با کلید نام کوتاه ایموجی برمیگردانید. شما داده های به سختی کد شده را در برچسب های <button> و <span> با اطلاعات حلقه جایگزین می کنید. در ویرایشگر متن خود موارد زیر را اضافه کنید: jsx-tutorial/src/App.js import React from ‘react’; import ‘./App.css’;
const displayEmojiName = event => alert(event.target.id); const emojis = [ { emoji: ‘😀’, name: “test grinning face” }, { emoji: ‘🎉’, name: “party popper” }, { emoji: ‘💃’, name: “woman dancing” } ];
function App() { const greeting = “greeting”; return( <div className=”container”> <h1 id={greeting}>Hello, World</h1> <p>I am writing JSX</p> <ul> { emojis.map(emoji => ( <li key={emoji.name}> <button onClick={displayEmojiName} > <span role=”img” aria-label={emoji.name} id={emoji.name}>{emoji.emoji}</span> </button> </li> )) } </ul> </div> ) } export default App; Copy
در این کد ، شما بر روی آرایه emojis در برچسب <ul> نگاشت کردید و <li> را برگرداندید. در هر <li> از نام ایموجی به عنوان مشخصه key استفاده کرده اید. دکمه همان تابع عادی را خواهد داشت. در مولفه <span> ، aria-label و id را با name جایگزین کنید. محتوای برچسب <span> باید ایموجی باشد. فایل را ذخیره کنید. پنجره شما ریفرش خواهد شد و داده ها را مشاهده خواهید کرد. توجه کنید که کلید در HTML تولید شده وجود ندارد.
ترکیب JSX با استاندارد JavaScript ابزارهای زیادی را در اختیار شما قرار می دهد تا بصورت دینامیکی محتوا را ایجاد کنید و می توانید از هر JavaScript استاندارد مورد نظر خود استفاده کنید. در این مرحله ، JSX سخت کد گذاری شده را با یک آرایه و یک حلقه جایگزین کردید تا HTML به صورت پویا ایجاد شود. در مرحله بعد ، با استفاده از اتصال کوتاه ، اطلاعات را به صورت مشروط نشان می دهید. مرحله 5 – نمایش مشروط عناصر با اتصال کوتاه در این مرحله ، از اتصال کوتاه برای نمایش مشروط عناصر HTML استفاده خواهید کرد. این کار به شما امکان می دهد تا مؤلفه هایی ایجاد کنید که بتوانند HTML را بر اساس اطلاعات اضافی پنهان کند یا نشان دهد ، و به انعطاف پذیری مولفه های شما برای رسیدگی به موقعیت های مختلف می پردازند. مواقعی وجود دارد که شما برای نشان دادن اطلاعات در بعضی آیتم ها به مؤلفه نیاز دارید و در آیتم های دیگر احتیج نیست. به عنوان مثال ، فقط در صورت صحت برخی موارد ممکن است بخواهید برای کاربر پیام هشدار نشان دهید ، یا ممکن است بخواهید برخی از اطلاعات حساب را برای ادمین نمایش دهید که نمی خواهید یک کاربر عادی آن را ببیند. برای این کار از گردش کوتاه استفاده خواهید کرد. این بدان معناست که شما از یک شرط استفاده خواهید کرد و اگر قسمت اول صادق باشد ، اطلاعات را در قسمت دوم برمی گرداند. در اینجا یک مثال مطرح شده است. اگر می خواهید یک دکمه را فقط در صورت ورود کاربر به سیستم نشان دهید ، این مولفه را در پرانتز {} قرار دهید و شرایط را قبل از آن اضافه می کنید. {isLoggedIn && <button>Log Out</button>} Copy
در این مثال ، شما در حال استفاده از عملگر && هستید که اگر همه چیز صادق باشد ، آخرین مقدار را به شما بازمی گرداند. در غیر این صورت ، false را برگردانده ، که به React می گویند هیچ نشانه گذاری اضافی را برنگرداند. اگر isLoggedIn صادق باشد ، React دکمه را نشان می دهد. اگر isLoggedIn غلط باشد ، دکمه را نشان نمی دهد. برای امتحان کردن این مسئله ، خطوط هایلایت شده زیر را اضافه کنید: jsx-tutorial/src/App.js import React from ‘react’; import ‘./App.css’;
function App() { const greeting = “greeting”; const displayAction = false; return( <div className=”container”> <h1 id={greeting}>Hello, World</h1> {displayAction && <p>I am writing JSX</p>} <ul> … </ul> </div> ) }
export default App;
در ویرایشگر متن خود متغیری به نام displayAction با مقدار false ایجاد کرده اید. سپس برچسب <p> را در {} قرار دادید. در شروع پرانتزها ، برای ایجاد شرط ، displayAction && را اضافه کردید. فایل را ذخیره کنید و خواهید دید که مولفه در مرورگر شما ناپدید می شود. مهم است بدانید ، در HTML تولید شده نیز ظاهر نمی شود. این مخفی کردن یک مولفه با CSS نیست. اصلاً در نشانه گذاری نهایی وجود نخواهد داشت.
در حال حاضر مقدار displayAction سخت کدنویسی شده است ، اما می توانید آن مقدار را به عنوان حالت ذخیره کرده یا آن را به عنوان یک پایه در قسمت مولفه های بالاسری منتقل کنید. در این مرحله یاد گرفتید که چگونه عناصر را به صورت مشروط نشان دهید. این به شما امکان می دهد تا مؤلفه هایی را تنظیم کنید که براساس اطلاعات دیگر قابل تنظیم هستند. نتیجه در این آموزش ، یک برنامه سفارشی با JSX ایجاد کردید. آموختید که چگونه عناصر HTML مانند، را به مولفه های خود اضافه کنید ، یک ظاهر طراحی را به آن عناصر اضافه کنید ، ویژگی هایی را برای ایجاد نشانه گذاری معنایی و در دسترس اضافه کنید و رویدادها را به مؤلفه ها اضافه نمایید. سپس جاوا اسکریپت را با JSX خود ترکیب کردید تا کد تکراری را کاهش داده و عناصر را به طور مشروط نشان داده و مخفی کند. این مبنایی است که شما برای ساختن مولفه های آینده نیاز دار��د. با استفاده از ترکیبی از JavaScript و HTML ، می توانید مولفه های پویا ایجاد کنید که قابل انعطاف باشند و به شما امکان می دهد برنامه تان رشد و تغییر یابد. اگر می خواهید در مورد React اطلاعات بیشتری کسب کنید ، از صفحه موضوع React ما دیدن کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
Create React App
,
HTML
,
JavaScript
,
JSX
0 notes
vpsgol12-blog · 4 years
Text
استفاده از سرور از راه دور 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باشید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فا��روال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
CPU
,
Docker
,
Docker CLI
,
Droplet
0 notes
vpsgol12-blog · 4 years
Text
نحوه نصب 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 “[email protected]
می توانیم تمام موارد پیکربندی تنظیم شده را با تایپ دستور زیر نمایش دهیم: $ git config –list
Output user.name=Your Name [email protected]
اطلاعاتی که وارد می کنید در فایل پیکربندی Git شما ذخیره می شود ، که می توانید به صورت اختیاری و دستی با یک ویرایشگر متن مانند این ویرایش کنید: $ vi ~/.gitconfig
~/.gitconfig contents [user] name = Your Name email = [email protected]
سپس برای خروج از ویرایشگر متن ESC را فشار دهید. گزینه های بسیار دیگری وجود دارد که می توانید تنظیم کنید ، اما این دو مورد ضروری هستند. اگر این مرحله را رد کنید ، احتمالاً هنگام ورود به Git هشدارهایی مشاهده خواهید کرد. این باعث می شود کار بیشتری برای شما ایجاد شود زیرا مجبور خواهید بود کارهایی را که انجام داده اید با اطلاعات اصلاح شده عوض کنید. نتیجه اکنون باید Git را نصب کرده و آماده استفاده در سیستم خود باشید. برای کسب اطلاعات بیشتر در مورد نحوه استفاده از Git ، این مقاله ها و مجموعه ها را بررسی کنید: • نحوه استفاده کارآمد از Git • نحوه استفاده از انشعابات Git • مقدمه ای بر منبع آزاد
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
BitBucket
,
Dandified YUM
,
Yellowdog Updater
0 notes
vpsgol12-blog · 4 years
Text
نصب و پیکربندی 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 … <IfModule mod_php5.c> 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 </IfModule>
خط منطقه زمانی که در بلوک کد قبلی هایلایت شده است را باطل کنید و آن را به منطقه زمانی خود تغییر دهید. می توانید از این لیست از مناطق زمانی پشتیبانی شده استفاده کنید تا یک لیست مناسب برای شما پیدا شود. سپس فایل را ذخیره کنید و ببندید. اکنون 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 proxy. 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 را بررسی کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
ن –
برچسب‌ها:
Elasticsearch
,
Oracle
,
TimescaleDB
,
Zabbix
0 notes
vpsgol12-blog · 4 years
Text
نصب وب سرور 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 <html> <head> <title>Welcome to Example.com!</title> </head> <body> <h1>Success! The example.com virtual host is working!</h1> </body> </html>
با فشردن 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 <VirtualHost *:80> 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 </VirtualHost>
این کار به 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 را مطالعه کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
Apache
,
HTTPS
0 notes
vpsgol12-blog · 4 years
Text
نصب و پیکربندی 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 … <IfModule mod_php7.c> 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 </IfModule>
خط منطقه زمانی که در بلوک کد قبلی هایلایت شده است را باطل کنید و آن را به منطقه زمانی خود تغییر دهید. می توانید از این لیست از مناطق زمانی پشتیبانی شده استفاده نمایید تا یک لیست مناسب برای خود پیدا کنید. سپس فایل را ذخیره کنید و ببندید. اکنون 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 proxy. 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 را بررسی کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
Dashboard
,
Logstash
,
Metricbeat
,
Monitoring
,
Zabbix
0 notes
vpsgol12-blog · 4 years
Text
نصب و پیکربندی 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 … <IfModule mod_php7.c> 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 </IfModule>
خط منطقه زمانی که در بلوک کد قبلی هایلایت شده است را باطل کنید و آن را به منطقه زمانی خود تغییر دهید. می توانید از این لیست از مناطق زمانی پشتیبانی شده استفاده نمایید تا یک لیست مناسب برای خود پیدا کنید. سپس فایل را ذخیره کنید و ببندید. اکنون 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 proxy. 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 را بررسی کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
Dashboard
,
Logstash
,
Metricbeat
,
Monitoring
,
Zabbix
0 notes
vpsgol12-blog · 4 years
Text
ساخت و استقرار سرور GraphQL با Node.js و MongoDB
در سال 2015 توسط فیس بوک به عنوان یک زبان پرس و جو برای API ها منتشر شد که پرس و جو و جهش داده ها از مجموعه داده های مختلف را آسان می کند. از یک نقطه پایانی واحد ، می توانید چندین منبع داده را با یک درخواست POST منفرد جستجو کنید و به جش واردارید. GraphQL برخی از نقص طراحی معمول در معماری REST API را برطرف می کند ، مانند موقعیت هایی که نقطه انتهایی اطلاعات بیشتری را نسبت به آنچه در واقع لازم دارید برمی گرداند. همچنین ، هنگام استفاده از API های REST ممکن است برای جمع آوری تمام اطلاعات مورد نیاز خود، ممکن است نیاز به ارسال درخواست به چند مورد از نقاط انتهایی REST داشته باشید – وضعیتی که به آن مشکل n + 1 گفته می شود. نمونه ای از این موارد وقتی پیش می آید که می خواهید اطلاعات کاربر را نشان دهید ، اما باید اطلاعاتی از قبیل جزئیات شخصی و آدرس ها را از نقاط مختلف جمع آوری کنید. این مشکلات برای GraphQL اعمال نمی شوند زیرا تنها یک نقطه پایانی دارد که می تواند داده ها را از چندین مجموعه بازگرداند. داده بازگشتی به پرس و جویی که به این نقطه پایانی ارسال شده بستگی دارد. در این پرس و جو ساختار داده ای را که می خواهید دریافت کنید ، از جمله هر مجموعه داده تو در تو را تعریف می کنید. علاوه بر یک پرس و جو ، می توانید از یک جهش برای تغییر داده ها روی یک سرور مجازی GraphQL و یک اشتراک نیز برای مشاهده تغییرات در داده استفاده کنید. برای کسب اطلاعات بیشتر در مورد GraphQL و مفاهیم آن ، می توانید به مطالب موجود در وب سایت رسمی مراجعه کنید. از آنجا که GraphQL یک زبان پرس و جو با انعطاف پذیری زیاد است ، به خصوص با داده های مبتنی بر مستندات مانند MongoDB ترکیب می شود. هر دو فناوری مبتنی بر طرحواره های سلسله مراتبی ، تایپ شده هستند و در جامعه جاوا اسکریپت محبوب میباشند. همچنین ، داده های MongoDB به عنوان اشیاء JSON ذخیره می شوند ، بنابراین هیچ تجزیه و تحلیل اضافی در سرور مجازی GraphQL لازم نیست. در این آموزش ، یک سرور مجازی GraphQL با Node.js ایجاد خواهید کرد و می توانید داده ها را از یک پایگاه داده MongoDB که در اوبونتو 18.04 در حال اجرا است ، پرس و جو کنید و جهش دهید. در پایان این آموزش ، شما می توانید با استفاده از یک نقطه پایانی واحد، هم با ارسال درخواست به سرور مجازی به طور مستقیم از طریق ترمینال و هم با استفاده از رابط پیش ساخته playground در GraphiQL به داده های موجود در بانک اطلاعاتی خود دسترسی داشته باشید. با استفاده از این playground می توانید محتویات سرور مجازی GraphQL را با ارسال پرس و جوها ، جهش ها و اشتراک ها کشف کنید. همچنین ، می توانید نمایش های بصری از طرح هایی را که برای این سرور مجازی تعریف شده است ، پیدا کنید. در پایان این آموزش ، شما از playground GraphiQL برای ارتباط سریع سرور مجازی GraphQL خود استفاده خواهید کرد:
پیش نیازها قبل از شروع این راهنما به موارد زیر نیاز خواهید داشت: ⦁ سرور مجازی Ubuntu 18.04 که با پیروی از راهنمای تنظیم اولیه سرور مجازی Ubuntu 18.04 تنظیم شده باشد، شامل یک کاربر sudo غیر ریشه و فایروال نیز باشد. ⦁ نصب MongoDB و اجرای آن در اوبونتو 18.04 که می توانید با دنبال کردن آموزش نحوه نصب MongoDB در اوبونتو 18.04 آن را تنظیم کنید. ⦁ Nginx نصب شده ، همانطور که در نحوه نصب Nginx در Ubuntu 18.04 مشاهده می شود ، از جمله مرحله 4 – تنظیم بلوک های سرور مجازی. ⦁ برای دسترسی از راه دور به سرور مجازی GraphQL ، به یک نام دامنه کاملاً واجد شرایط (FQDN) و یک رکورد A نیاز دارید که به IP سرور مجازی شما اشاره کند. در صورت داشتن حساب vpsgol ، می توانید اطلاعات بیشتری در مورد این مورد با خواندن طریق مقدمه DNS اصطلاحات ، مؤلفه ها و مفاهیم ، یا اسناد دامنه و DNS کسب کنید. ⦁ آشنایی با JavaScript ، که می توانید از مجموعه نحوه کدنویسی در جاواسکریپت بیاموزید. مرحله 1 – تنظیم بانک اطلاعاتی MongoDB قبل از ایجاد سرور مجازی GraphQL ، اطمینان حاصل کنید که پایگاه داده شما درست پیکربندی شده باشد ، تأیید هویت آن فعال باشد و با داده های نمونه پر شده باشد. برای این کار باید از اعلان خط فرمان به سرور مجازی Ubuntu 18.04 که پایگاه داده MongoDB است متصل شوید. کلیه مراحل این آموزش در این سرور مجازی انجام خواهد شد. بعد از برقراری اتصال ، دستور زیر را اجرا کنید تا بررسی کنید که آیا MongoDB فعال و روی سرور مجازی شما فعال است: ⦁ $ sudo systemctl status mongodb ⦁ خروجی زیر را در ترمینال خود مشاهده خواهید کرد ، نشان می دهد که بانک اطلاعاتی MongoDB به طور فعال در حال اجرا است: Output ● mongodb.service – An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-02-23 12:23:03 UTC; 1 months 13 days ago Docs: man:mongod(1) Main PID: 2388 (mongod) Tasks: 25 (limit: 1152) CGroup: /system.slice/mongodb.service └─2388 /usr/bin/mongod –unixSocketPrefix=/run/mongodb –config /etc/mongodb.conf
قبل از ایجاد دیتابیس که داده های نمونه را در آن ذخیره می کنید ، ابتدا باید یک کاربر ادمین ایجاد کنید ، زیرا کاربران عادی در یک پایگاه داده خاص قرار می گیرند. می توانید با اجرای دستور زیر که پوسته MongoDB را باز می کند ، این کار را انجام دهید: ⦁ $ mongo ⦁ با پوسته MongoDB دسترسی مستقیم به پایگاه داده MongoDB خواهید داشت و می توانید کاربران یا بانکهای اطلاعاتی و داده های پرس و جو ایجاد کنید. در داخل این پوسته ، دستور زیر را اجرا کنید که یک کاربر ادمین جدید را به MongoDB اضافه می کند. می توانید کلمات کلیدی هایلایت شده را با نام کاربری و رمز ورود خود جایگزین کنید ، اما فراموش نکنید که آنها را در جایی بنویسید. ⦁ mongo> use admin ⦁ ⦁ mongo> db.createUser({ ⦁ ⦁ mongo> user: “admin_username”, ⦁ mongo> pwd: “admin_password”, ⦁ ⦁ mongo> roles: [{ role: “root”, db: “admin”}] ⦁ ⦁ mongo> })
خط اول دستور قبلی دیتابیس را با نام ادمین انتخاب می کند ، یعنی همان دیتابیسی که تمام نقش های ادمین در آن ذخیره می شود. با روش db.createUser () می توانید کاربر واقعی ایجاد کرده و نام کاربری ، رمزعبور و نقش های آن را تعریف کنید. اجرای این فرمان خروجی زیر را برمی گرداند: Output Successfully added user: { “user” : “admin_username”, “roles” : [ { “role” : “root”, “db” : “admin” } ] }
اکنون می توانید پوسته MongoDB را با تایپ کردن exit ببندید. در مرحله بعد ، دوباره وارد پوسته MongoDB شوید ، اما این بار با کاربر adminجدید: ⦁ $ mongo -u “admin_username” -p “admin_password” –authenticationDatabase “admin” ⦁ این دستور پوسته MongoDB را به عنوان یک کاربر خاص باز می کند، که در آن پرچم -u نام کاربری و پرچم -p رمز عبور آن کاربر را مشخص می کند. پرچم اضافی –authenticationDatabase مشخص می کند که می خواهید به عنوان ادمین وارد شوید. در مرحله بعد ، به یک بانک اطلاعاتی جدید می روید و سپس از روش db.createUser () برای ایجاد یک کاربر جدید دارای مجوز برای ایجاد تغییر در این پایگاه داده استفاده می کنید. بخش هایلایت شده را با اطلاعات مورد نظر خود جایگزین کنید ، حتما این مدارک را یادداشت کنید. دستور زیر را در پوسته MongoDB اجرا کنید: ⦁ mongo> use database_name ⦁ ⦁ mongo> db.createUser({ ⦁ ⦁ mongo> user: “username”, ⦁ ⦁ mongo> pwd: “password”, ⦁ ⦁ mongo> roles: [“readWrite”] ⦁ ⦁ mongo> })
با این کار خروجی زیر باز می گردد: Output Successfully added user: { “user” : “username”, “roles” : [“readWrite”] }
پس از ایجاد دیتابیس و کاربر ، این بانک اطلاعاتی را با داده های نمونه ای پر کنید که بعداً در این آموزش توسط سرور مجازی GraphQL می توانید جستجو کنید. برای این کار ، می توانید از نمونه مجموعه bios از وب سایت MongoDB استفاده کنید. با اجرای دستورات در قطعه کد زیر ، نسخه کوچکتری از این مجموعه داده bios را در پایگاه داده خود وارد می کنید. می توانید بخش های هایلایت شده را با اطلاعات شخصی خود جایگزین کنید ، اما برای اهداف این آموزش ، نام مجموعه را bios بگذارید: ⦁ mongo> db.bios.insertMany([ ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “_id” : 1,
⦁ mongo> “name” : { ⦁ ⦁ mongo> “first” : “John”, ⦁ ⦁ mongo> “last” : “Backus” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> “birth” : ISODate(“1924-12-03T05:00:00Z”), ⦁ mongo> “death” : ISODate(“2007-03-17T04:00:00Z”), ⦁ ⦁ mongo> “contribs” : [ ⦁ ⦁ mongo> “Fortran”, ⦁ ⦁ mongo> “ALGOL”, ⦁ ⦁ mongo> “Backus-Naur Form”, ⦁ ⦁ mongo> “FP” ⦁ ⦁ mongo> ], ⦁ ⦁ mongo> “awards” : [ ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “award” : “W.W. McDowell Award”, ⦁ ⦁ mongo> “year” : 1967, ⦁ ⦁ mongo> “by” : “IEEE Computer Society” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “award” : “National Medal of Science”, ⦁ ⦁ mongo> “year” : 1975, ⦁ ⦁ mongo> “by” : “National Science Foundation” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “award” : “Turing Award”, ⦁ ⦁ mongo> “year” : 1977, ⦁ ⦁ mongo> “by” : “ACM” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “award” : “Draper Prize”, ⦁ ⦁ mongo> “year” : 1993, ⦁ ⦁ mongo> “by” : “National Academy of Engineering” ⦁ ⦁ mongo> } ⦁ ⦁ mongo> ] ⦁ mongo> }, ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “_id” : ObjectId(“51df07b094c6acd67e492f41”), ⦁ ⦁ mongo> “name” : { ⦁ ⦁ mongo> “first” : “John”, ⦁ mongo> “last” : “McCarthy” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> “birth” : ISODate(“1927-09-04T04:00:00Z”), ⦁ ⦁ mongo> “death” : ISODate(“2011-12-24T05:00:00Z”), ⦁ ⦁ mongo> “contribs” : [ ⦁ ⦁ mongo> “Lisp”, ⦁ ⦁ mongo> “Artificial Intelligence”, ⦁ ⦁ mongo> “ALGOL” ⦁ ⦁ mongo> ], ⦁ ⦁ mongo> “awards” : [ ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “award” : “Turing Award”, ⦁ ⦁ mongo> “year” : 1971, ⦁ ⦁ mongo> “by” : “ACM” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> { ⦁ mongo> “award” : “Kyoto Prize”, ⦁ ⦁ mongo> “year” : 1988, ⦁ ⦁ mongo> “by” : “Inamori Foundation” ⦁ ⦁ mongo> }, ⦁ ⦁ mongo> { ⦁ ⦁ mongo> “award” : “National Medal of Science”, ⦁ ⦁ mongo> “year” : 1990, ⦁ ⦁ mongo> “by” : “National Science Foundation” ⦁ ⦁ mongo> } ⦁ ⦁ mongo> ] ⦁ ⦁ mongo> } ⦁ ⦁ mongo> ]);
این بلوک کد آرایه ای از آبجکت های مختلفی است که حاوی اطلاعات مربوط به دانشمندان موفق گذشته میباشد. پس از اجرای این دستورات برای وارد کردن این مجموعه به پایگاه داده خود ، پیام زیر را دریافت خواهید کرد که نشان می دهد داده ها اضافه شده اند: Output { “acknowledged” : true, “insertedIds” : [ 1, ObjectId(“51df07b094c6acd67e492f41”) ] }
پس از مشاهده پیام موفقیت ، می توانید پوسته MongoDB را با تایپ کردن exit ببندید. در مرحله بعد ، نصب MongoDB را پیکربندی کنید تا مجوز را فعال کنید و فقط کاربران معتبر بتوانند به داده ها دسترسی پیدا کنند. برای ویرایش پیکربندی نصب MongoDB ، فایل حاوی تنظیمات این نصب را باز کنید: ⦁ $ sudo nano /etc/mongodb.conf ⦁ برای فعال کردن مجوز ، خط هایلایت شده را در کد زیر را باطل کنید: /etc/mongodb.conf … # Turn on/off security. Off is currently the default #noauth = true auth = true …
برای فعال کردن این تغییرات ، MongoDB را مجدداً راه اندازی کنید: ⦁ $ Sudo systemctl restart mongodb ⦁ با اجرای دستور مطمئن شوید که پایگاه داده دوباره در حال اجرا است: ⦁ $ sudo systemctl status mongodb ⦁ خروجی زیر را مشاهده خواهید کرد: Output ● mongodb.service – An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-02-23 12:23:03 UTC; 1 months 13 days ago Docs: man:mongod(1) Main PID: 2388 (mongod) Tasks: 25 (limit: 1152) CGroup: /system.slice/mongodb.service └─2388 /usr/bin/mongod –unixSocketPrefix=/run/mongodb –config /etc/mongodb.conf
برای اطمینان از اینکه کاربر شما می تواند به دیتابیسی که ایجاد کرده اید وصل شود ، سعی کنید پوسته MongoDB را به عنوان یک کاربر معتبر با دستور زیر باز کنید: ⦁ $ mongo -u “username” -p “password” –authenticationDatabase “database_name” ⦁
از همان پرچم های قبلی استفاده میکند، فقط این بار –authenticationDatabase روی پایگاه داده ای که ایجاد کرده اید تنظیم میشود و با داده های نمونه پر میگردد. اکنون با موفقیت یک کاربر ادمین و کاربر دیگری را اضافه کرده اید که دسترسی به خواندن / نوشتن اطلاعات پایگاه داده با داده های نمونه را دارد. همچنین ، پایگاه داده دارای مجوزهای فعال است به این معنی که یک نام کاربری و رمزعبور برای دسترسی به آن نیاز دارید. در مرحله بعد سرور مجازی GraphQL را ایجاد خواهید کرد که بعداً در آموزش به این پایگاه داده وصل می شود. مرحله دوم – ایجاد سرور مجازی GraphQL با پیکربندی پایگاه داده و پر شدن با داده های نمونه ، زمان آن رسیده که یک سرور مجازی GraphQL ایجاد کنیم که بتواند این داده ها را پرس و جو کند و جهش دهد. برای این کار از Express و express-Graphql استفاده می کنید ، که هر دو در Node اجرا می شوند. Express یک چارچوب سبک برای ایجاد سریع سرور مجازی های HTTP Node.js است و Express-Graphql میان افزار را برای ایجاد سریع سرور مجازی های GraphQL امکان پذیر می کند. اولین قدم اطمینان از به روزرسانی دستگاه شما است: ⦁ $ sudo apt update ⦁ در مرحله بعد با اجرای دستورات زیر Node.js را روی سرور مجازی خود نصب کنید. به همراه Node.js همچنین npm را نصب خواهید کرد ، یک مدیر بسته برای JavaScript که روی Node.js. اجرا می شود. ⦁ $ sudo apt install nodejs npm ⦁ پس از طی مراحل نصب ، بررسی کنید که آیا نسخه Node.js که اخیراً نصب کرده اید v8.10.0 یا بالاتر است: ⦁ $ node -v ⦁ با این کار خروجی زیر باز می گردد: Output v8.10.0
برای شروع یک پروژه جدید JavaScript ، دستورات زیر را به عنوان کاربر sudo روی سرور مجازی اجرا کنید و کلمات کلیدی هایلایت شده را با نامی برای پروژه خود جایگزین کنید. ابتدا وارد دیرکتوری اصلی سرور مجازی خود شوید: ⦁ $ cd ⦁ پس از آنجا دایرکتوری جدیدی به همراه نام پروژه خود ایجاد کنید: ⦁ $ mkdir project_name ⦁ به این دیرکتوری بروید: ⦁ $ cd project_name ⦁ در آخر ، یک بسته npm جدید را با دستور زیر تنظیم کنید: ⦁ $ sudo npm init -y ⦁ بعد از اجرای npm init- پیام موفقیتی را دریافت خواهید کرد که فایل pack.json زیر ایجاد شده است: Output Wrote to /home/username/project_name/package.json:
{ “name”: “project_name”, “version”: “1.0.0”, “description”: “”, “main”: “index.js”, “scripts”: { “test”: “echo \”Error: no test specified\” && exit 1″ }, “keywords”: [], “author”: “”, “license”: “ISC” }
توجه: همچنین می توانید npm init را بدون پرچم -y اجرا کنید ، که پس از آن به سؤالات مختلفی برای تنظیم نام پروژه ، نویسنده ، و غیره پاسخ می دهید. می توانید جزئیات را وارد کنید یا فقط برای ادامه کلید Enter را بزنید.
اکنون که پروژه را آغاز کردید ، بسته های لازم برای راه اندازی سرور مجازی GraphQL را نصب کنید: ⦁ $ sudo npm install –save express express-graphql graphql ⦁ یک فایل جدید با نام index.js ایجاد کنید و متعاقباً با اجرای دستور زیر این فایل را باز کنید: ⦁ $ sudo nano index.js ⦁ در مرحله بعد ، بلوک کد زیر را در فایل تازه ایجاد شده برای تنظیم سرور مجازی GraphQL اضافه کنید: index.js const express = require(‘express’); const graphqlHTTP = require(‘express-graphql’); const { buildSchema } = require(‘graphql’);
// Construct a schema, using GraphQL schema language const schema = buildSchema(` type Query { hello: String } `);
// Provide resolver functions for your schema fields const resolvers = { hello: () => ‘Hello world!’ };
const app = express(); app.use(‘/graphql’, graphqlHTTP({ schema, rootValue: resolvers })); app.listen(4000);
console.log(`🚀 Server ready at http://localhost:4000/graphql`);
این بلوک کد از چندین بخش تشکیل شده است که همه مهم هستند. ابتدا شمای داده هایی را که توسط GraphQL API برگردانده شده است شرح می دهید: index.js … // Construct a schema, using GraphQL schema language const schema = buildSchema(` type Query { hello: String } `); … نوع Query تعریف می کند چه پرس و جوهایی میتوانند اجرا شوند و به چه فرمتی می توانند نتیجه را برگردانند. همانطور که مشاهده می کنید ، تنها پرس و جوی تعریف شده hello است که داده ها را با فرمت String برمی گرداند. در بخش بعدی ، resolvers تعیین می شوند ، جایی که داده ها با طرح هایی که می توانید پرس و جو کنند ، هماهنگ می شوند: index.js … // Provide resolver functions for your schema fields const resolvers = { hello: () => ‘Hello world!’ }; …
این resolverها مستقیماً با طرحواره ها مرتبط هستند و داده هایی را که با این طرح ها مطابقت دارد ، برمی گردانند. قسمت پایانی این بلاک کد سرور مجازی GraphQL را آغاز می کند ، نقطه پایانی API را با Express ایجاد می کند و پورتی را که انتهای GraphQL در آن در حال اجرا است توضیح می دهد: index.js … const app = express(); app.use(‘/graphql’, graphqlHTTP({ schema, rootValue: resolvers })); app.listen(4000);
console.log(`🚀 Server ready at http://localhost:4000/graphql`);
بعد از افزودن این خطوط ، ذخیره کنید و از index.js خارج شوید. در مرحله بعد ، برای اجرای سرور مجازی GraphQL ، باید فایل index.js را با Node.js. اجرا کنید. این کار به صورت دستی از خط فرمان قابل انجام است ، اما معمول است که فایل pack.json را تنظیم کنید تا این کار برای شما انجام شود. فایل pack.json را باز کنید: ⦁ $ sudo nano package.json ⦁ خط هایلایت شده زیر را به این فایل اضافه کنید: package.json { “name”: “project_name”, “version”: “1.0.0”, “description”: “”, “main”: “index.js”, “scripts”: { “start”: “node index.js”, “test”: “echo \”Error: no test specified\” && exit 1″ }, “keywords”: [], “author”: “”, “license”: “ISC” } فایل را ذخیره کنید و از آن خارج شوید. برای راه اندازی سرور مجازی GraphQL ، دستور زیر را در ترمینال اجرا کنید: ⦁ $ npm start ⦁ پس از اجرای این برنامه ، اعلان ترمینال ناپدید می شود و پیامی برای تأیید سرور مجازی GraphQL ظاهر می شود: Output 🚀 Server ready at http://localhost:4000/graphql
اگر اکنون بخش ترمینال دیگری را باز کرده اید ، می توانید با اجرای دستور زیر آزمایش کنید که آیا سرور مجازی GraphQL در حال اجرا است. این کار درخواست POST curlرا با بدنه JSON پس از پرچم –data که شامل پرس و جوی GraphQL شما به نقطه انتهایی محلی است ارسال می کند: ⦁ $ curl -X POST -H “Content-Type: application/json” –data ‘{ “query”: “{ hello }” }’ http://localhost:4000/graphql ⦁ با این کار پرس و جو همانطور که در شمای GraphQL در کد شما شرح داده شده است اجرا می شود و داده ها را با فرمت JSON قابل پیش بینی که یکسان با داده های برگشت یافته در resolver هاست، اجرا می کند: Output { “data”: { “hello”: “Hello world!” } }
توجه: در صورت خراب شدن یا گیر نکردن سرور مجازی اکسپرس ، باید فرایند node که روی سرور مجازی اجرا می شود را به صورت دستی از بین ببرید. برای لغو همه این مراحل ، می توانید موارد زیر را اجرا کنید: ⦁ $ killall node ⦁ پس از آن می توانید با دستور زیر، سرور مجازی GraphQL مجدداً راه اندازی کنید: ⦁ $ npm start ⦁ در این مرحله شما اولین نسخه از سرور مجازی GraphQL را ایجاد کرده اید که هم اکنون در یک نقطه پایانی محلی اجرا می شود که به سرور مجازی شما قابل دسترسی است. در مرحله بعد ، resolver های خود را به پایگاه داده MongoDB وصل خواهید کرد. مرحله 3 – اتصال به بانک اطلاعاتی MongoDB با نظم گیری سرور مجازی GraphQL ، اکنون می توانید ارتباط را با پایگاه داده MongoDB که قبلاً پیکربندی کرده و پر از داده کرده اید ، تنظیم نمایید و یک طرح جدید ایجاد کنید که مطابق با این داده ها باشد. برای اینکه بتوانید از سرور مجازی GraphQL به MongoDB متصل شوید ، بسته JavaScript را برای MongoDB از npm نصب کنید: ⦁ $ sudo npm install –save mongodb ⦁ پس از نصب ، index.js را در ویرایشگر متن خود باز کنید: ⦁ $ sudo nano index.js ⦁ سپس ، کد هایلایت شده زیر را درست بعد از متعلقات وارد شده به index.js اضافه کنید و مقادیر هایلایت شده را با جزئیات اتصال خود به پایگاه داده محلی MongoDB پر کنید. نام کاربری ، رمز عبور و نام پایگاه داده همان مواردی هستند که در مرحله اول این آموزش ایجاد کرده اید. index.js const express = require(‘express’); const graphqlHTTP = require(‘express-graphql’); const { buildSchema } = require(‘graphql’); const { MongoClient } = require(‘mongodb’);
const context = () => MongoClient.connect(‘mongodb://username:password@localhost:27017/database_name’, { useNewUrlParser: true }).then(client => client.db(‘database_name’)); …
این خطوط اتصال به پایگاه داده محلی MongoDB را به تابعی به نام context اضافه می کنند. این تابع context در دسترس هر resolver خواهد بود ، به همین دلیل شما از این گزینه برای تنظیم اتصالات بانک اطلاعاتی استفاده می کنید. در مرحله بعد ، در فایل index.js ، با وارد کردن خطوط هایلایت شده زیر ، تابع context را برای مقداردهی اولیه سرور مجازی GraphQL اضافه کنید: index.js … const app = express(); app.use(‘/graphql’, graphqlHTTP({ schema, rootValue: resolvers, context })); app.listen(4000);
console.log(`🚀 Server ready at http://localhost:4000/graphql`);
اکنون می توانید این تابع context را از طریق resolver های خود فراخوانی کنید و از این طریق متغیرهایی را از پایگاه داده MongoDB بخوانید. اگر به مرحله اول این آموزش بازگردید ، می توانید ببینید که کدام مقادیر در پایگاه داده وجود دارد. از اینجا ، یک طرح جدید GraphQL را تعریف کنید که با این ساختار داده مطابقت دارد. مقدار قبلی را برای طرحواره ثابت با خطوط هایلایت شده زیر بازنویسی کنید: index.js … // Construct a schema, using GrahQL schema language const schema = buildSchema(` type Query { bios: [Bio] } type Bio { name: Name, title: String, birth: String, death: String, awards: [Award] } type Name { first: String, last: String }, type Award { award: String, year: Float, by: String } `); …
نوع Query تغییر کرده است و اکنون مجموعه ای از نوع جدید Bio را برمی گرداند. این نوع جدید شامل چندین نوع از جمله دو نوع غیر اسکالر دیگر name و awards است ، به این معنی که این نوع ها با یک قالب از پیش تعریف شده مانند String یا Float مطابقت ندارند. برای اطلاعات بیشتر در مورد تعریف طرح های GraphQL می توانید به مستندات مربوط به GraphQL مراجعه کنید. همچنین ، از آنجا که resolver ها داده را از دیتابیس به شماتیک گره می زنند ، هنگام ایجاد تغییر در طرح ، کد را برای resolver ها به روز کنید. یک resolver جدید ایجاد کنید که به آن bios گفته می شود ، , برابر با Query است که می توانید در طرحواره و نام مجموعه در بانک اطلاعاتی پیدا کنید. توجه داشته باشید که در این حالت ، نام مجموعه در db.collection (“bios”) ، bios است ، اما اگر نام دیگری به مجموعه خود اختصاص داده باشید ، این نام تغییر خواهد کرد. خط هایلایت شده زیر را به index.js اضافه کنید: index.js … // Provide resolver functions for your schema fields const resolvers = { bios: (args, context) => context().then(db => db.collection(‘bios’).find().toArray()) }; …
این تابع از تابع context استفاده می کند ، که می توانید برای بازیابی متغیرها از پایگاه داده MongoDB استفاده کنید. پس از انجام این تغییرات در کد ، index.js را ذخیره کنید و از آن خارج شوید. برای فعال سازی این تغییرات ، باید سرور مجازی GraphQL را مجدداً راه اندازی کنید. با استفاده از ترکیب صفحه کلید CTRL + C می توانید روند فعلی را متوقف کرده و با اجرای دستور زیر، سرور مجازی GraphQL را شروع کنید: ⦁ $ npm start ⦁ اکنون می توانید از طرحواره به روز شده استفاده کرده و داده هایی را که درون پایگاه داده است ، جستجو کنید. اگر به طرحواره نگاه کنید ، خواهید دید که Query برای bios نوع Bio را برمی گرداند. همچنین می تواند type name را برگرداند. برای بازگرداندن تمام اسامی اول و خانوادگی برای همه bioها در پایگاه داده ، درخواست زیر را در یک پنجره ترمینال جدید به سرور مجازی GraphQL بفرستید: ⦁ curl -X POST -H “Content-Type: application/json” –data ‘{ “query”: “{ bios { name { first, last } } }” }’ http://localhost:4000/graphql ⦁ دوباره یک آبجکت JSON را که مطابق با ساختار طرح است برمی گرداند: Output {“data”:{“bios”:[{“name”:{“first”:”John”,”last”:”Backus”}},{“name”:{“first”:”John”,”last”:”McCarthy”}}]}}
به راحتی می توانید با گسترش پرس و جو با هر یک از انواع توصیف شده در نوع Bio ، متغیرهای بیشتری را از بایوس بازیابی کنید. همچنین ، می توانید با مشخص کردن یک id ، bio را بازیابی کنید. برای انجام این کار باید نوع دیگری به Query اضافه کنید و resolver ها را گسترش دهید. به این منظور ، index.js را در ویرایشگر متن خود باز کنید: ⦁ $ sudo nano index.js ⦁ خطوط هایلایت شده کد را اضافه کنید: index.js … // Construct a schema, using GrahQL schema language const schema = buildSchema(` type Query { bios: [Bio] bio(id: Int): Bio }
// Provide resolver functions for your schema fields const resolvers = { bios: (args, context) => context().then(db => db.collection(‘bios’).find().toArray()), bio: (args, context) => context().then(db => db.collection(‘bios’).findOne({ _id: args.id })) }; …
فایل را ذخیره کنید و از آن خارج شوید. در ترمینالی که سرور مجازی GraphQL شما در حال اجراست ، CTRL + C را فشار دهید تا آن را از حالت اجرا متوقف کنید، سپس دستور زیر را برای راه اندازی مجدد آن اجرا کنید: ⦁ $ npm start ⦁ در پنجره ترمینال دیگر ، درخواست GraphQL زیر را اجرا کنید:
⦁ $ curl -X POST -H “Content-Type: application/json” –data ‘{ “query”: “{ bio(id: 1) { name { first, last } } }” }’ http://localhost:4000/graphql ⦁
ورودی برای bio که دارای شناسه برابر با 1 است را برمی گرداند: Output { “data”: { “bio”: { “name”: { “first”: “John”, “last”: “Backus” } } } }
توانایی جستجوی داده ها از یک پایگاه داده تنها ویژگی GraphQL نیست. همچنین می توانید داده ها را در دیتابیس تغییر دهید. برای انجام این کار ، index.js را باز کنید: ⦁ $ sudo nano index.js ⦁ در کنار نوع Query می توانید از نوع Mutation نیز استفاده کنید که به شما امکان می دهد پایگاه داده را جهش دهید. برای استفاده از این نوع ، آن را به طرح اضافه کنید و همچنین با وارد کردن این خطوط هایلایت شده ، انواع ورودی را ایجاد کنید: index.js … // Construct a schema, using GraphQL schema language const schema = buildSchema(` type Query { bios: [Bio] bio(id: Int): Bio } type Mutation { addBio(input: BioInput) : Bio } input BioInput { name: NameInput title: String birth: String death: String } input NameInput { first: String last: String } …
این نوع ورودی ها تعریف می کنند که کدام متغیرها می توانند به عنوان ورودی استفاده شوند ، که می توانید به آنها در resolver ها دسترسی داشته باشید و از آنها برای درج یک سند جدید در بانک اطلاعاتی استفاده کنید. این کار را با اضافه کردن سطرهای زیر به index.js انجام دهید: index.js … // Provide resolver functions for your schema fields const resolvers = { bios: (args, context) => context().then(db => db.collection(‘bios’).find().toArray()), bio: (args, context) => context().then(db => db.collection(‘bios’).findOne({ _id: args.id })), addBio: (args, context) => context().then(db => db.collection(‘bios’).insertOne({ name: args.input.name, title: args.input.title, death: args.input.death, birth: args.input.birth})).then(response => response.ops[0]) }; …
درست همانطور که در مورد resolver ها برای جستارهای معمول گفته شد ، شما باید یک مقدار از resolver در index.js را برگردانید. در مورد جهش که نوع Bio در آن جهش یافته است ، مقدار bio جهش یافته را برمی گردانید. در این مرحله ، فایل index.js شما شامل سطرهای زیر خواهد بود: index.js iconst express = require(‘express’); const graphqlHTTP = require(‘express-graphql’); const { buildSchema } = require(‘graphql’); const { MongoClient } = require(‘mongodb’);
const context = () => MongoClient.connect(‘mongodb://username:password@localhost:27017/database_name’, { useNewUrlParser: true }) .then(client => client.db(‘GraphQL_Test’));
// Construct a schema, using GraphQL schema language const schema = buildSchema(` type Query { bios: [Bio] bio(id: Int): Bio } type Mutation { addBio(input: BioInput) : Bio } input BioInput { name: NameInput title: String birth: String death: String } input NameInput { first: String last: String } type Bio { name: Name, title: String, birth: String, death: String, awards: [Award] } type Name { first: String, last: String }, type Award { award: String, year: Float, by: String } `);
// Provide resolver functions for your schema fields const resolvers = { bios: (args, context) =>context().then(db => db.collection(‘Sample_Data’).find().toArray()), bio: (args, context) =>context().then(db => db.collection(‘Sample_Data’).findOne({ _id: args.id })), addBio: (args, context) => context().then(db => db.collection(‘Sample_Data’).insertOne({ name: args.input.name, title: args.input.title, death: args.input.death, birth: args.input.birth})).then(response => response.ops[0]) };
const app = express(); app.use(‘/graphql’, graphqlHTTP({ schema, rootValue: resolvers, context })); app.listen(4000);
console.log(`🚀 Server ready at http://localhost:4000/graphql`);
ذخیره کنید و از index.js خارج شوید. برای بررسی اینکه جهش جدید شما در حال کار است ، با فشار دادن CTRL + c و اجرای npm در ترمینالی که سرور مجازی GraphQL شما را اجرا می کند ، سرور مجازی GraphQL را مجدداً راه اندازی کنید ، سپس یک بخش ترمینال دیگر را برای اجرای درخواست curl زیر باز کنید. درست مانند درخواست curl برای پرس و جو ، بدنه در پرچم –data به سرور مجازی GraphQL ارسال می شود. قسمت های هایلایت شده به دیتابیس اضافه می شود: ⦁ $ curl -X POST -H “Content-Type: application/json” –data ‘{ “query”: “mutation { addBio(input: { name: { first: \”test\”, last: \”user\” } }) { name { first, last } } }” }’ http://localhost:4000/graphql ⦁ نتیجه زیر را به همراه دارد ، بدین معنی که شما یک bio جدید را به بانک اطلاعاتی وارد کرده اید: Output { “data”: { “addBio”: { “name”: { “first”: “test”, “last”: “user” } } } }
در این مرحله ارتباط خود را با MongoDB و سرور مجازی GraphQL ایجاد کردید و با اجرای پرس و جوهای GraphQL می توانید داده ها را از این پایگاه داده بازیابی کنید و جهش دهید. در مرحله بعد ، این سرور مجازی GraphQL را برای دسترسی از راه دور قرار می دهید. مرحله 4 – اجازه دسترسی از راه دور با راه اندازی بانک اطلاعاتی و سرور مجازی GraphQL ، اکنون می توانید سرور مجازی GraphQL را پیکربندی کنید تا امکان دسترسی از راه دور فراهم شود. برای این کار از Nginx استفاده می کنید ، که در آموزش پیش نیاز نحوه نصب Nginx در اوبونتو 18.04 این کار را انجام دادید. این پیکربندی Nginx را می توان در فایل /etc/nginx/sites-available/example.com یافت ، جایی که example.com نام سرور مجازی ی است که در آموزش پیش نیاز اضافه کردید. این فایل را برای ویرایش باز کنید و نام دامنه خود را در example.com جایگزین کنید: ⦁ $ sudo nano /etc/nginx/sites-available/example.com ⦁ در این فایل می توانید یک بلوک سرور مجازی پیدا کنید که به پورت 80 گوش می دهد ، جایی که در حال حاضر مقداری برای server_name در آموزش پیش نیاز تنظیم کرده اید. در داخل این بلوک سرور مجازی ، مقدار root را تغییر دهید تا دایرکتوری باشد که در آن کد را برای سرور مجازی GraphQL ایجاد کرده و index.js را به عنوان فهرست اضافه می کنید. همچنین ، در بلوک لوکیشن ، یک proxy_pass تنظیم کنید تا بتوانید از IP سرور مجازی یا نام دامنه دلخواه خود برای مراجعه به سرور مجازی GraphQL استفاده کنید: /etc/nginx/sites-available/example.com server { listen 80; listen [::]:80;
root /project_name; index index.js;
server_name example.com;
location / { proxy_pass http://localhost:4000/graphql; } }
با اجرای دستور زیر مطمئن شوید که هیچ خطای نحوی Nginx در این فایل پیکربندی وجود ندارد: ⦁ $ sudo nginx -t ⦁ خروجی زیر را دریافت خواهید کرد: Output nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
هنگامی که هیچ خطایی برای فایل پیکربندی یافت نشد ، Nginx را مجدداً راه اندازی کنید: ⦁ $ sudo systemctl restart nginx ⦁ اکنون می توانید با اجرا و جایگزین کردن example.com توسط IP سرور مجازی یا نام دامنه شخصی خود به سرور مجازی GraphQL خود از هر تب بخش ترمینال دسترسی داشته باشید: ⦁ $ curl -X POST -H “Content-Type: application/json” –data ‘{ “query”: “{ bios { name { first, last } } }” }’ http://example.com ⦁ همان آبجکت JSON به شیوه مرحله قبلی را برمی گرداند که شامل هر داده اضافی است که ممکن است با استفاده از یک جهش ، اضافه کرده باشید. Output {“data”:{“bios”:[{“name”:{“first”:”John”,”last”:”Backus”}},{“name”:{“first”:”John”,”last”:”McCarthy”}},{“name”:{“first”:”test”,”last”:”user”}}]}}
اکنون که سرور مجازی GraphQL را از راه دور در دسترس قرار داده اید ، هنگام بستن ترمینال یا راه اندازی مجدد سرور مجازی ، مطمئن شوید که سرور مجازی GraphQL شما متوقف نمیشود. به این ترتیب ، هر زمان که بخواهید درخواست کنید ، پایگاه داده MongoDB شما از طریق سرور مجازی GraphQL قابل دسترسی خواهد بود. برای انجام این کار ، از بسته npm forever استفاده کنید ، یک ابزار CLI که تضمین می کند اسکریپت های خط فرمان شما به طور مداوم اجرا میشوند یا در صورت بروز هرگونه خرابی مجدداً راه اندازی می شوند. Forever را با npm نصب کنید: ⦁ $ sudo npm install forever -g ⦁ پس از انجام کار نصب ، آن را به فایل pack.json اضافه کنید: package.json { “name”: “project_name”, “version”: “1.0.0”, “description”: “”, “main”: “index.js”, “scripts”: { “start”: “node index.js”, “deploy”: “forever start –minUptime 2000 –spinSleepTime 5 index.js”, “test”: “echo \”Error: no test specified\” && exit 1″ }, …
برای راه اندازی سرور مجازی GraphQL با forever فعال ، دستور زیر را اجرا کنید: ⦁ $ npm run deploy ⦁ با این کار فایل index.js حاوی سرور مجازی GraphQL با forever شروع می شود و اطمینان حاصل می کند که در صورت عدم موفقیت ، با حداقل زمان اجرای 2000 میلی ثانیه و 5 میلی ثانیه در هر راه اندازی مجدد کار خود را ادامه می دهید. سرور مجازی GraphQL اکنون به طور مداوم در پس زمینه اجرا می شود ، بنابراین دیگر وقتی می ��واهید یک درخواست به سرور مجازی ارسال کنید ، دیگر نیازی به باز کردن تب جدید ندارید. اکنون یک سرور مجازی GraphQL ایجاد کرده اید که از MongoDB برای ذخیره داده استفاده می کند و برای دسترسی به سرور مجازی از راه دور تنظیم شده است. در مرحله بعدی می توانید playground را درGraphiQL را فعال کنید ، که این امکان را برای شما فراهم می کند که سرور مجازی GraphQL را بازرسی کنید. مرحله 5 – فعال کردن playground GraphiQL توانایی ارسال درخواستهای cURL به سرور مجازی GraphQL بسیار عالی است ، اما با داشتن یک رابط کاربری که بتواند بلافاصله درخواستهای GraphQL را اجرا کند ، به خصوص هنگام توسعه ، سریعتر خواهد بود. برای این کار می توانید از GraphiQL ، واسط پشتیبانی شده توسط بسته express-Graphql استفاده کنید. برای فعال کردن GraphiQL ، فایل index.js را ویرایش کنید: ⦁ $ sudo nano index.js ⦁ خطوط هایلایت شده زیر را اضافه کنید: index.js const app = express(); app.use(‘/graphql’, graphqlHTTP({ schema, rootValue: resolvers, context, graphiql: true })); app.listen(4000);
console.log(`🚀 Server ready at http://localhost:4000/graphql`);
فایل را ذخیره کنید و از آن خارج شوید. برای اینکه این تغییرات قابل مشاهده باشند ، با اجرای دستور زیر forever را متوقف شوید: ⦁ $ forever stop index.js ⦁ سپس ، دوباره forever را شروع کنید تا آخرین نسخه سرور مجازی QL در حال اجرا را ببینید ⦁ $ npm run deploy ⦁
یک مرورگر به آدرس http://example.com باز کنید ، و جایگزین example.com را با نام دامنه یا IP سرور مجازی خود جایگزین کنید. playground GraphiQL را خواهید دید که در آن می توانید درخواست های GraphQL را تایپ کنید.
در سمت چپ این playground می توانید پرس و جوهای GraphQL و جهش ها را تایپ کنید ، در حالی که خروجی در سمت راست playground نشان داده خواهد شد. برای آزمایش اینکه آیا کار می کند ، عبارت زیر را در سمت چپ تایپ کنید: query { bios { name { first last } } }
نتیجه مشابه در سمت راست playground ، دوباره با فرمت JSON را نشان میدهد:
اکنون می توانید درخواست های GraphQL را با استفاده از ترمینال و playground GraphiQL ارسال کنید. نتیجه در این آموزش پایگاه داده MongoDB را تنظیم کرده و داده ها را از این پایگاه داده با استفاده از GraphQL ، Node.js و Express برای سرور مجازی بازیابی می کنید و جهش میدهید. علاوه بر این ، Nginx را پیکربندی کردید تا امکان دسترسی از راه دور به این سرور مجازی را فراهم کند. نه تنها می توانید درخواست ها را به طور مستقیم به این سرور مجازی GraphQL ارسال کنید ، بلکه می توانید از GraphiQL به عنوان یک رابط GraphQL در مرورگر GraphQL نیز استفاده کنید. اگر می خواهید در مورد GraphQL اطلاعات کسب کنید ، می توانید فیلم ضبط شده از ارائه من در GraphQL را در NDC {London watch} مشاهده کنید یا برای آموزش در مورد GraphQL به وب سایت howtographql.com مراجعه کنید. برای مطالعه چگونگی تعامل GraphQL با سایر فناوری ها ، به آموزش نحوه تنطیم دستی سرور مجازی Prisma در اوبونتو 18.04 نگاهی بیاندازید، و برای کسب اطلاعات بیشتر در مورد ساخت برنامه های کاربردی با MongoDB ، به نحوه ایجاد بلاگ با Nest.js ، MongoDB و Vue.js مراجعه کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
GraphQL
,
MongoDB
,
Node.js
0 notes
vpsgol12-blog · 4 years
Text
نصب و ایمن سازی phpMyAdmin با Nginx در سرور
در حالی که بسیاری از کاربران به عملکرد سیستم دیتابیس مانند MySQL نیاز دارند ، تعامل با سیستم صرفاً از طریق سرویس دهنده خط فرمان MySQL نیاز به آشنایی با زبان SQL دارد ، بنابراین ممکن است برای بعضی ها رابط ارجح نباشد. phpMyAdmin به گونه ای ایجاد شده است که کاربران بتوانند از طریق یک رابط وب بصری با MySQL در تعامل باشند که در کنار یک محیط توسعه PHP اجرا شود. در این راهنما ، در مورد نحوه نصب phpMyAdmin روی سرور Nginx و نحوه پیکربندی سرور برای افزایش امنیت بحث خواهیم کرد. توجه: در هنگام استفاده از نرم افزاری مانند phpMyAdmin ملاحظات امنیتی مهمی وجود دارد ، از آنجا که بر روی سرور پایگاه داده اجرا می شود ، با اعتبارات پایگاه داده در ارتباط است ، و کاربر را قادر می سازد تا به راحتی پرس و جوهای SQL دلخواه را در پایگاه داده شما اجرا کند. از آنجا که phpMyAdmin یک برنامه PHP با استقرار گسترده است ، اغلب مورد حمله قرار می گیرد. در این آموزش برخی اقدامات امنیتی که می توانید انجام دهید را مرور خواهیم کرد تا بتوانید تصمیماتی آگاهانه بگیرید.
پیش نیازها قبل از شروع این راهنما ، به موارد زیر نیاز خواهید داشت: • سرور Ubuntu 18.04 که دارای یک پشته LEMP (Linux ، Nginx ، MySQL و PHP) و ایمن شده با ufw باشد ، همانطور که در راهنمای تنظیم اولیه سرور برای اوبونتو 18.04 شرح داده شده است. اگر هنوز سرور خود را تنظیم نکرده اید ، می توانید راهنمای نصب پشته LEMP در اوبونتو 18.04 را دنبال کنید. • دسترسی به این سرور به عنوان یک کاربر غیر ریشه با امتیازات sudo. از آنجا که phpMyAdmin احراز هویت را با استفاده از اعتبار MySQL انجام می دهد ، توصیه می شود یک SSL / TLS نصب کنید تا بتوانید ترافیک رمزگذاری شده بین سرور و کلاینت را فعال کنید. اگر دامنه موجود که با گواهی معتبر پیکربندی شده باشد ندارید ، می توانید این راهنما را در مورد ایمن سازی Nginx با let’s Encrypt در Ubuntu 18.04 دنبال کنید. هشدار: اگر گواهی SSL / TLS را روی سرور نصب نکرده اید و همچنان مایل به ادامه کار هستید ، لطفاً دسترسی از طریق تونل های SSH را همانطور که در مرحله 5 این راهنما توضیح داده شده است ، در نظر بگیرید. هنگامی که این پیش نیازها را انجام دادید ، می توانید با ادامه این راهنما پیش بروید. مرحله 1 – نصب phpMyAdmin اولین کاری که باید انجام دهیم نصب phpMyAdmin روی سرور LEMP است. ما می خواهیم از مخازن پیش فرض اوبونتو برای رسیدن به این هدف استفاده کنیم. بیایید با به روزرسانی فهرست بسته سرور با دستور زیر شروع کنیم: ⦁ $ sudo apt update ⦁ اکنون می توانید phpMyAdmin را با این دستور نصب کنید: ⦁ $ sudo apt install phpmyadmin ⦁ در طی مراحل نصب ، از شما خواسته می شود تا وب سرور (Apache یا Lighthttp) را برای پیکربندی انتخاب کنید. از آنجا که ما از Nginx به عنوان وب سرور استفاده می کنیم ، نباید اینجا انتخابی انجام دهیم. برای رفتن به مرحله بعدی ، tab را فشار داده و سپس OK را بزنید. در مرحله بعد ، از شما خواسته می شود كه برای پیكربندی پایگاه داده برنامه از dbconfig-common استفاده شود یا خیر. yes را انتخاب کنید. این کار پایگاه داده داخلی و کاربر admin را برای phpMyAdmin تنظیم می کند. از شما خواسته می شود رمز جدید را برای کاربر phpmyadmin MySQL تعریف کنید. همچنین می توانید آن را خالی بگذارید و به phpMyAdmin اجازه دهید بطور تصادفی یک رمز عبور ایجاد کند. اکنون نصب تمام می شود. برای اینکه سرور وب Nginx به درستی فایلهای phpMyAdmin را پیدا و ارائه کند ، باید یک لینک نمادین از فایلهای نصب به دیرکتوری اصلی سند Nginx بسازیم: ⦁ $ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin ⦁ نصب phpMyAdmin شما اکنون عملیاتی است. برای دسترسی به رابط ، به نام دامنه یا آدرس IP عمومی سرور خود که پس از آن / phpmyadmin در مرورگر وب وجود دارد ، بروید: https://server_domain_or_IP/phpmyadmin
همانطور که قبلاً نیز گفته شد ، phpMyAdmin با استفاده از اعتبار MySQL ، احراز هویت را کنترل می کند ، به این معنی که شما باید از همان نام کاربری و رمز عبوری که معمولاً برای اتصال به بانک اطلاعاتی از طریق کنسول یا از طریق API استفاده می کنید ، استفاده نمایید. اگر در ایجاد کاربران MySQL به کمک نیاز دارید ، این راهنما را در مورد نحوه مدیریت بانک اطلاعاتی SQL بررسی کنید. توجه: ورود به سیستم phpMyAdmin به عنوان کاربر ریشه MySQL توصیه نمی شود زیرا خطرات امنیتی قابل توجهی را به همراه دارد. در مرحله بعدی این راهنما نحوه غیرفعال کردن ورود به سیستم ریشه را مشاهده خواهیم کرد. نصب phpMyAdmin شما باید در این مرحله کاملاً عملی باشد. اما ، با نصب یک رابط وب ، سرور پایگاه داده MySQL خود را در معرض دنیای خارج قرار می دهیم. به دلیل محبوبیت phpMyAdmin و مقادیر زیادی از داده هایی که ممکن است به آنها دسترسی پیدا کند ، نصب های این چنینی ، اهداف متداول برای حملات هستند. در بخش های بعدی این راهنما ، چند روش مختلف را مشاهده خواهیم کرد که با استفاده از آن می توانیم نصب phpMyAdmin را ایمن تر کنیم. مرحله 2 – تغییر موقعیت پیش فرض phpMyAdmin یکی از اساسی ترین راه های محافظت از نصب phpMyAdmin ، دشوار نمودن دسترسی به آن است. رباتها مسیرهای متداول مانند phpmyadmin ، pma ، admin ، mysql و مواردی از این دست را اسکن می کنند. تغییر آدرس URL رابط از / phpmyadmin به چیزی غیر استاندارد ، اسکریپت های خودکار را برای پیدا کردن نصب و راه اندازی phpMyAdmin و تلاش برای حملات مخرب را دشوارتر می کند. با نصب phpMyAdmin ، پیوندی نمادین ایجاد کرده ایم که به / usr / share / phpmyadmin اشاره دارد، جایی که فایل های برنامه واقعی قرار دارند. برای تغییر URL رابط phpMyAdmin ، این پیوند نمادین را تغییر نام خواهیم داد. ابتدا ، اجازه دهید به دیرکتوری اصلی سند Nginx برویم و لیست فایل هایی که در آن قرار دارد را فهرست کنیم تا درک بهتری از تغییراتی که ایجاد خواهیم کرد داشته باشیم: ⦁ $ cd /var/www/html/ ⦁ ⦁ $ ls -l خروجی زیر را دریافت خواهید کرد: Output total 8 -rw-r–r– 1 root root 612 Apr 8 13:30 index.nginx-debian.html lrwxrwxrwx 1 root root 21 Apr 8 15:36 phpmyadmin -> /usr/share/phpmyadmin
خروجی نشان می دهد که ما یک لینک نمادین به نام phpmyadmin در این دیرکتوری داریم. می توانیم این نام پیوند را به هر آنچه دوست داریم تغییر دهیم. که به نوبه خود URL دسترسی phpMyAdmin را تغییر می دهد ، و می تواند به پنهان کردن نقطه انتهایی از دسترس رباتهای رمزگذاری شده برای جستجوی نام نقاط پایانی معمول کمک کند. نامی را انتخاب کنید که هدف نقطه پایانی را مبهم کند. در این راهنما ، نقطه پایانی را /nothingtosee می نامیم ، اما شما باید یک نام جایگزین انتخاب کنید. برای انجام این کار ، پیوند را تغییر نام می دهیم: ⦁ $ sudo mv phpmyadmin nothingtosee ⦁ ⦁ $ ls -l
پس از اجرای دستورات فوق ، این خروجی را دریافت خواهید کرد: Output total 8 -rw-r–r– 1 root root 612 Apr 8 13:30 index.nginx-debian.html lrwxrwxrwx 1 root root 21 Apr 8 15:36 nothingtosee -> /usr/share/phpmyadmin
اکنون ، اگر به URL قدیمی بروید ، خطای 404 را دریافت خواهید کرد: https://server_domain_or_IP/phpmyadmin
رابط phpMyAdmin شما اکنون با URL جدیدی که تازه پیکربندی کرده ایم در دسترس خواهد بود: https://server_domain_or_IP/nothingtosee
با ایجاد موقعیت واقعی phpMyAdmin در سرور ، رابط کاربری آن را در برابر اسکن خودکار و حملات دستی محافظت می کنید. مرحله 3 – غیرفعال کردن ورود به عنوان ریشه در MySQL و همچنین در سیستم های معمول لینوکس ، حساب اصلی یک حساب کاربری ویژه با دسترسی نامحدود به سیستم است. علاوه بر اینکه یک حساب ممتاز است ، یک نام ورود به سیستم شناخته شده است ، و آن را به یک هدف آشکار برای حملات مخرب تبدیل می کند. برای به حداقل رساندن خطرات ، phpMyAdmin را به گونه ای پیکربندی می کنیم تا هرگونه تلاش برای ورود به سیستم از سوی کاربر ریشه را رد کنیم. به این ترتیب ، حتی اگر اعتبارات معتبری برای ریشه کاربر ارائه دهید ، باز هم یک خطای ” access denied ” دریافت خواهید کرد و مجاز به ورود به سیستم نخواهید بود. از آنجا که ما برای پیکربندی و ذخیره تنظیمات phpMyAdmin از dbconfig-common استفاده کردیم ، پیکربندی پیش فرض در حال حاضر در بانک اطلاعاتی ذخیره می شود. برای تعریف تنظیمات سفارشی باید یک فایل config.inc.php جدید ایجاد کنیم. حتی اگر فایلهای PHP برای phpMyAdmin در داخل / usr / share / phpmyadmin قرار داشته باشند ، برنامه از فایلهای پیکربندی مستقر در / etc / phpmyadmin استفاده می کند. یک فایل تنظیمات سفارشی جدید را در داخل /etc/phpmyadmin/conf.d ایجاد خواهیم کرد و نام آن را pma_secure.php مینامیم: ⦁ $ sudo nano /etc/phpmyadmin/conf.d/pma_secure.php ⦁ فایل پیکربندی زیر شامل تنظیمات لازم برای غیرفعال کردن ورودهای بدون رمز (AllowNoPassword روی false تنظیم شده است) و ورود ریشه به سیستم است (AllowRoot روی false تنظیم شده است): /etc/phpmyadmin/conf.d/pma_secure.php <?php
# PhpMyAdmin Settings # This should be set to a random string of at least 32 chars $cfg[‘blowfish_secret’] = ‘3!#32@3sa(+=_4?),5XP_:U%%8\34sdfSdg43yH#{o’;
$i=0; $i++;
$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’; $cfg[‘Servers’][$i][‘AllowNoPassword’] = false; $cfg[‘Servers’][$i][‘AllowRoot’] = false;
?>
پس از ویرایش فایل ، با فشار دادن CTRL + X سپس y ، تغییرات را تأیید کنید و ENTER را بزنید. تغییرات بطور خودکار اعمال می شوند. اگر اکنون صفحه ورود را مجدد لود کنید و سعی کنید به عنوان root وارد شوید ، یک خطای Access Denied دریافت خواهید کرد:
اکنون ورود به سیستم به عنوان ریشه در نصب phpMyAdmin شما ممنوع است. این اقدامات امنیتی باعث می شود جلوی اسکریپت های مخرب در تلاش برای حدس زدن رمزعبور پایگاه داده اصلی روی سرور شما گرفته شود. علاوه بر این ، استفاده از حسابهای MySQL با امتیازات کمتر را برای دسترسی به رابط وب phpMyAdmin اعمال می کند ، که به خودی خود یک روش مهم امنیتی است. مرحله 4 – ایجاد یک دروازه احراز هویت پنهان کردن نصب phpMyAdmin در یک مکان غیرمعمول ممکن است برخی از ربات های خودکار را که در حال اسکن شبکه هستند ، گمراه کند ، اما در برابر حملات هدفمند بی فایده است. برای محافظت بهتر از یک برنامه وب با دسترسی محدود ، به طور کلی متوقف کردن مهاجمان قبل از اینکه حتی بتوانند به برنامه دسترسی پیدا کنند، مفیدتر است. به این ترتیب ، آنها نمی توانند از سوء استفاده های عمومی و حملات مخرب برای حدس زدن اعتبارات دسترسی استفاده کنند. در مورد خاص phpMyAdmin ، محفوظ نگه داشتن رابط ورود به سیستم حتی مهمتر نیز هست. با در دسترس نگه داشتن آن به صورت جهانی ، یک بستر آماده برای مهاجمین ارائه می دهید تا اعتبارات بانک اطلاعاتی شما را حدس بزنند. افزودن یک لایه اضافی تأیید اعتبار به نصب phpMyAdmin شما را قادر می سازد امنیت را افزایش دهید. کاربران باید قبل از ��یدن صفحه ورود به سایت phpMyAdmin از اعلان تأیید هویت HTTP عبور کنند. اکثر سرور های وب ، از جمله Nginx ، این قابلیت را به صورت بومی ارائه می دهند. برای انجام این کار ، ابتدا باید یک فایل رمز عبور برای ذخیره اعتبارات تأیید ایجاد کنیم. Nginx مستلزم رمزگذاری پسوردها با استفاده از تابع crypt () است. مجموعه OpenSSL ، که باید از قبل روی سرور شما نصب باشد ، این قابلیت را دارد. برای ایجاد پسورد رمزگذاری شده ، این دستور را تایپ کنید: ⦁ $ openssl passwd ⦁ از شما خواسته می شود رمز عبوری را که می خواهید استفاده کنید وارد کنید و آن را تأیید نمایید. سپس این ابزار نسخه رمزگذاری شده رمزعبور را نمایش می دهد که چیزی شبیه به این خواهد بود: Output O5az.RSPzd.HE این عبارت را کپی کنید ، زیرا لازم است که آن را در فایل تأیید اعتبار مورد استفاده قرار دهید. اکنون ، یک فایل تأیید اعتبار ایجاد کنید. ما این فایل را pma_pass می نامیم و آن را در دیرکتوری تنظیمات Nginx قرار می دهیم: ⦁ $ sudo nano /etc/nginx/pma_pass ⦁ در این فایل ، نام کاربری مورد نظر خود را مشخص می کنید و به دنبال آن یک کولون (:) و سپس نسخه رمزگذاری شده پسورد را که از برنامه Openwl passwd دریافت کرده اید ، قرار دهید. ما میخواهیم نام کاربر خود را Sammy قرار دهیم ، اما شما باید نام کاربری دیگری را انتخاب کنید. فایل باید به صورت زیر باشد: /etc/nginx/pma_pass sammy:O5az.RSPzd.HE پس از انجام این کار ، فایل را ذخیره کنید و ببندید. اکنون ما آماده اصلاح فایل پیکربندی Nginx هستیم. برای این راهنما ، از فایل پیکربندی واقع در /etc/nginx/sites-available/example.com استفاده خواهیم کرد. شما باید از فایل پیکربندی مربوط به Nginx برای مکان وب استفاده کنید که phpMyAdmin در حال حاضر میزبان آن است. این فایل را در ویرایشگر متن خود باز کنید تا کار را شروع کنید: ⦁ $ sudo nano /etc/nginx/sites-available/example.com ⦁
بلوک سرور و بخش location / را در آن قرار دهید. برای مطابقت با مسیر فعلی phpMyAdmin در سرور ، باید یک بخش location جدید در این بلوک ایجاد کنیم. در این راهنما ، مکان phpMyAdmin نسبت به ریشه وب /nothingtosee است: /etc/nginx/sites-available/default server { . . .
location / { try_files $uri $uri/ =404; }
location /nothingtosee { # Settings for phpMyAdmin will go here }
. . . }
در این بلوک ، باید دو دستورالعمل مختلف را تنظیم کنیم: auth_basic ، که پیامی را که در اعلان تأیید نمایش داده می شود معرفی میکند، و auth_basic_user_file ، که به فایلی که ایجاد کردیم ، اشاره می کند. فایل پیکربندی شما پس از اتمام اینگونه به نظر می رسد: /etc/nginx/sites-available/default server { . . .
location /nothingtosee { auth_basic “Admin Login”; auth_basic_user_file /etc/nginx/pma_pass; }
. . . }
سپس ، فایل را ذخیره کنید و ببندید. برای بررسی صحت فایل پیکربندی ، می توانید این دستور را اجرا کنید: ⦁ $ sudo nginx -t ⦁ خروجی زیر پیش بینی می شود: Output nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
برای فعال کردن دروازه احراز هویت جدید ، باید سرور وب را مجدد لود کنید: ⦁ $ sudo systemctl reload nginx ⦁ حال اگر از URL phpMyAdmin در مرورگر وب خود بازدید می کنید ، نام کاربری و رمز عبوری که به فایل pma_pass اضافه کرده اید ، از شما خواسته میشود: https://server_domain_or_IP/nothingtosee
هنگامی که اعتبارات خود را وارد کردید ، به صفحه استاندارد ورود به سیستم phpMyAdmin منتقل می شوید. توجه: اگر ریفرش صفحه کار نمی کند ، ممکن است مجبور شوید حافظه نهان خود را پاک کنید یا اگر قبلاً از phpMyAdmin استفاده کرده اید ، از یک مرورگر دیگر استفاده کنید. این دروازه علاوه بر فراهم کردن یک لایه امنیتی بیشتر ، به حفظ فایل های MySQL در برابر تلاش برای تأیید اعتبارات Spammy کمک می کند. مرحله 5 – تنظیم دسترسی از طریق تونل های رمزگذاری شده (اختیاری) برای افزایش امنیت ، میتوان نصب phpMyAdmin را فقط برای هاست های مجاز قفل نکرد. می توانید هاست های مجاز را در فایل تنظیمات Nginx خود لیست کنید تا هرگونه درخواست از آدرس IP که در لیست موجود نیست ، رد شود. حتی اگر این ویژگی در برخی موارد استفاده کافی باشد ، همیشه بهترین راه حل طولانی مدتی نیست ، عمدتا به این دلیل که اکثر افراد از آدرس های IP ایستا به اینترنت دسترسی ندارند. به محض دریافت یک آدرس IP جدید از Internet provider خود ، نمی توانید به رابط phpMyAdmin دسترسی پیدا کنید تا زمانی که فایل پیکربندی Nginx را با آدرس IP جدید خود به روز کنید. برای یک راه حل طولانی مدت قوی تر ، می توانید از کنترل دسترسی مبتنی بر IP استفاده کنید تا تنظیماتی را ایجاد کنید که در آن کاربران فقط در صورت دسترسی به یک آدرس IP مجاز یا محلی از طریق تونل سازی SSH به رابط phpMyAdmin شما دسترسی داشته باشند. در بخش های زیر خواهیم دید که چگونه این کار را انجام دهیم. ترکیب کنترل دسترسی مبتنی بر IP با تونل SSH امنیت را به شدت افزایش می دهد زیرا دسترسی از طریق اینترنت عمومی (به جز IP های مجاز) را کاملاً مسدود می کند و علاوه بر این کانال ایمن بین کاربر و سروراز طریق تونل های رمزگذاری شده فراهم میکند. تنظیم کنترل دسترسی مبتنی بر IP در Nginx در Nginx ، كنترل دسترسی مبتنی بر IP را می توان در بلوك location مربوطه یك سایت معین ، با استفاده از بخشنامه های allow و deny تعریف كرد. به عنوان مثال ، اگر فقط می خواهیم درخواست هایی را از یک هاست معین دریافت کنیم ، باید دو خط زیر را در این قسمت ، داخل بلوک location مربوطه برای سایت قرار دهیم که می خواهیم از آن محافظت کنیم: allow hostname_or_IP; deny all;
شما می توانید هر تعداد هاست که می خواهید اجازه دهید ، فقط باید یک خط allow برای هر هاست / IP مجاز در داخل بلوک location مربوطه برای سایتی که از آن محافظت می کنید درج کنید. دستورالعملها به همان ترتیبی که ذکر شده اند ارزیابی می شوند ، تا زمانی که تطابق پیدا شود یا درخواست به دلیل deny all رد شود. اکنون Nginx را پیکربندی خواهیم کرد تا فقط به درخواستهایی که از localhost یا آدرس IP فعلی شما آمده اند اجازه ورود دهیم. ابتدا ، باید آدرس IP فعلی عمومی را که دستگاه محلی شما برای اتصال به اینترنت استفاده می کند ، بدانید. روش های مختلفی برای به دست آوردن این اطلاعات وجود دارد. برای سادگی ، می خواهیم از خدمات ارائه شده توسط ipinfo.io استفاده کنیم. می توانید URL https://ipinfo.io/ip را در مرورگر خود باز کنید ، یا دستور زیر را از دستگاه محلی خود اجرا کنید: ⦁ $ curl https://ipinfo.io/ip ⦁ باید یک آدرس IP ساده به عنوان خروجی دریافت کنید ، مانند این: Output 203.0.113.111
این آدرس IP عمومی فعلی شما است. ما بلوک موقعیت مکانی phpMyAdmin را پیکربندی خواهیم کرد تا فقط به درخواستهایی که از آن IP می آیند ، علاوه بر localhost ، اجازه دهیم. باید بار دیگر پیکربندی phpMyAdmin را در داخل /etc/nginx/sites-available/example.com ویرایش کنیم. فایل پیکربندی Nginx را با استفاده از ویرایشگر خط فرمان مورد نظر خود باز کنید: ⦁ $ sudo nano /etc/nginx/sites-available/example.com ⦁ از آنجا که از قبل یک قانون دسترسی در پیکربندی فعلی خود داریم ، باید آن را با کنترل دسترسی مبتنی بر IP ترکیب کنیم و از دستور satisfy all استفاده نماییم. به این ترتیب ، می توانیم تأیید هویت فعلی HTTP را برای افزایش امنیت سریع انجام دهیم. به این ترتیب پیکربندی phpMyAdmin Nginx شما پس از انجام ویرایش اینگونه به نظر می رسد: /etc/nginx/sites-available/example.com server { . . .
location /nothingtosee { satisfy all; #requires both conditions
allow 203.0.113.111; #allow your IP allow 127.0.0.1; #allow localhost via SSH tunnels deny all; #deny all other sources
auth_basic “Admin Login”; auth_basic_user_file /etc/nginx/pma_pass; }
. . . }
به یاد داشته باشید که nothingtosee را با مسیر واقعی جایی که phpMyAdmin در آن قرار دارد ، و آدرس IP هایلایت شده را با آدرس IP عمومی فعلی خود جایگزین کنید. هنگام کار ، فایل را ذخیره کنید و ببندید. برای بررسی صحت فایل پیکربندی ، می توانید این دستور را اجرا کنید: ⦁ $ sudo nginx -t ⦁ خروجی زیر پیش بینی می شود: Output nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
اکنون سرور وب را مجدد لود کنید تا تغییرات اعمال شوند: ⦁ $ sudo systemctl reload nginx ⦁ از آنجا که آدرس IP شما صریحاً به عنوان هاست مجاز ذکر شده است ، دسترسی شما نباید مختل شود. هر کس دیگری که سعی در دسترسی به نصب phpMyAdmin داشته باشد، یک خطای 403 (ممنوعه) دریافت میکند: https://server_domain_or_IP/nothingtosee
در بخش بعدی ، نحوه استفاده از تونل SSH برای دسترسی به سرور وب را از طریق درخواست های محلی خواهیم دید. به این ترتیب ، شما حتی می توانید آدرس IP خود را تغییر دهید و به رابط phpMyAdmin دسترسی پیدا کنید. دسترسی به phpMyAdmin از طریق یک تونل رمزگذاری شده تونل زنی SSH به عنوان روشی جهت هدایت ترافیک شبکه از طریق کانال های رمزگذاری شده کار می کند. با اجرای یک دستور ssh مشابه آنچه برای ورود به سرور استفاده می کنید ، می توانید یک “تونل” ایمن بین دستگاه محلی و آن سرور ایجاد کنید. همه ترافیک هایی که وارد یک پورت محلی خاص میشوند، می توانند از طریق تونل رمزگذاری شده هدایت شوند و قبل از دسترسی به اینترنت ، از سرور راه دور به عنوان یک پروکسی استفاده کنند. مشابه چیزی است که هنگام استفاده از VPN (شبکه خصوصی مجازی) اتفاق می افتد ، با این حال تنظیم تونل SSH بسیار ساده تر است. ما از تونل سازی SSH استفاده خواهیم کرد تا درخواستهای خود را به سرور وب از راه دور که phpMyAdmin را اجرا می کند ، پروکسی کنیم. با ایجاد یک تونل بین دستگاه محلی و سرور که phpMyAdmin در آن نصب شده است ، می توانید درخواست های محلی را به سرور وب از راه دور هدایت کنید ، و مهمتر از همه ، ترافیک رمزگذاری می شود و درخواست ها به Nginx می رسند انگار که از localhost می آیند. به این ترتیب ، مهم نیست که از چه آدرس IP به آن وصل شوید ، می توانید به طور ایمن به رابط phpMyAdmin دسترسی پیدا کنید. از آنجا که ترافیک بین دستگاه محلی شما و سرور وب از راه دور رمزگذاری می شود ، این گزینه جایگزین مناسبی برای موقعیت هایی است که نمی توانید گواهی SSL / TLS را در سرور وبی نصب کنید که دارای phpMyAdmin است. از دستگاه محلی خود ، این دستور را هر زمان که نیاز به دسترسی به phpMyAdmin داشتید، اجرا کنید: بگذارید هر بخش از دستور را بررسی کنیم: ⦁ ssh user@server_domain_or_IP -L 8000:localhost:80 -L 8443:localhost:443 -N ⦁ ⦁ user: کاربر SSH برای اتصال به سرور ی که phpMyAdmin در آن کار می کند ⦁ hostname_or_IP: هاست SSH که phpMyAdmin در آن اجرا می شود ⦁ -L 8000: localhost: 80 مسیر HTTP را در پورت 8000 تغییر مسیر می دهد ⦁ -L 8443: localhost: 443 مسیر ترافیک HTTPS در پورت 8443 را تغییر میدهد ⦁ -N: دستورات از راه دور را اجرا نمی کند توجه: این دستور تا زمانی که با CTRL + C قطع نشود ، ترمینال را مسدود می کند ، در این صورت اتصال SSH پایان می یابد و تغییر مسیر بسته را متوقف می کند. اگر ترجیح می دهید این دستور را در حالت پس زمینه اجرا کنید ، می توانید از گزینه –f SSH استفاده کنید.
اکنون به مرورگر خود بروید و server_domain_or_IP را با localhost:PORT جایگزین کنید، جایی که PORT برای HTTP ، 8000 و برای HTTPS، 8443 است: http://localhost:8000/nothingtosee https://localhost:443/nothingtosee
توجه: اگر از طریق https به phpMyAdmin دسترسی دارید ، ممکن است یک پیام هش��ار دریافت کنید که امنیت گواهی SSL را سؤال می کند. این اتفاق به این دلیل است که نام دامنه ای که شما در آن استفاده می کنید (localhost) با آدرس ثبت شده در گواهی نامه (دامنه ای که phpMyAdmin در واقع در آن ارائه می شود) مطابقت ندارد. در این صورت ادامه کار بی خطر خواهد بود.
اکنون همه درخواست های localhost: 8000 (HTTP) و localhost: 8443 (HTTPS) از طریق یک تونل امن به برنامه راه دور phpMyAdmin خود هدایت می شوند. نه تنها با غیرفعال کردن دسترسی عمومی به phpMyAdmin ، امنیت را افزایش داده اید ، بلکه با استفاده از یک تونل رمزگذاری شده برای ارسال و دریافت داده ، از تمام ترافیک بین رایانه محلی و سرور از راه دور نیز محافظت می کنید. اگر می خواهید استفاده از تونل زنی SSH را برای هرکسی که می خواهد به رابط phpMyAdmin شما (از جمله خودتان) دسترسی داشته باشد ، اعمال کنید ، می توانید با حذف سایر IPهای مجاز دیگر از فایل پیکربندی Nginx این کار را انجام دهید و 127.0.0.1 را به عنوان تنها هاست مجاز برای دسترسی به آن لوکیشن در نظر بگیرید. با توجه به اینکه هیچ کس قادر به درخواست مستقیم به phpMyAdmin نیست ، می توانید تأیید هویت HTTP را برای ساده سازی ستاپ خود حذف کنید. فایل پیکربندی شما در چنین سناریویی این گونه خواهد بود: /etc/nginx/sites-available/example.com server { . . .
location /nothingtosee { allow 127.0.0.1; #allow localhost only deny all; #deny all other sources }
. . . }
هنگامی که پیکربندی Nginx را با sudo systemctl reload nginx مجدد لود کنید ، نصب phpMyAdmin شما قفل می شود و کاربران برای دسترسی به رابط phpMyAdmin از طریق درخواست های هدایت شده ، باید از تونل های SSH استفاده کنند. نتیجه در این آموزش ، ما شاهد نحوه نصب phpMyAdmin در Ubuntu 18.04 در حال اجرای Nginx به عنوان سرور وب بودیم. همچنین روشهای پیشرفته ای را برای تأمین امنیت نصب phpMyAdmin در اوبونتو ، مانند غیرفعال کردن ورود کاربر ریشه به سیستم ، ایجاد یک لایه بیشتر تأیید اعتبار ، و استفاده از تونل SSH برای دسترسی به نصب phpMyAdmin فقط از طریق درخواست های محلی را پوشش داده ایم. پس از اتمام این آموزش ، باید بتوانید پایگاه داده MySQL خود را از یک رابط وب ایمن مدیریت کنید. این رابط کاربری بیشتر عملکردهای موجود از طریق خط فرمان MySQL را در معرض دید شما قرار می دهد. می توانید پایگاه های داده و شماتیک را بررسی کنید ، پرس و جوها را اجرا کنید و مجموعه ها و ساختارهای جدید داده ایجاد کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
Lighthttp
,
Nginx
,
phpMyAdmin
,
pma
,
SSH
0 notes
vpsgol12-blog · 4 years
Text
نصب و ایمن سازی phpMyAdmin با Nginx در سرور
حالی که بسیاری از کاربران به عملکرد سیستم دیتابیس مانند MySQL نیاز دارند ، تعامل با سیستم صرفاً از طریق سرویس دهنده خط فرمان MySQL نیاز به آشنایی با زبان SQL دارد ، بنابراین ممکن است برای بعضی ها رابط ارجح نباشد. phpMyAdmin به گونه ای ایجاد شده است که کاربران بتوانند از طریق یک رابط وب بصری با MySQL در تعامل باشند که در کنار یک محیط توسعه PHP اجرا شود. در این راهنما ، در مورد نحوه نصب phpMyAdmin روی سرور Nginx و نحوه پیکربندی سرور برای افزایش امنیت بحث خواهیم کرد. توجه: در هنگام استفاده از نرم افزاری مانند phpMyAdmin ملاحظات امنیتی مهمی وجود دارد ، از آنجا که بر روی سرور پایگاه داده اجرا می شود ، با اعتبارات پایگاه داده در ارتباط است ، و کاربر را قادر می سازد تا به راحتی پرس و جوهای SQL دلخواه را در پایگاه داده شما اجرا کند. از آنجا که phpMyAdmin یک برنامه PHP با استقرار گسترده است ، اغلب مورد حمله قرار می گیرد. در این آموزش برخی اقدامات امنیتی که می توانید انجام دهید را مرور خواهیم کرد تا بتوانید تصمیماتی آگاهانه بگیرید.
پیش نیازها قبل از شروع این راهنما ، به موارد زیر نیاز خواهید داشت: • سرور Ubuntu 18.04 که دارای یک پشته LEMP (Linux ، Nginx ، MySQL و PHP) و ایمن شده با ufw باشد ، همانطور که در راهنمای تنظیم اولیه سرور برای اوبونتو 18.04 شرح داده شده است. اگر هنوز سرور خود را تنظیم نکرده اید ، می توانید راهنمای نصب پشته LEMP در اوبونتو 18.04 را دنبال کنید. • دسترسی به این سرور به عنوان یک کاربر غیر ریشه با امتیازات sudo. از آنجا که phpMyAdmin احراز هویت را با استفاده از اعتبار MySQL انجام می دهد ، توصیه می شود یک SSL / TLS نصب کنید تا بتوانید ترافیک رمزگذاری شده بین سرور و کلاینت را فعال کنید. اگر دامنه موجود که با گواهی معتبر پیکربندی شده باشد ندارید ، می توانید این راهنما را در مورد ایمن سازی Nginx با let’s Encrypt در Ubuntu 18.04 دنبال کنید. هشدار: اگر گواهی SSL / TLS را روی سرور نصب نکرده اید و همچنان مایل به ادامه کار هستید ، لطفاً دسترسی از طریق تونل های SSH را همانطور که در مرحله 5 این راهنما توضیح داده شده است ، در نظر بگیرید. هنگامی که این پیش نیازها را انجام دادید ، می توانید با ادامه این راهنما پیش بروید. مرحله 1 – نصب phpMyAdmin اولین کاری که باید انجام دهیم نصب phpMyAdmin روی سرور LEMP است. ما می خواهیم از مخازن پیش فرض اوبونتو برای رسیدن به این هدف استفاده کنیم. بیایید با به روزرسانی فهرست بسته سرور با دستور زیر شروع کنیم: ⦁ $ sudo apt update ⦁ اکنون می توانید phpMyAdmin را با این دستور نصب کنید: ⦁ $ sudo apt install phpmyadmin ⦁ در طی مراحل نصب ، از شما خواسته می شود تا وب سرور (Apache یا Lighthttp) را برای پیکربندی انتخاب کنید. از آنجا که ما از Nginx به عنوان وب سرور استفاده می کنیم ، نباید اینجا انتخابی انجام دهیم. برای رفتن به مرحله بعدی ، tab را فشار داده و سپس OK را بزنید. در مرحله بعد ، از شما خواسته می شود كه برای پیكربندی پایگاه داده برنامه از dbconfig-common استفاده شود یا خیر. yes را انتخاب کنید. این کار پایگاه داده داخلی و کاربر admin را برای phpMyAdmin تنظیم می کند. از شما خواسته می شود رمز جدید را برای کاربر phpmyadmin MySQL تعریف کنید. همچنین می توانید آن را خالی بگذارید و به phpMyAdmin اجازه دهید بطور تصادفی یک رمز عبور ایجاد کند. اکنون نصب تمام می شود. برای اینکه سرور وب Nginx به درستی فایلهای phpMyAdmin را پیدا و ارائه کند ، باید یک لینک نمادین از فایلهای نصب به دیرکتوری اصلی سند Nginx بسازیم: ⦁ $ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin ⦁ نصب phpMyAdmin شما اکنون عملیاتی است. برای دسترسی به رابط ، به نام دامنه یا آدرس IP عمومی سرور خود که پس از آن / phpmyadmin در مرورگر وب وجود دارد ، بروید: https://server_domain_or_IP/phpmyadmin
همانطور که قبلاً نیز گفته شد ، phpMyAdmin با استفاده از اعتبار MySQL ، احراز هویت را کنترل می کند ، به این معنی که شما باید از همان نام کاربری و رمز عبوری که معمولاً برای اتصال به بانک اطلاعاتی از طریق کنسول یا از طریق API استفاده می کنید ، استفاده نمایید. اگر در ایجاد کاربران MySQL به کمک نیاز دارید ، این راهنما را در مورد نحوه مدیریت بانک اطلاعاتی SQL بررسی کنید. توجه: ورود به سیستم phpMyAdmin به عنوان کاربر ریشه MySQL توصیه نمی شود زیرا خطرات امنیتی قابل توجهی را به همراه دارد. در مرحله بعدی این راهنما نحوه غیرفعال کردن ورود به سیستم ریشه را مشاهده خواهیم کرد. نصب phpMyAdmin شما باید در این مرحله کاملاً عملی باشد. اما ، با نصب یک رابط وب ، سرور پایگاه داده MySQL خود را در معرض دنیای خارج قرار می دهیم. به دلیل محبوبیت phpMyAdmin و مقادیر زیادی از داده هایی که ممکن است به آنها دسترسی پیدا کند ، نصب های این چنینی ، اهداف متداول برای حملات هستند. در بخش های بعدی این راهنما ، چند روش مختلف را مشاهده خواهیم کرد که با استفاده از آن می توانیم نصب phpMyAdmin را ایمن تر کنیم. مرحله 2 – تغییر موقعیت پیش فرض phpMyAdmin یکی از اساسی ترین راه های محافظت از نصب phpMyAdmin ، دشوار نمودن دسترسی به آن است. رباتها مسیرهای متداول مانند phpmyadmin ، pma ، admin ، mysql و مواردی از این دست را اسکن می کنند. تغییر آدرس URL رابط از / phpmyadmin به چیزی غیر استاندارد ، اسکریپت های خودکار را برای پیدا کردن نصب و راه اندازی phpMyAdmin و تلاش برای حملات مخرب را دشوارتر می کند. با نصب phpMyAdmin ، پیوندی نمادین ایجاد کرده ایم که به / usr / share / phpmyadmin اشاره دارد، جایی که فایل های برنامه واقعی قرار دارند. برای تغییر URL رابط phpMyAdmin ، این پیوند نمادین را تغییر نام خواهیم داد. ابتدا ، اجازه دهید به دیرکتوری اصلی سند Nginx برویم و لیست فایل هایی که در آن قرار دارد را فهرست کنیم تا درک بهتری از تغییراتی که ایجاد خواهیم کرد داشته باشیم: ⦁ $ cd /var/www/html/ ⦁ ⦁ $ ls -l خروجی زیر را دریافت خواهید کرد: Output total 8 -rw-r–r– 1 root root 612 Apr 8 13:30 index.nginx-debian.html lrwxrwxrwx 1 root root 21 Apr 8 15:36 phpmyadmin -> /usr/share/phpmyadmin
خروجی نشان می دهد که ما یک لینک نمادین به نام phpmyadmin در این دیرکتوری داریم. می توانیم این نام پیوند را به هر آنچه دوست داریم تغییر دهیم. که به نوبه خود URL دسترسی phpMyAdmin را تغییر می دهد ، و می تواند به پنهان کردن نقطه انتهایی از دسترس رباتهای رمزگذاری شده برای جستجوی نام نقاط پایانی معمول کمک کند. نامی را انتخاب کنید که هدف نقطه پایانی را مبهم کند. در این راهنما ، نقطه پایانی را /nothingtosee می نامیم ، اما شما باید یک نام جایگزین انتخاب کنید. برای انجام این کار ، پیوند را تغییر نام می دهیم: ⦁ $ sudo mv phpmyadmin nothingtosee ⦁ ⦁ $ ls -l
پس از اجرای دستورات فوق ، این خروجی را دریافت خواهید کرد: Output total 8 -rw-r–r– 1 root root 612 Apr 8 13:30 index.nginx-debian.html lrwxrwxrwx 1 root root 21 Apr 8 15:36 nothingtosee -> /usr/share/phpmyadmin
اکنون ، اگر به URL قدیمی بروید ، خطای 404 را دریافت خواهید کرد: https://server_domain_or_IP/phpmyadmin
رابط phpMyAdmin شما اکنون با URL جدیدی که تازه پیکربندی کرده ایم در دسترس خواهد بود: https://server_domain_or_IP/nothingtosee
با ایجاد موقعیت واقعی phpMyAdmin در سرور ، رابط کاربری آن را در برابر اسکن خودکار و حملات دستی محافظت می کنید. مرحله 3 – غیرفعال کردن ورود به عنوان ریشه در MySQL و همچنین در سیستم های معمول لینوکس ، حساب اصلی یک حساب کاربری ویژه با دسترسی نامحدود به سیستم است. علاوه بر اینکه یک حساب ممتاز است ، یک نام ورود به سیستم شناخته شده است ، و آن را به یک هدف آشکار برای حملات مخرب تبدیل می کند. برای به حداقل رساندن خطرات ، phpMyAdmin را به گونه ای پیکربندی می کنیم تا هرگونه تلاش برای ورود به سیستم از سوی کاربر ریشه را رد کنیم. به این ترتیب ، حتی اگر اعتبارات معتبری برای ریشه کاربر ارائه دهید ، باز هم یک خطای ” access denied ” دریافت خواهید کرد و مجاز به ورود به سیستم نخواهید بود. از آنجا که ما برای پیکربندی و ذخیره تنظیمات phpMyAdmin از dbconfig-common استفاده کردیم ، پیکربندی پیش فرض در حال حاضر در بانک اطلاعاتی ذخیره می شود. برای تعریف تنظیمات سفارشی باید یک فایل config.inc.php جدید ایجاد کنیم. حتی اگر فایلهای PHP برای phpMyAdmin در داخل / usr / share / phpmyadmin قرار داشته باشند ، برنامه از فایلهای پیکربندی مستقر در / etc / phpmyadmin استفاده می کند. یک فایل تنظیمات سفارشی جدید را در داخل /etc/phpmyadmin/conf.d ایجاد خواهیم کرد و نام آن را pma_secure.php مینامیم: ⦁ $ sudo nano /etc/phpmyadmin/conf.d/pma_secure.php ⦁ فایل پیکربندی زیر شامل تنظیمات لازم برای غیرفعال کردن ورودهای بدون رمز (AllowNoPassword روی false تنظیم شده است) و ورود ریشه به سیستم است (AllowRoot روی false تنظیم شده است): /etc/phpmyadmin/conf.d/pma_secure.php <?php
# PhpMyAdmin Settings # This should be set to a random string of at least 32 chars $cfg[‘blowfish_secret’] = ‘3!#32@3sa(+=_4?),5XP_:U%%8\34sdfSdg43yH#{o’;
$i=0; $i++;
$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’; $cfg[‘Servers’][$i][‘AllowNoPassword’] = false; $cfg[‘Servers’][$i][‘AllowRoot’] = false;
?>
پس از ویرایش فایل ، با فشار دادن CTRL + X سپس y ، تغییرات را تأیید کنید و ENTER را بزنید. تغییرات بطور خودکار اعمال می شوند. اگر اکنون صفحه ورود را مجدد لود کنید و سعی کنید به عنوان root وارد شوید ، یک خطای Access Denied دریافت خواهید کرد:
اکنون ورود به سیستم به عنوان ریشه در نصب phpMyAdmin شما ممنوع است. این اقدامات امنیتی باعث می شود جلوی اسکریپت های مخرب در تلاش برای حدس زدن رمزعبور پایگاه داده اصلی روی سرور شما گرفته شود. علاوه بر این ، استفاده از حسابهای MySQL با امتیازات کمتر را برای دسترسی به رابط وب phpMyAdmin اعمال می کند ، که به خودی خود یک روش مهم امنیتی است. مرحله 4 – ایجاد یک دروازه احراز هویت پنهان کردن نصب phpMyAdmin در یک مکان غیرمعمول ممکن است برخی از ربات های خودکار را که در حال اسکن شبکه هستند ، گمراه کند ، اما در برابر حملات هدفمند بی فایده است. برای محافظت بهتر از یک برنامه وب با دسترسی محدود ، به طور کلی متوقف کردن مهاجمان قبل از اینکه حتی بتوانند به برنامه دسترسی پیدا کنند، مفیدتر است. به این ترتیب ، آنها نمی توانند از سوء استفاده های عمومی و حملات مخرب برای حدس زدن اعتبارات دسترسی استفاده کنند. در مورد خاص phpMyAdmin ، محفوظ نگه داشتن رابط ورود به سیستم حتی مهمتر نیز هست. با در دسترس نگه داشتن آن به صورت جهانی ، یک بستر آماده برای مهاجمین ارائه می دهید تا اعتبارات بانک اطلاعاتی شما را حدس بزنند. افزودن یک لایه اضافی تأیید اعتبار به نصب phpMyAdmin شما را قادر می سازد امنیت را افزایش دهید. کاربران باید قبل از دیدن صفحه ورود به سایت phpMyAdmin از اعلان تأیید هویت HTTP عبور کنند. اکثر سرور های وب ، از جمله Nginx ، این قابلیت را به صورت بومی ارائه می دهند. برای انجام این کار ، ابتدا باید یک فایل رمز عبور برای ذخیره اعتبارات تأیید ایجاد کنیم. Nginx مستلزم رمزگذاری پسوردها با استفاده از تابع crypt () است. مجموعه OpenSSL ، که باید از قبل روی سرور شما نصب باشد ، این قابلیت را دارد. برای ایجاد پسورد رمزگذاری شده ، این دستور را تایپ کنید: ⦁ $ openssl passwd ⦁ از شما خواسته می شود رمز عبوری را که می خواهید استفاده کنید وارد کنید و آن را تأیید نمایید. سپس این ابزار نسخه رمزگذاری شده رمزعبور را نمایش می دهد که چیزی شبیه به این خواهد بود: Output O5az.RSPzd.HE این عبارت را کپی کنید ، زیرا لازم است که آن را در فایل تأیید اعتبار مورد استفاده قرار دهید. اکنون ، یک فایل تأیید اعتبار ایجاد کنید. ما این فایل را pma_pass می نامیم و آن را در دیرکتوری تنظیمات Nginx قرار می دهیم: ⦁ $ sudo nano /etc/nginx/pma_pass ⦁ در این فایل ، نام کاربری مورد نظر خود را مشخص می کنید و به دنبال آن یک کولون (:) و سپس نسخه رمزگذاری شده پسورد را که از برنامه Openwl passwd دریافت کرده اید ، قرار دهید. ما میخواهیم نام کاربر خود را Sammy قرار دهیم ، اما شما باید نام کاربری دیگری را انتخاب کنید. فایل باید به صورت زیر باشد: /etc/nginx/pma_pass sammy:O5az.RSPzd.HE پس از انجام این کار ، فایل را ذخیره کنید و ببندید. اکنون ما آماده اصلاح فایل پیکربندی Nginx هستیم. برای این راهنما ، از فایل پیکربندی واقع در /etc/nginx/sites-available/example.com استفاده خواهیم کرد. شما باید از فایل پیکربندی مربوط به Nginx برای مکان وب استفاده کنید که phpMyAdmin در حال حاضر میزبان آن است. این فایل را در ویرایشگر متن خود باز کنید تا کار را شروع کنید: ⦁ $ sudo nano /etc/nginx/sites-available/example.com ⦁
بلوک سرور و بخش location / را در آن قرار دهید. برای مطابقت با مسیر فعلی phpMyAdmin در سرور ، باید یک بخش location جدید در این بلوک ایجاد کنیم. در این راهنما ، مکان phpMyAdmin نسبت به ریشه وب /nothingtosee است: /etc/nginx/sites-available/default server { . . .
location / { try_files $uri $uri/ =404; }
location /nothingtosee { # Settings for phpMyAdmin will go here }
. . . }
در این بلوک ، باید دو دستورالعمل مختلف را تنظیم کنیم: auth_basic ، که پیامی را که در اعلان تأیید نمایش داده می شود معرفی میکند، و auth_basic_user_file ، که به فایلی که ایجاد کردیم ، اشاره می کند. فایل پیکربندی شما پس از اتمام اینگونه به نظر می رسد: /etc/nginx/sites-available/default server { . . .
location /nothingtosee { auth_basic “Admin Login”; auth_basic_user_file /etc/nginx/pma_pass; }
. . . }
سپس ، فایل را ذخیره کنید و ببندید. برای بررسی صحت فایل پیکربندی ، می توانید این دستور را اجرا کنید: ⦁ $ sudo nginx -t ⦁ خروجی زیر پیش بینی می شود: Output nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
برای فعال کردن دروازه احراز هویت جدید ، باید سرور وب را مجدد لود کنید: ⦁ $ sudo systemctl reload nginx ⦁ حال اگر از URL phpMyAdmin در مرورگر وب خود بازدید می کنید ، نام کاربری و رمز عبوری که به فایل pma_pass اضافه کرده اید ، از شما خواسته میشود: https://server_domain_or_IP/nothingtosee
هنگامی که اعتبارات خود را وارد کردید ، به صفحه استاندارد ورود به سیستم phpMyAdmin منتقل می شوید. توجه: اگر ریفرش صفحه کار نمی کند ، ممکن است مجبور شوید حافظه نهان خود را پاک کنید یا اگر قبلاً از phpMyAdmin استفاده کرده اید ، از یک مرورگر دیگر استفاده کنید. این دروازه علاوه بر فراهم کردن یک لایه امنیتی بیشتر ، به حفظ فایل های MySQL در برابر تلاش برای تأیید اعتبارات Spammy کمک می کند. مرحله 5 – تنظیم دسترسی از طریق تونل های رمزگذاری شده (اختیاری) برای افزایش امنیت ، میتوان نصب phpMyAdmin را فقط برای هاست های مجاز قفل نکرد. می توانید هاست های مجاز را در فایل تنظیمات Nginx خود لیست کنید تا هرگونه درخواست از آدرس IP که در لیست موجود نیست ، رد شود. حتی اگر این ویژگی در برخی موارد استفاده کافی باشد ، همیشه بهترین راه حل طولانی مدتی نیست ، عمدتا به این دلیل که اکثر افراد از آدرس های IP ایستا به اینترنت دسترسی ندارند. به محض دریافت یک آدرس IP جدید از Internet provider خود ، نمی توانید به رابط phpMyAdmin دسترسی پیدا کنید تا زمانی که فایل پیکربندی Nginx را با آدرس IP جدید خود به روز کنید. برای یک راه حل طولانی مدت قوی تر ، می توانید از کنترل دسترسی مبتنی بر IP استفاده کنید تا تنظیماتی را ایجاد کنید که در آن کاربران فقط در صورت دسترسی به یک آدرس IP مجاز یا محلی از طریق تونل سازی SSH به رابط phpMyAdmin شما دسترسی داشته باشند. در بخش های زیر خواهیم دید که چگونه این کار را انجام دهیم. ترکیب کنترل دسترسی مبتنی بر IP با تونل SSH امنیت را به شدت افزایش می دهد زیرا دسترسی از طریق اینترنت عمومی (به جز IP های مجاز) را کاملاً مسدود می کند و علاوه بر این کانال ایمن بین کاربر و سروراز طریق تونل های رمزگذاری شده فراهم میکند. تنظیم کنترل دسترسی مبتنی بر IP در Nginx در Nginx ، كنترل دسترسی مبتنی بر IP را می توان در بلوك location مربوطه یك سایت معین ، با استفاده از بخشنامه های allow و deny تعریف كرد. به عنوان مثال ، اگر فقط می خواهیم درخواست هایی را از یک هاست معین دریافت کنیم ، باید دو خط زیر را در این قسمت ، داخل بلوک location مربوطه برای سایت قرار دهیم که می خواهیم از آن محافظت کنیم: allow hostname_or_IP; deny all;
شما می توانید هر تعداد هاست که می خواهید اجازه دهید ، فقط باید یک خط allow برای هر هاست / IP مجاز در داخل بلوک location مربوطه برای سایتی که از آن محافظت می کنید درج کنید. دستورالعملها به همان ترتیبی که ذکر شده اند ارزیابی می شوند ، تا زمانی که تطابق پیدا شود یا درخواست به دلیل deny all رد شود. اکنون Nginx را پیکربندی خواهیم کرد تا فقط به درخواستهایی که از localhost یا آدرس IP فعلی شما آمده اند اجازه ورود دهیم. ابتدا ، باید آدرس IP فعلی عمومی را که دستگاه محلی شما برای اتصال به اینترنت استفاده می کند ، بدانید. روش های مختلفی برای به دست آوردن این اطلاعات وجود دارد. برای سادگی ، می خواهیم از خدمات ارائه شده توسط ipinfo.io استفاده کنیم. می توانید URL https://ipinfo.io/ip را در مرورگر خود باز کنید ، یا دستور زیر را از دستگاه محلی خود اجرا کنید: ⦁ $ curl https://ipinfo.io/ip ⦁ باید یک آدرس IP ساده به عنوان خروجی دریافت کنید ، مانند این: Output 203.0.113.111
این آدرس IP عمومی فعلی شما است. ما بلوک موقعیت مکانی phpMyAdmin را پیکربندی خواهیم کرد تا فقط به درخواستهایی که از آن IP می آیند ، علاوه بر localhost ، اجازه دهیم. بای�� بار دیگر پیکربندی phpMyAdmin را در داخل /etc/nginx/sites-available/example.com ویرایش کنیم. فایل پیکربندی Nginx را با استفاده از ویرایشگر خط فرمان مورد نظر خود باز کنید: ⦁ $ sudo nano /etc/nginx/sites-available/example.com ⦁ از آنجا که از قبل یک قانون دسترسی در پیکربندی فعلی خود داریم ، باید آن را با کنترل دسترسی مبتنی بر IP ترکیب کنیم و از دستور satisfy all استفاده نماییم. به این ترتیب ، می توانیم تأیید هویت فعلی HTTP را برای افزایش امنیت سریع انجام دهیم. به این ترتیب پیکربندی phpMyAdmin Nginx شما پس از انجام ویرایش اینگونه به نظر می رسد: /etc/nginx/sites-available/example.com server { . . .
location /nothingtosee { satisfy all; #requires both conditions
allow 203.0.113.111; #allow your IP allow 127.0.0.1; #allow localhost via SSH tunnels deny all; #deny all other sources
auth_basic “Admin Login”; auth_basic_user_file /etc/nginx/pma_pass; }
. . . }
به یاد داشته باشید که nothingtosee را با مسیر واقعی جایی که phpMyAdmin در آن قرار دارد ، و آدرس IP هایلایت شده را با آدرس IP عمومی فعلی خود جایگزین کنید. هنگام کار ، فایل را ذخیره کنید و ببندید. برای بررسی صحت فایل پیکربندی ، می توانید این دستور را اجرا کنید: ⦁ $ sudo nginx -t ⦁ خروجی زیر پیش بینی می شود: Output nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
اکنون سرور وب را مجدد لود کنید تا تغییرات اعمال شوند: ⦁ $ sudo systemctl reload nginx ⦁ از آنجا که آدرس IP شما صریحاً به عنوان هاست مجاز ذکر شده است ، دسترسی شما نباید مختل شود. هر کس دیگری که سعی در دسترسی به نصب phpMyAdmin داشته باشد، یک خطای 403 (ممنوعه) دریافت میکند: https://server_domain_or_IP/nothingtosee
در بخش بعدی ، نحوه استفاده از تونل SSH برای دسترسی به سرور وب را از طریق درخواست های محلی خواهیم دید. به این ترتیب ، شما حتی می توانید آدرس IP خود را تغییر دهید و به رابط phpMyAdmin دسترسی پیدا کنید. دسترسی به phpMyAdmin از طریق یک تونل رمزگذاری شده تونل زنی SSH به عنوان روشی جهت هدایت ترافیک شبکه از طریق کانال های رمزگذاری شده کار می کند. با اجرای یک دستور ssh مشابه آنچه برای ورود به سرور استفاده می کنید ، می توانید یک “تونل” ایمن بین دستگاه محلی و آن سرور ایجاد کنید. همه ترافیک هایی که وارد یک پورت محلی خاص میشوند، می توانند از طریق تونل رمزگذاری شده هدایت شوند و قبل از دسترسی به اینترنت ، از سرور راه دور به عنوان یک پروکسی استفاده کنند. مشابه چیزی است که هنگام استفاده از VPN (شبکه خصوصی مجازی) اتفاق می افتد ، با این حال تنظیم تونل SSH بسیار ساده تر است. ما از تونل سازی SSH استفاده خواهیم کرد تا درخواستهای خود را به سرور وب از راه دور که phpMyAdmin را اجرا می کند ، پروکسی کنیم. با ایجاد یک تونل بین دستگاه محلی و سرور که phpMyAdmin در آن نصب شده است ، می توانید درخواست های محلی را به سرور وب از راه دور هدایت کنید ، و مهمتر از همه ، ترافیک رمزگذاری می شود و درخواست ها به Nginx می رسند انگار که از localhost می آیند. به این ترتیب ، مهم نیست که از چه آدرس IP به آن وصل شوید ، می توانید به طور ایمن به رابط phpMyAdmin دسترسی پیدا کنید. از آنجا که ترافیک بین دستگاه محلی شما و سرور وب از راه دور رمزگذاری می شود ، این گزینه جایگزین مناسبی برای موقعیت هایی است که نمی توانید گواهی SSL / TLS را در سرور وبی نصب کنید که دارای phpMyAdmin است. از دستگاه محلی خود ، این دستور را هر زمان که نیاز به دسترسی به phpMyAdmin داشتید، اجرا کنید: بگذارید هر بخش از دستور را بررسی کنیم: ⦁ ssh user@server_domain_or_IP -L 8000:localhost:80 -L 8443:localhost:443 -N ⦁ ⦁ user: کاربر SSH برای اتصال به سرور ی که phpMyAdmin در آن کار می کند ⦁ hostname_or_IP: هاست SSH که phpMyAdmin در آن اجرا می شود ⦁ -L 8000: localhost: 80 مسیر HTTP را در پورت 8000 تغییر مسیر می دهد ⦁ -L 8443: localhost: 443 مسیر ترافیک HTTPS در پورت 8443 را تغییر میدهد ⦁ -N: دستورات از راه دور را اجرا نمی کند توجه: این دستور تا زمانی که با CTRL + C قطع نشود ، ترمینال را مسدود می کند ، در این صورت اتصال SSH پایان می یابد و تغییر مسیر بسته را متوقف می کند. اگر ترجیح می دهید این دستور را در حالت پس زمینه اجرا کنید ، می توانید از گزینه –f SSH استفاده کنید.
اکنون به مرورگر خود بروید و server_domain_or_IP را با localhost:PORT جایگزین کنید، جایی که PORT برای HTTP ، 8000 و برای HTTPS، 8443 است: http://localhost:8000/nothingtosee https://localhost:443/nothingtosee
توجه: اگر از طریق https به phpMyAdmin دسترسی دارید ، ممکن است یک پیام هشدار دریافت کنید که امنیت گواهی SSL را سؤال می کند. این اتفاق به این دلیل است که نام دامنه ای که شما در آن استفاده می کنید (localhost) با آدرس ثبت شده در گواهی نامه (دامنه ای که phpMyAdmin در واقع در آن ارائه می شود) مطابقت ندارد. در این صورت ادامه کار بی خطر خواهد بود.
اکنون همه درخواست های localhost: 8000 (HTTP) و localhost: 8443 (HTTPS) از طریق یک تونل امن به برنامه راه دور phpMyAdmin خود هدایت می شوند. نه تنها با غیرفعال کردن دسترسی عمومی به phpMyAdmin ، امنیت را افزایش داده اید ، بلکه با استفاده از یک تونل رمزگذاری شده برای ارسال و دریافت داده ، از تمام ترافیک بین رایانه محلی و سرور از راه دور نیز محافظت می کنید. اگر می خواهید استفاده از تونل زنی SSH را برای هرکسی که می خواهد به رابط phpMyAdmin شما (از جمله خودتان) دسترسی داشته باشد ، اعمال کنید ، می توانید با حذف سایر IPهای مجاز دیگر از فایل پیکربندی Nginx این کار را انجام دهید و 127.0.0.1 را به عنوان تنها هاست مجاز برای دسترسی به آن لوکیشن در نظر بگیرید. با توجه به اینکه هیچ کس قادر به درخواست مستقیم به phpMyAdmin نیست ، می توانید تأیید هویت HTTP را برای ساده سازی ستاپ خود حذف کنید. فایل پیکربندی شما در چنین سناریویی این گونه خواهد بود: /etc/nginx/sites-available/example.com server { . . .
location /nothingtosee { allow 127.0.0.1; #allow localhost only deny all; #deny all other sources }
. . . }
هنگامی که پیکربندی Nginx را با sudo systemctl reload nginx مجدد لود کنید ، نصب phpMyAdmin شما قفل می شود و کاربران برای دسترسی به رابط phpMyAdmin از طریق درخواست های هدایت شده ، باید از تونل های SSH استفاده کنند. نتیجه در این آموزش ، ما شاهد نحوه نصب phpMyAdmin در Ubuntu 18.04 در حال اجرای Nginx به عنوان سرور وب بودیم. همچنین روشهای پیشرفته ای را برای تأمین امنیت نصب phpMyAdmin در اوبونتو ، مانند غیرفعال کردن ورود کاربر ریشه به سیستم ، ایجاد یک لایه بیشتر تأیید اعتبار ، و استفاده از تونل SSH برای دسترسی به نصب phpMyAdmin فقط از طریق درخواست های محلی را پوشش داده ایم. پس از اتمام این آموزش ، باید بتوانید پایگاه داده MySQL خود را از یک رابط وب ایمن مدیریت کنید. این رابط کاربری بیشتر عملکردهای موجود از طریق خط فرمان MySQL را در معرض دید شما قرار می دهد. می توانید پایگاه های داده و شماتیک را بررسی کنید ، پرس و جوها را اجرا کنید و مجموعه ها و ساختارهای جدید داده ایجاد کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  ��ستفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
Lighthttp
,
Nginx
,
phpMyAdmin
,
pma
,
SSH
0 notes
vpsgol12-blog · 4 years
Text
نصب Python 3 و تنظیم یک محیط برنامه نویسی
یک زبان برنامه نویسی انعطاف پذیر و همه کاره است که می تواند در بسیاری از موارد به خاطر داشتن نقاط قوت در اسکریپت ، اتوماسیون ، تجزیه و تحلیل داده ها ، یادگیری ماشین و توسعه back-end مورد استفاده قرار گیرد. تیم توسعه پایتون برای اولین بار در سال 1991 با نامی الهام گرفته از گروه طنز بریتانیایی مونتی پایتون، آن را منتشر کردند و میخواستند پایتون را به زبانی تبدیل کنند که استفاده از آن بسیار جالب باشد. ستاپ سریع و سبک نسبتاً ساده و بازخورد فوری در مورد خطاها، پایتون را به یک انتخاب عالی برای مبتدیان و توسعه دهندگان با تجربه تبدیل کرده است. پایتون 3 جدیدترین نسخه این زبان است و آینده پایتون به حساب می آید. در این آموزش سرور مجازی Ubuntu 18.04 شما با یک محیط برنامه نویسی Python 3 تنظیم می شود. برنامه نویسی روی سرور مجازی مزایای بسیاری دارد و از همکاری در پروژه های توسعه پشتیبانی می کند. اصول کلی این آموزش در مورد هرگونه توزیع Debian Linux کاربرد دارد. پیش نیازها برای تکمیل این آموزش ، باید یک کاربر غیر root با امتیازات sudo در سرور مجازی Ubuntu 18.04 داشته باشید. برای یادگیری چگونگی دستیابی به این تنظیمات ، راهنمای راه اندازی سرور مجازی اولیه ما را دنبال کنید یا اسکریپت خودکار خود را اجرا کنید. اگر از قبل با محیط ترمینال آشنایی ندارید ، می توانید مقاله “مقدمه ای بر ترمینال لینوکس” را برای کارکردن بهتر با ترمینال بخوانید. با راه اندازی سرور مجازی و کاربر ، آماده شروع کار هستید. مرحله 1 – تنظیم پایتون 3 اوبونتو 18.04 و سایر نسخه های دبیان لینوکس هم Python 3 و هم Python 2 را از قبل نصب شده دارند. برای اطمینان از به روز بودن نسخه های خود ، بیایید سیستم را با دستور apt به روزرسانی کنیم تا با ابزار بسته بندی پیشرفته اوبونتو کار کند: $ sudo apt update
$ sudo apt -y upgrade پرچم -y تأیید خواهد کرد که ما موافق نصب همه موارد هستیم ، اما بسته به نسخه لینوکس شما ، ممکن است لازم باشد که در به روزرسانی و ارتقای سیستم ، اعلان های بیشتری را تأیید کنید. پس از اتمام روند ، می توانیم با تایپ کردن دستور زیر، نسخه پایتون 3 که در سیستم نصب شده است را بررسی کنیم: $ python3 -V
در پنجره ترمینال، خروجی دریافت خواهید کرد که شماره نسخه را به شما اطلاع می دهد. در حالی که ممکن است این عدد متفاوت باشد ، خروجی مشابه این خواهد بود: Output Python 3.6.7
برای مدیریت بسته های نرم افزاری برای پایتون ، بیایید pip را نصب کنیم ، ابزاری که بسته های برنامه نویسی را که ممکن است بخواهیم در پروژه های توسعه خود استفاده کنیم ، نصب و مدیریت خواهد کرد. می توانید با خواندن مقاله “چگونگی وارد کردن ماژول ها در پایتون 3” در مورد ماژول ها یا بسته هایی که می توانید آنها را نصب کنید اطلاعات کسب کنید. $ sudo apt install -y python3-pip
بسته های پایتون با تایپ دستور زیر قابل نصب هستند: $ pip3 install package_name
در اینجا ، pack_name می تواند به هر بسته یا کتابخانه Python مانند Django برای توسعه وب یا NumPy برای محاسبات علمی مراجعه کند. بنابراین اگر می خواهید NumPy را نصب کنید ، می توانید با دستور pip3 install numpy این کار را انجام دهید. چند بسته و ابزار توسعه دیگر وجود دارد که باید اطمینان حاصل شود که یک مجموعه قوی برای محیط برنامه نویسی خود داریم: $ sudo apt install build-essential libssl-dev libffi-dev python3-dev
پس از راه اندازی پایتون و نصب pip و سایر ابزارها ، می توانیم یک محیط مجازی برای پروژه های توسعه خود تنظیم کنیم. مرحله 2 – تنظیم یک محیط مجازی محیط های مجازی شما را قادر می سازد برای پروژه های پایتون فضایی مجزا در سرور مجازی خود داشته باشید ، اطمینان حاصل کنید که هر یک از پروژه های شما می توانند مجموعه ای از متعلقات خاص خود را داشته باشند که هیچ یک از پروژه های دیگر شما را مختل نمی کند. تنظیم یک محیط برنامه نویسی ، کنترل بیشتری بر روی پروژه های Python و نحوه دستیابی به نسخه های مختلف بسته ها برای ما فراهم می کند. این امر به ویژه هنگام کار با بسته های شخص ثالث بسیار مهم است. می توانید همانطور که می خواهید محیط برنامه نویسی Python را تنظیم کنید. هر محیط در واقع یک دیرکتوری یا پوشه ای در سرور مجازی شماست که چندین اسکریپت در آن وجود دارد تا بتواند به عنوان یک محیط عمل کند. در حالی که چند روش برای دستیابی به یک محیط برنامه نویسی در پایتون وجود دارد ، ما در اینجا از ماژول venv استفاده می کنیم که بخشی از کتابخانه استاندارد Python 3 است. بگذارید venv را با تایپ کردن دستور زیر نصب کنیم: $ sudo apt install -y python3-venv
با نصب آن، آماده ایجاد محیط هستیم. بیایید انتخاب کنیم که می خواهیم محیط های برنامه نویسی پایتون را در کدام دایرکتوری قرار دهیم ، یا یک دیرکتوری جدید با mkdir ایجاد کنیم ، مانند: $ mkdir environments
$ cd environments وقتی در دایرکتوری قرار گرفتید که میخواهید محیط در آنجا قرار گیرد ، می توانید با اجرای دستور زیر محیطی ایجاد کنید: $ python3.6 -m venv my_env
در اصل ، pyvenv یک دیرکتوری جدید ایجاد می کند که شامل چند مورد است که می توانیم با دستور ls آنها را مشاهده کنیم: $ ls my_env
Output bin include lib lib64 pyvenv.cfg share
این فایلها با هم کار می کنند تا اطمینان حاصل کنند که پروژه های شما از بستر وسیع تر دستگاه محلی تان جدا شده اند ، به گونه ای که فایل های سیستم و فایل های پروژه مخلوط نشوند. این روش خوبی برای کنترل نسخه و اطمینان از دسترسی هر یک از پروژه های شما به بسته های خاص مورد نیاز خود است. Python Wheels ، یک فرمت بسته ای ساخته شده برای Python است که می تواند با کاهش تعداد دفعات لازم برای تهیه کامپایل ، سرعت تولید نرم افزار شما را بالا ببرد و در دایرکتوری share Ubuntu 18.04 قرار خواهد گرفت. برای استفاده از این محیط ، باید آن را فعال کنید ، که می توانید با تایپ دستور زیر که اسکریپت فعال سازی را فراخوانی می کند به آن دست پیدا کنید: $ source my_env/bin/activate
خط فرمان شما اکنون با نام محیط شما پیشوند داده می شود ، در این حالت my_env نام دارد. بسته به اینکه کدام نسخه Debian Linux در حال اجرا است ، پیشوند شما ممکن است تا حدودی متفاوت به نظر برسد ، اما نام محیط شما در پرانتز باید اولین چیزی باشد که در خط خود مشاهده می کنید: (my_env) Sammy@ubuntu:~/environments$ این پیشوند به ما اطلاع می دهد که محیط my_env در حال حاضر فعال است ، به این معنی که وقتی ما در اینجا برنامه هایی را ایجاد می کنیم آنها فقط از تنظیمات و بسته های خاص این محیط استفاده می کنند. توجه: در محیط مجازی می توانید به جای python3 از فرمان python استفاده کنید و در صورت تمایل به جای pip3 از pip استفاده کنید. اگر در خارج از محیط از پایتون 3 در دستگاه خود استفاده می کنید ، لازم است که از دستورات python3 و pip3 استفاده کنید.
بعد از طی کردن این مراحل ، محیط مجازی شما آماده استفاده است. مرحله 3 – ایجاد یک برنامه ” hello, world” اکنون که محیط مجازی ما تنظیم شده است ، بیایید یک برنامه ” hello, world!” معمول ایجاد کنیم. این برنامه به ما امکان می دهد تا محیط خود را مورد آزمایش قرار دهیم و اگر قبلاً با پایتون کار نکرده ایم، بیشتر با آن آشنا شویم. برای این کار ، یک ویرایشگر متن خط فرمان مانند nano را باز خواهیم کرد و یک فایل جدید ایجاد می کنیم: (my_env) Sammy@ubuntu:~/environments$ nano hello.py
پس از باز شدن فایل متنی در پنجره ترمینال ، برنامه خود را تایپ می کنیم: print(“Hello, World!”) Copy با تایپ کلیدهای CTRL و X از nano خارج شوید و هنگامی که از شما خواسته شد فایل را ذخیره کنید، y را فشار دهید. پس از بیرون آمدن از nano و بازگشت به پوسته خود ، اجازه دهید برنامه را اجرا کنیم: (my_env) Sammy@ubuntu:~/environments$ python hello.py
برنامه hello.py که به تازگی ایجاد کرده اید باید باعث شود ترمینال شما خروجی زیر را تولید کند: Output Hello, World!
برای ترک محیط ، به سادگی فرمان deactivate را تایپ کنید و به فهرست اصلی خود باز خواهید گشت. نتیجه در این مرحله شما یک محیط برنامه نویسی پایتون 3 در سرور مجازی Debian Linux خود تنظیم کرده اید و هم اکنون می توانید یک پروژه رمزگذاری را شروع کنید! اگر از دستگاه محلی به جای سرور مجازی استفاده می کنید ، به مجموعه آموزشهای مربوط به سیستم عامل خود در سری “نحوه نصب و تنظیم یک محیط برنامه نویسی محلی برای پایتون 3” مراجعه کنید. با آماده سازی سرور مجازی خود برای توسعه نرم افزار ، می توانید با خواندن کتاب رایگان نحوه کدنویسی در Python 3 ، یا مشاوره گرفتن از آموزش های پروژه برنامه نویسی ما ، اطلاعات بیشتری درباره کد نویسی در پایتون کسب کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
back-end
,
Debian Linux
,
Python
,
Python 2
,
Python 3
0 notes
vpsgol12-blog · 4 years
Text
راه اندازی سرور Prisma روی اوبونتو 18.04
یک لایه داده است که جایگزین ابزارهای object-relational mapping (ORM) قبلی در برنامه شما است. Prisma با ارائه پشتیبانی هم برای سرور مجازی ساخت GraphQL و هم API های REST ، دسترسی به پایگاه داده را با تمرکز بر ایمنی نوع (type safety)، ساده می کند و جا به جایی های اعلامی دیتابیس را امکان پذیر می نماید. ایمنی نوع به کاهش خطاها و ناسازگاری های احتمالی کد کمک می کند ، در حالی که جا به جایی اعلامی پایگاه داده به شما امکان می دهد تا مدل داده های خود را در کنترل نسخه ذخیره کنید. این ویژگی ها به توسعه دهندگان کمک می کند تا زمان متمرکز خود را برای تنظیم دسترسی به پایگاه داده ، جا به جایی و گردش کار مدیریت داده ها کاهش دهند. می توانید سرور مجازی Prisma را به چند روش مستقر کنید تا بعنوان پروکسی برای پایگاه داده شما عمل کند ، و آن را از راه دور یا محلی میزبانی کنید. با استفاده از سرویس Prisma می توانید به داده های خود دسترسی پیدا کرده و با API GraphQL به بانک اطلاعاتی خود متصل شوید ، این کار امکان عملیات زمان واقعی و امکان ایجاد، به روزرسانی و حذف داده ها را فراهم میکند. GraphQL یک زبان پرس و جو برای API ها است که به کاربران امکان می دهد برای دسترسی به اطلاعات دقیق مورد نیاز از سرور مجازی خود ، پرس و جوهایی ارسال کنند. سرور مجازی Prisma یک جزء مستقل است که در بانک اطلاعاتی شما قرار دارد. در این آموزش شما به صورت دستی یک سرور مجازی Prisma را در Ubuntu 18.04 نصب کرده و یک پرس و جوی تستی GraphQL را در playground GraphQL اجرا می کنید. در حالی که Prisma را روی سرور مجازی راه دور خود اجرا می کنید ، هاست کد ستاپ و توسعه محلی Prisma هستید – جایی که در واقع برنامه خود را ایجاد خواهید کرد . با اجرای دستی نصب ، درک عمیق تری از زیرساخت های اساسی ستاپ خود خواهید داشت. در حالی که این آموزش مراحل دستی استقرار Prisma در سرور مجازی اوبونتو 18.04 را در بر می گیرد ، می توانید با دنبال کردن این لینک در سایت Prisma این کار را به صورت خودکار تر با دستگاه Docker انجام دهید. توجه: تنظیمات شرح داده شده در این بخش شامل ویژگی هایی نیست که شما معمولاً از سرور مجازی های آماده تولید مانند پشتیبان گیری خودکار و failover فعال انتظار دارید. پیش نیازها برای تکمیل این آموزش ، به موارد زیر نیاز دارید: ⦁ سرور مجازی Ubuntu 18.04 که با دنبال کردن راهنمای اولیه تنظیم سرور مجازی راه اندازی شده باشد، شامل کاربر غیر ریشه و امتیازات sudo باشد. ⦁ Docker نصب شده روی سرور مجازی شما. می توانید با دنبال کردن مرحله 1 آموزش نصب Docker در اوبونتو 18.04 ، به این هدف برسید. ⦁ Docker Compose نصب شده باشد. در مرحله 1 نصب Docker Compose می توانید دستورالعمل های لازم را برای این کار بیابید. ⦁ Node.js روی سرور مجازی شما نصب شده باشد. می توانید با دنبال کردن بخش PPA آموزش نصب Node.js این کار را انجام دهید. مرحله 1 – راه اندازی سرور مجازی Prisma Prisma CLI ابزار اولیه ای است که برای استقرار و مدیریت خدمات Prisma شما استفاده می شود. برای شروع ��دمات باید زیرساخت های لازم را تنظیم کنید که شامل سرور مجازی Prisma و یک بانک اطلاعاتی برای اتصال به آن می باشد. Docker Compose به شما امکان می دهد برنامه های چند کانتینری را مدیریت و اجرا کنید. شما می توانید از آن برای تنظیم زیرساخت های مورد نیاز سرویس Prisma استفاده کنید. با ایجاد فایل docker-compose.yml شروع به کار می کنید تا پیکربندی سرویس Prisma را در سرور مجازی خود ذخیره کنید. از این فایل برای چرخش خودکار Prisma ، یک پایگاه داده مرتبط و پیکربندی جزئیات لازم ، همه در یک مرحله استفاده خواهید کرد. پس از چرخش فایل با Docker Compose ، رمزهای عبور داده های شما را پیکربندی می کند ، بنابراین حتماً کلمات عبور را برای مدیریتAPIsecret و MYSQL_ROOT_PASSWORD با مقادیر ایمن جایگزین کنید. دستور زیر را برای ایجاد و ویرایش فایل docker-compose.yml اجرا کنید: ⦁ $ sudo nano docker-compose.yml ⦁ برای تعریف خدمات و حجم های مربوط به تنظیم Prisma ، محتوای زیر را به فایل اضافه کنید: docker-compose.yml version: “3” services: prisma: image: prismagraphql/prisma:1.20 restart: always ports: – “4466:4466” environment: PRISMA_CONFIG: | port: 4466 managementApiSecret: my-secret databases: default: connector: mysql host: mysql port: 3306 user: root password: prisma migrations: true mysql: image: mysql:5.7 restart: always environment: MYSQL_ROOT_PASSWORD: prisma volumes: – mysql:/var/lib/mysql volumes: mysql:
این پیکربندی موارد زیر را انجام می دهد: • دو سرویس راه اندازی می کند: prisma-db و db. • آخرین نسخه از Prisma را واکشی می کند. در این مقاله ، همان Prisma 1.20 است. • پورت هایی را تنظیم می کند که Prisma در دسترس خواهد بود و تمام اعتبارات را برای اتصال به پایگاه داده MySQL در بخش دیتابیس ها مشخص می کند. فایل docker-compose.yml ، managementApiSecret را تنظیم می کند ، که از دسترسی دیگران به اطلاعات شما به واسطه دانستن نقطه پایانی جلوگیری می کند. اگر از این آموزش برای هر چیزی به جز استقرار تستی استفاده می کنید ، باید managementApiSecret را به چیزی ایمن تر تغییر دهید. وقتی این کار را کردید ، حتماً آن را به خاطر بسپارید که بعداً بتوانید در طی مراحل prisma init وارد آن شوید. این فایل همچنین تصویر MySQL Docker را به در داخل خود قرار میدهد و اعتبارات آن را نیز تعیین می کند. برای اهداف این آموزش ، این فایل Docker Compose یک تصویر MySQL را می چرخاند ، اما می توانید از PostgreSQL با Prisma نیز استفاده کنید. هر دو تصویر Docker در Docker hub موجود است: ⦁ MySQL ⦁ PostgreSQL. فایل را ذخیره کنید و از آن خارج شوید. اکنون که تمام جزئیات را ذخیره کرده اید ، می توانید کانتینرهای Docker را شروع کنید. دستور -d به کانتینرها می گوید که در حالت جداگانه اجرا شوند ، به این معنی که در پس زمینه اجرا می شوند: ⦁ $ sudo docker-compose up -d ⦁ با این کار تصاویر Docker هم برای Prisma و هم برای mysql دریافت می شوند. با دستور زیر می توانید تأیید کنید که کانتینرهای Docker اجرا می شوند: ⦁ $ sudo docker ps ⦁ خروجی را مشاهده خواهید کرد که شبیه به این است: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 24f4dd6222b1 prismagraphql/prisma:1.12 “/bin/sh -c /app/sta…” 15 seconds ago Up 1 second 0.0.0.0:4466->4466/tcp root_prisma_1 d8cc3a393a9f mysql:5.7 “docker-entrypoint.s…” 15 seconds ago Up 13 seconds 3306/tcp root_mysql_1
با تنظیم سرور مجازی Prisma و پایگاه داده خود ، اکنون آماده کار به صورت محلی برای استقرار سرویس Prisma هستید. مرحله 2 – نصب Prisma بصورت محلی سرور مجازی Prisma محیط های زمان اجرا را برای خدمات Prisma شما فراهم می کند. اکنون که سرور مجازی Prisma خود را راه اندازی کرده اید ، می توانید سرویس Prisma را مستقر کنید. این مراحل را به صورت محلی و نه بر روی سرور مجازی خود اجرا خواهید کرد. برای شروع ، یک پوشه جداگانه ایجاد کنید تا همه فایل های Prisma را شامل شود: ⦁ $ mkdir prisma ⦁ سپس به آن پوشه بروید: ⦁ $ cd prisma ⦁ اگر از MacOS استفاده می کنید ، می توانید Prisma را با Homebrew نصب کنید. برای این کار ، دستور زیر را برای اضافه کردن مخزن Prisma اجرا کنید: ⦁ $ brew tap prisma/prisma ⦁ سپس می توانید Prisma را با دستور زیر نصب کنید: ⦁ $ brew install prisma ⦁ یا با npm نصب کنید: ⦁ $ npm install -g prisma ⦁
با نصب Prisma به صورت محلی ، آماده هستید تا سرویس جدید Prisma را راه اندازی کنید. مرحله 3 – ایجاد پیکربندی برای یک سرویس جدید Prisma پس از نصب ، می توانید از prisma init برای ایجاد ساختار فایل برای یک API پایگاه داده جدید Prisma استفاده کنید ، که فایلهای لازم برای ساختن برنامه شما را با Prisma تولید می کند. نقطه پایانی شما به طور خودکار در فایل prisma.yml خواهد بود و datamodel.prisma از قبل یک مدل داده نمونه را در اختیار شما خواهد داشت که می توانید در مرحله بعد پرس و جو کنید. datamodel به عنوان پایه API Prisma شما عمل می کند و الگوی برنامه را مشخص می کند. در این مرحله ، شما فقط فایل ها و مدل داده نمونه را ایجاد می کنید. تا زمانی که بعداً در این مرحله prisma deploy را اجرا کنید، تغییراتی انجام نخواهید داد. اکنون می توانید دستور زیر را بصورت محلی اجرا کنید تا ساختار فایل جدید ایجاد شود: ⦁ $ prisma init hello-world ⦁ پس از اجرای این دستور ، اعلان تعاملی را مشاهده خواهید کرد. وقتی از شما پرسیده شد ، Use other server را انتخاب کرده و ENTER را فشار دهید: Output Set up a new Prisma server or deploy to an existing server?
You can set up Prisma for local development (based on docker-compose) Use existing database Connect to existing database Create new database Set up a local database using Docker
Or deploy to an existing Prisma server: Demo server Hosted demo environment incl. database (requires login) ❯ Use other server Manually provide endpoint of a running Prisma server
سپس نقطه پایانی سرور مجازی خود را که به عنوان سرور مجازی Prisma عمل می کند ارائه می دهید. چیزی مانند: http: // SERVER_IP_ADDRESS: 4466. به نظر می رسد. مهم است که نقطه پایانی با http (یا https) شروع شود و شماره پورت را نشان دهد. Output Enter the endpoint of your Prisma server http://SERVER_IP_ADDRESS:4466
برای سری نگه داشتن مدیریت API ، عبارت یا رمز عبوری را که قبلاً در فایل پیکربندی اعلام کرده اید وارد کنید: Output Enter the management API secret my-secret
برای گزینه های بعدی می توانید با فشار دادن ENTER برای نام سرویس و مرحله خدمات ، متغیرهای پیش فرض را انتخاب کنید: Output Choose a name for your service hello-world Choose a name for your stage dev
همچنین برای کلاینت Prisma یک انتخاب روی یک زبان برنامه نویسی به شما داده می شود. در این حالت می توانید زبان دلخواه خود را انتخاب کنید. می توانید اطلاعات بیشتری در مورد کلاینت را در این لینک بخوانید. Output Select the programming language for the generated Prisma client (Use arrow keys) ❯ Prisma TypeScript Client Prisma Flow Client Prisma JavaScript Client Prisma Go Client Don’t generate
پس از تکمیل اعلان ، خروجی زیر را مشاهده می کنید که انتخاب های شما را تأیید می کند: Output Created 3 new files:
prisma.yml Prisma service definition datamodel.prisma GraphQL SDL-based datamodel (foundation for database) .env Env file including PRISMA_API_MANAGEMENT_SECRET
Next steps:
1. Open folder: cd hello-world 2. Deploy your Prisma service: prisma deploy 3. Read more about deploying services: http://bit.ly/prisma-deploy-services
به دیرکتوری HELLO-WORLD بروید: ⦁ $ cd hello-world ⦁ این تغییرات در سرور مجازی خود را با prisma deploy همگام سازی کنید. این کار اطلاعات را از دستگاه محلی شما به سرور مجازی Prisma می فرستد و سرویس Prisma را روی سرور مجازی Prisma ایجاد می کند: ⦁ $ prisma deploy ⦁ توجه: اجرای مجدد prisma دوباره خدمات Prisma را به روز می کند. خروجی شما چیزی شبیه به این خواهد بود: Output Creating stage dev for service hello-world ✔ Deploying service `hello-world` to stage ‘dev’ to server ‘default’ 468ms
Changes:
User (Type) + Created type `User` + Created field `id` of type `GraphQLID!` + Created field `name` of type `String!` + Created field `updatedAt` of type `DateTime!` + Created field `createdAt` of type `DateTime!`
Applying changes 716ms
Your Prisma GraphQL database endpoint is live:
HTTP: http://SERVER_IP_ADDRESS:4466/hello-world/dev WS: ws://SERVER_IP_ADDRESS:4466/hello-world/dev
خروجی نشان می دهد که Prisma پایگاه داده شما را مطابق با datamodel (که در مرحله prisma init ایجاد شده ) با یک کاربر TYPE به روز کرده است. Type ها قسمت اصلی یک پایگاه داده هستند. آنها یک آیتم از برنامه شما را نشان می دهند ، و هر نوع شامل چندین فیلد است. برای Datamodel فیلدهای مرتبط که کاربر را توصیف می کنند عبارتند از: شناسه کاربر ، نام ، زمان ایجاد و زمان بروزرسانی آنها. اگر در این مرحله به مشکلاتی برخورد کردید و خروجی دیگری را دریافت کردید ، دوبار بررسی کنید که در اعلان تعاملی به درستی همه فیلدها را وارد نموده اید. می توانید با مرور مطالب فایل prisma.yml این کار را انجام دهید. با اجرای سرویس Prisma ، می توانید به دو نقطه پایانی مختلف وصل شوید: ⦁ رابط مدیریت ، موجود در http://SERVER_IP_ADDRESS:4466/management ، که در آن می توانید خدمات Prisma را مدیریت و استقرار دهید. ⦁ APP GraphQL برای سرویس Prisma شما ، که در آدرس http://SERVER_IP_ADDRESS:4466/hello-world/dev موجود است. شما با موفقیت سرور مجازی Prisma خود را راه‌اندازی و مستقر کردید. اکنون می توانید پرس و جوها و جهش ها را در GraphQL جستجو کنید. مرحله 4 – اجرای یک پرس و جوی مثال برای جستجوی یکی دیگر از موارد استفاده Prisma ، می توانید با ابزار playground GraphQL که یک محیط توسعه یکپارچه GraphQL منبع باز (IDE) روی سرور مجازی شما است ، این کار را آزمایش کنید. برای دستیابی به آن ، از نقطه پایانی مرورگر خود در از مرحله قبلی بازدید کنید: http://SERVER_IP_ADDRESS:4466/hello-world/dev جهش (mutation ) یک اصطلاح GraphQL است که روشی برای اصلاح – ایجاد ، به روزرسانی یا حذف (CRUD) – داده های موجود در پس زمینه از طریق GraphQL را توصیف می کند. برای ایجاد یک کاربر جدید و کشف قابلیت ها می توانید جهشی ارسال کنید. برای این کار ، جهش زیر را در سمت چپ صفحه اجرا کنید: mutation { createUser(data: { name: “Alice” }) { id name } }
پس از فشردن دکمه play ، نتایج را در سمت راست صفحه مشاهده خواهید کرد.
پس از آن ، اگر می خواهید با استفاده از ستون ID در دیتابیس به جستجوی کاربر بپردازید ، می توانید پرس و جو زیر را اجرا کنید: query { user(where: { id: “cjkar2d62000k0847xuh4g70o” }) { id name } }
اکنون یک سرور مجازی Prisma و سرویسی فعال و در حال اجرا در سرور مجازی خود دارید و پرس و جوهای تستی را در IDE GraphQL اجرا کرده اید. نتیجه شما یک ستاپ Prisma در سرور مجازی خود دارید. می توانید موارد استفاده بیشتر از Prisma و مراحل بعدی را در راهنمای شروع به کار مشاهده کنید یا ویژگی های Prisma را که در Doc Prisma قرار داده شده است ، جستجو کنید. پس از اتمام مراحل کلی در این آموزش ، گزینه های مختلفی برای تأیید اتصال خود به دیتابیس دارید ، یکی از احتمالات استفاده از کلاینت Prisma میباشد.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
datamodel
,
Doc Prisma
,
IDE GraphQL
,
Prisma
,
Prisma 1.20
0 notes
vpsgol12-blog · 4 years
Text
نصب و پیکربندی pgAdmin 4 در Server Mode
یک پلتفرم توسعه و اجرای منبع باز برای PostgreSQL و سیستم های مدیریت پایگاه داده مرتبط با آن است. از آنجا که در Python و jQuery نوشته شده، تمام ویژگی های موجود در PostgreSQL را پشتیبانی می کند. می توانید از pgAdmin برای انجام همه کارها از نوشتن پرس و جوهای SQL پایه گرفته تا نظارت بر پایگاه های داده خود و پیکربندی معماری های پیشرفته پایگاه داده استفاده کنید. در این آموزش ، مراحل نصب و پیکربندی آخرین نسخه pgAdmin را روی یک سرور مجازی Ubuntu 18.04 ، دسترسی به pgAdmin از طریق یک مرورگر وب ، و اتصال آن به یک پایگاه داده PostgreSQL در سرور مجازی شما را بررسی خواهیم کرد. پیش نیازها برای تکمیل این آموزش ، به موارد زیر نیاز دارید: • سرور مجازی ی که اوبونتو 18.04 را اجرا می کند. این سرور مجازی باید دارای یک کاربر غیر ریشه با امتیازات sudo و همچنین فایروال تنظیم شده با ufw داشته باشد. برای راهنمایی در مورد این تنظیمات ، راهنمای اولیه راه اندازی سرور مجازی ما برای اوبونتو 18.04 را دنبال کنید. • سرور مجازی وب Apache که بر روی سرور مجازی شما نصب شده باشد. برای پیکربندی این روی ماشین خود، راهنمای ما در مورد نحوه نصب وب سرور مجازی Apache در Ubuntu 18.04 را دنبال کنید. • PostgreSQL که بر روی سرور مجازی شما نصب شده باشد. با دنبال کردن راهنمای ما در مورد نحوه نصب و استفاده از PostgreSQL در اوبونتو 18.04 می توانید این تنظیمات را انجام دهید. همانطور که این راهنما را دنبال می کنید ، حتماً یک نقش جدید و بانک اطلاعاتی ایجاد کنید ، زیرا برای اتصال pgAdmin به نمونه PostgreSQL خود به هر دو نیاز خواهید داشت. • Python 3 و venv که بر روی سرور مجازی شما نصب شده باشد. برای نصب این ابزارها و تنظیم یک محیط مجازی ، نحوه نصب Python 3 و تنظیم یک محیط برنامه نویسی روی یک سرور مجازی Ubuntu 18.04 را دنبال کنید. مرحله 1 – نصب pgAdmin و متعلقات آن د زمان نوشتن این مقاله ، جدیدترین نسخه pgAdmin ،pgAdmin 4 است ، در حالی که جدیدترین نسخه موجود در مخازن رسمی اوبونتو pgAdmin3 است. ما مراحل نصب آخرین نسخه pgAdmin 4 را در یک محیط مجازی (همانطور که توسط تیم توسعه پروژه توصیه می شود) انجام خواهیم داد و متعلقات آن را با استفاده از apt نصب می کنیم. برای شروع ، اگر اخیراً این کار را نکرده اید ، فهرست بسته سرور مجازی خود را به روز کنید: ⦁ $ sudo apt update ⦁ در مرحله بعد ، متعلقات زیر را نصب کنید. اینها شامل libgmp3-dev ، یک کتابخانه محاسباتی دقیق، libpq-dev شامل فایل های هدر و یک کتابخانه ثابت هستند که به ارتباط با پس زمینه PostgreSQL کمک می کند. و libapache2-mod-wsgi-py3 ، یک ماژول Apache که به شما امکان می دهد میزبان برنامه های وب مستقر در پایتون در Apache باشید: پس از این ، چند دایرکتوری ایجاد کنید که pgAdmin داده های بخش های خود ، داده های ذخیره و ورود ها را ذخیره کند: ⦁ $ sudo mkdir -p /var/lib/pgadmin4/sessions ⦁ ⦁ $ sudo mkdir /var/lib/pgadmin4/storage ⦁ ⦁ $ sudo mkdir /var/log/pgadmin4
سپس ، مالکیت این دایرکتوری ها را به کاربر و گروه غیر ریشه خود تغییر دهید. این امر از این منظر ضروری است که آنها در حال حاضر متعلق به کاربر ریشه شما هستند ، اما ما pgAdmin را از یک محیط مجازی متعلق به کاربر غیر ریشه شما نصب خواهیم کرد و مراحل نصب شامل ایجاد برخی فایل ها در این دیرکتوری ها است. با این وجود ، پس از نصب ، ما مالکیت را به کاربر و گروه www-data تغییر می دهیم تا بتواند به وب ارائه شود: ⦁ $ sudo chown -R sammy:sammy /var/lib/pgadmin4 ⦁ ⦁ $ sudo chown -R sammy:sammy /var/log/pgadmin4
سپس ، محیط مجازی خود را باز کنید. به دیرکتوری بروید که محیط برنامه نویسی شما در آن قرار دارد و آن را فعال کنید. پس از کنوانسیون های نامگذاری آموزش پیش نیاز پایتون 3 ، به دیرکتوری environments رفته و محیط my_env را فعال می کنیم: ⦁ $ cd environments/ ⦁ ⦁ $ source my_env/bin/activate
پس از این ، کد منبع pgAdmin 4 را روی دستگاه خود دانلود کنید. برای یافتن آخرین نسخه از کد منبع ، به صفحه دانلود pgAdmin 4 (Python Wheel) بروید و روی آخرین نسخه (v3.4 ، مطابق با این نوشتار) کلیک کنید. این کار شما را به یک صفحه دانلود در وب سایت PostgreSQL می برد. پس از آن ، پیوند فایلی را که به .whl ختم می شود ، کپی کنید – قالب استاندارد بسته ساخته شده است که برای توزیع های پایتون میشود. سپس به ترمینال خود برگردید و دستور wget زیر را اجرا کنید ، تا مطمئن شوید که پیوند را با پیوندی که از سایت PostgreSQL کپی کردید ، جایگزین کرده اید تا فایل. WHL را روی سرور مجازی شما دانلود کند: ⦁ (my_env) Sammy@server:~$ wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v3.4/pip/pgadmin4-3.4-py2.py3-none-any.whl ⦁ سپس بسته wheel ، اجرای مرجع استاندارد بسته بندی wheel را نصب کنید. این پکیج ، یک کتابخانه Python را به عنوان افزونه ای برای wheel های ساخته شده ارائه میدهد و شامل یک ابزار خط فرمان برای کار با فایل های .whl است: ⦁ (my_env) Sammy@server:~$ python -m pip install wheel ⦁ سپس بسته pgAdmin 4 را با دستور زیر نصب کنید: ⦁ (my_env) Sammy@server:~$ python -m pip install pgadmin4-3.4-py2.py3-none-any.whl ⦁ این از نصب pgAdmin و متعلقات آن مراقبت میکند. با این وجود قبل از اتصال آن به پایگاه داده خود ، چند تغییر وجود دارد که باید در پیکربندی برنامه انجام دهید. مرحله 2 – پیکربندی pgAdmin 4 اگرچه pgAdmin روی سرور مجازی شما نصب شده است ، اما هنوز چند مرحله برای اطمینان از داشتن مجوزها و تنظیمات لازم جهت استفاده صحیح از رابط وب ، وجود دارد. فایل پیکربندی اصلی pgAdmin ، config.py ، قبل از هر فایل پیکربندی دیگر خوانده می شود. از محتویات آن می توان به عنوان یک مرجع برای تنظیمات پیکربندی بیشتر استفاده کرد که می تواند در سایر فایل های پیکربندی pgAdmin مشخص شود ، اما برای جلوگیری از خطاهای پیش بینی نشده ، نباید خود فایل config.py را ویرایش کنید. ما چند تغییر به فایل جدید به نام config_local.py اضافه خواهیم کرد که پس از فایل اصلی خوانده می شود. اکنون این فایل را با استفاده از ویرایشگر متن مورد نظر خود ایجاد کنید. در اینجا ، ما از nano استفاده خواهیم کرد: ⦁ (my_env) Sammy@server:~$ nano my_env/lib/python3.6/site-packages/pgadmin4/config_local.py ⦁ در ویرایشگر خود ، محتوای زیر را اضافه کنید: environments/my_env/lib/python3.6/site-packages/pgadmin4/config_local.py LOG_FILE = ‘/var/log/pgadmin4/pgadmin4.log’ SQLITE_PATH = ‘/var/lib/pgadmin4/pgadmin4.db’ SESSION_DB_PATH = ‘/var/lib/pgadmin4/sessions’ STORAGE_DIR = ‘/var/lib/pgadmin4/storage’ SERVER_MODE = True
در اینجا کاری که این پنج دستورالعمل انجام میدهند آمده است: ⦁ LOG_FILE: فایلی را که در آن ورودهای pgAdmin ذخیره می شود ، تعریف می کند. ⦁ SQLITE_PATH: pgAdmin داده های مربوط به کاربر را در یک پایگاه داده SQLite ذخیره می کند ، و این دستورالعمل نرم افزار pgAdmin را به این پایگاه داده ارجاع میدهد. از آنجا که این فایل در دیرکتوری / var / lib / pgadmin4 / قرار دارد ، پس از به روزرسانی اطلاعات کاربر شما از بین نمی رود. ⦁ SESSION_DB_PATH: مشخص می کند که کدام دایرکتوری برای ذخیره داده های بخش استفاده خواهد شد. ⦁ STORAGE_DIR: مشخص می کند که pgAdmin داده های دیگر مانند پشتیبان گیری و مجوزهای امنیتی را ذخیره می کند. ⦁ SERVER_MODE: تنظیم این دستورالعمل روی True به pgAdmin می گوید که در حالت سرور مجازی اجرا شود ، بر خلاف حالت دسکتاپ. توجه کنید که هر یک از این مسیرهای فایل به دایرکتوری هایی که در مرحله 1 ایجاد کرده اید ، اشاره می کنند. پس از افزودن این خطوط ، فایل را ذخیره کرده و ببندید (CTRL + X را فشار داده و سپس Y و ENTER را فشار دهید). با استفاده از این تنظیمات ، اسکریپت تنظیم pgAdmin را اجرا کنید تا اعتبار ورود به سیستم را تنظیم کنید: ⦁ (my_env) Sammy@server:~$ python my_env/lib/python3.6/site-packages/pgadmin4/setup.py ⦁ پس از اجرای این دستور ، اعلانی را مشاهده می کنید که آدرس ایمیل و رمز عبور شما را درخواست می کند. وقتی بعدا به pgAdmin دسترسی پیدا کنید ، این مقادیر به عنوان اعتبارات ورود به سیستم شما استفاده می شوند ، بنابراین حتماً آنچه را که در اینجا وارد می کنید به خاطر داشته باشید یا یادداشت کنید: Output . . . Enter the email address and password to use for the initial pgAdmin user account:
Email address: [email protected] Password: Retype password:
سپس ، محیط مجازی خود را غیرفعال کنید: ⦁ (my_env) Sammy@server:~$ deactivate ⦁ مسیرهای فایلی را که در فایل config_local.py مشخص کرده اید به یاد بیاورید. این فایل ها درون دایرکتوری هایی که در مرحله 1 ایجاد کردید نگهداری می شوند ، که در حال حاضر متعلق به کاربر غیر ریشه شما هستند. با این حال ، باید توسط کاربر و گروهی که سرور مجازی وب شما را اجرا می کند ، در دسترس باشند. به طور پیش فرض در اوبونتو 18.04 ، این ها کاربر و گروه www-data هستن�� ، بنابراین مجوزهای موجود در دیرکتوری های زیر را به روز کنید تا مالکیت www-data را به هر دوی آنها بدهید: ⦁ $ sudo chown -R www-data:www-data /var/lib/pgadmin4/ ⦁ ⦁ $ sudo chown -R www-data:www-data /var/log/pgadmin4/
با این کار ، pgAdmin کاملاً پیکربندی شده است. با این حال ، این برنامه هنوز از سرور مجازی شما ارائه نمی شود ، بنابراین قابل دسترسی نیست. برای حل این مشکل ، ما Apache را برای ارائه pgAdmin پیکربندی می کنیم تا بتوانید از طریق یک مرورگر وب به رابط کاربری آن دسترسی پیدا کنید. مرحله 3 – پیکربندی Apache سرور مجازی وب Apache از هاست های مجازی برای کپسوله کردن جزئیات پیکربندی و میزبانی بیش از یک دامنه از یک سرور مجازی واحد استفاده می کند. اگر آموزش پیش نیاز Apache را دنبال کردید ، ممکن است یک فایل هاست مجازی نمونه را با نام your_domain.conf تنظیم کرده باشید ، اما در این مرحله ما یک مورد جدید ایجاد خواهیم کرد که از طریق آن می توانیم رابط وب pgAdmin را ارائه دهیم. برای شروع ، مطمئن شوید که در دیرکتوری ریشه خود قرار دارید: ⦁ $ cd / ⦁
سپس یک فایل جدید در دیرکتوری /sites-available/ با نام pgadmin4.conf ایجاد کنید. این فایل هاست مجازی سرور مجازی شما خواهد بود: ⦁ $ sudo nano /etc/apache2/sites-available/pgadmin4.conf ⦁ محتوای زیر را به این فایل اضافه کنید ، حتما بخش های هایلایت شده را به روز کنید تا با پیکربندی خودتان هماهنگ شوید: /etc/apache2/sites-available/pgadmin4.conf <VirtualHost *> ServerName your_server_ip
WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/home/sammy/environments/my_env WSGIScriptAlias / /home/sammy/environments/my_env/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi
<Directory “/home/sammy/environments/my_env/lib/python3.6/site-packages/pgadmin4/”> WSGIProcessGroup pgadmin WSGIApplicationGroup %{GLOBAL} Require all granted </Directory> </VirtualHost>
فایل هاست مجازی را ذخیره کنید و ببندید. سپس ، از اسکریپت a2dissite استفاده کنید تا فایل هاست مجازی پیش فرض ، 000-default.conf را غیرفعال کنید: ⦁ $ sudo a2dissite 000-default.conf ⦁ توجه: اگر از آموزش پیش نیاز Apache استفاده کرده اید ، ممکن است قبلاً 000-default.conf را غیرفعال کرده و یک فایل پیکربندی هاست مجازی نمونه (به نام your_domain.conf را در پیش نیاز) تنظیم کرده باشید. در این صورت ، باید فایل میزبان مجازی your_domain.conf را با دستور زیر غیرفعال کنید: ⦁ $ sudo a2dissite your_domain.conf ⦁ سپس از اسکریپت a2ensite استفاده کنید تا فایل هاست مجازی pgadmin4.conf خود را فعال کنید. با این کار یک لینک نمادین از فایل هاست مجازی در دیرکتوری /sites-available/ به دیرکتوری /sites-enabled/ ایجاد می شود: ⦁ $ sudo a2ensite pgadmin4.conf ⦁ پس از این ، بررسی کنید که دستور فایل پیکربندی شما صحیح باشد: ⦁ $ apachectl configtest ⦁ اگر فایل پیکربندی شما به صورت کامل درست باشد ، Syntax OK را خواهید دید. اگر خطایی در خروجی مشاهده کردید ، فایل pgadmin4.conf را مجدداً باز کنید و دوبار بررسی کنید که آدرس IP و مسیر فایل شما صحیح باشند ، سپس به configtest بازگردید. وقتی Syntax OK را در خروجی خود مشاهده کردید ، سرویس Apache را مجدداً راه اندازی کنید تا فایل هاست مجازی جدید شما را بخواند: ⦁ $ sudo systemctl restart apache2 ⦁ pgAdmin اکنون کاملاً نصب و پیکربندی شده است. در مرحله بعد ، نحوه دسترسی به pgAdmin را از یک مرورگر پیش از اتصال به پایگاه داده PostgreSQL خود مرور خواهیم کرد. مرحله 4 – دسترسی به pgAdmin در دستگاه محلی خود ، مرورگر وب مورد نظر خود را باز کرده و به آدرس IP سرور مجازی خود بروید: http://your_server_ip
پس از آن، صفحه ورود به سیستم شبیه زیر به شما نشان داده خواهد شد:
اطلاعات ورود به سیستم را که در مرحله 2 تعریف کردید وارد کنید و به صفحه خوش آمد گویی pgAdmin منتقل می شوید:
اکنون که تأیید کردید که می توانید به رابط pgAdmin دسترسی پیدا کنید ، تنها کاری که باید انجام دهید اتصال pgAdmin به پایگاه داده PostgreSQL است. قبل از انجام این کار ، باید یک تغییر جزئی در پیکربندی فوق کاربر PostgreSQL ایجاد کنید. مرحله 5 – پیکربندی کاربر PostgreSQL اگر آموزش پیش نیاز PostgreSQL را دنبال کرده باشید ، باید PostgreSQL را با نقش جدید ابرکاربر و پایگاه داده تنظیم شده بر روی سرور مجازی خود نصب داشته باشید. به طور پیش فرض در PostgreSQL ، شما به عنوان کاربران پایگاه داده با استفاده از روش تأیید هویت “پروتکل شناسایی” یا “شناسایی” تأیید اعتبار می شوید. این روند به این گونه است که PostgreSQL نام کاربری اوبونتو کلاینت را میگیرد و از آن به عنوان نام کاربری مجاز پایگاه داده استفاده می کند. این کار می تواند در بیشتر موارد امنیت بیشتری را ایجاد کند ، اما همچنین می تواند در مواردی که مایل به اتصال یک برنامه خارجی مانند pgAdmin به یکی از بانکهای اطلاعاتی خود هستید، باعث ایجاد مشکل شود. برای حل این مشکل ، ما یک رمز عبور برای این نقش PostgreSQL تعیین می کنیم که به pgAdmin امکان اتصال به پایگاه داده شما را می دهد. از ترمینال خود ، اعلان PostgreSQL را تحت نقش ابرکاربر خود باز کنید: ⦁ $ sudo -u sammy psql ⦁ از اعلان PostgreSQL ، نمایه کاربر را به روز کنید تا یک رمز عبور قوی به انتخاب شما داشته باشد: ⦁ Sammy=# ALTER USER sammy PASSWORD ‘password’ سپس از اعلان PostgreSQL خارج شوید: ⦁ Sammy=# \q ⦁
در مرحله بعد ، به رابط pgAdmin 4 در مرورگر خود برگردید و منوی مرورگر را در سمت چپ پیدا کنید. برای باز کردن یک منوی زمینه ، روی سرور مجازیها کلیک راست کنید ، موس خود را روی ایجاد حرکت داده و روی سرور مجازی … کلیک کنید.
این کار باعث می شود پنجره ای در مرورگر شما ظاهر شود که در آن می توانید اطلاعات مربوط به سرور مجازی ، نقش و پایگاه داده خود را وارد کنید. در تب General نام این سرور مجازی را وارد کنید. این نام می تواند هر چیزی که دوست دارید باشد ، اما بهتر است نامی توصیفی برای آن انتخاب کنید. در مثال ما سرور مجازی Sammy-server-1 نامگذاری شده است.
سپس ، بر روی تب Connection کلیک کنید. در فیلد Host name/address ، localhost را وارد کنید. پورت باید به طور پیش فرض روی 5432 تنظیم شود ، که برای این ستاپ کار خواهد کرد ، زیرا پورت پیش فرض استفاده شده توسط PostgreSQL میباشد. در قسمت Maintenance Database ، نام بانک اطلاعاتی را که می خواهید به آن متصل شوید ، وارد کنید. توجه داشته باشید که این بانک اطلاعاتی از قبل باید روی سرور مجازی شما ایجاد شود. سپس به ترتیب نام کاربری و رمز عبوری را که قبلاً پیکربندی کرده اید در قسمت های Username و Password وارد کنید.
قسمت های خالی در سربرگ های دیگر اختیاری است ، و فقط لازم است که در صورت داشتن یک ستاپ خاص در ذهن تان ، آنها را پر کنید. بر روی دکمه ذخیره کلیک کنید ، و پایگاه داده در زیر سرور مجازی ها در فهرست مرورگر ظاهر می شود. شما با موفقیت pgAdmin4 را به پایگاه داده PostgreSQL خود وصل کردید. می توانید تقریباً هر کاری را که از اعلان PostgreSQL مدیریت میکردید، از داشبورد pgAdmin انجام دهید. برای نشان دادن این امر، یک جدول مثال ایجاد می کنیم و آن را با برخی از داده های نمونه از طریق رابط وب پر می کنیم. مرحله 6 – ایجاد جدول در داشبورد pgAdmin از داشبورد pgAdmin ، منوی مرورگر را در سمت چپ پنجره پیدا کنید. بر روی علامت مثبت (+) در کنار سرور مجازی (1) کلیک کنید تا منوی درختی درون آن باز شود. سپس ، روی علامت مثبت در سمت چپ سرور مجازی ی که در مرحله قبل اضافه کرده اید کلیک کنید (در مثال ما Sammy-server-1بود) ، سپس Databases ، نام دیتابیسی که اضافه کرده اید (sammy ، در مثال ما) ، و سپس طرحواره (1) را باز کنید. باید یک منوی درختی مانند زیر را ببینید:
بر روی گزینه لیست جداول کلیک راست کنید، و سپس مکان نما روی create حرکت دهید و روی Table … کلیک کنید.
با این کار یک پنجره ایجاد جدول باز می شود. در زیر تب General این پنجره ، یک نام برای جدول وارد کنید. این نام می تواند هر چیزی باشد ، اما برای ساده سازی ، ما آن را جدول شماره 01 می نامیم.
سپس به تب columns بروید و روی علامت + در گوشه سمت راست بالای پنجره کلیک کنید تا چند ستون اضافه شود. هنگام افزودن ستون ، لازم است که نام و نوع داده را به آن بدهید ، و در صورت نیاز به نوع داده ای که انتخاب کرده اید ، لازم است یک طول را انتخاب کنید. علاوه بر این ، مطالب رسمی PostgreSQL بیان می کند که اضافه کردن کلید اصلی به جدول معمولاً بهترین روش است. کلید اصلی محدودیتی است که یک ستون یا مجموعه ستون خاص را نشان می دهد که می تواند به عنوان شناگر ویژه ردیف های جدول استفاده شود. این مسئله الزامی نیست ، اما اگر می خواهید یک یا چند ستون خود را به عنوان کلید اصلی تنظیم کنید ، سوئیچ را در سمت راست از no به yes تغییر دهید. برای ایجاد جدول بر روی دکمه ذخیره کلیک کنید.
تا این مرحله ، شما یک جدول ایجاد کرده و ستون هایی را به آن اضافه کرده اید. با این حال ، ستون ها هنوز داده ای را دراختیار ندارند. برای افزودن داده به جدول جدید خود ، بر روی نام جدول در منوی مرورگر راست کلیک کنید ، مکان نمای خود را روی اسکریپت ها بگیرید و بر روی INSERT Script کلیک کنید.
با این کار پانل جدیدی روی داشبورد باز می شود. در بالا عبارت INSERT نصفه تکمیل شده ، با نام های مناسب جدول و ستون را مشاهده خواهید کرد. پیش بروید و علامت سؤال (؟) را با برخی از داده های ساختگی جایگزین کنید ، مطمئن شوید که داده اضافه شده با انواع داده ای که برای هر ستون انتخاب کرده اید هماهنگ باشد. توجه داشته باشید که می توانید با افزودن هر ردیف در یک مجموعه جدید از پرانتزها ، چندین ردیف داده اضافه کنید ، که هر مجموعه پرانتز همانطور که در مثال زیر نشان داده شده است با یک کاما جدا میشوند. در صورت تمایل ، اسکریپت INSERT را که به طور جزیی تکمیل شده است با این عبارت مثال INSERT جایگزین کنید: INSERT INTO public.”table-01″( col1, col2, col3) VALUES (‘Juneau’, 14, 337), (‘Bismark’, 90, 2334), (‘Lansing’, 51, 556);
برای اجرای عبارت INSERT روی نماد رعد و برق (⚡) کلیک کنید. برای مشاهده جدول و تمام داده های موجود در آن ، یک بار دیگر بر روی نام جدول خود در فهرست مرورگر کلیک راست کنید ، مکان نما خود را روی View / edit data حرکت دهید و All Rows را انتخاب کنید.
پانل جدید دیگری را باز خواهد کرد که در زیر آن ، در سربرگ Data Output پانل پایین ، می توانید تمام داده های آن جدول را مشاهده کنید.
با این کار ، شما با موفقیت جدول ایجاد کرده اید و آن را با برخی از داده ها از طریق رابط وب pgAdmin پر کرده اید. البته این تنها روشی است که می توانید از آن برای ایجاد یک جدول از طریق pgAdmin استفاده کنید. به عنوان مثال ، می توانید به جای روش مبتنی بر GUI که در این مرحله شرح داده شده است ، جدول را با استفاده از SQL ایجاد و پر کنید. نتیجه در این راهنما یاد گرفتید که چگونه pgAdmin 4 را از یک محیط مجازی Python نصب کنید ، آن را پیکربندی کنید ، با Apache آن را به وب ارائه کنید و چگونه به یک پایگاه داده PostgreSQL در وب سرویس متصل نمایید . علاوه بر این ، این راهنما فراتر از روشی است که می تواند برای ایجاد و جمع آوری جدول استفاده شود ، بلکه pgAdmin می تواند بسیار فراتر از ایجاد و ویرایش جداول استفاده شود. برای کسب اطلاعات بیشتر در مورد چگونگی استفاده بیشتر از همه ویژگی های pgAdmin ، شما را به مطالعه مطالب پروژه تشویق می کنیم. همچنین می توانید اطلاعات بیشتری در مورد PostgreSQL از طریق آموزش های انجمن ما در مورد این موضوع کسب کنید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
pgAdmin 4
,
Server Mode
0 notes
vpsgol12-blog · 4 years
Text
نصب Jitsi Meet در Ubuntu 18.04
t یک برنامه کنفرانس ویدئویی منبع باز مبتنی بر WebRTC است. سرور مجازی Jitsi Meet اتاقهای کنفرانس ویدئویی چند نفره را در اختیار شما قرار می دهد که می توانید با استفاده از تنها یک مرورگر به آنها دسترسی داشته باشید و عملکرد قابل مقایسه ای را با یک گفتگوی کنفرانسی مثل zoom یا skype ارائه دهید. مزیت کنفرانس Jitsi این است که تمام داده های شما فقط از طریق سرور مجازی شما عبور می کند ، و رمزگذاری TLS به صورت end-to-end تضمین می کند که هیچ کس نمی تواند تماس را شنود کند. با وجود Jitsi می توانید مطمئن باشید که اطلاعات خصوصی شما به همان صورت باقی می مانند. در این آموزش ، سرور مجازی Jitsi Meet را روی Ubuntu 18.04 نصب و پیکربندی خواهید کرد. پیکربندی پیش فرض به هر کسی امکان ایجاد یک اتاق کنفرانس جدید را می دهد. اما برای سرور مجازی ی که در اینترنت در دسترس عموم باشد ایده آل نیست بنابراین شما Jitsi Meet را نیز به گونه ای پیکربندی میکنید تا فقط کاربران ثبت نام شده بتوانند اتاق های کنفرانس جدید ایجاد کنند. بعد از ایجاد اتاق کنفرانس ، هر کاربر می تواند عضویت داشته باشد ، مادامی که آدرس منحصر به فرد و رمز اختیاری را داشته باشد. پیش نیازها قبل از شروع این راهنما به موارد زیر نیاز خواهید داشت: • یک سرور مجازی Ubuntu 18.04 که با دنبال کردن راهنمای ستاپ اولیه سرور مجازی با اوبونتو 18.04 راه اندازی شده باشد، و شامل کاربر غیر ریشه فعال با sudo باشد. اندازه سرور مجازی مورد نیاز شما بیشتر به پهنای باند موجود و تعداد شرکت کننده ای که انتظار دارید از سرور مجازی استفاده کنند بستگی دارد. جدول زیر ایده های لازم را به شما ارائه می دهد. • نام دامنه پیکربندی شده برای اشاره به سرور مجازی شما. می توانید با دنبال کردن آموزش نحوه چگونگی تنظیم نام هاست با آموزش vpsgol ، چگونگی اشاره دامنه به دراپلت های vpsgol را بیاموزید. در سراسر این راهنما ، از نام دامنه jitsi.your-domain استفاده می شود. هنگامی که شما یک سرور مجازی را برای اجرای نمونه Jitsi Meet انتخاب می کنید ، باید منابع مورد نیاز سیستم برای میزبانی اتاق های کنفرانس را در نظر بگیرید. اطلاعات معیار زیر از یک ماشین مجازی تک هسته ای با استفاده از تنظیمات ویدیویی با کیفیت بالا جمع آوری شده است:
CPU پهنای باند سرور مجازی 2 شرکت کننده 3% 30Kbps Up, 100Kbps Down 3 شرکت کننده 15% 7Mbps Up, 6.5Mbps Down
پرش در استفاده از منابع بین دو تا سه شرکت کننده به این دلیل است که Jitsi داده های تماس را مستقیماً بین کلاینت ها در صورت وجود دو نفر، هدایت می کند. هنگامی که بیش از دو کلاینت وجود دارند ، داده های تماس از طریق سرور مجازی Jitsi Meet هدایت می شوند. مرحله 1 – تنظیم نام هاست سیستم در این مرحله ، نام هاست سیستم را تغییر میدهید تا با نام دامنه ای که قصد دارید برای مثال Jitsi Meet خود استفاده کنید مطابقت داشته باشد و آن نام هاست را به IP localhost ، 127.0.0.1 تغییر می دهید. Jitsi Meet هنگام نصب و تولید فایل های پیکربندی خود از هر دو تنظیمات استفاده می کند. ابتدا نام هاست سیستم را روی نام دامنه ای که برای نمونه Jitsi خود استفاده خواهید کرد تنظیم کنید. دستور زیر نام هاست فعلی را تنظیم کرده و /etc/hostname را تغییر میدهد که نام هاست سیستم را در بین ریبوت ها نگه میدارد: ⦁ $ sudo hostnamectl set-hostname jitsi.your-domain ⦁ فرمانی که اجرا کردید به شرح زیر است: • hostnamectl ابزاری است از مجموعه ابزارهای systemd برای مدیریت نام هاست سیستم استفاده میکند. • set-hostname نام هاست سیستم را تنظیم می کند. با اجرای موارد زیر بررسی کنید که این کار موفقیت آمیز بوده است: ⦁ $ hostname ⦁ با این کار نام هاست شما با دستور hostnamectl برمی گردد: Output jitsi.your-domain
در مرحله بعد ، نگاشت محلی از نام هاست سرور مجازی را بر روی حلقه بازگشت آدرس IP ، 127.0.0.1 تنظیم خواهید کرد. این کار را با باز کردن فایل / etc / hosts با ویرایشگر متن انجام دهید: ⦁ $ sudo nano /etc/hosts ⦁ سپس خط زیر را اضافه کنید: /etc/hosts 127.0.0.1 jitsi.your-domain
نگاشت نام دامنه سرور مجازی Jitsi Meet روی 127.0.0.1 به سرور مجازی Jitsi Meet شما اجازه می دهد تا از چندین فرآیند شبکه ای استفاده کند که اتصالات محلی را از یکدیگر در آدرس IP 127.0.0.1 قبول می کنند. این اتصالات با گواهی TLS که در نام دامنه شما ثبت شده است ، تأیید و رمزگذاری می شوند. نگاشت محلی نام دامنه روی 127.0.0.1 امکان استفاده از گواهینامه TLS برای این اتصالات شبکه محلی را فراهم می آورد. فایل خود را ذخیره کنید و از آن خارج شوید. اکنون سرور مجازی شما دارای نام هاست است که Jitsi برای نصب به آن نیاز دارد. در مرحله بعد ، پورت های فایروال مورد نیاز Jitsi و نصب کننده گواهینامه TLS را باز خواهید کرد. مرحله 2 – پیکربندی فایروال هنگامی که راهنمای راه اندازی اولیه سرور مجازی با اوبونتو 18.04 را دنبال کردید ، فایروال UFW را فعال کرده و پورت SSH را باز نموده اید. سرور مجازی Jitsi به برخی از پورت های باز شده نیاز دارد تا بتواند با کلاینت ها تماس برقرار کند. همچنین ، فرایند نصب TLS نیاز به پورت باز دارد تا بتواند درخواست گواهی را تأیید کند. پورت هایی که باز خواهید کرد به شرح زیر است: ⦁ 80 / tcp که در درخواست گواهینامه TLS مورد استفاده قرار میگیرد. ⦁ 443 / TCP برای صفحه وب ایجاد اتاق کنفرانس استفاده میشود. ⦁ 4443 / tcp ، 10000 / udp که برای انتقال و دریافت ترافیک تماس رمزگذاری شده استفاده می شود. دستورات ufw زیر را برای باز کردن این پورت ها اجرا کنید: ⦁ $ sudo ufw allow 80/tcp ⦁ ⦁ $ sudo ufw allow 443/tcp ⦁ ⦁ $ sudo ufw allow 4443/tcp ⦁ ⦁ $ sudo ufw allow 10000/udp
بررسی کنید که همه آنها با دستور ufw status اضافه شده اند: ⦁ $ sudo ufw status ⦁ در صورت باز بودن این پورت ها ، خروجی زیر را مشاهده خواهید کرد: Output Status: active
To Action From — —— —- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere 4443/tcp ALLOW Anywhere 10000/udp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) 4443/tcp (v6) ALLOW Anywhere (v6) 10000/udp (v6) ALLOW Anywhere (v6)
اکنون سرور مجازی آماده نصب Jitsi است که در مرحله بعدی آن را کامل خواهید کرد. مرحله 3 – نصب Jitsi Meet در این مرحله مخزن پایدار Jitsi را به سرور مجازی خود اضافه می کنید و سپس بسته Jitsi Meet را ز آن مخزن نصب می کنید. با این کار اطمینان حاصل می شود که همیشه آخرین بسته پایدار Jitsi Meet را اجرا می کنید. ابتدا کلید Jitsi GPG را با ابزار wget دانلود کنید: ⦁ $ wget https://download.jitsi.org/jitsi-key.gpg.key ⦁ مدیر بسته apt از این کلید GPG برای اعتبارسنجی بسته هایی که از مخزن Jitsi دانلود می کنید ، استفاده خواهد کرد. در مرحله بعد ، کلید GPG را که با استفاده از ابزارهای key-apt دانلود کرده اید اضافه نمایید کلید: ⦁ $ sudo apt-key add jitsi-key.gpg.key ⦁ اکنون می توانید فایل کلید GPG را حذف کنید زیرا دیگر نیازی به آن نیست: ⦁ $ rm jitsi-key.gpg.key ⦁ اکنون با ایجاد یک فایل منبع جدید که حاوی مخزن Jitsi است ، مخزن Jitsi را به سرور مجازی خود اضافه می کنید. با ویرایشگر خود فایل جدید را باز و ایجاد کنید: ⦁ $ sudo nano /etc/apt/sources.list.d/jitsi-stable.list ⦁
این خط را به فایل مخزن Jitsi اضافه کنید: /etc/apt/sources.list.d/jitsi-stable.list deb https://download.jitsi.org stable/ ویرایشگر خود را ذخیره کرده و از آن خارج شوید. سرانجام برای جمع آوری لیست بسته ها از مخزن Jitsi یک به روزرسانی سیستم انجام دهید و سپس بسته jitsi-meet را نصب کنید: ⦁ $ sudo apt update ⦁ ⦁ $ sudo apt install jitsi-meet
در حین نصب jitsi-meet از شما خواسته می شود نام دامنه (مثلاً jitsi.your-domain) را که می خواهید برای نمونه Jitsi Meet خود استفاده کنید وارد کنید.
توجه: شما مکان نما را از قسمت نام هاست حرکت می دهید تا دکمه <OK> را با کلید TAB هایلایت کنید. هنگامی که <OK> هایلایت شد برای ارسال نام هاست ، ENTER را فشار ��هید.
سپس کادر جعبه گفتگوی جدیدی به شما نشان داده می شود که آیا می خواهید Jitsi یک گواهی TLS امضا شده را استفاده کند یا از یک گواهی موجود که خودتان در اختیار دارید استفاده نماید:
اگر گواهی TLS برای دامنه Jitsi ندارید ، اولین مورد یعنی Generate a new self-signed certificate را انتخاب کنید. نمونه Jitsi Meet شما اکنون با استفاده از گواهی TLS خود امضا شده نصب ��ده است. این باعث اخطار مرورگر می شود ، بنابراین در مرحله بعدی یک گواهی TLS امضا شده دریافت خواهید کرد. مرحله 4 – اخذ گواهینامه TLS امضا شده Jitsi Meet از گواهینامه های TLS برای رمزگذاری ترافیک تماس استفاده می کند تا هیچ کس نتواند هنگام استفاده از اینترنت به تماس شما گوش کند. گواهینامه های TLS همان گواهینامه هایی هستند که توسط وب سایت ها برای فعال کردن آدرس های HTTPS استفاده می شوند. Jitsi Meet برنامه ای را برای دانلود خودکار گواهی TLS برای نام دامنه شما تهیه می نماند که از ابزار Certbot استفاده می کند. قبل از اجرای اسکریپت نصب گواهی ، باید این برنامه را نصب کنید. ابتدا مخزن Certbot را به سیستم خود اضافه کنید تا از آخرین نسخه Certbot برخوردار شوید. دستور زیر را برای اضافه کردن مخزن جدید و به روزرسانی سیستم خود اجرا کنید: ⦁ $ sudo add-apt-repository ppa:certbot/certbot ⦁ سپس ، بسته ی certbot را نصب کنید: ⦁ $ sudo apt install certbot ⦁ اکنون سرور مجازی شما آماده اجرای برنامه نصب گواهینامه TLS تهیه شده توسط Jitsi Meet است: ⦁ $ sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh ⦁ هنگامی که اسکریپت را اجرا می کنید ، اعلان زیر برای آدرس ایمیل نشان داده می شود: Output ————————————————————————- This script will: – Need a working DNS record pointing to this machine(for domain jitsi.example.com) – Download certbot-auto from https://dl.eff.org to /usr/local/sbin – Install additional dependencies in order to request Let’s Encrypt certificate – If running with jetty serving web content, will stop Jitsi Videobridge – Configure and reload nginx or apache2, whichever is used – Configure the coturn server to use Let’s Encrypt certificate and add required deploy hooks – Add command in weekly cron job to renew certificates regularly
You need to agree to the ACME server’s Subscriber Agreement (https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf) by providing an email address for important account notifications Enter your email and press [ENTER]:
این آدرس ایمیل به صادرکننده گواهینامه https://letsencrypt.org ارسال می شود و برای اطلاع دادن به شما درباره امنیت و سایر موارد مرتبط با گواهینامه TLS استفاده می شود. برای ادامه کار باید یک آدرس ایمیل را وارد کنید. پس از آن نصب بدون هیچ گونه درخواست دیگری انجام می شود. پس از اتمام ، نمونه Jitsi Meet شما پیکربندی می شود تا از یک گواهی TLS امضا شده برای نام دامنه خود استفاده کنید. تمدید گواهینامه به طور خودکار اتفاق می افتد زیرا نصب کننده، یک اسکریپت تجدید را در /etc/cron.weekly/letsencrypt-renew قرار داده است که هر هفته اجرا می شود. نصب کننده TLS از پورت 80 برای تأیید کنترل نام دامنه خود استفاده کرده است. اکنون که گواهی نامه را به دست آورده اید ، دیگر نیازی به باز کردن پورت 80 ندارید زیرا از پورت 80 برای ترافیک منظم و غیر رمزگذاری شده HTTP استفاده می شود. Jitsi Meet فقط از طریق HTTPS در پورت 443 وب سایت خود را ارائه می دهد. با دستور ufw زیر این پورت را در فایروال خود ببندید: ⦁ $ sudo ufw delete allow 80/tcp ⦁ سرور مجازی Jitsi Meet شما اکنون آماده و در حال اجرا است و برای آزمایش در دسترس میباشد. یک مرورگر باز کرده و نام دامنه خود را به آن معرفی کنید. قادر خواهید بود یک اتاق کنفرانس جدید ایجاد کنید و دیگران را نیز دعوت کنید تا به شما بپیوندند. تنظیمات پیش فرض برای Jitsi Meet این گونه است که هرکسی که صفحه اصلی سرور مجازی Jitsi Meet شما را مشاهده می کند می تواند یک اتاق کنفرانس جدید ایجاد کند. با این کار از منابع سیستم سرور مجازی شما برای اجرای اتاق کنفرانس استفاده می شود و به خاطر استفاده کاربران غیرمجاز مطلوب نیست. در مرحله بعد ، شما نمونه Jitsi Meet را به گونه ای پیکربندی می کنید که فقط کاربران عضو شده قادر به ایجاد اتاق کنفرانس باشند. مرحله 5 – ایجاد قفل کنفرانس در این مرحله ، شما سرور مجازی Jitsi Meet را پیکربندی می کنید تا فقط کاربران ثبت نام شده بتوانند اتاق کنفرانس ایجاد کنند. فایل هایی که ویرایش می کنید توسط نصب کننده ایجاد شده اند و با نام دامنه شما پیکربندی میشوند. متغیر your_domain به جای نام دامنه در مثالهای زیر استفاده خواهد شد. ابتدا ، sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua را با یک ویرایشگر متن باز کنید: ⦁ $ sudo nano /etc/prosody/conf.avail/your_domain.cfg.lua ⦁ این خط را ویرایش کنید: /etc/prosody/conf.avail/your_domain.cfg.lua … authentication = “anonymous” …
به صورت زیر: /etc/prosody/conf.avail/your_domain.cfg.lua … authentication = “internal_plain” …
این پیکربندی به Jitsi Meet می گوید تا قبل از اجازه ایجاد اتاق کنفرانس توسط یک بازدید کننده جدید ، مجبور به تأیید اعتبار نام کاربری و رمز عبور شود. سپس در همان فایل قسمت زیر را به انتهای فایل اضافه کنید: /etc/prosody/conf.avail/your_domain.cfg.lua … VirtualHost “guest.your_domain” authentication = “anonymous” c2s_require_encryption = false
این پیکربندی به کاربران ناشناس اجازه می دهد تا به اتاق های کنفرانس که توسط یک کاربر معتبر ایجاد شده اند بپیوندند. با این حال ، میهمان باید یک آدرس منحصر به فرد و رمز عبور اختیاری برای ورود به اتاق داشته باشد. در اینجا ، شما guest. را به جلوی نام دامنه خود اضافه کردید به عنوان مثال ، برای jitsi.your-domain، guest.jitsi.your-domain را قرار دهید. نام هاست guest. فقط به صورت داخل توسط Jitsi Meet استفاده می شود. شما هرگز آن را وارد مرورگر نخواهید کرد و یا نیازی به ایجاد رکورد DNS برای آن ندارید. فایل پیکربندی دیگری را در /etc/jitsi/meet/your_domain-config.js با یک ویرایشگر متن باز کنید: ⦁ $ sudo nano /etc/jitsi/meet/your_domain-config.js ⦁ این خط را ویرایش کنید: /etc/jitsi/meet/your_domain-config.js … // anonymousdomain: ‘guest.example.com’, …
تا به این صورت درآید: /etc/jitsi/meet/your_domain-config.js … anonymousdomain: ‘guest.your_domain’, …
مجدداً ، با استفاده از نام هاست guest.your_domain که قبلاً از این پیکربندی استفاده کرده اید ، به Jitsi می گوید چه نام هاست داخلی را برای مهمانان تأیید نشده استفاده کند. سپس ، /etc/jitsi/jicofo/sip-communicator.properties را باز کنید: ⦁ $ sudo nano /etc/jitsi/jicofo/sip-communicator.properties ⦁ و خط زیر را برای تکمیل تغییرات پیکربندی اضافه کنید: /etc/jitsi/jicofo/sip-communicator.properties org.jitsi.jicofo.auth.URL=XMPP:your_domain
این پیکربندی یکی از فرایندهای Jitsi Meet را به سرور مجازی محلی نشان می دهد که تأیید اعتبار کاربر را که اکنون لازم است انجام می دهد. نمونه Jitsi Meet شما اکنون پیکربندی شده است و فقط کاربران ثبت نام شده می توانند اتاق کنفرانس ایجاد کنند. بعد از ایجاد یک اتاق کنفرانس ، هر کسی می تواند بدون نیاز به کاربر ثبت نام شده به آن بپیوندد. تنها آنچه نیاز دارند آدرس اتاق کنفرانس منحصر به فرد و رمزعبور اختیاری است که توسط فردی که اتاق را اجیجاد کرده تنظیم شده است. اکنون که Jitsi Meet پیکربندی شده است و برای ایجاد اتاق نیاز به کاربران معتبر دارد ، باید این کاربران و رمزهای عبور خود را ثبت کنید. برای این کار از ابزار prosodyctl استفاده خواهید کرد. دستور زیر را برای افزودن کاربر به سرور مجازی خود اجرا کنید: ⦁ $ sudo prosodyctl register user your_domain password ⦁ کاربری که شما در اینجا اضافه می کنید کاربر سیستم نیست. آنها فقط قادر به ایجاد یک اتاق کنفرانس هستند و از طریق SSH قادر به ورود به سرور مجازی شما نیستند. در آخر ، مراحل Jitsi Meet را ریستارت کنید تا پیکربندی جدید لود شود: ⦁ $ sudo systemctl restart prosody.service ⦁ ⦁ $ sudo systemctl restart jicofo.service ⦁ ⦁ $ sudo systemctl restart jitsi-videobridge2.service
به طور مثال Jitsi Meet هنگام ایجاد یک اتاق کنفرانس ، نام کاربری و رمزعبور را با جعبه گفتگو درخواست می کند.
سرور مجازی Jitsi Meet شما اکنون تنظیم و ایمن شده است. نتیجه در این مقاله ، شما سرور مجازی Jitsi Meet را مستقر کرده اید که می توانید از آنها برای میزبانی اتاق های کنفرانس ویدیویی ایمن و خصوصی استفاده کنید. می توانید نمونه Jitsi Meet خود را با دستورالعمل Jitsi Meet Wiki گسترش دهید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
پارامترهای پیش فرض در جاوا اسکریپت  –  اجرای چندین نسخه PHP بر روی یک سرور Debian 10
نحوه راه اندازی یک پروژه React با برنامه React – نصب و ایمن سازی phpMyAdmin در اوبونتو 18
پیکربندی یک تایید اعتبار مجاز(CA) در CentOS 8  –  تنظیم برنامه Node.js برای تولید در CentOS 7
نصب MariaDB در اوبونتو 18.04  – ایمن کردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8  –  بازنویسی URL را با mod_rewrite برای Apache در Debian 10
راه اندازی فایروال با استفاده از firewalld در CentOS 8  –  نصب وب سرور Apache در Debian 10
اضافه کردن و حذف کاربران در CentOS 8 –  نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8  –  راه اندازی سرور اولیه با Debian 10
نصب MariaDB در CentOS 8  –  چگونه با JSX عناصر واقعی ایجاد کنیم
نصب و پیکربندی VNC در Debian 10  –  استفاده از سرور از راه دور Docker
نصب و ایمن سازی Grafana در اوبونتو 18  –  نحوه نصب Git در CentOS 8
نصب Git در Debian 10 –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرورهای
نحوه نصب Node.js در Debian 10  –  نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10  –  نصب و پیکربندی Zabbix برای ردیابی ایمن سرور
نصب وردپرس با بانک اطلاعاتی در اوبونتو  – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پایتون 3 و تنظیم نویسی محلی macOS  – نصب و ایمن سازی phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18  –  نصب Python 3 و تنظیم یک محیط برنامه نویسی
نحوه نصب R بر روی Debian 10  –  راه اندازی سرور Prisma روی اوبونتو 18.04
نصب و پیکربندی Laravel با LEMP در اوبونتو 18  –  نصب و پیکربندی pgAdmin 4 در Server Mode
نصب Python 3 و تنظیم برنامه نویسی CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
برچسب‌ها:
Jitsi Meet
,
skype
,
WebRTC
0 notes