โดยโครงสร้างไฟล์ของ Laravel แล้วเวลารันใน localhost จะเป็น localhost/laravel-project/public แต่ที่ต้องการที่จะให้เห็นคือ localhost/laravel-project แบบที่ไม่ต้องมี public มาต่อท้ายอีกที ขั้นแรกจะมี 2 ส่วนที่จะถูกจับแยกออกจากกันคือ folder public ที่เป็นส่วน interface กับส่วนอื่นๆ ที่เหลือ โดยนำ public ไปวางใน document root ของโฮส ส่วนไฟล์อื่นๆ จะไว้ตรงไหนก็ได้ ยกตัวอย่างเช่นเขียนโปรเจ็คชื่อ laravel-project (หรืออยากจะใช้ชื่ออะไรก็ตามใจ) โดยเปลี่ยนชื่อจาก laravel ที่เป็น default ตัว folder ที่อยู่บนเครื่องจะมีโครงสร้างแบบนี้ จากนั้นให้ย้ายโฟลเดอร์ public ออกมาที่ Document Root (จะเป็นโฟลเดอร์ www หรือ htdocs หรือ public_html แล้วแต่ระบบของคุณนะครับ) และเปลี่ยนชื่อ laravel-project เป็น laravel-project-system (หรือชื่ออื่นๆ […]
" /> ๐๗๔ | การอัพโปรเจ็คที่เขียนด้วย Laravel ขึ้นโฮสต์แบบไม่มีโฟลเดอร์ public – aHuii.com

aHuii.com

บล็อกของอาฮุย :)

๐๗๔ | การอัพโปรเจ็คที่เขียนด้วย Laravel ขึ้นโฮสต์แบบไม่มีโฟลเดอร์ public

June 5th, 2013

โดยโครงสร้างไฟล์ของ Laravel แล้วเวลารันใน localhost จะเป็น localhost/laravel-project/public แต่ที่ต้องการที่จะให้เห็นคือ localhost/laravel-project แบบที่ไม่ต้องมี public มาต่อท้ายอีกที

ขั้นแรกจะมี 2 ส่วนที่จะถูกจับแยกออกจากกันคือ folder public ที่เป็นส่วน interface กับส่วนอื่นๆ ที่เหลือ โดยนำ public ไปวางใน document root ของโฮส ส่วนไฟล์อื่นๆ จะไว้ตรงไหนก็ได้ ยกตัวอย่างเช่นเขียนโปรเจ็คชื่อ laravel-project (หรืออยากจะใช้ชื่ออะไรก็ตามใจ) โดยเปลี่ยนชื่อจาก laravel ที่เป็น default ตัว folder ที่อยู่บนเครื่องจะมีโครงสร้างแบบนี้

Laravel-Structure-File

จากนั้นให้ย้ายโฟลเดอร์ public ออกมาที่ Document Root (จะเป็นโฟลเดอร์ www หรือ htdocs หรือ public_html แล้วแต่ระบบของคุณนะครับ) และเปลี่ยนชื่อ laravel-project เป็น laravel-project-system (หรือชื่ออื่นๆ ตามใจชอบ ในรูปด้านบนคือโฟลเดอร์ laravel-test ครับ) และแก้ชื่อโฟลเดอร์ public ที่เราลากออกมาด้านนอกแล้วให้เป็น laravel-project (เพราะเราต้องการให้ url เป็น localhost/laravel-project/) ยกตัวอย่าง Document Root ของผมเป็น ~/user/Sites/ ตัว system ก็จะอยู่ที่ ~/user/Sites/laravel-project-system ส่วนตัวที่เป็นหน้าเว็บที่ใช้เข้าก็จะอยู่ที่ ~/user/Sites/laravel-project

จากนั้นแก้ไข path ในไฟล์ laravel-project/index.php โดยให้ชี้ไปที่ที่ถูกต้อง ในตัวอย่างของผมก็จะเป็น

require __DIR__.’/../laravel-project/bootstrap/autoload.php’;

$app = require_once __DIR__.’/../laravel-project/bootstrap/start.php’;

ต่อไปแก้ไขไฟล์ laravel-project-system/bootstrap/paths.php โดยแก้ที่บรรทัด public ให้ไปชี้ที่โฟลเดอร์ larval-project

‘public’ => __DIR__.’/../../laravel-project/’,

เสร็จแล้วลองรันโดยใช้ url localhost/laravel-project/ (กรณีทดสอบในเครื่อง) ถ้าวางบน server ก็ http://domain/laravel-project/ ก็จะพบกับหน้า index ของตัวโปรเจ็คที่เราสร้างครับ

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.