سحابة الخيرية: دليل الهجرة



منذ وقت ليس ببعيد ، أطلقت Mail.Ru Cloud Solutions (MCS) وخدمة Welcome Mail.Ru مشروع Cloud for Charity Foundations ، بفضل المنظمات غير الربحية التي يمكنها الحصول على موارد منصة MCS السحابية مجانًا. شاركت مؤسسة Arithmetic of Good الخيرية في المشروع ونشرت بنجاح جزءًا من بنيتها التحتية القائمة على MCS.

بعد التحقق من الصحة ، يمكن أن يحصل NPO على طاقة افتراضية من MCS ، لكن المزيد من الضبط يتطلب مؤهلات معينة. في هذه المقالة ، نريد مشاركة إرشادات محددة لإعداد خادم يستند إلى Ubuntu Linux لموقع الصندوق الرئيسي وعدد من النطاقات الفرعية التي تستخدم شهادات SSL المجانية. بالنسبة للكثيرين ، سيكون هذا دليلًا بسيطًا ، لكننا نأمل أن تكون تجربتنا مفيدة للمنظمات الأخرى غير الهادفة للربح ، وليس فقط.

لمعلوماتك : ما الذي يمكنني الحصول عليه من MCS؟ 4 وحدات المعالجة المركزية ، ذاكرة الوصول العشوائي 32 جيجابايت ، 1 تيرابايت HDD ، نظام التشغيل Ubuntu Linux ، تخزين الكائنات 500 جيجابايت.

الخطوة 1: بدء الخادم الظاهري


دعنا نبدأ العمل على الفور وننشئ خادمنا الظاهري (المعروف أيضًا باسم "مثيل") في حساب MCS الشخصي الخاص بك. في متجر التطبيقات ، تحتاج إلى تحديد وتثبيت مكدس LAMP جاهز ، وهو مجموعة معقدة من برنامج الخادم (LAMP = Linux و Apache و MySQL و PHP) ، وهو أمر ضروري لتشغيل معظم مواقع الويب.




اختر التكوين المناسب للخادم وقم بإنشاء مفتاح SSH جديد. بعد النقر فوق الزر "تثبيت" ، سيبدأ الخادم ومجموعة LAMP في التثبيت ، وسوف يستغرق الأمر بعض الوقت. سيقدم النظام أيضًا تنزيل مفتاح خاص على جهاز الكمبيوتر للتحكم في الجهاز الظاهري من خلال وحدة التحكم وحفظه.

بعد تثبيت التطبيق ، لنقم بتكوين جدار الحماية على الفور ، ويتم ذلك أيضًا في حسابك الشخصي: انتقل إلى قسم "الحوسبة السحابية -> الأجهزة الظاهرية" وحدد عنصر "تكوين جدار الحماية":


تحتاج إلى إضافة إذن لحركة المرور الواردة من خلال المنفذ 80 و 9997. يعد ذلك ضروريًا في المستقبل لتثبيت شهادات طبقة المقابس الآمنة والعمل مع phpMyAdmin. في النهاية ، يجب أن تبدو مجموعة القواعد كما يلي:


يمكنك الآن الاتصال بالخادم عبر سطر الأوامر باستخدام بروتوكول SSH. للقيام بذلك ، اكتب الأمر التالي ، مع الإشارة إلى مفتاح SSH على جهاز الكمبيوتر الخاص بك وعنوان IP الخارجي لخادمك (يمكنك العثور عليه في قسم "الأجهزة الظاهرية"):

$ ssh -i ////key.pem ubuntu@<ip_> 

أثناء الاتصال الأول بالخادم ، يوصى بتثبيت جميع التحديثات الحالية عليه وإعادة تشغيله. للقيام بذلك ، قم بتشغيل الأوامر التالية:

 $ sudo apt-get update 

سيتلقى النظام قائمة بالتحديثات وتثبيتها باستخدام هذا الأمر واتبع الإرشادات:

 $ sudo apt-get upgrade 

بعد تثبيت التحديثات ، أعد تشغيل الخادم:

 $ sudo reboot 

الخطوة 2: تكوين المضيفين الظاهري


تحتاج العديد من المنظمات غير الحكومية الوطنية إلى العديد من المجالات أو النطاقات الفرعية في نفس الوقت (على سبيل المثال ، الموقع الرئيسي والعديد من الصفحات المقصودة للحملات الترويجية ، إلخ). كل هذا يمكن استضافته بسهولة على خادم واحد عن طريق إنشاء مضيفات افتراضية متعددة.

أولاً ، نحتاج إلى إنشاء بنية دليل للمواقع التي سيتم عرضها للزائرين. لنقم بإنشاء بعض الأدلة:

 $ sudo mkdir -p /var/www/a-dobra.ru/public_html 

 $ sudo mkdir -p /var/www/promo.a-dobra.ru/public_html 

و اذكر صاحب المستخدم الحالي:

 $ sudo chown -R $USER:$USER /var/www/a-dobra.ru/public_html 

 $ sudo chown -R $USER:$USER /var/www/promo.a-dobra.ru/public_html 

يحتوي المتغير $USER على اسم المستخدم الذي قمت بتسجيل الدخول إليه حاليًا (بشكل افتراضي ، هذا هو مستخدم ubuntu ). الآن يمتلك المستخدم الحالي أدلة public_html التي سنقوم بتخزين المحتوى بها.

نحتاج أيضًا إلى تعديل الأذونات قليلاً للتأكد من أن الوصول للقراءة مسموح به في دليل الويب المشترك ، وجميع الملفات والمجلدات الموجودة فيه. يعد ذلك ضروريًا لعرض صفحات الموقع بشكل صحيح:

 $ sudo chmod -R 755 /var/www 

يجب أن يمتلك خادم الويب الآن الأذونات اللازمة لعرض المحتوى. بالإضافة إلى ذلك ، أصبح لدى المستخدم الآن القدرة على إنشاء محتوى في الدلائل الضرورية.

يوجد بالفعل ملف index.php في دليل / var / www / html ، فلننسخه إلى أدلةنا الجديدة - سيكون هذا هو المحتوى الخاص بنا في الوقت الحالي:

 $ cp /var/www/html/index.php /var/www/a-dobra.ru/public_html/index.php 

 $ cp /var/www/html/index.php /var/www/promo.a-dobra.ru/public_html/index.php 

أنت الآن بحاجة إلى التأكد من أنه يمكن للمستخدم الدخول إلى موقعك. للقيام بذلك ، أولاً وقبل كل شيء ، سنقوم بتكوين ملفات المضيف الظاهري ، والتي تحدد مدى استجابة خادم الويب Apache لطلبات النطاقات المختلفة.

بشكل افتراضي ، يحتوي Apache على ملف مضيف افتراضي 000-default.conf ، والذي يمكننا استخدامه كنقطة بداية. سنقوم بنسخه لإنشاء ملفات مضيفة افتراضية لكل مجال من مجالاتنا. سنبدأ من مجال واحد ، ونهيئه ، وننسخه إلى مجال آخر ، ثم نجري التعديلات اللازمة مرة أخرى.

يتطلب التكوين الافتراضي لأوبونتو أن يكون لكل ملف مضيف افتراضي امتداد * .conf.

لنبدأ بنسخ الملف للنطاق الأول:

 $ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/a-dobra.ru.conf 

افتح ملفًا جديدًا في المحرر بامتيازات الجذر:

 $ sudo nano /etc/apache2/sites-available/a-dobra.ru.conf 

قم بتحرير البيانات على النحو التالي ، مع الإشارة إلى المنفذ 80 ، وبيانات ServerAdmin ، و ServerName ، و ServerAlias ، بالإضافة إلى المسار إلى الدليل الجذر لموقعك ، احفظ الملف (Ctrl + X ، ثم Y):

 <VirtualHost *:80> ServerAdmin e.valuisky@a-dobra.ru ServerName a-dobra.ru ServerAlias www.a-dobra.ru DocumentRoot /var/www/a-dobra.ru/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/a-dobra.ru/public_html> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/" </FilesMatch> </VirtualHost> 

يعين ServerName المجال الأساسي ، والذي يجب أن يتطابق مع اسم المضيف الظاهري. يجب أن يكون اسم المجال الخاص بك. الثاني ، ServerAlias ، يعرف الأسماء الأخرى التي يجب أن تفسر كما لو كانت المجال الأساسي. يعد هذا مناسبًا لاستخدام أسماء نطاقات إضافية ، على سبيل المثال ، استخدام www.

نحن ننسخ هذا التكوين لمضيف آخر ونقوم أيضًا بتحريره عن طريق القياس:

 $ sudo cp /etc/apache2/sites-available/a-dobra.ru.conf /etc/apache2/sites-available/promo.a-dobra.ru.conf 

يمكنك إنشاء أي عدد من الدلائل والمضيفات الافتراضية لمواقع الويب الخاصة بك! الآن وقد أنشأنا ملفات المضيف الافتراضية الخاصة بنا ، نحتاج إلى تضمينها. يمكننا استخدام الأداة المساعدة a2ensite لتمكين كل من مواقعنا على النحو التالي:

 $ sudo a2ensite a-dobra.ru.conf 

 $ sudo a2ensite promo.a-dobra.ru.conf 

افتراضيًا ، يتم إغلاق المنفذ 80 في LAMP ، وسنحتاج إليه في المستقبل لتثبيت شهادة SSL. لذلك ، دعونا نقوم على الفور بتحرير ملف ports.conf ثم إعادة تشغيل Apache:

 $ sudo nano /etc/apache2/ports.conf 

أضف سطرًا جديدًا واحفظ الملف بحيث يبدو كما يلي:

 Listen 80 Listen 443 Listen 9997 

بعد الانتهاء من الإعدادات ، يجب إعادة تشغيل Apache حتى تصبح جميع التغييرات نافذة المفعول:

 $ sudo systemctl reload apache2 

الخطوة 3: إعداد أسماء النطاقات


بعد ذلك ، تحتاج إلى إضافة سجلات DNS التي ستشير إلى خادمك الجديد. لإدارة النطاق ، تستخدم Arithmetic of Good Foundation خدمة dns-master.ru ، دعنا نعرضها على سبيل المثال.

يشار عادةً إلى إعداد A- سجل للنطاق الرئيسي مثل (علامة @ ):


يشار عادةً إلى السجل A للنطاقات الفرعية على النحو التالي:


عنوان IP هو عنوان خادم Linux الذي أنشأناه للتو. يمكن تحديد TTL = 3600.

بعد فترة ، سيكون من الممكن بالفعل الوصول إلى موقعك ، ولكن حتى الآن فقط من خلال http:// . في الخطوة التالية ، سنضيف https:// support.

الخطوة 4: تكوين شهادات SSL المجانية


يمكنك الحصول على دعونا تشفير شهادات SSL المجانية لموقعك الرئيسي وجميع النطاقات الفرعية. يمكنك أيضًا تكوين التجديد التلقائي ، وهو مريح للغاية. للحصول على شهادات SSL ، قم بتثبيت Certbot على الخادم الخاص بك:

 $ sudo add-apt-repository ppa:certbot/certbot 

قم بتثبيت حزمة Certbot لـ Apache باستخدام apt :

 $ sudo apt install python-certbot-apache 

Certbot جاهز الآن للاستخدام ، ونحن ننفذ الأمر:

 $ sudo certbot --apache -d a-dobra.ru -d www.a-dobra.ru -d promo.a-dobra.ru 

يقوم هذا الأمر بتشغيل certbot ، وتحدد مفاتيح التبديل -d أسماء النطاقات التي سيتم إصدار الشهادة لها.

إذا كانت هذه هي المرة الأولى التي تقوم فيها بتشغيل certbot ، فسيُطلب منك إدخال عنوان بريد إلكتروني والموافقة على شروط الخدمة. بعد ذلك ، سيتصل certbot بخادم Let's Encrypt ثم يتحقق من أنك تتحكم حقًا في المجال الذي طلبت الشهادة من أجله.

إذا سارت الأمور على ما يرام ، فسوف يسأل certbot كيف تريد تكوين تكوين HTTPS:

 Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 

نوصي بتحديد الخيار 2 واضغط ENTER. سيتم تحديث التكوين وإعادة تشغيل Apache لتطبيق التغييرات.

الآن يتم تحميل الشهادات الخاصة بك وتثبيتها والعمل. حاول إعادة تحميل موقعك باستخدام https: // وسترى رمز الحماية في المتصفح. إذا اختبرت الخادم الخاص بك باستخدام اختبار خادم طبقة المقابس الآمنة (SSL) ، فستحصل على درجة أ.

دعنا تشفير الشهادات صالحة فقط لمدة 90 يومًا ، ولكن حزمة certbot التي قمنا بتثبيتها للتو ستجدد الشهادات تلقائيًا. لاختبار عملية الترقية ، يمكننا أن نجعل certbot المدى الجاف:

 $ sudo certbot renew --dry-run 

إذا لم ترَ أي أخطاء ناتجة عن هذا الأمر ، فسيعمل كل شيء!

الخطوة 5: الوصول إلى MySQL و phpMyAdmin


العديد من المواقع تستخدم قواعد البيانات. أداة phpMyAdmin لإدارة قواعد البيانات مثبتة بالفعل على الخادم الخاص بنا. للوصول إليه ، انقر على الرابط في متصفحك مثل:

 https://<ip- >:9997 

يمكن الحصول على كلمة مرور الوصول إلى الجذر في حساب MCS الشخصي الخاص بك ( https://mcs.mail.ru/app/services/marketplace/apps/ ). لا تنسَ تغيير كلمة مرور الجذر عند تسجيل الدخول لأول مرة!

الخطوة 6: تكوين تحميل الملف عبر SFTP


سيكون من المناسب للمطورين تحميل الملفات لموقع الويب الخاص بك من خلال SFTP. للقيام بذلك ، سننشئ مستخدمًا جديدًا ، نسميه مشرف الموقع:

 $ sudo adduser webmaster 

سيطلب منك النظام تعيين كلمة مرور وإدخال بعض البيانات الأخرى.

تغيير صاحب الدليل باستخدام موقع الويب الخاص بك:

 $ sudo chown -R webmaster:webmaster /var/www/a-dobra.ru/public_html 

الآن دعونا نغير تهيئة SSH بحيث يكون للمستخدم الجديد حق الوصول إلى SFTP فقط ، وليس إلى محطة SSH:

 $ sudo nano /etc/ssh/sshd_config 

قم بالتمرير إلى ملف التكوين حتى النهاية وإضافة الكتلة التالية:

 Match User webmaster ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /var/www/a-dobra.ru PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no 

احفظ الملف وأعد تحميل الخدمة:

 $ sudo systemctl restart sshd 

يمكنك الآن الاتصال بالخادم من خلال أي عميل لـ SFTP ، على سبيل المثال ، من خلال FileZilla.

يؤدي


  1. أنت الآن تعرف كيفية إنشاء أدلة جديدة وتكوين المضيفين الظاهري لمواقع الويب الخاصة بك على نفس الخادم.
  2. يمكنك بسهولة إنشاء شهادات SSL اللازمة - إنها مجانية ، وسيتم تحديثها تلقائيًا.
  3. يمكنك العمل بسهولة مع قاعدة بيانات MySQL من خلال phpMyAdmin المعتاد.
  4. إنشاء حسابات SFTP جديدة وإعداد حقوق الوصول لن يتطلب الكثير من الجهد. يمكن نقل هذه الحسابات إلى مطوري الويب من جهة خارجية ومسؤولي الموقع.
  5. لا تنس تحديث النظام بشكل دوري ، ونحن نوصي أيضًا بعمل نسخ احتياطية - في MCS ، يمكنك التقاط "لقطات" للنظام بأكمله بنقرة واحدة ، ثم ، عند الضرورة ، قم بتشغيل الصور بأكملها.

الموارد المستخدمة التي قد تكون مفيدة:

https://www.digitalocean.com/community/tutorials/apache-ubuntu-14-04-lts-ru
https://www.digitalocean.com/community/tutorials/apache-let-s-encrypt-ubuntu-18-04-ru
https://www.digitalocean.com/community/tutorials/how-to-enable-sftp-without-shell-access-on-ubuntu-18-04

بالمناسبة ، هنا يمكنك أن تقرأ على VC كيف أطلقت مؤسستنا منصة لتعليم الأيتام عبر الإنترنت استنادًا إلى سحابة MCS.

Source: https://habr.com/ru/post/ar461155/


All Articles