Bạn vừa hoàn thành một dự án Laravel tuyệt vời và đang muốn đưa nó lên môi trường thực tế? Việc upload Laravel lên host là bước quan trọng để biến ứng dụng cục bộ thành một sản phẩm sống động trên internet. Tuy nhiên, nếu bạn chưa từng triển khai trước đó, quá trình này có thể khiến bạn gặp khó khăn với các thao tác như cấu hình thư mục, upload file hay kết nối database. Bài viết này sẽ hướng dẫn bạn từng bước chi tiết để đưa dự án Laravel của mình lên hosting một cách nhanh chóng và chuẩn xác nhất.

1. Hướng dẫn upload Laravel lên hosting Cpanel

Bước 1: Nén code

Đầu tiên, bạn cần thực hiện nén toàn bộ code website dưới dạng file zip giúp việc upload file lên hosting nhanh chóng, tiết kiệm thời gian.
Lưu ý: Hãy xoá toàn bộ cache của Laravel trước khi nén code bằng lệnh sau:

php artisan cache:clear

php artisan view:clear

nen-code-laravel

Sau đó, sử dụng phần mềm Winrar để nén code dưới dạng file zip

Lưu ý:

  • Nếu bạn sử dụng git thì khi nén code không cần nén thư mục .git
  • Nếu bạn sử dụng code web bằng Phpstorm thì khi nén không cần nén thư mục .idea

luu-y-khi-nen-code-laravel

luu-y-nen-code-laravel

Bước 2: Xuất cơ sở dữ liệu

Ở bước này, bạn thực hiện xuất file code ra database để import lên hosting Cpanel. Trong trường hợp bạn sử dụng XAMPP hay Laragon thì có thể sử dụng PhpMyadmin để xuất ra cơ sở dữ liệu dạng file.sql.

Khi thực hiện xuất database xong, bạn sẽ nhận được file có dạng tên-database.sql. Bạn sẽ sử dụng file này để import lên hosting.

xuat-database

Bước 3: Upload code Laravel lên host

Đăng nhập vào Cpanel và chọn File Manager

Tiếp theo, hãy xác định thư mục sẽ chứa mã nguồn code. Trong trường hợp tên miền bạn muốn sử dụng là tên miền chính hay còn gọi là tên miền sử dụng để đăng ký hosting thì nên sử dụng thư mục public_html để chứa file code upload. Còn nếu tên miền của bạn là addon domain hoặc subdomain thì thư mục addon domain hoặc subdomain sẽ là thư mục chứa file cần upload.

upload-laravel-len-host

Tiếp theo, click vào thư mục cần upload mã nguồn và nhấn chọn Upload => Chọn Select File và chọn file code đã nén dạng zip. Sau khi upload file thành công, hãy nhấn chọn Go back để quay trở lại thư mục trước đó chứa mã nguồn.

Sau đó, nhấp chuột phải vào file zip => Chọn Extract để giải nén.

Sau khi giải nén thành công, hãy xoá file zip bạn đã upload lên trước đó.

Bước 4: Tạo cơ sở dữ liệu, user Mysql và import Database

Bạn có thể thực hiện tạo Database, user Mysql theo hướng dẫn ở bài viết trước đó. Sau đó, bạn truy cập Phpmyadmin và chọn Database để import database đã được Export ở bước 2.

Bước 5: Cấu hình kết nối cơ sở dữ liệu trong file .env

Trước tiên, bạn cần bật hiển thị để có thể dễ dàng chỉnh sửa file .env

Sau đó, bạn tiến hành kết nối database trong file .env. Nhấp chuột phải vào file .env và chọn Edit.

Ở bước này, bạn thực hiện chỉnh sửa một số trường thông tin sau:

  • APP_DEBUG : Để định dạng False
  • APP_URL : Điền domain website dạng http://domain.com hoặc https://domain.com trong trường hợp sử dụng SSL
  • DB_DATABASE : Điền tên database đã trước đó
  • DB_USERNAME : Điền User Mysql đã tạo trước đó
  • DB_PASSWORD : Điền mật khẩu User Mysql đã tạo trước đó.

Bước 6: Loại bỏ public khỏi URL của website

Laravel mặc định tất cả các request đều đi vào thư mục Public nên Url sẽ có thêm /public. Do đó, để loại bỏ /public khỏi Url, bạn sử dụng nội dung sau để tạo file /htacess ngang hàng với thư mục public:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]
</IfModule>

Bước 7: Tạo Cronjob

Nếu bạn đang sử dụng queue work của Laravel, bạn cần phải thực hiện cấu hình Cronjob trên host thì mới có thể hoạt động. Để có thể cấu hình Cronjob, bạn truy cập cPanel => Chọn Cron Jobs

Lưu ý đường dẫn ở mục Command:

/usr/local/bin/php /home/support1/public_html/artisan queue:work –sleep=1 –tries=3 –timeout=120 >/dev/null 2>&1

Trong đó:

  • /home/support1/public_html/ : Đường dẫn đến thư mục chứa code
  • >/dev/null 2>&1 : Không spam mail khi thực hiện chạy cronjob

*Một số lưu ý khi upload Laravel:

  • Bạn cần đảm bảo Chmod của thư mục là 0755, Chmod của file là 0644 sau khi upload code nếu không sẽ xảy ra tình trạng 403.
  • Nếu bạn gặp phải lỗi 500, bạn cần xem lại phiên bản PHP trên hosting và kết nối với Mysql đã đúng chưa. Trường hợp bạn sử dụng phiên bản Laravel 5.6 trở lên, nên sử dụng PHP 7 để đạt hiệu suất tốt nhất.

2. Cách up Laravel lên host Direct Admin

Yêu cầu:

  • PHP 7 (hoặc phiên bản cao hơn)
  • OpenSSL, Mbstring, PDO, Tokenizer, PHP, XML
  • Apache hoặc Nginx

Bước 1:

Cài đặt SSH vào máy chủ của bạn bằng lệnh sau:

yum update

yum install git curl

Bước 2: Cài đặt Composer

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

Bước 3: Chuẩn bị cài đặt Laravel

Để cài đặt Laravel, bạn cần đảm bảo thư mục public_html trống. Dưới đây là lệnh thực hiện làm trống thư mục này:

rm -rf /home/USERNAME/domains/LARAVEL_DOMAIN/public_html/*

Trong đó, bạn cần thay thế USERNAME bằng tên người dùng DirectAdmin, thay LARAVEL_DOMAIN bằng tên miền bạn muốn cài đặt Laravel.

Bước 4: CD vào tên miền của bạn

Bạn sử dụng lệnh sau:

cd /home/USERNAME/domains/LARAVEL_DOMAIN/public_html/

Trong đó, bạn cần thay thế USERNAME bằng tên người dùng DirectAdmin, thay LARAVEL_DOMAIN bằng tên miền bạn muốn cài đặt Laravel.

Bước 5: Cài đặt Laravel

Bạn thực hiện cài đặt Laravel trên DirectAdmin bằng lệnh Composer. Lưu ý: Giữ nguyên dấu . ở cuối lệnh.

composer create-project –prefer-dist laravel/laravel .

Bước 6:

*Đổi gốc tài liệu thành /public

  • Đăng nhập với tư cách là Quản trị viên vào máy chủ của bạn.
  • Đi đến Trình quản lý máy chủ => Cấu hình HTTPD tùy chỉnh
  • Tìm tên miền bạn muốn thay đổi gốc docroot
  • Nhấp vào httpd.conf
  • Nhấp vào CUSTOMIZE
  • trong “httpd.conf customization for LARAVEL_DOMAIN” thêm dòng sau:

|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html/public|

  • Nhấp vào nút SAVE ở góc dưới bên phải.

*Đổi gốc tài liệu thành /public cho một tên miền phụ

  • Đăng nhập với tư cách là Người dùng vào máy chủ của bạn
  • Đi tới Trình quản lý tài khoản => Quản lý tên miền phụ
  • Nơi bạn thấy Docroo , hãy nhấp vào hình bút chì ở bên phải và thêm /public
  • Nhấp vào nút SAVE

Bây giờ bạn có thể truy cập tên miền của mình trên Laravel.

Việc upload Laravel lên host không còn là thử thách nếu bạn nắm rõ quy trình và thực hiện đúng từng bước. Khi dự án của bạn đã hoạt động mượt mà trên môi trường thực tế, đó là lúc bạn có thể tự hào chia sẻ sản phẩm với người dùng toàn cầu. Đừng quên kiểm tra kỹ các thiết lập bảo mật và backup định kỳ để đảm bảo hiệu suất và an toàn.