สำหรับนักพัฒนาเว็บไซต์ ถ้าเราจะเริ่มเขียนเว็บ( ผมขอพูดถึง ภาษา PHP นะครับ ) เราก็ต้องมี เครื่องมือสำหรับพัฒนา เช่น Server จะใช้ของอะไร Apache, Nginx, PHP เวอร์ชั่นใหน จริงๆ ตอนนี้ควรเริ่มใช้ ตั้งแต่เวอร์ชั่น 7 ขึ้นไป, ระบบฐานข้อมูล ใช้อะไร Mysql, MariaDB ระบบเครื่องหล่ะ เมื่อก่อนเห็นฮิตๆ ก็ CentOS เดี๋ยวนี้ก็ Ubuntu ง่ายดี ถ้าสมมุติ ผมเป็นมือใหม่หัดพัฒนา ปวดหัวตาย งงด้วย ไม่รู้อะไรเยอะแยะ ผมมองว่าผมเป็นคนเริ่มต้นอะนะ

ทีนี้ผมก็คงจะใช้ Application อย่าง Appserve, Xampp เปิดโปรแกรม คลิ๊กๆ ติดตั้ง เริ่มเขียน URL ก็เป็น Localhost ip 127.0.0.1 ไปง่ายๆ เวลาจะทำก็เข้า Path ไป สร้าง floder ทำเป็น Projects ไป ก็ดีครับง่ายดีๆ แต่ผมว่าเรามาลองใช้งาน เครื่องมือที่เค้ามีมาให้ใหม มันช่วยจัดการให้เราง่ายกว่าเดิมเยอะ ผมจะมาพูดถึงเครื่องมือ สำหรับพัฒนาเว็บไซต์ที่ชื่อว่า Homestead

Homestead

Hometead คือ Virtual Machine( ตัวจำลองระบบ ) ของ Framework ชื่อดัง Laravel อันที่จริงเจ้านี้มีระบบจำลองหลายตัวอย่าง Valet หรือจะเป็น Docker อย่าง Laradock แต่เอาไว้ก่อน ผมว่าจะเขียนไว้สำหรับผู้หัดเริ่ม ถ้าลึกไปเดี๋ยวจะงง ปล่อยวางไปก่อนครับ แล้วมาโฟกัสที่ Homestead

Homestead จะมี Package หลายๆ อย่าง Pack รวมมาแล้ว รันทีเดียวใช้งานจบเลย ข้อดีก็ง่าย ข้อเสียก็ช้า ก็ VM อะเนอะ มาดู Package ที่มีมาให้กันเลย ดีกว่า

  • Ubuntu 18.04
  • Git
  • PHP 7.2
  • PHP 7.1
  • PHP 7.0
  • PHP 5.6
  • Nginx
  • Apache (Optional)
  • MySQL
  • MariaDB (Optional)
  • Sqlite3
  • PostgreSQL
  • Composer
  • Node (With Yarn, Bower, Grunt, and Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Mailhog
  • Elasticsearch (Optional)
  • ngrok
  • wp-cli
  • Zend Z-Ray
  • Go
  • Minio

โอ้โห ดู Package ที่มีมาให้มัน มันเยอะมาก พอๆ กับทีใช้ทำเว็บไซต์ทั่วๆไปแล้วครับ ถ้าใครอ่านจนถึงตอนนี้ แล้วสนใจ ผมจะมาอธิบายการใช้งานต่อไปนะครับ ถ้าใครอยากใช้ Docker มาทำโดยใช้ Laradock อนาคตผมจะเขียนต่อให้นะครับ แต่ถ้าใคร เริ่มสนใจ และอยากจะใช้ Homestead นี้แล้ว มาเริ่มใช้งานกันเลย

 

สิ่งที่ Homestead ต้องการ ( Requiremnet )

  • Virtual Machine จะใช้เป็น Virtualbox5.2, VMWare หรืออย่างอื่นก็ได้ แต่ในที่นี้ผมแนะนำ Virtualbox นะครับเพราะผมก็ใช้อยู่
  • Vargrant เป็นตัวจัดการ VM นะครับ

ติดตั้งให้เรียบร้อย ขั้นตอนการติดตั้ง คิดว่าไม่น่าจะยากนะครับ ถ้าสงสัยเพิ่มเติมลองค้นหาข้อมูลดูถ้าไม่ได้จริงๆ สอบถามมาอีกทีนะครับ

 

ขั้นตอนการติดตั้ง

Download Homestead Box มาก่อนเลยครับ พิมพ์คำสั่งตามนี้

// เพิ่ม Homestead Box 
vagrant box add laravel/homestead

 

ต่อมาติดตั้ง Homestead

// ต้องมี git ก่อนนะ
// Downloads Source Code Homestead
git clone https://github.com/laravel/homestead.git ~/Homestead

// ออกมาที่ Home Folder Homestead
cd ~/Homestead

//เลือก เวอร์ชั่น v.7.4.2
git checkout v7.4.2

// พิมพ์คำสั่งดังต่อไปนี้เพื่อติดตั้ง 
// ถ้าเป็น Windows ให้พิมพ์ 
init.bat

// ถ้าเป็น Mac, Linux ให้พิมพ์
bash init.sh

เพียงเท่านี้เราจะสามารถติดตั้ง Homestead ให้เครื่องเราสำเร็จแล้ว ผมอาจจะพิมพ์ดูเยอะ แต่ขั้นตอนทำจริงๆ มันไม่เยอะเลย ไม่ยากครับๆ ทดลองทำด้วยตัวเอง จะเห็นครับว่าง่ายมากๆ ลองทดสอบดูครับ หากพบปัญหา พิมพ์มาคุยกันได้ครับ มาต่อกันเลยกับการตั้งค่าการใช้งาน 

 

ขั้นตอนการตั้งค่า Homestead

หลังจากที่เราติดตั้งแล้วเราจะมาตั้งค่ากัน เริ่มที่ให้เข้าไปที่ Folder Homestead เราจะพบกับไฟล์ Homestead.yaml ไฟล์นี้จะเป็นไฟล์หลัก ไฟล์สำคัญในการตั้งค่าเว็บเราทุกเว็บเลย

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
    - ~/.ssh/id_rsa

IP : บรรทัดนี้จะเป้นตัวบอกว่าเราต้องการให้เครื่อง VM Homestead ของเราอยู่ที่ IP ไหน เรากำหนดได้เองเลยครับแค่ห้ามชนกับ IP ในเครื่องเราเท่านั้นเอง
MEMORY: บอกว่าเราจะให้ RAM สำหรับ สร้างเครื่องนี้เท่าไหร่ ผมใช้ 1024 ก็พอนะครับ
CPUS: ใช้ CPU เท่าไหร่
Provider: เป็นตัวกำหนดว่าเราใช้อะไรเป็น Provider เช่น Virtualbox เป็นต้น ถ้าลงตามที่ผมแนะนำตั้งแต่ต้นก็ใช้ตามเดิมเลยครับ
Authorize: กำหนด Authorize Key ของ SSH Path Default จะอยู่ตามที่กำหนดมาเลย
Key: Key ของ SSH Key ก็ถูกกำหนดตาม Default เลย

 

folders:
     - map: ~/code 
       to: /home/vagrant/code 

sites:
     - map: homestead.test 
       to: /home/vagrant/code/public 

databases: - homestead

Folder: จะแยกออกเป็น Map กับ Sites นะครับ ในส่วนของ map จะเป็นตัวบอกว่า Path จริงๆ Workspace ของงานเราอยู่ที่ไหน ส่วน To จะเป็น Path ที่จะถูก Syncs ไปโชว์ในเครื่อง VM
Site: จะเป็นตัว Map Domain นะครับ พูดง่ายๆ ก็ Config Nginx จากตัวอย่างจะบอกว่า map Domain homestead.test ให้ชี้ไปที่ Path /home/vagrant/code/public
*Laravel จะถูกแสดงผลที่ Floder Public นะครับ
Databases : หมายถึงให้สร้าง Database ชื่อ  homestead

 

หลังจาก Config เสร็จให้เข้าไปที่ Floder Homestead แล้วพิมพ์

vagrant up

 

แล้วรอครับ เพิ่มเติมอีกนิดหนึ่ง สังเกตุตรง sites map: domain.test นั่น เราต้อง Fixed Hosts ด้วยนะครับ เช่นถ้า Ubuntu เข้าไปที่ /etc/hosts แล้วเพิ่ม บรรทัดเข้าไป
xxx.xxx.xxx.xxx domain.test

xxx ก็ดูตาม IP ที่เราตั้งค่าไปหล่ะครับ ถ้าดูจากตัวอย่างจะเป็น 192.168.10.10 homestead.test ครับ

เท่านี้เราก็จะได้เครื่อง vm พร้อมใช้งาน แล้วหนึ่งตัว แล้วบทต่อไปมาพูดถึงการติดตั้งเจ้า Laravel กันครับ