iis เดิมมีเว็บที่เป็น c# อยู่แล้วและไม่สะดวกที่จะเพิ่ม domain name เข้าไปใหม่ จะตั้งเป็น site ให้ใช้อีก port ก็ติด firewall ที่ยอมให้ใช้ port 80 เท่านั้น และเพื่อความปลอดภัย framework อย่าง laravel ไม่ควรวาง folder ให้สามารถเรียกใช้ php ไฟล์อื่นได้นอกจาก /public/index.php จึงเลือกที่ใช้วิธี Virtual Directory คือ การสร้าง folder ใน url ให้ชี้ไปอีก folder ที่อยู่นอก C:\inetpub\wwwroot
การตั้ง Virtual Directory
- เปิดโปรแกรม Internet Information Services (IIS) Manager
- คลิกขวาที่ site ที่ต้องการ เช่น Default Web Site
- Add Virtual Directory
- Alias
- คือ folder จำลอง เช่น punpun_uat
- Physical path:
- คือ path จริง ที่ทำ shortcut ชี้ไปหา เช่น C:\www\punpun_v1_uat
- (ไม่จำเป็น) คลิกที่ site หรือ server แล้ว restart
- ทดสอบโดยเรียก url เช่น http://localhost/punpun_uat
วิธีนี้จะมีข้อดีคือ
- สามารถติดตั้งหลายเว็บ โดยใช้ domain และ port เดียวกันได้
- สามารถควบคุมการเข้าถึงไฟล์ที่ไม่ต้องการได้ เช่น ถ้าวาง file ของ larave ไว้ใน C:\inetpub\wwwroot ตามปกติ ผู้ไม่หวังดีสามารถเรียกใช้ไฟล์อื่นๆ นอกจากไฟล์ /public/index.php ได้โดยตรง เช่น ไฟล์ php ที่สามารถ upload ไฟล์ได้โดยไม่มีการตรวจสอบสิทธิทำให้ไม่ปลอดภัย
- สามารถรัน code เดียวกันโดยใช้ php หลาย version หรือมี config คนละแบบได้โดยใช้วิธี การติดตั้ง PHP หลายเวอร์ชั่น บน IIS
- ซ่อน หรือย้าย folder ที่เก็บงานไปไว้ไดร์อื่น