ปัญหาหนึ่งของโปรแกรมเมอร์ เอาผมเองเป็นตัวอย่างเลยละกัน ก็คือ เซอวิสบางตัวที่อยากจะทดลองเขียนโค้ด PHP ติดต่อ มันติดตั้งบนวินโดวลำบากมาก บางครั้งก็ติดตั้งไม่ได้เอาเสียเลย อย่าง elasticsearch เงี้ย memcache เงี้ย vanish เงี้ย มันจึงเป็นการสะดวกกว่าหากจำลองเครื่องเซิฟเวอร์ลินุกซ์มาใช้งานเสียเองเลย ทีนี้ มันก็สามารถสร้าง virtual machine แล้วติดตั้ง ubuntu เวอร์ชั่นเซิฟเวอร์ ลงไปเองทั้งหมด มันก็ได้นะ แต่มันเสียเวลาไง คอนฟิกโน่นนี่นั่น ชิบหายกันเลยทีเดียว ไอ้เราเองก็ไม่ได้กะจะเอาดีทางแอดมินอยู่แล้ว กะจะเอาแค่พอใช้พอ มันจึงต้องหาเครื่องมือมาช่วยอำนวยความสะดวก คำตอบนั้นคือ vagrant
ความคิดของผมตอนนี้คือ สร้างเซิฟเวอร์มาหนึ่งตัว ติดตั้ง elasticsearch ลงไป สั่งให้มันรันไว้ จากนั้นเขียนโค้ดบนวินโดวให้มันเรียกใช้งาน elasticsearch บนลินุกซ์เซิฟเวอร์เอา เป็นคำตอบที่ดีกว่าจะมาพยายามนั่งหาข้อมูลการติดตั้ง elasticsearch บนวินโดวมาก
เครื่องปรุง
- virtualbox ไว้สร้างเครื่องจำลอง
- vagrant เป็นเครื่องมือไว้ควบคุมเครื่องที่จำลองขึ้นมา
- laravel/homestead ไฟล์ Ubuntu ที่ติดตั้งเครื่องมือสำหรับพัฒนาไว้พร้อม
- homestead config file
- puttygen ไว้สำหรับสร้าง public key และ private key
- putty ไว้สำหรับล้อกอินเข้าเครื่องจำลอง
ลำดับขั้นตอนด้านล่าง ถึงถูกแบ่งออกเป็นเซ็กชั่นย่อย ๆ แต่ก็ต้องกระทำการไปตามลำดับ
ติดตั้ง Virtualbox
- เข้าเว็บ https://www.virtualbox.org/wiki/Downloads ดาวน์โหลด virtualbox เลือก VirtualBox for Windows hosts
- ดับเบิลคลิกไฟล์ที่ดาวน์โหลดมา เพื่อเข้าสู่กระบวนการติดตั้ง หน้าต่างแรกจะถูกเปิดขึ้นมา ให้คลิก Next
- ไม่ต้องปรับแต่งอะไร คลิก Next
- คลิก Next
- มี Warning อะไรก็ไม่รู้แจ้งเตือนมา ไม่ต้องสนใจ คลิก Yes สถานเดียว
- คลิก Install เพื่อเริ่มการติดตั้ง
- เมื่อถึงหน้าจอนี้ ทำได้อย่างเดียวคือรอ เดินไปหากาแฟกิน หรือ นั่งเฝ้าก็ได้เพราะแป้บเดียว
- ติ๊กเครื่องหมายหน้า Start Oracle VM Virtualbox 4.3.16 after installation ออก แล้วคลิก Finish
ติดตั้ง vagrant
- เข้าไปยังเว็บไซต์ https://www.vagrantup.com/downloads.html คลิกดาวน์โหลดตัว Windows บันทึกไฟล์ไว้ตรงไหนสักแห่งที่สะดวกต่อการดับเบิลคลิก ติดตั้ง
- ดับเบิลคลิกไฟล์ vagrant ที่ดาวน์โหลดมา เข้าสู่กระบวนการติดตั้ง หน้าจอแรกเปิดขึ้นมาให้คลิก Next
- ติ๊กถูกหน้า I accept the term in the License Agreement แล้วคลิก Next
- หน้าต่างเลือกพาธสำหรับติดตั้ง vagrant ซึ่งไม่ต้องเปลี่ยนหรอก ปล่อยไว้อย่างเดิม แล้วคลิก Next
- คลิกปุ่ม Install เพื่อทำการติดตั้ง
- นั่งรอ
- เมื่อการติดตั้งเรียบร้อยแล้ว ให้คลิกปุ่ม Finish
- หลังคลิกปุ่ม Finish จะมีหน้าต่างแจ้งขึ้นมาว่าให้ Restart เครื่อง คลิกปุ่ม Yes ไปครับ Restart เครื่องไปสักทีนึงก่อน
ติดตั้ง laravel/homestead
- เปิด command line tool ขึ้นมา ซึ่งพาธที่แสดงเริ่มต้นน่าจะอยู่ที่โฟลเดอร์ส่วนตัวของเราเอง ไม่ต้องเปลี่ยนไปพาธอื่น เล่นมันที่นี่แหละ อย่างของผมมันจะอยู่ที่ C:\Users\watcharamet ให้พิมพ์คำสั่งด้านล่างเข้าไปแล้วกดปุ่ม Enter
vagrant box add laravel/homestead
- ตัว vagrant จะทำการดาวน์โหลด image file homestead (ซึ่งมันก็คือ ubuntu ที่ติดตั้งเครื่องมือสำหรับพัฒนาไว้พร้อมแล้ว) ลงมายังเครื่องเรา ใส่เข้าไปใน virtualbox การจัดการเครื่องจำลองของเรา เราไม่ได้ทำผ่านตัว virtualbox เลย เราสั่งผ่านคำสั่งของ vagrant ให้ vagrant ไปสั่ง virtualbox อีกที ขึ้นตอนนี้ช้าหรือเร็วขึ้นอยู่กับความเร็วเน็ตของท่านล่ะ ได้แต่นั่งรอ
- เมื่อขึ้นคำว่า Successful แสดงว่าเรียบร้อย
เข้าสู่ขั้นตอนต่อไป
ติดตั้ง homestead config file
- เข้าไปยังเว็บ https://github.com/laravel/homestead คลิกปุ่ม Download ZIP
- ระเบิดซิปเอาเฉพาะไฟล์ เก็บไว้ที่ C:\Users\watcharamet\homestead (พาธของท่านก็ของท่านนะอย่าเลียนแบบผม)ข้างในจะมีไฟล์ประมาณนี้
สร้าง public key และ private key
- ก่อนอื่นจะต้องดาวน์โหลดโปรแกรม puttygen มาก่อน โดยเข้าไปยังเว็บไซต์ http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html คลิก puttygen.exe
- ดับเบิลคลิกไฟล์ puttygen.exe ที่ดาวน์โหลดมา
- คลิกปุ่ม Generate หลังคลิกปุ่ม มันจะเริ่มสร้าง key ให้เอาเมาส์ไถๆวนๆ บนที่ว่างใหญ่ เหนือปุ่ม Generate ถ้าไม่ขยับเมาส์นะ แท็บ progress bar มันจะไม่เขยื้อนเลย เขย่าไปเรื่อยๆ จน progress bar เต็ม 100%
- คลิกปุ่ม Save public key
- ตั้งชื่อ public-key ไม่ต้องใส่นามสกุล เก็บไว้ที่ C:\Users\watcharamet\homestead (อย่าลืมว่าพาธท่านก็พาธท่าน พาธผมก็พาธผม เลือกให้ถูก ของผมผมเก็บไว้ที่เดียวกับ homestead config เลยจะได้หาง่าย)
- กลับมาที่ putty gen อีกที คลิกปุ่ม Save private key มันอาจจะมีกล่องเตือนเรื่อง Passphrase แต่ไม่ต้องสนใจ ให้คลิกปุ่ม Yes ไป
- ตั้งชื่อ private-key (นามสกุลจะป้อนไปด้วยก็ได้ .ppk หรือไม่ป้อนเดี๋ยวมันก็จะบันทึกเป็น .ppk ให้เอง) เก็บไว้ที่ C:\Users\watcharamet\homestead (อย่าลืมว่าพาธท่านก็พาธท่าน พาธผมก็พาธผม เลือกให้ถูก ของผมผมเก็บไว้ที่เดียวกับ homestead config เลยจะได้หาง่าย)
เข้าสู่กระบวนการปรับแต่งและรันเซิฟเวอร์
ถึงแม้จะบอกว่าเป็นกระบวนการปรับแต่ง ท่านอาจจะตั้งคำถามว่าไม่ปรับแต่งได้มั้ย บอกเลยว่า ไม่ได้ ไม่งั้นตอนรัน vagrant มันจะ Error
ก่อนการปรับแต่งให้เรารันคำสั่ง init.bat ก่อน
- รันคำสั่ง init.bat ในโฟลเดอร์ C:\Users\watcharamet\homestead ก่อนด้วย command line เพื่อสร้างไฟล์ Homestead.yaml
- เปิดไฟล์ C:\Users\watcharamet\homestead\Homestead.yaml ขึ้นมา แล้วแก้ไขให้เป็นดังนี้ เสร็จแล้วบันทึกซะ
--- ip: "192.168.10.10" memory: 2048 cpus: 1 authorize: ~/homestead/public-key keys: - ~/homestead/private-key.ppk folders: - map: ~/code to: /home/vagrant/Code sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public variables: - key: APP_ENV value: local
*** อีไฟล์ปรับแต่งนี่ทำให้ผมเสียเวลาไปหลายวันกว่าจะเข้าใจมัน สิ่งที่ผมผิดพลาดคือ ผมคิดว่าในวินโดวการระบุพาธไปหาไฟล์ มันจะต้องใช้ \ (back slash) แต่เปล่าเลย มันใช้ / (foreword slash) เหมือนอย่างในลินุก ส่วนเครื่องหมาย ~/ มันหมายถึง C:\Users\watcharamet ซึ่งเป็นโฟลเดอร์ประจำตัวของเราในเครื่อง ถ้าท่านทำตามผมมาตลอด ท่านใช้ตามนี้ได้เลย
ip : คือหมายเลข ip ที่เราต้องการ assign ให้กับเครื่องเซิฟเวอร์ เวลาเราจะล้อกอินเข้าใช้งานเซิฟเวอร์ผ่าน ssh เราจะใช้ผ่าน ip หมายเลขนี้
authorize : ระบุพาธไปยัง public key
keys : ระบุพาธไปยัง private key
folders : จะเป็นที่เก็บโค้ดที่จะซิงก์เข้าไปยังเซิฟเวอร์ ท่านต้องอ่านทำความเข้าใจมันเพิ่มเติมจากเว็บ http://laravel.com/docs/4.2/homestead#installation-and-setup ในหัวข้อ Configure Your Shared Folders
sites : อ่านรายละเอียดจาก http://laravel.com/docs/4.2/homestead#installation-and-setup ว่ามันไว้ใช้ทำอะไร
variables : อ่านรายละเอียดจาก http://laravel.com/docs/4.2/homestead#installation-and-setup ว่ามันไว้ใช้ทำอะไร - เปิด command line ขึ้นมา เข้าไปยังพาธ C:\Users\watcharamet\homestead (ใช้คำสั่ง cd เอา) จากนั้นพิมพ์คำสั่ง
vagrant up
- หลังเสร็จสิ้นกระบวนการโหลด เราจะมีเครื่องเซิฟเวอร์จำลองพร้อมใช้งาน ซ้อนอยู่ในเครื่องของเรา 1 ตัว เราสามารถติดตั้งเซอวิสหรืออะไรก็ตามเข้าไปในเซิฟเวอร์ตัวนั้นได้ แต่ต้องทำผ่าน ssh มือใหม่อาจจะงงๆ ให้ถามเอาจากแอดมินที่บริษัทนะ ว่ามันคืออะไร ใช้ทำอะไร และใช้ยังไง จากในภาพถ้าอ่านจะเห็นว่า เราสามารถ ssh เข้าไปเครื่องเซิฟเวอร์ได้ผ่าน ip 127.0.0.1 พอร์ต 2222 username : vagrant password : vagrant (ในภาพไม่ได้แสดงพาสเวิร์ดออกมา ผมรู้เอาจากเว็บเจ้าของ homestead)
ใช้โปรแกรม putty ล้อกอินเข้าสู่เซิฟเวอร์
- ดาวน์โหลดโปรแกรม putty จากเว็บ http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html จะได้ไฟล์ putty.exe ที่พร้อมใช้งานโดยไม่ต้องติดตั้งมาตัวหนึ่ง
- ดับเบิลคลิก putty.exe ที่ดาวน์โหลดมา และระบุรายละเอียดตามด้านล่าง แล้วกดปุ่ม Open
IP address : 127.0.0.1 Port : 2222
- หน้าต่างดำๆจะเปิดขึ้นมาแล้ว ให้ล้อกอินด้วย username : vagrant, password : vagrant
- ถ้าท่านป้อน username, password ไม่ผิดพลาด มาถึงขั้นตอนนี้เท่ากับว่า ตอนนี้คุณได้เข้าไปยังเครื่องเซิฟเวอร์แล้ว อยากจะติดตั้งเซอวิสอะไรเพิ่มเติมก็ทำเอาได้เลย ทีนี้ท่านคงต้องอ่านเรื่องราวเกี่ยวกับการจัดการเซิฟเวอร์แล้วล่ะ บางทีอาจจะต้องปรึกษาแอดมินประจำบริษัท
Wichai Wimonkhachonyos says:
10/10/2557 at 10/10/2557
ขอบคุณครับ กำลังเริ่มใช้ตัวนี้พอดีเลย ช่วยได้มากเลยครับ