Cloud for Charities: คู่มือการย้ายข้อมูล

Cloud for Charities: คู่มือการย้ายข้อมูล

ไม่นานมานี้ Mail.Ru Cloud Solutions (MCS) และบริการ Dobro Mail.Ru ได้เปิดตัวโครงการ “คลาวด์เพื่อการกุศล” ซึ่งองค์กรที่ไม่แสวงหาผลกำไรสามารถรับทรัพยากรของแพลตฟอร์มคลาวด์ MCS ได้ฟรี มูลนิธิการกุศล”เลขคณิตแห่งความดี» เข้าร่วมในโครงการและปรับใช้โครงสร้างพื้นฐานบางส่วนโดยใช้ MCS ได้สำเร็จ

หลังจากผ่านการตรวจสอบแล้ว NPO สามารถรับความจุเสมือนจาก MCS ได้ แต่การกำหนดค่าเพิ่มเติมต้องมีคุณสมบัติบางอย่าง ในเอกสารนี้ เราต้องการแบ่งปันคำแนะนำเฉพาะสำหรับการตั้งค่าเซิร์ฟเวอร์ที่ใช้ Ubuntu Linux เพื่อใช้งานเว็บไซต์พื้นฐานหลักและโดเมนย่อยจำนวนหนึ่งโดยใช้ใบรับรอง SSL ฟรี นี่อาจเป็นคำแนะนำง่ายๆ สำหรับหลายๆ คน แต่เราหวังว่าประสบการณ์ของเราจะเป็นประโยชน์กับองค์กรที่ไม่แสวงหากำไรอื่นๆ และไม่เพียงเท่านั้น

FYI: คุณจะได้อะไรจาก MCS? CPU 4 ตัว, RAM 32 GB, HDD 1 TB, Ubuntu Linux OS, พื้นที่จัดเก็บอ็อบเจ็กต์ 500 GB

ขั้นตอนที่ 1: เปิดตัวเซิร์ฟเวอร์เสมือน

มาตรงประเด็นและสร้างเซิร์ฟเวอร์เสมือนของเรา (หรือที่เรียกว่า “อินสแตนซ์”) ในบัญชีส่วนตัว MCS ของคุณ ใน App Store คุณต้องเลือกและติดตั้ง LAMP Stack สำเร็จรูป ซึ่งเป็นชุดซอฟต์แวร์เซิร์ฟเวอร์ (LAMP = Linux, Apache, MySQL, PHP) ที่จำเป็นในการใช้งานเว็บไซต์ส่วนใหญ่

Cloud for Charities: คู่มือการย้ายข้อมูล
Cloud for Charities: คู่มือการย้ายข้อมูล
Cloud for Charities: คู่มือการย้ายข้อมูล
เลือกการกำหนดค่าเซิร์ฟเวอร์ที่เหมาะสมและสร้างคีย์ SSH ใหม่ หลังจากคลิกที่ปุ่ม "ติดตั้ง" การติดตั้งเซิร์ฟเวอร์และ LAMP stack จะเริ่มต้นขึ้น ซึ่งจะใช้เวลาสักครู่ ระบบจะเสนอให้ดาวน์โหลดคีย์ส่วนตัวลงในคอมพิวเตอร์ของคุณเพื่อจัดการเครื่องเสมือนผ่านคอนโซลบันทึก

หลังจากติดตั้งแอปพลิเคชันแล้ว ให้ตั้งค่าไฟร์วอลล์ทันที ซึ่งทำได้ในบัญชีส่วนตัวของคุณ: ไปที่ส่วน "การประมวลผลแบบคลาวด์ -> เครื่องเสมือน" และเลือก "การตั้งค่าไฟร์วอลล์":

Cloud for Charities: คู่มือการย้ายข้อมูล
คุณต้องเพิ่มการอนุญาตสำหรับการรับส่งข้อมูลขาเข้าผ่านพอร์ต 80 และ 9997 นี่เป็นสิ่งจำเป็นในอนาคตเพื่อติดตั้งใบรับรอง SSL และทำงานกับ phpMyAdmin ด้วยเหตุนี้ ชุดกฎจึงควรมีลักษณะดังนี้:

Cloud for Charities: คู่มือการย้ายข้อมูล
ตอนนี้คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ของคุณผ่านทางบรรทัดคำสั่งโดยใช้โปรโตคอล SSH หากต้องการทำสิ่งนี้ ให้พิมพ์คำสั่งต่อไปนี้โดยชี้ไปที่คีย์ SSH บนคอมพิวเตอร์ของคุณและที่อยู่ IP ภายนอกของเซิร์ฟเวอร์ของคุณ (คุณสามารถดูได้ในส่วน "เครื่องเสมือน"):

$ ssh -i /путь/к/ключу/key.pem ubuntu@<ip_сервера>

เมื่อเชื่อมต่อกับเซิร์ฟเวอร์เป็นครั้งแรก ขอแนะนำให้ติดตั้งการอัปเดตปัจจุบันทั้งหมดและรีบูตเครื่อง เมื่อต้องการทำเช่นนี้ ให้รันคำสั่งต่อไปนี้:

$ sudo apt-get update

ระบบจะได้รับรายการอัพเดต ติดตั้งโดยใช้คำสั่งนี้ และปฏิบัติตามคำแนะนำ:

$ sudo apt-get upgrade

หลังจากติดตั้งการอัปเดต ให้รีสตาร์ทเซิร์ฟเวอร์:

$ sudo reboot

ขั้นตอนที่ 2: ตั้งค่าโฮสต์เสมือน

องค์กรที่ไม่หวังผลกำไรจำนวนมากจำเป็นต้องดูแลโดเมนหรือโดเมนย่อยหลายรายการพร้อมกัน (เช่น เว็บไซต์หลักและหน้า Landing Page หลายหน้าสำหรับแคมเปญส่งเสริมการขาย ฯลฯ) ทั้งหมดนี้สามารถวางไว้บนเซิร์ฟเวอร์เดียวได้อย่างสะดวกโดยการสร้างโฮสต์เสมือนหลายโฮสต์

ก่อนอื่นเราต้องสร้างโครงสร้างไดเร็กทอรีสำหรับไซต์ที่จะแสดงต่อผู้เยี่ยมชม มาสร้างไดเร็กทอรีกัน:

$ 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 ที่เราสามารถใช้เป็นจุดเริ่มต้นได้ เราจะคัดลอกสิ่งนี้เพื่อสร้างไฟล์โฮสต์เสมือนสำหรับแต่ละโดเมนของเรา เราจะเริ่มต้นด้วยโดเมนหนึ่ง กำหนดค่า คัดลอกไปยังโดเมนอื่น จากนั้นทำการแก้ไขที่จำเป็นอีกครั้ง

การกำหนดค่าเริ่มต้นของ Ubuntu กำหนดให้ไฟล์โฮสต์เสมือนแต่ละไฟล์ต้องมีนามสกุล *.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 [email protected]
    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-record สำหรับโดเมนหลักมักจะระบุดังนี้ (ลงชื่อ @):

Cloud for Charities: คู่มือการย้ายข้อมูล
ระเบียน A สำหรับโดเมนย่อยมักจะระบุดังนี้:

Cloud for Charities: คู่มือการย้ายข้อมูล
ที่อยู่ IP คือที่อยู่ของเซิร์ฟเวอร์ Linux ที่เราเพิ่งสร้างขึ้น คุณสามารถระบุ TTL = 3600

หลังจากผ่านไประยะหนึ่ง คุณจะสามารถเยี่ยมชมเว็บไซต์ของคุณได้ แต่สำหรับตอนนี้เท่านั้นที่จะผ่าน http://- ในขั้นตอนถัดไปเราจะเพิ่มการสนับสนุน https://.

ขั้นตอนที่ 4: ตั้งค่าใบรับรอง SSL ฟรี

คุณสามารถรับใบรับรอง Let's Encrypt 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 Labsเขาจะได้เกรดเอ

ใบรับรอง Let's Encrypt มีอายุเพียง 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 อย่างไร

ที่มา: will.com

เพิ่มความคิดเห็น