การปรับแต่ง  Apache ให้รองรับ Virtual Host แลt Mode Rewrite

Virtual Host คือ ทำให้เครื่องเราจำลองการทำงาน Website ได้มากกว่าหนึ่งเว็บไซต์นั่นเองครับ
Mode Rewrite คืออะไร อธิบายมากอาจจะมึนไปกันใหญ่ เอาเป็นว่า มันสำคัญแล้วเราต้องใช้ ที่จริงแล้วมันก็ไม่ใช่โหมดเสียทีเดียว มันเป็น load module มากกว่า แต่ถ้าท่านจะพัฒนา Website ท่านด้วย Wordpress หรือ PHP Framework อีกหลาย ๆ ตัว มักจะต้องใช้งานใน mode นี้ ถ้าอยากรู้ คืออะไรมากกว่านี้ ถามอากู๋ (Google) เพิ่มเติมแล้วกันนะครับ

 

เปิด Terminal พิมพ์คำสั่งข้างล่าง เพิ่มเปิด editor ขึ้นมาแก้ไฟล์ หรือจะเปิดด้วย text editor อะไรก็แล้วแต่ชอบครับ

 

open -e /usr/local/etc/apache2/2.4/httpd.conf

 

หลังจากนั้น

1.    ค้นหา แล้วแก้ไขโดย เอา # ออก

 

#LoadModule rewrite_module libexec/mod_rewrite.so
LoadModule rewrite_module libexec/mod_rewrite.so

 

ถ้ามันเอาออกอยู่แล้ว เราก็ไม่ต้องไปยุ่งกับมันครับ

 

2.    จัดารเรื่อง User & Group จะไม่ได้มีปัญหาเวลาเรียกใช้งาน ค้นหาบรรทัดที่เหมือน code ข้างล่าง แล้วทำการแก้ไข

 

User user_ตัวเอง
Group admin

 

3.    เราจะทำการ เปิด virtual host โดย เอา # ออก

 

#LoadModule vhost_alias_module libexec/mod_vhost_alias.so
LoadModule vhost_alias_module libexec/mod_vhost_alias.so

 

และ

 

#Include /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf
Include /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf

 

4.    มองหาบรรทัดนี้ แล้วใส่ แล้วแก้ไข main path ให้ตรงกับที่เราจะสร้าง ในที่นี้คือ /Users/Appdikrub/webwork/ (จะสร้างแต่ยังไม่ได้สร้างแค่คิดไว้ว่าจะสร้างแบบนี้นะครับ)

 

 

# <Directory> blocks below.
#
<Directory /Users/Appdikrub/webwork/>
    AllowOverride All
    Require all denied
</Directory>

 

ตอนนี้เรายังไม่ได้สร้าง folder ที่เก็บ Website ของเรา เดี๋ยวเราไปสร้างตามที่กำหนดไว้ในขั้นตอนถัดไป ปกติผมจะใส่ code นี้ หลังจากสร้าง folder ต่าง ๆ สำหรับเก็บ Website ของเราเสร็จเรียบร้อยแล้ว แต่เกรงว่าย้อนไปย้อนมาจะทำให้สับสนได้ง่าย จากนั้น ทำการบันทึกการแก้ไข แล้วปิดไปก่อน แต่ถ้าไม่กังวลว่าจะสับสนก็เปิดทิ้งไว้ครับ เอาที่สบายใจครับ

 

5.    สร้างที่เก็บไฟล์ Website ของเรา ตามที่เรากำหนดไว้ตามขึ้นตอนที่ 4. ()

 

/Users/Appdikrub/webwork
/Users/Appdikrub/webwork/localhost
/Users/Appdikrub/webwork/webme


6.    จากนั้น เรามากำหนดค่า ชื่อ Website ของเรากับ Folder ที่เราสร้างให้ตรงกัน โดยเปิด Terminal พิมพ์ 

 

open -e /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf

 

ลบออกทุกสิ่งอย่าง ใส่ตามนี้เลยครับ

 

<VirtualHost *:80>
    DocumentRoot "/Users/Appdikrub/webwork/local"
    ServerName localhost
    <Directory "/Users/Appdikrub/webwork ">
      AllowOverride All
      Order allow,deny
      Allow from all
	  Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/Appdikrub/webwork/webme"
    ServerName webme.lc
    <Directory "/Users/Appdikrub/webwork ">
      AllowOverride All
      Order allow,deny
      Allow from all
	  Require all granted
    </Directory>
</VirtualHost>

 

จากนั้น พิมพ์

 

sudo nano /etc/hosts

 

แล้วเพิ่ม code ด้านล่างเข้าไป
 

127.0.0.1 localhost
127.0.0.1 webme.lc

 

ทำการเพิ่ม file index.html เข้าไปใน folder web ที่เราสร้างไว้ ตอนนี้เรายังไม่ได้ติดตั้ง PHP นะครับ เราเพียงแค่ปรับต่างค่า Apache ของเราให้สามารถทำการจำลอง Web Server ให้ได้มากกว่าหนึ่ง Website เท่านั้น ยังรัน PHP ไม่ได้นะครับใช้ html ทดสอบก่อนว่าการปรับแต่ง Virtual Host ของเราถูกต้องหรือไม่

Folder ของเรา "/Users/Appdikrub/webwork/localhost” เพิ่ง code html ใน index.html เป็น

 

<h1>Local host</h1>

 

ส่วน Folder "/Users/Appdikrub/webwork/webme” ของเรา เพิ่ม code html ใน index.html เป็น

 

<h1>Welcome to webme.lc </h1>

 

จากนั้น restart เครื่องเสียหน่อย พอเป็นพิธี แล้วทำการเข้า http://localhost และ http://webme.lc ถ้าเข้าได้ แสดงว่า apache ของเรา และการปรับแต่ เรียบร้อยแล้วนั่นเอง บทความนี้เป็นเพียงการปรับตั้งค่า Apache Server ของเราให้ ทำงานในโหมด Rewrite และ สามารถจำลองการทำงานได้มากกว่าหนึ่งเว็บไซต์ (Virtual Host) โดยจำเป็นต้องติดตั้ง Apache ให้เรียบร้อยเสียก่อน ซึ่งสามารถดูได้ที่ link ที่เกี่ยวข้อง รวมถึงการติดตั้ง PHP และ MySQL ด้วยเช่นกัน

 

ผลลัพธ์เมื่อเรียกผ่าน localhost

 

ผลลัพธ์เมื่อเรียกผ่าน webme.lc

 


Link: ที่เกี่ยวข้อง