TL;DR
/me เป็น Developer ที่ทำนู้นทำนี้ บางครั้งก็ลองใช้ Ruby บ้าง Python บ้าง แต่สุดท้ายสิ่งที่ทำก็ไม่ได้เอามาให้คนอื่นใช้งาน เพราะไม่มี server สำหรับ deploy เลยถือโอกาสจิ้มๆ สร้าง VPS ใน Digital Ocean มาเป็น server ของตัวเองซะเลย
ห่างหายไปนาน จริงๆก็แอบว่างนะ แต่อากาศร้อนๆแบบนี้ ใครจะมานั่งเขียนบล๊อคยาวๆไหว ประเทศไทยตอนนี้ก็ 41 องศาไปเรียบร้อบแล้ว #ฉันยังอยู่ประเทศไทยนะไม่ใช่ดวงอาทิตย์ แต่ด้วยความที่ Draft ไว้เพียบ เลยต้องมาค่อยๆเครียร์
วันก่อนครับ #ไม่เล่นมุกละ ประมาณช่วงศุกร์ที่ผ่านมา [17/4/2015] อยู่ๆก็ตัดสินใจเช่า VPS มาเป็นของตัวเอง ส่วนเหตุผลก็คือ #ตังค์เหลือ #หลอกๆ ความจริงคือ เซงที่โฮสที่เช่าอยู่ ไม่ยอมอัพเดตอะไรให้เลย แต่ก็ไม่ใช่ความผิดของโฮสหรอกนะ เค้าไม่สามารถอัพเดตได้อยู่แล้ว เพราะมันต้องอัพเดตทั้งระบบ แล้วเวปของบางคนอาจจะพังได้ #คงจะมีคนเงิบมากมาย เลยมาลงเอยที่ VPS ของตัวเอง
VPS คืออะไร ??
ก่อนอื่นก็ต้องมารู้จัก Cloud Computing กันก่อนดีกว่า หลายๆคนอาจจะเคยได้ยินมาบ้างแล้ว เพราะตอนนี้มันกำลังเป็นหัวข้อ Top Hit ของคนด้านคอมพิวเตอร์เลยก็ว่าได้ มาถึงคำถามว่า มันคืออะไร? [ในความเข้าใจของ #me] Cloud system คือ กองของคอมพิวเตอร์หลายๆตัว(Resource pooling)มาเชื่อมต่อกันให้เป็นระบบเดียวกับ โดยมีความสามารถเอาคอมพิวเตอร์ (เรียกมันว่า Compute node) มาต่อเพิ่มได้เรื่อยๆ โดยจะแบ่งให้คนอื่นสามารถแบ่งไปใช้ได้ตามที่ต้องการ(On-demand self-service) โดยผ่านระบบอินเตอร์เน็ต(Broad network access) #มีรายละเอียดอีกแต่ขอข้ามไป
ส่วน VPS (Virtual Private Server) เป็นบริการหนึ่งของ Cloud ในรูปแบบ PaaS #ไม่ต้องไปสนใจ โดยจะอนุญาตให้ผู้ใช้สร้าง VM หรือ เครื่องคอมพิวเตอร์จำลอง ขึ้นมาใน Cloud เสมือนเครื่องเซิฟเวอร์จริงๆ ซึ่งจะช่วยทำให้เราไม่จำเป็นต้องไปดูแล Hardware อย่าง HDD, RAM, CPU ด้วยตัวเอง ปล่อยให้ผู้เชี่ยวชาญกว่าดูแลให้ ส่วน #Developer อย่างพวกเราก็มานั่งหน้าคอม เขียนโปรแกรม #ที่จะครองโลก ต่อไป
สรุป คือ ถ้าอยากได้ Server ของตัวเอง โดยไม่ต้องไป #ซื้อเอง #ประกอบเอง #ต่อเน็ตเอง #ดูแลเอง แนะนำว่าให้หา VPS มาซักอันเถอะครับ
ทำไมต้องมาเลือก Digital Ocean
#เพื่อนแนะนำ อันนี้สำคัญเลย จริงๆก็แอบหาเหมือนกันว่า มีแบบที่เป็นของคนไทยรึปล่าว ส่วนใหญ่มันไม่ค่อยน่าเชื่อถือเท่าไร บางที่ก็โคตรจะแพง #ฉันมาเช่าVPSไม่ใช่มาให้ปล้น และ อีกเหตุผลคือ Digital Ocean รับประกันว่า มันง่ายสัสๆๆ “Deploy an SSD cloud server in 55 seconds” #ง่ายจริง แถมไม่ค่อยแพงด้วย เริ่มต้นที่ 5$ #ฉันจะได้ค่านายหน้าปะ
เมื่อต้องมาสร้างจริงๆ
ตอนแรกนึกว่า สร้าง VPS ซักอันจะยาก พอเห็นแล้ว ง่ายกว่าที่คิดแฮะ #ง่ายโคตร
ที่เสียเวลาที่สุด ไม่ใช่ ตอนสร้าง VPS แต่เป็น ตอนผูกบัญชีเข้ากับ Paypal ต่างหาก เพราะเดบิตธนาคารกรุงเทพ ไม่สามารถจ่ายตังค์กับ Digital Ocean ได้ แต่ถ้าใครใช้ บัตรเครดิต ก็คงไม่มีปัญหาอะไร
ด้านบนเป็นภาพตอนเลือกแพคเกต ซึ่งจะไม่สามารถปรับ Disk, RAM, Bandwidth ได้ตามใจชอบ มันมาให้แล้วเป็นแพคเกตๆ แต่เราสามารถเลือกได้ว่าจะลง OS อะไร? แถมถ้าใครคิดว่าไม่อยากเซตอัพระบบเอง มันก็มีระบบที่เซตอัพมาแล้วให้ด้วย
สำหรับ แพคเกตที่ให้เลือก ถ้าใครอยากแค่ลองอะไรแปลกๆเฉยๆ ก็ใช้แค่ 5$ ก็น่าจะเพียงพอนะ
หลังจากสร้าง VPS เสร็จแล้ว [Digital Ocean จะเรียกแต่ละ VPS ของเรา ว่า #Droplet ] ก็มาลอง SSH กัน ซึ่งถ้าใครใช้ Window ก็สามารถใช้ #putty แต่สำหรับสาวก Linux/Unix ก็สามารถใช้ #terminal ได้เลย
ก่อนจะเริ่ม SSH ทุกครั้งที่เราสร้าง Droplet (VPS) อย่าลืมไปเอา root password กันได้ใน Email ที่ใช้สมัครเอาไว้ หรือ ถ้าใครว่าง ก็สามารถเซต public key ไว้ ซึ่งจะทำให้ ครั้งต่อไปจะไม่ต้องใส่ password กันหลายๆรอบ
ถ้าจะ SSH ก็ใส่เพียง IP ที่เราได้ โดย เริ่มต้น เราจะต้องใช้ User: root ไปก่อนถ้าใครอยากได้ชื่ออื่นก็ไปทำเอาเองละกัน ก็จะได้หน้าตาแบบนี้ #เต็มไปด้วยเซ็นเซอร์ แค่นี้ก็เหมือนกันว่า มีเครื่องคอมเครื่องนึงมาเล่นกันแล้ว #ฉลอง #แต่มันยังไม่จบ
** ถ้าได้มาลอง จะรู้ว่าตอน SSH แอบกระตุ๊กเล็กๆ เพราะว่า เครื่องหลักอยู่ไกลถึงอเมริกา ไม่รู้ว่าจะมีขยายสาขามาตั้งที่เอเชียเมื่อไร #รอกันต่อไป
เตรียมเครื่องให้พร้อมเขียนเวป [Set up LAMPP]
ด้วยความที่อยากลองเป็น Linux Admin เองซักครั้ง #ปกติทำได้ก็แค่ในเครื่องตัวเอง ก็เลยตั้งใจลงเป็น Ubuntu 14.04 เพียงอย่างเดียว ความเงิบอย่างแรก คือ #ไม่รู้จะเริ่มยังไงดี ด้วยความที่ปกติใช้ Ubuntu อยู่แล้ว ก็เลยไม่ต้องปรับตัวอะไรมาก แต่สำหรับคนที่ไม่เคย ก็ลองไปอ่าน Document ซึ่ง Digital Ocean เขียนไว้เยอะพอสมควรเลยทีเดียว แถมยังละเอียดมากอีกด้วย
สำหรับ #me อย่างแรกนึกออกว่าจะต้องลงก็คือ LAMPP = Linux + Apace + MySQL + PHP + phpmyadmin เพราะว่าเป็นเครื่องมือที่ง่ายที่สุดสำหรับเขียนเวปไซท์ มาเริ่มกันเลยดีกว่า
Install Apache
Apache เป็น Opensource Web Server ที่ไว้สำหรับรองรับ request ที่ส่งมาที่ server
sudo apt-get update
sudo apt-get install apache2
สำหรับถ้าต้องการสั่งปิดการทำงานของ Apache
sudo service apache2 stop
** สามารถเปลี่ยน stop เป็น start/restart ได้
Install MySQL
MySQL เป็น Database management system ที่นิยมใช้มาก
sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
*** ระหว่างลง #อย่าenter รัวๆ เพราะจะมีให้ใส่ root password สำหรับ MySQL ด้วย
จากนั้นก็ต้อง activate MySQL โดย
sudo mysql_install_db
สุดท้ายก็คือ รัน MySQL set up script
sudo /usr/bin/mysql_secure_installation
Install PHP
PHP เป็นภาษาสำหรับเขียนเวปไซท์ที่ใช้เยอะเป็นอันดับต้นๆ และมี Document ให้ศึกษาเยอะแยะ
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
หลังจาก install จะต้องทำการเซตอัพให้รู้จัก index.php โดยเปิดไฟล์ “/etc/apache2/mods-enabled/dir.conf”
จากนั้นเพิ่ม index.php ลงไป
DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm
Install phpmyadmin
phpmyadmin เป็น web interface ที่สามารถทำให้เข้าถึงดาต้าเบสได้ง่ายๆผ่านเวป ไม่จำเป็นต้องใช้ commandline
sudo apt-get install phpmyadmin
sudo php5enmod mcrypt
sudo service apache2 restart
สุดท้าย…
ถ้าทั้งหมดเป็นไปอย่างถูกต้อง เราก็จะสามารถเข้าดู Website ผ่าน IP ของ VPS
*** root directory จะอยู่ที่ /var/www/html
#เยี่ยมจริงๆ #เยี่ยมจริงๆ #เยี่ยมจริงๆ แต่อย่าลืมนะว่า VPS ก็เสมือนคอมพิวเตอร์ของเรา มันติดไวรัส หรือ โดนแฮ๊กได้ ซึ่งปกติ Hosting จะเป็นคนดูแลเรื่องนี้ให้เรา แต่ตอนนี้ เราต้องมาดูแลเองละ #ฉันก็แอบกลัวโดนแฮ๊กอยู่เหมือนกัน
เพิ่มเติม1
ถ้าอยากให้แต่ละ user มี website root directory ของตัวเอง
sudo a2enmod userdir
sudo service apache2 restart
แค่นี้ แต่ละ user ก็จะสามารถเข้าสร้าง page ของตัวเอง ได้ที่ /home/
เพิ่มเติม2
เมื่อ PHP ไม่รัน script ที่อยู่ใน public_html
ให้เปิดไฟล์ /etc/apache2/mods-enabled/php5.conf จากนั้นแก้ เพิ่ม # ตามตัวอย่าง #php_admin_value engine Off
จากนั้น ก็ restart web server
sudo service apache2 restart
เพิ่มเติม3 ตั้งค่า Servername
ข้ามไปก่อน ยอม ดึกละ ขี้เกียจเขียน