Bỏ qua để đến nội dung chính

Cách cài đặt một trang web dựa trên Laravel

Việc cài đặt được thực hiện bằng composer. Tên miền được dùng làm ví dụ là example.com và người dùng của trang web là user.

Chuẩn bị

Cài đặt Composer

Cài đặt composer trong FASTPANEL® ở phần "Applications"

Menu quản lý Applications trong FASTPANEL

Cài đặt composer trong FASTPANEL

Tạo trang web

Tạo một trang web trong FASTPANEL® và chỉ định thư mục con public trong cài đặt trang web ở phần "Site Directory".

Chỉ định thư mục con public

Tạo dự án

Để tạo một dự án, bạn cần kết nối tới máy chủ qua SSH bằng dữ liệu của chủ sở hữu trang web. Chủ sở hữu trang web được hiển thị trên thẻ trang web trong FASTPANEL

Kiểm tra chủ sở hữu trang web trong FASTPANEL

Sau khi thiết lập kết nối SSH, bạn nên xóa nội dung thư mục trang web bằng ví dụ lệnh sau (thay example.com bằng tên trang web của bạn)

rm -rf /var/www/user/data/www/example.com/*

Sau đó chuyển đến thư mục trang web

cd /var/www/user/data/www/example.com

Và tạo một dự án

composer create-project laravel/laravel ./
Ví dụ đầu ra trong trường hợp cài đặt thành công
73 package suggestions were added by new dependencies, use `composer suggest` to see details.
Package fruitcake/laravel-cors is abandoned, you should avoid using it. No replacement was suggested.
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
76 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
No publishable resources for tag [laravel-assets].
Publishing complete.
No security vulnerability advisories found
> @php artisan key:generate --ansi
Application key set successfully.

Cài đặt một phiên bản Laravel cụ thể

Để cài đặt một phiên bản cụ thể, khi tạo dự án, bạn phải chỉ định phiên bản ở cuối lệnh trong dấu ngoặc kép

composer create-project laravel/laravel ./ "5.8.*"

Kết nối cơ sở dữ liệu

  • Đối với Artisan, hãy chỉ định dữ liệu để kết nối với cơ sở dữ liệu trong tệp .env trong thư mục website
  • Đối với trang web, hãy chỉ định dữ liệu để kết nối tới cơ sở dữ liệu trong tệp ./config/database.php

Để chỉnh sửa tệp .env, bạn có thể sử dụng trình soạn thảo văn bản có tên là nano qua SSH:

nano .env
Ví dụ về .env
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=site_db
DB_USERNAME=db_user
DB_PASSWORD=0j9vd3qATwTsXW7C

Để chỉnh sửa tệp ./config/database.php qua SSH:

nano ./config/database.php
Ví dụ về ./config/database.php
    'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'site_db'),
'username' => env('DB_USERNAME', 'db_user'),
'password' => env('DB_PASSWORD', '0j9vd3qATwTsXW7C'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],

Trong trình soạn thảo nano, Ctrl+O được dùng để lưu thay đổi, Ctrl+X được dùng để thoát khỏi trình soạn thảo.

Kết nối Memcached (tùy chọn)

Bạn cần cài đặt mô-đun PHP memcached cho phiên bản PHP được sử dụng trên trang web, đồng thời cài đặt ứng dụng.

Cài đặt mô-đun PHP memcached

Menu quản lý PHP trong FASTPANEL

Cài đặt mô-đun PHP memcached trong FASTPANEL

Cài đặt ứng dụng memcached

Menu quản lý Applications trong FASTPANEL

Cài đặt ứng dụng memcached trong FASTPANEL

Chỉnh sửa tệp cấu hình

Chỉ định dữ liệu để kết nối tới memcached trong tệp ./config/cache.php

Ví dụ về ./config/cache.php
'memcached' => [
'driver' => 'memcached',
'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
'sasl' => [
env('MEMCACHED_USERNAME'),
env('MEMCACHED_PASSWORD'),
],
'options' => [
// Memcached::OPT_CONNECT_TIMEOUT => 2000,
],
'servers' => [
[
'host' => env('MEMCACHED_HOST', '127.0.0.1'),
'port' => env('MEMCACHED_PORT', 11211),
'weight' => 100,
],
],
],

Sử dụng Artisan trên phiên bản PHP không phải hệ thống

Để sử dụng artisan trên một phiên bản PHP không phải phiên bản hệ thống, bạn phải chỉ định đầy đủ đường dẫn tới tệp thực thi. Ví dụ về cách sử dụng phiên bản php thay thế 8.2:

/opt/php82/bin/php artisan list

Các lệnh Artisan cơ bản

Các lệnh nên được thực thi trong thư mục gốc của dự án của bạn (example.com trong ví dụ này)

cd /var/www/user/data/www/example.com

Để xem danh sách tất cả các lệnh Artisan khả dụng, bạn có thể sử dụng lệnh

php artisan list

Khởi chạy máy chủ phát triển Laravel cục bộ. Bạn có thể chỉ định các khóa --host--port

php artisan serve

Bắt đầu migration

php artisan migrate

Bật chế độ bảo trì trên trang web, khóa --redirect=/ để chỉ định trang cho chế độ bảo trì

php artisan down

Tắt chế độ bảo trì trên trang web

php artisan up