Cách cài đặt Laravel trên Debian 12

theanh

Administrator
Nhân viên
Laravel là một nền tảng ứng dụng web dựa trên PHP để xây dựng các ứng dụng web doanh nghiệp. Đây là một nền tảng web miễn phí và mở theo kiến trúc model-view-controller (MVC) và dựa trên Symfony. Nó cung cấp cú pháp thanh lịch cho phép bạn tạo các ứng dụng với mã sạch và dễ đọc và hiểu.

Laravel là một nền tảng web cấp doanh nghiệp để xây dựng các ứng dụng web toàn bộ ngăn xếp mạnh mẽ và doanh nghiệp. Các ứng dụng Laravel có thể được phân phối nhanh chóng mà không gặp rắc rối, từ quy trình phát triển đến sản xuất.

Ghép nối nền tảng web Laravel với một nền tảng khác như React hoặc Vue cho phép bạn tạo ra một giao diện người dùng đẹp và tương tác. Ngoài ra, nó hỗ trợ nhiều cơ sở dữ liệu bao gồm MySQL, PostgreSQL, SQLite và SQL Server. Laravel cũng cung cấp giàn giáo để xác thực an toàn.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Laravel từng bước trên Debian 12 để bạn có thể bắt đầu với dự án Laravel. Chúng tôi sẽ chỉ cho bạn cách cài đặt Laravel với máy chủ web Apache2, MariaDB và PHP 8.2.

Điều kiện tiên quyết​

Dưới đây là yêu cầu mà bạn cần phải tuân theo hướng dẫn này:
  • Máy chủ Debian 12.
  • Người dùng không phải root có quyền quản trị viên.

Cài đặt LAMP Stack​

Bước đầu tiên bạn cần làm là cài đặt LAMP Stack (Apache2, MariaDB và PHP) vào máy chủ Debian của bạn. Sau đó, bạn cũng sẽ xác minh cả dịch vụ Apache2 và mariaDB để đảm bảo rằng dịch vụ đang chạy.

Trước khi cài đặt các gói, hãy chạy lệnh apt update để cập nhật và làm mới kho lưu trữ Debian.
Mã:
sudo apt update
Sau khi kho lưu trữ được cập nhật, hãy cài đặt các gói LAMP Stack (Apache2, PHP và MariaDB) bằng cách thực thi lệnh apt install bên dưới. Lệnh sau cũng cài đặt một số tiện ích mở rộng PHP cần thiết cho Laravel.
Mã:
sudo apt install apache2 php php-curl php-bcmath php-json php-mysql php-mbstring php-xml php-tokenizer php-zip mariadb-server
Nhập y để xác nhận và tiếp tục cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22424%22%3E%3C/svg%3E


Sau khi cài đặt LAMP Stack, hãy chạy lệnh systemctl bên dưới để xác minh các dịch vụ apache2 và mariadb. Nếu dịch vụ đang chạy, bạn sẽ nhận được kết quả hoạt động (đang chạy).
Mã:
sudo systemctl status apache2
sudo systemctl status mariadb
Đối với dịch vụ apache2, bạn sẽ nhận được thông tin như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22252%22%3E%3C/svg%3E


Và bên dưới là trạng thái dịch vụ mariadb.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22282%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh php bên dưới để xác minh phiên bản PHP và các mô-đun đã bật trên PHP. Bạn sẽ thấy PHP 8.2 được cài đặt với một số mô-đun được bật, chẳng hạn như curl, date, dom và exif.
Mã:
php -v
php -m

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22605%22%20height=%22382%22%3E%3C/svg%3E


Cuối cùng, hãy khởi chạy trình duyệt web và truy cập địa chỉ IP máy chủ Debian của bạn (ví dụ: http://192.168.10.15/). Nếu cài đặt thành công, bạn sẽ nhận được trang index.html của máy chủ web Apache.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22591%22%3E%3C/svg%3E

Cấu hình PHP​

Để cài đặt Laravel, có một số tiện ích mở rộng PHP mà bạn phải bật, chẳng hạn như fileinfo, mbstring và openssl. Bạn có thể bật các tiện ích mở rộng đó thông qua tệp php.ini.

Sử dụng trình chỉnh sửa nano sau để mở tệp cấu hình PHP /etc/php/8.2/apache2/php.ini.
Mã:
sudo nano /etc/php/8.2/apache2/php.ini
Bỏ chú thích các dòng sau để bật tiện ích mở rộng fileinfo, mbstringopenssl.
Mã:
extension=fileinfo
extension=mbstring
extension=openssl
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.

Tiếp theo, chạy lệnh systemctl sau để khởi động lại dịch vụ apache2 và áp dụng các thay đổi.
Mã:
sudo systemctl restart apache2
Sau đó, đảm bảo các phần mở rộng PHP fileinfo, mbstring, và openssl được kích hoạt bằng cách chạy lệnh php bên dưới.
Mã:
sudo php -m
Bây giờ hãy tạo một tệp phpinfo mới /var/www/html/info.php bằng lệnh bên dưới. Nếu bạn cài đặt thành công máy chủ web PHP và Apache2, lệnh này sẽ hiển thị cho bạn thông tin chi tiết về cài đặt PHP của bạn.
Mã:
echo "" > /var/www/html/info.php
Mở trình duyệt web ưa thích của bạn và truy cập địa chỉ IP của máy chủ theo sau là tệp đường dẫn info.php (ví dụ: http://192.168.10.15/info.php). Nếu thành công, bạn sẽ thấy kết quả như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22631%22%3E%3C/svg%3E

Cấu hình máy chủ MariaDB​

Sau khi cấu hình PHP, bạn sẽ cấu hình máy chủ MariaDB, bao gồm bảo mật máy chủ MariaDB thông qua tiện ích mariadb-secure-installation, sau đó tạo cơ sở dữ liệu và người dùng mới cho dự án Laravel của bạn.

Trước tiên, hãy chạy lệnh mariadb-secure-installation bên dưới để bảo mật cài đặt máy chủ MariaDB của bạn. Trong quá trình này, bạn sẽ được yêu cầu cung cấp một số cấu hình MariaDB, nhập Y để xác nhận cấu hình hoặc n để không.
Mã:
sudo mariadb-secure-installation
Dưới đây là một số thiết lập MariaDB mà bạn sẽ được yêu cầu trong quá trình này:
  • Nhấn ENTER khi được yêu cầu nhập mật khẩu gốc MariaDB.
  • Nhập n khi được yêu cầu về phương thức xác thực unix_socket.
  • Nhập Y để thiết lập mật khẩu mới cho người dùng gốc MariaDB. Sau đó, nhập mật khẩu mới và lặp lại.
  • Nhập Y để xóa người dùng ẩn danh mặc định khỏi MariaDB.
  • Sau đó, nhập Y một lần nữa để vô hiệu hóa đăng nhập từ xa cho người dùng gốc MariaDB.
  • Nhập Y để xóa kiểm tra cơ sở dữ liệu mặc định khỏi MariaDB.
  • Cuối cùng, nhập Y một lần nữa để tải lại các đặc quyền bảng và áp dụng các thay đổi.
Sau khi cấu hình máy chủ MariaDB, bạn cần tạo một cơ sở dữ liệu và người dùng mới cho dự án Laravel của mình.

Đăng nhập vào máy chủ MariaDB thông qua lệnh mariadb bên dưới. Nhập mật khẩu MariaDB của bạn khi được nhắc.
Mã:
sudo mariadb -u root -p
Bây giờ hãy chạy các truy vấn sau để tạo cơ sở dữ liệu mới testapp, người dùng testapp và mật khẩu password. Hãy chắc chắn thay đổi mật khẩu trong truy vấn sau.
Mã:
CREATE DATABASE testapp;
CREATE USER testapp@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testapp.* TO testapp@localhost;
FLUSH PRIVILEGES;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22688%22%20height=%22239%22%3E%3C/svg%3E


Tiếp theo, chạy truy vấn bên dưới để đảm bảo người dùng testapp có thể truy cập cơ sở dữ liệu testapp.
Mã:
SHOW GRANTS FOR testapp@localhost;
Đầu ra bên dưới xác nhận rằng người dùng testapp có thể truy cập cơ sở dữ liệu testapp.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22257%22%3E%3C/svg%3E


Cuối cùng, nhập quit để thoát khỏi máy chủ MariaDB và hoàn tất bước này.

Cài đặt Composer​

Laravel có thể được cài đặt theo nhiều cách, và cách dễ nhất là cài đặt thông qua Composer, trình quản lý gói PHP. Bây giờ, bạn sẽ cài đặt Composer vào máy chủ Debian của mình.

Để cài đặt trình quản lý gói PHP Composer, hãy chạy lệnh apt install bên dưới. Nhập y khi được nhắc để tiếp tục cài đặt.
Mã:
sudo apt install composer

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22729%22%20height=%22493%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, hãy chạy lệnh sau để định vị tệp nhị phân của composer và xác minh composer phiên bản.
Mã:
which composer
sudo -u www-data composer --version
Tệp nhị phân của composer nằm tại /usr/bin/composer và composer 2.5.5 đã được cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22525%22%20height=%22171%22%3E%3C/svg%3E

Tạo dự án Laravel đầu tiên​

Khi mọi thứ đã sẵn sàng, bạn đã sẵn sàng để cài đặt và tạo dự án Laravel đầu tiên. Bạn sẽ tạo dự án Laravel đầu tiên với MariaDB làm cơ sở dữ liệu.

Trước tiên, hãy tạo thư mục gốc tài liệu mới /var/www/testapp cho dự án của bạn và thay đổi quyền sở hữu thành người dùng www-data thông qua lệnh bên dưới. Bạn cũng sẽ tạo các thư mục /var/www/.cache/var/www/.config sẽ được Composer sử dụng.
Mã:
sudo mkdir -p /var/www/{.cache,.config,testapp}
sudo chown -R www-data:www-data /var/www/{.cache,.config,testapp}
Bây giờ hãy di chuyển đến thư mục /var/www/testapp/ và chạy lệnh composer bên dưới để tạo dự án Laravel đầu tiên. Dự án Laravel đầu tiên của bạn được lưu trữ tại thư mục /var/www/testapp/.
Mã:
cd /var/www/testapp/
sudo -u www-data composer create-project laravel/laravel .
Trong quá trình cài đặt, bạn sẽ nhận được kết quả tương tự như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22289%22%3E%3C/svg%3E


Sau khi tạo xong dự án Laravel, tiếp theo bạn sẽ thiết lập cơ sở dữ liệu cho dự án của bạn thông qua tệp cấu hình .env. Tệp .env được sử dụng làm cấu hình cơ sở cho dự án Laravel của bạn.

Sử dụng lệnh nano editor sau để mở tệp .env.
Mã:
nano .env
Thay đổi tham số APP_URL bằng tên miền cục bộ của dự án Laravel của bạn. Theo cách này, bạn có thể truy cập dự án của mình thông qua tên miền cục bộ. Trong trường hợp này, tên miền là testapp.local.
Mã:
APP_URL=http://testapp.local
Bây giờ hãy thay đổi cấu hình cơ sở dữ liệu DB_CONNECTION thành mysql và thay đổi thông tin chi tiết của DB_DATABASE, DB_USERNAMEDB_PASSWORD bằng thông tin chi tiết của bạn Cơ sở dữ liệu MariaDB và người dùng.
Mã:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=testapp
DB_USERNAME=testapp
DB_PASSWORD=password
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.

Bây giờ hãy chạy lệnh sau để di chuyển cơ sở dữ liệu. Thao tác này sẽ tạo các bảng cho dự án Laravel.
Mã:
sudo -u www-data php artisan migrate

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22209%22%3E%3C/svg%3E

Cấu hình Apache Virtual Host​

Trong bước tiếp theo, bạn sẽ tạo cấu hình máy chủ ảo Apache2 mới cho dự án Laravel của mình. Sau đó, bạn phải kích hoạt máy chủ ảo và xác minh cấu hình Apache2, sau đó khởi động lại máy chủ web Apache2 để có hiệu lực.

Trước khi tạo cấu hình máy chủ ảo Apache2 cho Laravel, bạn phải bật mô-đun viết lại trên Apache2 thông qua lệnh bên dưới.
Mã:
sudo a2enmod rewrite
Sử dụng lệnh nano editor sau để tạo cấu hình máy chủ ảo Apache2 /etc/apache2/sites-available/laravel.conf.
Mã:
sudo nano /etc/apache2/sites-available/laravel.conf
Chèn cấu hình sau và thay đổi tham số ServerName bằng tên miền của bạn.
Mã:
 ServerAdmin [emailprotected]
 ServerName testapp.local
 DocumentRoot /var/www/testapp/public

 
 Options FollowSymLinks
 AllowOverride None
 
 
 AllowOverride All
 

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.

Tiếp theo, chạy lệnh sau để kích hoạt cấu hình máy chủ ảo laravel.conf và xác minh cấu hình Apache2. Nếu bạn có cấu hình phù hợp, bạn sẽ nhận được thông báo như Syntax OK.
Mã:
sudo a2ensite laravel.conf
sudo apachectl configtest
Cuối cùng, khởi động lại dịch vụ apache2 bằng cách thực hiện lệnh bên dưới và áp dụng các thay đổi bạn đã thực hiện.
Mã:
sudo systemctl restart apache2

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22696%22%20height=%22411%22%3E%3C/svg%3E

Truy cập Laravel​

Nếu bạn đang sử dụng máy khách Linux, hãy sửa đổi tệp /etc/hosts thông qua lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/hosts
Nếu bạn đang sử dụng máy Windows, hãy sửa đổi tệp C:\Windows\System32\drivers\etc\hosts.

Chèn tên miền của dự án Laravel và địa chỉ IP máy chủ Debian của bạn như sau:
Mã:
192.168.10.15 testapp.local
Lưu tệp và thoát khỏi trình chỉnh sửa.

Cuối cùng, hãy khởi chạy trình duyệt web của bạn và truy cập tên miền cục bộ của dự án Laravel của bạn (ví dụ: http://testapp.local). Nếu thành công, bạn sẽ nhận được một trang Laravel tương tự như thế này:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22480%22%3E%3C/svg%3E

Kết luận​

Tóm lại, bạn đã cài đặt Laravel với LAMP Stack (Apache2, MariaDB và PHP) trên máy chủ Debian 12. Bạn cũng đã cài đặt Composer, trình quản lý gói PHP và sử dụng nó làm phương tiện cài đặt cho Laravel. Với điều này trong đầu, giờ đây bạn có thể phát triển ứng dụng của mình bằng cách sử dụng Laravel web framework và MariaDB làm cơ sở dữ liệu cho các ứng dụng của bạn.
 
Back
Bên trên