Drupal là một hệ thống quản lý nội dung web miễn phí và mã nguồn mở được viết bằng PHP và phân phối theo Giấy phép Công cộng GNU. Drupal cung cấp một công cụ quản lý nội dung mạnh mẽ với các API tinh vi để xuất bản đa kênh.
Drupal là một trong những CMS được sử dụng nhiều nhất trên internet, được sử dụng bởi ít nhất 14% trong số 10.000 trang web hàng đầu trên internet và được sử dụng cho các ngành công nghiệp doanh nghiệp toàn cầu, chính phủ, giáo dục và các trang web của tổ chức. Drupal cung cấp một hệ thống có khả năng mở rộng cao, tích hợp với các ứng dụng kỹ thuật số và có thể được sử dụng để tạo nhiều trang web cho các tổ chức khác nhau với hỗ trợ đa ngôn ngữ.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cấu hình Drupal CMS (Hệ thống quản lý nội dung) với LEMP Stack trên máy chủ Rocky Linux. Bạn cũng sẽ học cách đưa Drupal vào hoạt động trên Rocky Linux với chế độ thực thi SELinux và Firewalld được bật.
Trong bước đầu tiên, bạn sẽ thêm và kích hoạt hai kho lưu trữ trên hệ thống của mình. Bạn sẽ thêm kho lưu trữ EPEL cung cấp các gói bổ sung cho các hệ điều hành dựa trên RHEL và kho lưu trữ REMI cung cấp nhiều phiên bản gói PHP.
Chạy lệnh sau để thêm kho lưu trữ EPEL vào hệ thống Rocky Linux của bạn. Khi được nhắc xác nhận, hãy nhập y và nhấn ENTER.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22649%22%20height=%22260%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh dnf bên dưới để thêm kho lưu trữ REMI cho Rocky Linux 8.4.
Nhập y và nhấn ENTER để tiếp tục và thêm kho lưu trữ Remi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22221%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh dnf bên dưới để xác minh danh sách các kho lưu trữ khả dụng trên hệ thống của bạn. Bạn sẽ thấy hai kho lưu trữ bổ sung EPEL và REMI được thêm vào hệ thống Rocky Linux.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22184%22%3E%3C/svg%3E
Bây giờ bạn sẽ cài đặt các gói LEMP Stack phụ thuộc cho Drupal. Bạn sẽ cài đặt Nginx thông qua kho lưu trữ EPEL, cài đặt MariaDB từ appstream và các gói PHP 8.1 từ kho lưu trữ REMI.
Trước tiên, hãy đặt lại và bật mô-đun PHP từ kho lưu trữ REMI thông qua lệnh dnf bên dưới. Trong ví dụ này, bạn sẽ kích hoạt một mô-đun cho PHP 8.1, được hỗ trợ bởi phiên bản Drupal mới nhất.
Khi được nhắc, hãy nhập y để xác nhận và kích hoạt kho lưu trữ REMI PHP 8.1 và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22185%22%3E%3C/svg%3E
Tiếp theo, sử dụng lệnh dnf bên dưới để cài đặt các gói LEMP stack cơ bản.
Nhập y và nhấn ENTER khi được nhắc xác nhận.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22308%22%3E%3C/svg%3E
Ngoài ra, hãy nhập y khi được nhắc xác nhận để thêm khóa GPG cho một số kho lưu trữ.
Sau khi các gói LEMP Stack được cài đặt, bạn có thể sử dụng lệnh systemctl sau để khởi động các dịch vụ Nginx, MariaDB và PHP-FPM. Ngoài ra, bạn sẽ cho phép tất cả các dịch vụ đó chạy tự động khi khởi động.
Bây giờ bạn sẽ thấy đầu ra như sau - LEMP Stack hiện đang chạy trên hệ thống Rocky Linux của bạn và tất cả các dịch vụ cho LEMP Stack đều được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22168%22%3E%3C/svg%3E
Bây giờ bạn sẽ thêm cả hai cổng HTTP và HTTPS vào firewalld để cho phép khách hàng truy cập cài đặt Drupal của bạn.
Chạy lệnh firewall-cmd sau đây để thêm các dịch vụ HTTP và HTTPS vào firewalld.
Bây giờ hãy tải lại firewalld để áp dụng các thay đổi mới. Sau đó, hãy xác minh danh sách các dịch vụ được bật trên tường lửa.
Bạn sẽ nhận được các dịch vụ HTTP và HTTPS được thêm vào tường lửa.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22738%22%20height=%22242%22%3E%3C/svg%3E
Trước khi bắt đầu, hãy chạy lệnh sau để xác minh dịch vụ MariaDB và đảm bảo rằng dịch vụ đang chạy.
Dưới đây là đầu ra khi dịch vụ MariaDB đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E
Tiếp theo, hãy chạy lệnh sau để bảo mật việc triển khai máy chủ MariaDB. Dòng lệnh 'mysql_secure_installation' này được cung cấp bởi các gói MariaDB giúp bạn bảo mật quá trình cài đặt.
Bây giờ bạn sẽ được hỏi một số câu hỏi liên quan đến cấu hình máy chủ MariaDB:
Đăng nhập vào shell MySQL/MariaDB thông qua người dùng gốc bằng lệnh mysql bên dưới.
Chạy các truy vấn sau để tạo cơ sở dữ liệu và người dùng mới cho Drupal. Trong ví dụ này, bạn sẽ tạo cơ sở dữ liệu drupaldb với người dùng drupal@localhost. Ngoài ra, hãy nhớ thay đổi mật khẩu cơ sở dữ liệu mặc định.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22255%22%3E%3C/svg%3E
Tiếp theo, chạy các truy vấn sau để xác minh quyền cho người dùng MariaDB drupal@localhost. Bạn sẽ thấy người dùng MariaDB drupal@localhost có quyền truy cập và đặc quyền đối với cơ sở dữ liệu drupaldb.
Bây giờ hãy chạy truy vấn 'exit' hoặc 'quit' để đăng xuất khỏi shell MariaDB.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22191%22%3E%3C/svg%3E
Bây giờ bạn sẽ cài đặt tiện ích mở rộng uploadprogress từ kho lưu trữ PECL và bật tiện ích này trên bản cài đặt PHP của mình.
Để bắt đầu, hãy chạy lệnh sau để đảm bảo lệnh 'pecl' có sẵn trên hệ thống của bạn. 'pecl' khả dụng, bạn sẽ thấy đường dẫn đầy đủ của tệp nhị phân 'pecl'.
Bây giờ hãy chạy lệnh 'pecl' bên dưới để cài đặt tiện ích mở rộng uploadprogress.
Khi quá trình cài đặt bắt đầu, bạn sẽ thấy đầu ra như sau sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22298%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh sau để tạo tệp cấu hình mới '/etc/php.d/uploadprogress.ini' và bật tiện ích mở rộng uploadprogress.
Drupal là một trong những CMS được sử dụng nhiều nhất trên internet, được sử dụng bởi ít nhất 14% trong số 10.000 trang web hàng đầu trên internet và được sử dụng cho các ngành công nghiệp doanh nghiệp toàn cầu, chính phủ, giáo dục và các trang web của tổ chức. Drupal cung cấp một hệ thống có khả năng mở rộng cao, tích hợp với các ứng dụng kỹ thuật số và có thể được sử dụng để tạo nhiều trang web cho các tổ chức khác nhau với hỗ trợ đa ngôn ngữ.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cấu hình Drupal CMS (Hệ thống quản lý nội dung) với LEMP Stack trên máy chủ Rocky Linux. Bạn cũng sẽ học cách đưa Drupal vào hoạt động trên Rocky Linux với chế độ thực thi SELinux và Firewalld được bật.
Điều kiện tiên quyết
Để bắt đầu với hướng dẫn này, bạn sẽ cần một số yêu cầu sau:- Máy chủ Rocky Linux - Ví dụ này sử dụng Rocky Linux 8.x với tên máy chủ 'drupal-server'.
- Người dùng không phải root có quyền quản trị viên sudo/root.
- Tên miền trỏ đến địa chỉ IP của máy chủ Rocky Linux - đặc biệt là khi bạn đang ở trong môi trường sản xuất.
Thiết lập kho lưu trữ
Ngăn xếp LEMP (Nginx, MariaDB/MySQL và PHP-FPM) là một nhóm phần mềm nguồn mở để lưu trữ các ứng dụng web. Trên Rocky Linux. hầu hết các gói LEMP Stack đều có sẵn trên các kho lưu trữ của bên thứ ba.Trong bước đầu tiên, bạn sẽ thêm và kích hoạt hai kho lưu trữ trên hệ thống của mình. Bạn sẽ thêm kho lưu trữ EPEL cung cấp các gói bổ sung cho các hệ điều hành dựa trên RHEL và kho lưu trữ REMI cung cấp nhiều phiên bản gói PHP.
Chạy lệnh sau để thêm kho lưu trữ EPEL vào hệ thống Rocky Linux của bạn. Khi được nhắc xác nhận, hãy nhập y và nhấn ENTER.
Mã:
sudo dnf install epel-release
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22649%22%20height=%22260%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh dnf bên dưới để thêm kho lưu trữ REMI cho Rocky Linux 8.4.
Mã:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22221%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh dnf bên dưới để xác minh danh sách các kho lưu trữ khả dụng trên hệ thống của bạn. Bạn sẽ thấy hai kho lưu trữ bổ sung EPEL và REMI được thêm vào hệ thống Rocky Linux.
Mã:
sudo dnf repolist
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22184%22%3E%3C/svg%3E
Cài đặt các gói phụ thuộc
Drupal là một CMS linh hoạt và mạnh mẽ có thể được cài đặt bằng bất kỳ máy chủ web nào như Apache2/httpd, Nginx hoặc IIS Microsoft. Ngoài ra, Drupal hỗ trợ nhiều RDBMS bao gồm MariaDB/MySQL, PostgreSQL và SQLite. Đối với các cơ sở dữ liệu khác như Microsoft SQL Server và MongoDB, bạn có thể sử dụng cả hai thông qua các mô-đun cộng đồng.Bây giờ bạn sẽ cài đặt các gói LEMP Stack phụ thuộc cho Drupal. Bạn sẽ cài đặt Nginx thông qua kho lưu trữ EPEL, cài đặt MariaDB từ appstream và các gói PHP 8.1 từ kho lưu trữ REMI.
Trước tiên, hãy đặt lại và bật mô-đun PHP từ kho lưu trữ REMI thông qua lệnh dnf bên dưới. Trong ví dụ này, bạn sẽ kích hoạt một mô-đun cho PHP 8.1, được hỗ trợ bởi phiên bản Drupal mới nhất.
Mã:
sudo dnf module reset php
sudo dnf module enable php:remi-8.1
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22185%22%3E%3C/svg%3E
Tiếp theo, sử dụng lệnh dnf bên dưới để cài đặt các gói LEMP stack cơ bản.
Mã:
sudo dnf install nginx mariadb-server php php-fpm php-cli php-devel php-mbstring php-gd php-xml php-curl php-mysqlnd php-pdo php-json php-opcache php-pear php-pecl-apcu php-pecl-crypto
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22308%22%3E%3C/svg%3E
Ngoài ra, hãy nhập y khi được nhắc xác nhận để thêm khóa GPG cho một số kho lưu trữ.
Sau khi các gói LEMP Stack được cài đặt, bạn có thể sử dụng lệnh systemctl sau để khởi động các dịch vụ Nginx, MariaDB và PHP-FPM. Ngoài ra, bạn sẽ cho phép tất cả các dịch vụ đó chạy tự động khi khởi động.
Mã:
sudo systemctl start nginx mariadb php-fpm
sudo systemctl enable nginx mariadb php-fpm
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22168%22%3E%3C/svg%3E
Thiết lập Firewalld
Firewalld là tường lửa mặc định trên các hệ điều hành dựa trên RHEL, bao gồm cả Rocky Linux. Nên chạy Drupal hoặc bất kỳ ứng dụng web nào có bật tường lửa, đặc biệt là trong môi trường cấp sản xuất.Bây giờ bạn sẽ thêm cả hai cổng HTTP và HTTPS vào firewalld để cho phép khách hàng truy cập cài đặt Drupal của bạn.
Chạy lệnh firewall-cmd sau đây để thêm các dịch vụ HTTP và HTTPS vào firewalld.
Mã:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
Mã:
sudo firewall-cmd --reload
sudo firewall-cmd --list-services
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22738%22%20height=%22242%22%3E%3C/svg%3E
Thiết lập Máy chủ MariaDB
Trong bước này, bạn sẽ bắt đầu cấu hình cơ sở dữ liệu MariaDB sẽ được sử dụng cho Drupal. Bạn sẽ bắt đầu bằng cách bảo mật triển khai MariaDB, sau đó tạo cơ sở dữ liệu và người dùng mới cho cài đặt Drupal.Trước khi bắt đầu, hãy chạy lệnh sau để xác minh dịch vụ MariaDB và đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl status mariadb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E
Tiếp theo, hãy chạy lệnh sau để bảo mật việc triển khai máy chủ MariaDB. Dòng lệnh 'mysql_secure_installation' này được cung cấp bởi các gói MariaDB giúp bạn bảo mật quá trình cài đặt.
Mã:
sudo mysql_secure_installation
- Cài đặt MariaDB mặc định không có mật khẩu, hãy nhấn ENTER khi được nhắc nhập mật khẩu.
- Bây giờ hãy nhập Y để thiết lập mật khẩu gốc MariaDB. Sau đó, nhập mật khẩu mới cho MariaDB và lặp lại mật khẩu.
- Nhập Y để xóa người dùng ẩn danh khỏi cài đặt MariaDB của bạn.
- Nhập Y một lần nữa khi được nhắc tắt đă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 của bạn.
- Cuối cùng, nhập Y để tải lại các đặc quyền bảng và áp dụng các thay đổi mới.
Đăng nhập vào shell MySQL/MariaDB thông qua người dùng gốc bằng lệnh mysql bên dưới.
Mã:
sudo mysql -u root -p
Mã:
CREATE DATABASE drupaldb;
CREATE USER drupal@localhost IDENTIFIED BY 'password';
GRANT ALL ON drupaldb.* TO drupal@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22255%22%3E%3C/svg%3E
Tiếp theo, chạy các truy vấn sau để xác minh quyền cho người dùng MariaDB drupal@localhost. Bạn sẽ thấy người dùng MariaDB drupal@localhost có quyền truy cập và đặc quyền đối với cơ sở dữ liệu drupaldb.
Mã:
SHOW GRANTS FOR drupal@localhost;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22191%22%3E%3C/svg%3E
Cài đặt tiện ích mở rộng PECL: uploadprogress
Uploadprogress là tiện ích mở rộng sẽ được Drupal sử dụng để hiển thị thanh tiến trình. Có thể cài đặt uploadprogress thông qua kho lưu trữ PECL (Thư viện cộng đồng tiện ích mở rộng PHP).Bây giờ bạn sẽ cài đặt tiện ích mở rộng uploadprogress từ kho lưu trữ PECL và bật tiện ích này trên bản cài đặt PHP của mình.
Để bắt đầu, hãy chạy lệnh sau để đảm bảo lệnh 'pecl' có sẵn trên hệ thống của bạn. 'pecl' khả dụng, bạn sẽ thấy đường dẫn đầy đủ của tệp nhị phân 'pecl'.
Mã:
which pecl
Mã:
sudo pecl install uploadprogress
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22298%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh sau để tạo tệp cấu hình mới '/etc/php.d/uploadprogress.ini' và bật tiện ích mở rộng uploadprogress.
Mã:
cat