Laravel là một trong những PHP framework phổ biến nhất trong giới các tay chơi PHP. Nếu bạn là một PHP developer, sớm muộn gì bạn cũng sẽ nghe đến cái tên này. Trong nội dung bài viết này, tôi sẽ hướng dẫn các bạn cách thiết lập môi trường phát triển Laravel với Devilbox. Hãy yên tâm, sẽ rất thú vị vì bắt đầu từ bây giờ chúng ta sẽ chỉ dùng dòng lệnh.
laravel
tương ứng với domain laravel.dvl.to
.├── devilbox
├── projects
└── laravel
HTTPD_DOCROOT_DIR
trong tập tin .env
sang giá trị public
HTTPD_DOCROOT_DIR=public
Mục đích là để docroot dir của dự án tương thích với cấu trúc thư mục của Laravel.
├── projects
└── laravel
└── public
Ok, bây giờ chúng ta sẽ bắt đầu cài đặt. À quên, nhớ khởi động Devilbox lên trước khi bắt đầu đó.
docker compose up -d
Như đã biết, thư mục chứa dự án sẽ ánh xạ đến đường dẫn /shared/httpd
bên trong PHP container. Còn PHP container lại đi kèm rất nhiều công cụ dòng lệnh, điển hình là Composer. Mà Laravel lại có thể cài đặt được bằng Composer. Đấy đấy, bạn bắt đầu hiểu ý tôi rồi đấy.
shell.sh
trong thư mục chứa Devilbox../shell.sh
laravel new laravel
Tuy có vẻ không được nhanh như tính năng Quick create của Laragon nhưng như tôi đã đề cập, chúng ta chỉ dùng dòng lệnh thôi. Tiếp theo, chúng ta sẽ tìm hiểu cách thiết lập một số thứ thường nhật khi làm việc với Laravel. Ví dụ như kết nối cơ sở dữ liệu MySQL.
Mặc định, Devilbox không cài đặt mật khẩu cho tài khoản root
của MySQL. Để tạo cơ sở dữ liệu mới, bạn có thể dùng phpMyAdmin có sẵn trên menu Tools. Nhưng ý tôi vẫn là hướng dẫn bạn dùng giao diện dòng lệnh. Ví dụ như tạo cơ sở dữ liệu có tên là laravel
:
mysql -u root -h 127.0.0.1 -p -e 'CREATE DATABASE laravel;'
Do không có mật khẩu nên các bạn chỉ cần Enter để tiếp tục. Tiếp theo, chúng ta hãy cập nhật lại các thông tin về cơ sơ dữ liệu cho tập tin .env
của Laravel:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
Nếu bạn đang thắc mắc sao tôi lại biết DB_HOST
là mysql
thì có thể tham khảo phần Networking của Devilbox. Nơi đây chứa toàn bộ hostname và IP của các dịch vụ kèm theo Devilbox. Bây giờ bạn có thể thử chạy migration
và seeder
và xem kết quả.
php artisan migrate
php artisan db:seed
PostgreSQL cũng là một hệ quản trị cơ sở dữ liệu nổi tiếng không kém gì MySQL. Đương nhiên, Devilbox mặc định đã cài đặt sẵn PostgreSQL. Tài khoản mặc định cho PostgreSQL là postgres
. Đương nhiên là không có mật khẩu tương tự như MySQL.
Để tạo cơ sở dữ liệu mới, bạn có thể sử dụng công cụ Adminer có sẵn từ menu Tools. Tuy nhiên, tôi lại thích dùng dòng lệnh:
psql -U postgres -h 127.0.0.1 -c 'CREATE DATABASE laravel;'
Cập nhật lại thông tin cho PostgreSQL trong tập tin .env
:
DB_CONNECTION=pgsql
DB_HOST=pgsql
DB_PORT=5432
DB_DATABASE=laravel
DB_USERNAME=postgres
DB_PASSWORD=
Vậy là xong. Bạn hãy tự mình kiểm tra bằng cách thử chạy migration và seeder.
Do Devilbox không cài đặt mật khẩu cho Redis nên phần cấu hình tập tin .env
đơn giản chỉ cần cập nhật lại hostname
mà thôi:
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
Devilbox cũng đã tích hợp sẵn cộng cụ PHPRedMin nằm trong mục Tools giúp bạn dễ dàng quản lý và giám sát Redis.
Tuy Laravel là một backend framework nhưng nếu bạn phải làm việc với các công cụ front-end như Laravel Mix hay Vite thì chuyện phải cài đặt Node.js là sớm muộn mà thôi. Rất may Devilbox đã tích hợp sẵn từ Node.js, npm cho đến Yarn. Việc của bạn là chỉ cần sử dụng mà thôi. Hãy vào PHP container kiểm tra thử một chút:
node -v
npm -v
yarn -v
Devilbox cũng tích hợp rất nhiều công cụ front-end khác như webpack, eslint, sass,… Các bạn có thể tham khảo danh sách các công cụ có sẵn tại đây.
Do nội dung này liên quan nhiều đến Node.js và có phần hơi phức tạp nên tôi đã đưa nó vào riêng một bài viết. Bạn vui lòng tham khảo tại đây.
Nội dung hướng dẫn cấu hình Xdebug đã được tôi hướng dẫn chi tiết trước đó. Các bạn vui lòng tham khảo tại đây.
Như vậy là tôi đã hướng dẫn các bạn chi tiết cách cài đặt môi trường phát triển Laravel trên Devilbox cũng như các công cụ có liên quan. Tuy phải sử dụng dòng lệnh trong suốt quá trình hướng dẫn nhưng tôi tin rằng nó không hề quá phức tạp. Đây cũng sẽ là nền tảng để bạn làm quen với công cụ dòng lệnh cũng như hiểu được cách làm việc với một web server “gần như thật” nó sẽ như thế nào.
Để không cắt đứt cơn hứng về dòng lệnh thì trong phần tiếp theo, tôi sẽ hướng dẫn bạn cách cài đặt môi trường phát triển một CMS vô cùng nổi tiếng. Nó chiếm đến hơn 40% số lượng website có mặt trên internet. Không ai khác đó chính là WordPress. Let’s go!