Laravel là một nền tảng ứng dụng web dựa trên PHP được sử dụng để xây dựng các ứng dụng web doanh nghiệp và toàn diện mạnh mẽ. Nó tuân theo kiến trúc model-view-controller (MVC) và dựa trên Symfony. Laravel hỗ trợ nhiều cơ sở dữ liệu, bao gồm MySQL, PostgreSQL, SQLite và SQL Server. Laravel cũng cung cấp nền tảng để xác thực an toàn.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Laravel trên máy chủ Alma Linux 9. Chúng tôi sẽ hướng dẫn bạn cài đặt Laravel với LAMP Stack (Linux, Apache/Httpd, MariaDB và PHP) và Composer.
Trước tiên, hãy thêm kho lưu trữ của bên thứ ba EPEL và Remi vào máy chủ Alma Linux của bạn bằng lệnh bên dưới. Kho lưu trữ EPEL sẽ được sử dụng để cài đặt các gói như Composer, trong khi kho lưu trữ Remi cung cấp nhiều phiên bản PHP cho Laravel.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22304%22%3E%3C/svg%3E
Bây giờ hãy bật kho lưu trữ PHP 8.3 thông qua Remi bằng lệnh bên dưới.
Tiếp theo, cài đặt LAMP Stack (Apache/Httpd, MariaDB và PHP) và các gói Composer bằng lệnh sau. Nhập để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22380%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy khởi động và kích hoạt dịch vụ httpd bằng lệnh bên dưới.
Sau đó, khởi động và kích hoạt máy chủ MariaDB bằng lệnh sau.
Bây giờ, hãy xác minh phiên bản PHP và Composer bằng lệnh bên dưới. Bạn sẽ thấy PHP 8.3 và Composer 2.7.1 đã được cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22692%22%20height=%22372%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh bên dưới để xác minh các mô-đun PHP của bạn. Đảm bảo fileinfo, mbstring và openssl được bật.
Để bảo mật máy chủ MariaDB, hãy chạy lệnh bên dưới và bạn sẽ được yêu cầu cung cấp một số cấu hình máy chủ MariaDB. Nhập Y hoặc N để đồng ý hoặc không đồng ý áp dụng các thay đổi MariaDB mới.
Dưới đây là một số cấu hình máy chủ MariaDB mà bạn sẽ được yêu cầu:
Đăng nhập vào máy chủ MariaDB bằng lệnh máy khách mariadb bên dưới. Nhập mật khẩu root MariaDB của bạn khi được nhắc.
Bây giờ hãy chạy các truy vấn sau để tạo cơ sở dữ liệu và người dùng mới cho Laravel. Trong ví dụ này, bạn sẽ tạo cơ sở dữ liệu mới laravelapp, người dùng laravel, với mật khẩu p4ssw0rd. Điều chỉnh cơ sở dữ liệu chi tiết và người dùng bên dưới bằng thông tin của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22257%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn bên dưới để xác minh quyền cho người dùng laravel. Đảm bảo rằng người dùng laravel có thể truy cập cơ sở dữ liệu laravelapp.
Cuối cùng, nhập quit để thoát khỏi máy chủ MariaDB.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22231%22%3E%3C/svg%3E
Tạo các thư mục mới cho dự án Laravel /var/www/laravelapp và các thư mục bổ sung .cache và .config để lưu trữ bộ đệm và cấu hình Composer. Sau đó, thay đổi quyền sở hữu các thư mục đó thành người dùng apache.
Truy cập thư mục /var/www/laravelapp và chạy lệnh composer bên dưới để tải xuống và cài đặt Laravel.
Quá trình tải xuống sẽ như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22527%22%3E%3C/svg%3E
Sau khi Laravel được tải xuống, hãy mở tệp .env bằng lệnh trình chỉnh sửa nano sau.
Thay đổi APP_URL bằng tên miền cục bộ của bạn, sau đó thay đổi thông tin chi tiết về cơ sở dữ liệu bằng cơ sở dữ liệu MariaDB của bạn thông tin.
Khi hoàn tất, hãy lưu tệp và thoát.
Bây giờ hãy chạy lệnh bên dưới để di chuyển cơ sở dữ liệu và điền dữ liệu mẫu mới vào bảng của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22204%22%3E%3C/svg%3E
Tạo cấu hình máy chủ ảo httpd mới /etc/httpd/conf.d/laravel.conf bằng lệnh nano editor sau.
Chèn cấu hình sau và đảm bảo thay đổi tùy chọn ServerName bằng tên miền Laravel của bạn.
Lưu tệp và thoát editor.
Bây giờ hãy chạy lệnh bên dưới để xác minh cấu hình httpd của bạn. Nếu bạn có cú pháp httpd đúng, bạn sẽ nhận được đầu ra Syntax OK.
Cuối cùng, hãy khởi động lại dịch vụ httpd để áp dụng cấu hình máy chủ ảo mới của bạn cho Laravel.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22640%22%20height=%22202%22%3E%3C/svg%3E
Mở cả lưu lượng HTTP và HTTPS đến máy chủ Alma Linux của bạn bằng lệnh bên dưới.
Bây giờ hãy tải lại firewalld để áp dụng các thay đổi.
Cuối cùng, hãy xác minh các quy tắc danh sách tường lửa bằng lệnh sau. Bạn sẽ thấy cả dịch vụ HTTP và HTTPS được thêm vào firewalld.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22278%22%3E%3C/svg%3E
Lưu và thoát tệp.
Bây giờ hãy mở trình duyệt web của bạn và truy cập cài đặt Laravel của bạn http://dev.hwdomain.local/. Nếu cài đặt thành công, bạn sẽ nhận được trang chỉ mục Laravel sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22471%22%3E%3C/svg%3E
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Laravel trên máy chủ Alma Linux 9. Chúng tôi sẽ hướng dẫn bạn cài đặt Laravel với LAMP Stack (Linux, Apache/Httpd, MariaDB và PHP) và Composer.
Điều kiện tiên quyết
Trước khi tiếp tục, hãy đảm bảo bạn có những điều sau:- Máy chủ Alma Linux 9.
- Người dùng không phải root có quyền quản trị viên.
- Tên miền cục bộ.
- SELinux có chế độ cho phép.
Cài đặt LAMP Stack và Composer
Laravel là một trong những khuôn khổ web PHP phổ biến nhất để xây dựng các ứng dụng web. Để cài đặt Laravel, bạn cần cài đặt các phần phụ thuộc, bao gồm LAMP Stack (Apache/Httpd, MariaDb và PHP) và Composer. Hiện tại, Laravel yêu cầu PHP 8.3. Bạn phải cài đặt PHP 8.3 thông qua kho lưu trữ của bên thứ ba.Trước tiên, hãy thêm kho lưu trữ của bên thứ ba EPEL và Remi vào máy chủ Alma Linux của bạn bằng lệnh bên dưới. Kho lưu trữ EPEL sẽ được sử dụng để cài đặt các gói như Composer, trong khi kho lưu trữ Remi cung cấp nhiều phiên bản PHP cho Laravel.
Mã:
sudo dnf install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22304%22%3E%3C/svg%3E
Bây giờ hãy bật kho lưu trữ PHP 8.3 thông qua Remi bằng lệnh bên dưới.
Mã:
sudo dnf reset php -y
sudo dnf module enable php:remi-8.3 -y
Mã:
sudo dnf install httpd mariadb-server composer php php-curl php-bcmath php-json php-mbstring php-xml php-tokenizer php-zip
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22380%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy khởi động và kích hoạt dịch vụ httpd bằng lệnh bên dưới.
Mã:
sudo systemctl start httpd
sudo systemctl enable httpd
Mã:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Mã:
php -v
sudo -u apache composer -v
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22692%22%20height=%22372%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh bên dưới để xác minh các mô-đun PHP của bạn. Đảm bảo fileinfo, mbstring và openssl được bật.
Mã:
php -m
Cấu hình MariaDB
Với PHP đã cấu hình, bạn sẽ bảo mật máy chủ MariaDB và tạo cơ sở dữ liệu và người dùng mới cho Laravel. Máy chủ MariaDB cung cấp tiện ích MariaDB-secure-installation để bảo mật máy chủ MariaDB và máy khách MariaDB để kết nối với máy chủ MariaDB qua dòng lệnh.Để bảo mật máy chủ MariaDB, hãy chạy lệnh bên dưới và bạn sẽ được yêu cầu cung cấp một số cấu hình máy chủ MariaDB. Nhập Y hoặc N để đồng ý hoặc không đồng ý áp dụng các thay đổi MariaDB mới.
Mã:
sudo mariadb-secure-installation
- Chuyển sang xác thực unix_socket?. Nhập n và nhấn ENTER. Người dùng gốc MariaDB mặc định đã được bảo vệ. tùy chọn, bạn cũng có thể bật nó bằng cách nhập y cho yes.
- Thay đổi mật khẩu gốc?. Nhập y để xác nhận và thiết lập mật khẩu gốc MariaDB mới của bạn.
- Xóa người dùng ẩn danh?. Nhập y để xác nhận.
- Không cho phép đăng nhập gốc từ xa? Nhập y để xác nhận. Chỉ cho phép kết nối cục bộ nếu bạn đang sử dụng người dùng root MariaDB.
- Xóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó?. Nhập y để xác nhận và xóa cơ sở dữ liệu mặc định 'test'.
- Cuối cùng, nhập y một lần nữa để tải lại tất cả các đặc quyền bảng trên máy chủ MariaDB của bạn và áp dụng các thay đổi mới.
Đăng nhập vào máy chủ MariaDB bằng lệnh máy khách mariadb bên dưới. Nhập mật khẩu root MariaDB của bạn khi được nhắc.
Mã:
sudo mariadb -u root -p
Mã:
CREATE DATABASE laravelapp;
CREATE USER laravel@localhost IDENTIFIED BY 'p4ssw0rd';
GRANT ALL PRIVILEGES ON laravelapp.* TO laravel@localhost;
FLUSH PRIVILEGES;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22257%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn bên dưới để xác minh quyền cho người dùng laravel. Đảm bảo rằng người dùng laravel có thể truy cập cơ sở dữ liệu laravelapp.
Mã:
SHOW PRIVILEGES FOR laravel@localhost;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22231%22%3E%3C/svg%3E
Tạo dự án Laravel
Bây giờ bạn đã cấu hình cả PHP và MariaDB, hãy tải xuống và cài đặt Laravel vào hệ thống của bạn. Bạn sẽ tạo và thiết lập thư mục dự án, sau đó tải xuống và cài đặt dự án Laravel thông qua Composer.Tạo các thư mục mới cho dự án Laravel /var/www/laravelapp và các thư mục bổ sung .cache và .config để lưu trữ bộ đệm và cấu hình Composer. Sau đó, thay đổi quyền sở hữu các thư mục đó thành người dùng apache.
Mã:
mkdir -p /var/www/laravelapp /usr/share/httpd/.composer/{.cache,.config}
sudo chown -R apache:apache /var/www/laravelapp /usr/share/httpd/.composer
Mã:
cd /var/www/laravelapp/
sudo -u apache composer create-project laravel/laravel .
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22527%22%3E%3C/svg%3E
Sau khi Laravel được tải xuống, hãy mở tệp .env bằng lệnh trình chỉnh sửa nano sau.
Mã:
nano .env
Mã:
APP_URL=http://dev.hwdomain.local
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravelapp
DB_USERNAME=laravel
DB_PASSWORD=password
Bây giờ hãy chạy lệnh bên dưới để di chuyển cơ sở dữ liệu và điền dữ liệu mẫu mới vào bảng của bạn.
Mã:
sudo -u apache php artisan migrate
sudo -u apache php artisan db:seed
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22204%22%3E%3C/svg%3E
Thiết lập Httpd Virtual Host
Sau khi cài đặt Laravel, bạn sẽ tạo cấu hình Httpd virtual host mới mà Laravel sẽ sử dụng. Đối với cấu hình này, hãy đảm bảo có tên miền cục bộ hoặc bất kỳ/tên miền ngẫu nhiên nào bạn muốn. Bạn có thể cấu hình miền này sau.Tạo cấu hình máy chủ ảo httpd mới /etc/httpd/conf.d/laravel.conf bằng lệnh nano editor sau.
Mã:
sudo nano /etc/httpd/conf.d/laravel.conf
Mã:
ServerAdmin [emailprotected]
ServerName dev.hwdomain.local
DocumentRoot /var/www/laravelapp/public
Options FollowSymLinks
AllowOverride None
AllowOverride All
ErrorLog /var/log/httpd/laravel-error.log
CustomLog /var/log/httpd/laravel-access.log combined
Bây giờ hãy chạy lệnh bên dưới để xác minh cấu hình httpd của bạn. Nếu bạn có cú pháp httpd đúng, bạn sẽ nhận được đầu ra Syntax OK.
Mã:
sudo apachectl configtest
Mã:
sudo systemctl restart httpd
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22640%22%20height=%22202%22%3E%3C/svg%3E
Thiết lập Firewalld
trước khi truy cập cài đặt Laravel, bạn phải mở cả cổng HTTP và HTTPS trên hệ thống của mình, có thể thực hiện thông qua Firewalld.Mở cả lưu lượng HTTP và HTTPS đến máy chủ Alma Linux của bạn bằng lệnh bên dưới.
Mã:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
Mã:
sudo firewall-cmd --reload
Mã:
sudo firewall-cmd --list-all
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22278%22%3E%3C/svg%3E
Truy cập Laravel từ máy tính cục bộ
Để thiết lập tên miền cục bộ cho cài đặt Laravel của bạn, hãy sử dụng sau đây:- Đối với người dùng Windows, hãy sửa đổi tệp C:\Windows\System32\drivers\etc\hosts với tư cách quản trị viên.
- Đối với người dùng Linux và Mac, hãy mở tệp /etc/hosts với quyền root.
Mã:
192.168.5.60 dev.hwdomain.local
Bây giờ hãy mở trình duyệt web của bạn và truy cập cài đặt Laravel của bạn http://dev.hwdomain.local/. Nếu cài đặt thành công, bạn sẽ nhận được trang chỉ mục Laravel sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22471%22%3E%3C/svg%3E