Thay đổi thư mục Public trong laravel framework
PHP
78
Laravel
25
White

Đinh Quốc Hân viết ngày 16/02/2017

Trong quá trình làm việc với laravel, đôi khi sẽ có thay đổi chút về thư mục public trong laravel. Cụ thể như khi chạy nó trên các shared hosting thường là chỉ có thư mục public_html hoặc một số qui định bắt buộc ở các môi trường khác nhau mà tên thư mục này sẽ đổi theo, và trong bài này mình sẽ hướng dẫn các bạn các thay đổi thư mục này trong laravel. Tại thời điểm mình viết bài này thì laravel đang là phiên bản 5.4.x.

Lưu Ý: Mình thấy một số bạn hay đem tập tin index.php của Laravel ra ngoài thư mục gốc và chạy luôn, điều này rất nguy hiểm và mình khuyên các bạn tuyệt đối không làm như thế, rất có thể bị lộ thông tin bảo mật cấu hình cho ứng dụng, vì thế bạn chỉ được chạy tương tác với client qua thư mục public hoặc một thư mục khác mà mình sẽ hướng dẫn trong bài này mà thôi.

Just do it

Đầu tiên bạn cần đổi tên của thư mục public ở đây mình sẽ đổi thành public_html.

Lưu Ý: bạn có thể đổi tên thư mục public và đem toàn bộ source còn lại của Laravel vào một thư mục bất kỳ ví dụ thư mục laravel sau cấm quyền truy cập vào thư mục đó đều được.

Tiếp theo kiểm tra trong tập tin public_html/index.php xem đã trỏ đúng vào tập tin autoload.php, app.php của laravel chưa. Ở dưới đây mình dùng path_to_root chỉ thư mục gốc của laravel chứa source của ứng dụng, có thể là / nếu mặc định hoặc laravel như ví dụ mình lưu ý ở trên.

require __DIR__.'/../path_to_root/bootstrap/autoload.php';
// và thằng này nữa
$app = require_once __DIR__.'/../path_to_root/bootstrap/app.php';

Tạo một class con path_to_root/app/MyApp.php kế thừa từ Application của Laravel, với nội dung như sau:

<?php

namespace App;

use Illuminate\Foundation\Application;

class MyApp extends Application
{
    public function publicPath()
    {
        return $this->basePath.'/public_html';
    }
}

Sau đó bạn vào tập tin path_to_root/bootstrap/app.php và thay đổi như sau:

// Bỏ thằng Application cũ đi
// $app = new Illuminate\Foundation\Application(
//  realpath(__DIR__.'/../')
// );

$app = new App\MyApp(
    realpath(__DIR__.'/../')
);

Xong, như vậy là xong rồi đấy, để chắc ăn để cho composer nó autoload lại nhĩ, bật Terminal tại thư mục gốc của Laravel, nhập lệnh sau:

composer dump-autoload

Sau đó, chạy thử đường dẫn mới nhé. Chúc các bạn thành công nhé.

P/s: Sau khi thành công còn 2 vấn đề nữa bạn cần giải quyết đó là sửa lại link của storge/public thì dùng lệnh ln -s .. là được, còn nữa nhớ cấu hình lại elixir để xuất assets cho đúng, 2 cái này bạn tự thực hiện nhé.

Đọc thêm các bài viết của mình tại: https://dinhquochan.com/

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Đinh Quốc Hân

5 bài viết.
16 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
18 8
Trước khi Composer ra đời, chúng ta thường khó chịu với hàng tá các thư viện của bên thứ ba cần phải quản lý, rất khó khăn để cập nhật và còn lại c...
Đinh Quốc Hân viết hơn 2 năm trước
18 8
White
18 10
Design Pattern là kỹ thuật lập trình cung cấp cho chúng ta các mẫu thiết kế để áp dụng vào các trường hợp cụ thể để giải quyết các bài toán dễ dàng...
Đinh Quốc Hân viết hơn 1 năm trước
18 10
White
10 6
Lời giới thiệu Bạn là một web developer, bạn hầu như chỉ biết dev sản phẩm của mình và hầu như các công việc ở giai đoạn lằng nhằng như cài LAMP (...
Đinh Quốc Hân viết hơn 2 năm trước
10 6
Bài viết liên quan
White
2 2
Bash script to fast serve Laravel project Lười gõ dòng lệnh quá nên tạo ra cái script để gõ nhanh :D laravelstart.sh /bin/bash if z "$1" ] ...
Vũ Hoàng Chung viết hơn 1 năm trước
2 2
Male avatar
9 1
Để bắt đầu làm thêm của riêng bạn thì ban đầu bạn phải có một theme trắng ( Blank theme ) để bắt đầu Theme trắng là gồm có các thư mục và file cơ b...
Doan Van Manh viết hơn 2 năm trước
9 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
5 bài viết.
16 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!