บันทึกย้ายเว็บไซต์จาก Web Hosting ไป VPS (Digital Ocean)

13/01/2016 5:25 PM คอมพิวเตอร์ 745 views

ที่มาที่ไป

หลังจากที่ได้ลองเขียนบล๊อกนี้ขึ้นเมื่อ 4 ปีที่แล้ว ตอนนั้นก็เรียนอยู่ปี 3 ลองสร้าง wordpress ขึ้นบนเครื่องของตัวเองและอยากทดสอบบน hosting จริง เพียงเพราะอยากเรียนรู้เฉยๆ ว่ามันทำยังไง ทั้งที่เว็บบล๊อกแบบฟรีเช่น  www.blogger.com แต่ว่าเราไม่ได้ต้องการเน้นเขียนบทความ แต่อยากรู้ว่าการสร้างเว็บไซต์โดย wordpress แล้วอัพโหลดขึ้น host จริงๆ มันทำยังไงเลยได้ตัดสินใจสมัครใช้บริการของ pathosting.co.th ทั้ง จดโดเมนและเว็บโฮสติ้ง และก็ได้รับคำแนะนำจากพีเม้น mennstudio.com  เป็นอย่างดีตั้งแต่วิธีติดตั้ง วิธีอัพโหลดข้อมูลไปยัง host  การแก้ไข database error จนสำเร็จด้วยดี และยังได้รับบริการดีๆ จาก pathosting.co.th มีปัญหาก็คอยแก้ให้ตลอด

วันนี้ก็ก้าวมาอีกขั้นนึงครับข้อมูลในเว็บเยอะขึ้นมากและก็อยากลองอะไรใหม่ๆ เลยตัดสินใจสมัครใช้บริการ VPS ของ Digital Ocean อยากรู้ว่าคืออะไรลองไปอ่านได้ที่นี่ (คลิ๊ก) และได้ฝึกฝีมือการเป็น System Admin กับพีหนูมาเกือบ 1 ปีได้เรียนรู้ตั้งแต่เริ่มต้นว่าต้องเริ่มยังไง, การทำ Server ต้องติดตั้งอะไรบ้าง, การ config iptable, เว็บล่ม โดนแฮก และการแก้ปัญหาอื่นๆ  ที่คิดว่าพอจะนำไปต่อยอดก็ได้เขียนเป็นบล๊อกไว้และมาสมัคร VPS ไว้ลองเล่นๆ

ปัญหาอีกอย่างคือเว็บที่ได้ลองเขียนขึ้นโดย Laravel Framwork ต้องใช้ PHP 5.6.9 ซึ่ง Web hosting ที่ให้บริการต่างๆ จะไม่ค่อยอัพเดททำให้เว็บไม่สามารถแสดงผลได้ ซึ่งเป็นข้อจำกัดของ Share Hosting และข้อจำกัดอื่นๆ ปัญหาอีกอย่างก็คือการจำกัดขนาดไฟล์ที่อัพโหลดของ wordpress จะอยู่ที่ 2 MB ถ้าต้องการปรับเพิ่มก็ต้องติดต่อผู้ให้บริการ แต่พอเปลี่ยนมาใช้ VPS ผมสามารถเพิ่มลดค่าเองได้เลย ซึ่ง VPS เปรียบสเหมือนเป็นเครื่องของเราก็สามารถติดตั้งอะไรอะไรตามต้องการซึ่งมันค่อนข้างยืดหยุ่นมากกว่าครับ

 

สมัครใช้บริการ VPS ของ Digital Ocean

ก่อนอื่นศึกษาก่อนว่า VPS คืออะไรและทำไมต้องสมัครใช้ของ Digital Ocean ได้ที่นี่ (คลิ๊ก) พี่เนยเขียนไว้ละเอียดมากครับ
จากนั้นพอสมัครตามขั้นตอนด้านบนแล้วก็จะได้รับอีเมล์ตอบกลบเป็น username/password เข้าใชงาน

Droplet Name: centos-512mb-sgp1-01
IP Address: xxx.xxx.xxx.xxx
Username: root
Password: e3c3ba3fdfbc7b87

เข้าไปแก้รหัสผ่านได้ 2 ทางคือ putty กรอกข้อมูลตามด้านบนเลยหรือเข้าผ่าน Console หน้าเว็บ Digital Ocean ไปที่ Setting-> Access-> Console Access
รหัสผ่านเก่าใส่รหัสด้านบนนี้แต่ต้องระวังนิดนึงเพราะตัวเลขค่อนข้างงงครับ

 

ติดตั้ง Web Server

หลังจากสมัครใช้บริการแล้ว แก้รหัสผ่านแล้วก็ล๊อกอินเข้าใช้งาน droplet ก็จะยังไม่มีไฟล์อะไร เป็นเครื่องเปล่าตามระบบปฏิบัติการที่เราเลือก เราก็ต้องมาติดตั้งโปรแกรมอื่นๆ ตามที่เราต้องการ (ผมใช้ CentOS7) ก็ติดตั้งโปรแกรมที่รองรับ web server, database อื่นๆ ตามต้องการ แค่นี้ก็เรียบร้อยได้เว็บที่ใช้งานอยู่ ณ ปัจจุบันนี้ที่มี Server อยู่ที่สิงคโปร์

 

ถึงเวลาย้ายข้อมูล

สำหรับวิธีการย้ายเว็บมีสองแบบคือย้ายแบบ manual คือ copy ข้อมูลผ่าน FTP  ตอนแรกทดลองย้ายแบบ manual แล้วแต่ว่าข้อมูลเพี้ยนเยอะและมาไม่ครบเลยเปลี่ยนเป็น plugin ที่ชื่อว่า Duplicator มีวิธีทำตามเว็บนี้เลยครับ www.wpthaiuser.com/duplicator/ ขั้นตอนไม่ได้ยุ่งยากแต่อาจจะมีข้อมูลเพี้ยนบ้าง

 

ปัญาหาที่พบ

หลังจากย้าย wordpress เสร็จผมก็พบปัญหาเกี่ยวกับการอัพเดท plugin เพราะตอนทีใช้บริการ pathosting จะเค้ามีข้อมูล FTP ให้ สามารถกรอกแล้วอัพเดทได้เลย แต่พอมาใช้ VPS ของ Digital Ocean ไม่แน่ใจว่าผิดพลาดที่ส่วนไหน ลองกรอกส่วน FTP ของ Digital Ocean แล้วก็ไม่ได้ ลองติดตั้ง FTP server แล้วก็ไม่ได้ หมดปัญญา….จนมาพบกับวิธีนี้ครับ คลิ๊ก

แต่ว่าวิธีนี้ต้องติดตั้ง FTP server ผมลองใช้วิธีเดียวกันกับ server เครื่องที่ไม่ได้ติดตั้ง  FTP server มันก็สามารถใช้ได้นะครับ เลยสรุปมาขั้นตอนเดียว Step 3 ของเค้าคือสร้างบัญชีผู้ใช้ใหม่ (user) แล้วให้สิทธิ์ ผู้ใช้คนนั้นในการเข้าถึงไฟล์ วิธีนี้ช่วยในเรื่องความปลอดภัยด้วย เพราะถ้าเราเข้าไปดูใน server จะเห็นว่าเจ้าของของ Folder คือ root ถ้าแฮ็กเกอร์พยายามเข้าทางผู้ใช้ root ก็จะเจอไฟล์ข้อมูลทั้งหมดเลย แต่พอให้สิทธิ์ชื่ออื่นตอนเข้าไปดูใน Folder ของบัญชีผู้ใช้นั้นๆ จะไม่มีไฟล์อะไรเลยครับ

เพิ่มบัญชีผู้ใช้ใหม่

# sudo useradd user1
# sudo usermod -s /sbin/nologin user1

ให้สิทธิ์ user1 สามารถเข้าถึงไฟล์ข้อมูล

#  sudo chmod -R 775 /var/www/html/<ชื่อ folder>/wp-content/
#  sudo chown -R apache.user1 /var/www/html/<ชื่อ folder>

เพียงแค่นี้ก็สามารถอัพเดท plugin โดยไม่ต้องมากรอก hostname, ftp user, ftp password แล้วครับ