Cách cài đặt Drupal CMS với Apache2 trên Ubuntu 22.04

theanh

Administrator
Nhân viên
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 được sử dụng trong ít nhất 14% trong số 10.000 trang web hàng đầu trên internet, nó đượ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, tôi sẽ chỉ cho bạn cách cài đặt phiên bản Drupal mới nhất trên hệ thống Ubuntu 22.04. Hướng dẫn này bao gồm cài đặt một số gói phụ thuộc như máy chủ web Apache2, cơ sở dữ liệu MariaDB, PHP 8.1 và Composer làm công cụ quản lý gói PHP. Mục tiêu ở đây là bạn sẽ hoàn tất cài đặt Drupal với LAMP Stack và được bảo mật bằng chứng chỉ SSL.

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

Để hoàn tất hướng dẫn này, bạn sẽ cần các yêu cầu sau:
  • Máy chủ Ubuntu 22.04. Bản demo này sử dụng máy chủ Ubuntu có tên máy chủ là 'server-ubuntu' và tường lửa UFW được bật.
  • Người dùng không phải root có quyền quản trị.
  • Tên miền trỏ đến địa chỉ IP của máy chủ Ubuntu.

Cài đặt Máy chủ Web Apache2​

Trong bước đầu tiên, bạn sẽ cài đặt máy chủ web Apache thông qua APT từ kho lưu trữ Ubuntu. Vào thời điểm viết bài này, phiên bản mới nhất của Drupal 9 yêu cầu ít nhất là Apache v2.x.

Phần lớn quá trình phát triển Drupal đang chạy với máy chủ web Apache, nhưng cũng có một máy chủ web khác như Nginx.

Trước khi cài đặt các gói, hãy chạy lệnh apt sau với tư cách là người dùng sudo không phải root của bạn để cập nhật và làm mới kho lưu trữ chỉ mục gói của bạn. Bạn cũng có thể sử dụng người dùng root trực tiếp trên máy chủ của mình.
Mã:
sudo apt update
Bây giờ hãy cài đặt máy chủ web Apache bằng cách chạy lệnh apt bên dưới. Bạn sẽ được nhắc xác nhận cài đặt Apache, nhập Y để đồng ý và nhấn ENTER.
Mã:
sudo apt install apache2


Tiếp theo, sử dụng các lệnh systemctl sau đây để kiểm tra và xác minh dịch vụ 'apache2'.

Bạn sẽ nhận được kết quả là dịch vụ 'apache2' đã được 'bật' và sẽ tự động chạy khi khởi động hệ thống. Ngoài ra, bạn sẽ nhận được đầu ra của trạng thái của dịch vụ 'apache2' đang chạy.
Mã:
sudo systemctl is-enabled apache2
sudo systemctl status apache2


Cuối cùng, bạn sẽ cần thêm quy tắc "Apache Full" vào tường lửa UFW. Quy tắc "Apache Full" sẽ tự động cho phép truy cập vào các cổng HTTP và HTTPS và theo mặc định, quy tắc này được bao gồm trong các gói Apache.

Chạy lệnh sau để thêm quy tắc "Apache Full". Sau đó, hãy kiểm tra và xác minh trạng thái của tường lửa UFW. Bạn sẽ nhận được kết quả đầu ra cho biết quy tắc "Apache Full" đã được thêm vào tường lửa UFW.
Mã:
sudo ufw allow "Apache Full"
sudo ufw status

Cài đặt MariaDB Server​

Drupal hỗ trợ nhiều RDBMS (Hệ thống quản lý cơ sở dữ liệu quan hệ) như MySQL/MariaDB, PostgreSQL và SQLite. Trong ví dụ này, bạn sẽ cài đặt Drupal với máy chủ cơ sở dữ liệu MariaDB.

Phiên bản mới nhất hiện tại của Drupal 9 yêu cầu ít nhất máy chủ MariaDB v10.3.x. Và kho lưu trữ Ubuntu mới nhất cung cấp máy chủ MariaDB v10.6.

Sử dụng lệnh apt sau để cài đặt các gói máy chủ MariaDB. Khi được nhắc xác nhận cài đặt, hãy nhập Y để xác nhận, sau đó nhấn ENTER.
Mã:
sudo apt install mariadb-server mariadb-client


Sau khi máy chủ MariaDB được cài đặt, hãy chạy lệnh systemctl sau để kiểm tra trạng thái của dịch vụ 'mariadb'.

Bạn sẽ nhận được đầu ra cho biết máy chủ 'mariadb' được 'bật' và sẽ tự động chạy khi khởi động/khởi động hệ thống. Và trạng thái hiện tại của dịch vụ 'mariadb' là 'đang chạy'.
Mã:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb


Bây giờ dịch vụ 'mariadb' đang chạy, bạn cần thiết lập và bảo mật cài đặt máy chủ MariaDB. Để thực hiện việc này, bạn có thể sử dụng công cụ dòng lệnh 'mysql_secure_installation' được cung cấp bởi gói máy chủ MariaDB.

Chạy lệnh sau để bắt đầu cấu hình và bảo mật cài đặt máy chủ MariaDB.
Mã:
sudo mysql_secure_installation
Bây giờ bạn sẽ được nhắc với các câu hỏi sau:
  • Đối với cài đặt máy chủ MariaDB mặc định không có mật khẩu gốc, hãy nhấn ENTER khi được hỏi về mật khẩu.
  • Xác thực cục bộ cho người dùng gốc MariaDB được bảo mật theo mặc định, hãy nhập 'n' khi được yêu cầu thay đổi phương thức xác thực thành 'unix_socket'.
  • Nhập 'Y' để tạo mật khẩu gốc MariaDB mới. Sau đó, nhập mật khẩu mạnh cho người dùng gốc MariaDB của bạn và lặp lại.
  • Khi được yêu cầu tắt xác thực từ xa cho người dùng gốc MariaDB, hãy nhập 'Y' để đồng ý.
  • Cài đặt máy chủ MariaDB mặc định đi kèm với cơ sở dữ liệu 'test' và cho phép người dùng ẩn danh truy cập vào cơ sở dữ liệu đó. Nhập 'Y' cho cả hai thiết lập để xóa 'test' cơ sở dữ liệu mặc định và xóa đặc quyền ẩn danh.
  • Cuối cùng, nhập 'Y' để xác nhận tải lại đặc quyền bảng.
Tại thời điểm này, bạn đã cấu hình mật khẩu gốc MariaDB và bảo mật cài đặt máy chủ MariaDB. Bây giờ bạn sẽ tạo một cơ sở dữ liệu và người dùng mới cho Drupal. Để thực hiện việc này, trước tiên bạn phải đăng nhập vào shell MariaDB thông qua lệnh 'mysql' (máy khách MySQL/MariaDB).

Sử dụng lệnh 'mysql' sau để đăng nhập vào shell MariaDB với tư cách là người dùng root. Khi được nhắc nhập mật khẩu, hãy nhập mật khẩu gốc MariaDB của bạn. Ngoài ra, bạn chỉ cần nhấn ENTER nếu bạn đang chạy lệnh này với tư cách là người dùng Linux hệ thống 'root'.
Mã:
sudo mysql -u root -p
Tiếp theo, chạy các truy vấn sau để tạo cơ sở dữ liệu MariaDB 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' và mật khẩu là 'password'. Bạn có thể thay thế 'password' bằng mật khẩu mạnh mới của mình.
Mã:
CREATE DATABASE drupaldb;
CREATE USER drupal@localhost IDENTIFIED BY 'password';
GRANT ALL ON drupaldb.* TO drupal@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;


Bây giờ hãy chạy một truy vấn sau để kiểm tra đặc quyền của người dùng MariaDB 'drupal@localhost'. Sau đó, bạn có thể thoát khỏi shell MariaDB thông qua truy vấn 'quit' hoặc chỉ cần nhấn 'Ctrl+d'.

Bạn sẽ nhận được kết quả là người dùng MariaDB 'drupal@localhost' có quyền truy cập vào cơ sở dữ liệu 'drupaldb'.
Mã:
SHOW GRANTS FOR drupal@localhost;
quit

Cài đặt và cấu hình PHP 8.x​

Tại thời điểm viết bài này, phiên bản Drupal 9 mới nhất được khuyến nghị sử dụng PHP 8.x để cài đặt. Ngoài ra, bạn sẽ cần cài đặt một số tiện ích mở rộng PHP bổ sung như 'php-apcu' cho bộ nhớ đệm, 'php-gd' để xử lý hình ảnh, 'php-mysql' làm trình điều khiển cho cơ sở dữ liệu MariaDB và các tiện ích khác.

Trong ví dụ này, bạn sẽ cài đặt PHP 8.1 do kho lưu trữ Ubuntu cung cấp. Sử dụng lệnh 'apt' sau để cài đặt PHP 8.1 và một số tiện ích mở rộng và gói bổ sung cần thiết.

Khi được yêu cầu xác nhận cài đặt, hãy nhập 'Y' để đồng ý và nhấn ENTER.
Mã:
sudo apt install php php-apcu php-dev libapache2-mod-php libcurl4-openssl-dev php-cli php-mysql php-zip php-gd php-fpm php-json php-common php-intl php-mbstring php-curl php-xml php-pear php-tidy php-soap php-bcmath php-xmlrpc


Sau khi cài đặt PHP, bạn sẽ cần cài đặt tiện ích mở rộng PHP bổ sung 'uploadprogress' từ kho lưu trữ PECL (Thư viện cộng đồng tiện ích mở rộng PHP). Để thực hiện việc này, bạn có thể sử dụng dòng lệnh 'pecl' được cung cấp bởi gói 'php-pear'.

Phần mở rộng 'uploadprogress' được Drupal sử dụng để hiển thị và theo dõi chi tiết tiến trình tải tệp lên, bao gồm thời gian ước tính còn lại và quyền truy cập vào nội dung của tệp khi tệp đang được tải lên.

Sử dụng lệnh 'pecl' bên dưới để cài đặt phần mở rộng PHP 'uploadprogress'. Lệnh 'pecl' hiện sẽ tải xuống nguồn của tiện ích mở rộng 'uploadprogress' và tự động biên dịch và cài đặt tiện ích mở rộng.
Mã:
sudo pecl install uploadprogress


Sau khi cài đặt hoàn tất, hãy chạy lệnh sau để tạo tệp cấu hình mới cho tiện ích mở rộng PHP 'uploadprogress'.
Mã:
cat
 
Back
Bên trên