Laravel 9 đã ra mắt vào tháng 2/2022 với nhiều tính năng mới, tuy nhiên khi tìm kiếm thì mình chưa thấy bài viết nào hướng dẫn chi tiết cho anh em cách cài đặt bằng Sail as trên trang chủ đề cập nhật Laravel. Để đỡ tốn thời gian cho các anh em mới cài đặt, vooclaptrinh sẽ hướng dẫn chi tiết cách cài đặt Laravel với Sail trên cả Windows 10
Nội dung bài viết
Quảng cáo
1. Laravel Sail là gì?
Laravel Sail là một giao diện dòng lệnh nhẹ để tương tác với môi trường phát triển Docker mặc định của Laravel. Sail cung cấp một điểm khởi động tuyệt vời để xây dựng ứng dụng Laravel bằng PHP, MySQL và Redis mà không yêu cầu kinh nghiệm Docker trước đó
Để chạy Laravel bằng Sail, đầu tiên chúng ta cần tạo tệp docker-compose tại thư mục gốc của dự án Laravel
Các lệnh được tạo như sau
composer require laravel/sail --dev
php artisan sail:install
Sau đó nó sẽ hỏi DB mà bạn đang muốn sử dụng trong dự án, ở đây mình dùng MySQL thì điền 0
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailhog
[8] selenium
> 0
Lúc này trong project sẽ sinh ra một file docker-compose. xml
Để tìm hiểu rõ hơn về thao tác sử dụng sail, bạn có thể tham khảo. https. //v1nghiên cứu. com/laravel-gói-sail. html
Quảng cáo
2. Cài đặt Docker Desktop cho Windows 10
Chúng ta bắt đầu cài đặt môi trường
Để sử dụng được Sail, máy tính đầu tiên của bạn phải cài đặt máy tính để bàn docker. https. //www. người đóng tàu. com/products/docker-desktop/
Ở bước này lưu ý khi tải Docker Desktop về cần chạy file cài đặt của Docker với quyền Adminstrator nhé
Tiếp tục theo yêu cầu cài đặt WLS trên Windows 10
WSL là gì?
WSL [Windows Subsystem for Linux] là một dòng lệnh trên Windows 10, giúp bạn có thể chạy các dòng lệnh của Linux trên Windows
Trước đó để chạy Docker trên Windows chúng ta thường cài đặt thông qua máy ảo Hyper-V hoặc sử dụng phần mềm thứ ba là VirtualBox. Tuy nhiên, hiện tại nếu bạn đã cài đặt WSL 2 bạn có thể chạy các Container Linux mà không cần các máy ảo trên. Docker lúc này ổn định và nhanh hơn khi sử dụng Hyper-V
Để cài đặt WSL với các máy ảo khác, anh em có thể tham khảo. https. // tài liệu. Microsoft. com/en-us/windows/wsl/install
3. Cài đặt WSL Ubuntu 20. 04
To install Ubuntu 20. 04 thực hiện nhập lệnh sau trong PowerShell của Windows 10
wsl --install -d Ubuntu-20.04
Cập nhật phiên bản WSL WSL 1 thành WSL 2 và cài đặt wls mặc định gọi máy ảo Ubuntu 20. 04
wsl --set-default-version 2, replacing 1
wsl --setdefault Ubuntu-20.04 2
wsl --set-version Ubuntu-20.04 2
Cài đặt Windows Terminal tại Microsoft Store nếu chưa có. https. //www. Microsoft. com/en-us/p/windows-terminal/
Sau khi cài đặt xong WSL, mở Start Menu lên sẽ thấy WSL ubutu 20. 04
Khi mở WSL trên thì chúng ta có thể thao tác với Ubuntu 20. 04 trên Windows 10 một cách bình thường
- Cập nhật Ubuntu 20. 04
4. Cài đặt môi trường PHP 8. 1 cho Laravel 9
Default Ubuntu 20. 04 chỉ có sẵn PHP đến phiên bản 7. 4, làm như vậy để cài đặt PHP 8. 1 ta thực hiện các bước
- Cài đặt PHP trên ubuntu 20. 04 ta run the command after
sudo apt install lsb-release ca-certificates apt-transport-https software-properties-common -y
sudo add-apt-repository ppa:ondrej/php
- Sau khi đã thêm reponsitory cho ubuntu 20. 04 thì ta có thể cài đặt php 8. 1
sudo apt install php8.1
- Cài đặt các gói PHP cần thiết cho dự án
sudo apt install -y php8.1-{cli,gd,curl,mysql,ldap,zip,fileinfo,fpm,xml,mbstring,exif,pspell,imagick,bcmath}
- Đối mặt với các dự án đã sử dụng Laravel-mix anh em cài đặt thêm NodeJs và npm
sudo apt install nodejs
sudo apt install npm
- Tiếp tục theo cd vào thư mục chính trên Ubuntu và sao chép mã nguồn Laravel
Hoặc project đã tồn tại thì cài đặt git và clone
Chạy lệnh cài đặt các trang cho dự án Laravel
npm install
composer install
sao chép tập tin. env for project Laravel
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailhog
[8] selenium
> 0
0Ở bước này cần chỉnh sửa tệp docker-compose cho chính xác nhé. Lưu ý DB_HOST trong tệp. env must change to services name in file docker-compose chứ không phải là 127. 0. 0. 1 nhé
Bước cuối cùng là căng thẳng thôi. Tùy chọn -d cho phép sail chạy trong nền mà không hiện đăng nhập cmd
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailhog
[8] selenium
> 0
1Tuy nhiên, thay vì nhập lệnh liên tục trên thì để thực hiện lệnh Sail, bạn có thể cấu hình bí danh Bash để cho phép bạn thực hiện lệnh của Sail dễ dàng hơn
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailhog
[8] selenium
> 0
2Sau this only must run sail up as lệnh thay thế. /vendor/bin/sai up
Để tắt vùng chứa đang chạy có thể sử dụng Ctrl + C hoặc sử dụng lệnh
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailhog
[8] selenium
> 0
3Trường hợp muốn xóa vùng chứa đã tạo thì chạy lệnh. Tùy chọn -v cho phép xóa luôn dung lượng của vùng chứa để tránh trường hợp lưu dữ liệu cũ bị sai
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailhog
[8] selenium
> 0
4Để viết mã trong máy ảo ubuntu, máy Windows 10 cần cài đặt sẵn Visual Code khi đang ở wsl thư mục nguồn, nhập lệnh bên dưới là mã được
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailhog
[8] selenium
> 0
5Run a artisan delete cache number
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailhog
[8] selenium
> 0
6Run command set up DB
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailhog
[8] selenium
> 0
7the end of the running http. //localhost in browser
Trường hợp dự án có sử dụng các gói của NodeJs thì chạy thêm
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailhog
[8] selenium
> 0
85. Một số lỗi thường gặp
ấu trùng. file_put_contents[] không mở được luồng. Quyền bị từ chối đối với thư mục Phiên
Chạy lại 2 lệnh
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailhog
[8] selenium
> 0
9Unconnected to database
Thử đăng nhập với tên người dùng = root và mật khẩu trống trong tệp. env. In file docker-compose. yml thêm hằng số MYSQL_ALLOW_EMPTY_PASSWORD
wsl --install -d Ubuntu-20.04
0Truy cập vào docker container để kiểm tra xem có db chưa
Từ lệnh WSL gõ lệnh. docker ps
wsl --install -d Ubuntu-20.04
1Tiếp theo nhập mysql > hiển thị cơ sở dữ liệu
Trên đây mình đã ghi chú chi tiết các bước khởi động ứng dụng Laravel với Laravel sail trên Windows 10. Trong quá trình cài đặt nếu xảy ra một số lỗi anh em có thể search thêm google nhé