Cách cài đặt Drupal với Apache và Let's Encrypt SSL trên Debian 11

theanh

Administrator
Nhân viên
Drupal là một hệ thống quản lý nội dung mã nguồn mở và miễn phí dựa trên nền tảng LAMP. Drupal có nhiều tính năng tiêu chuẩn tuyệt vời cho phép bạn tạo các trang web và blog mạnh mẽ. Nó đi kèm với rất nhiều chủ đề, plugin và tiện ích giúp bạn tạo trang web mà không cần bất kỳ kiến thức lập trình nào. Nó cung cấp rất nhiều tính năng như hỗ trợ nhiều trang web, hỗ trợ nhiều ngôn ngữ, hệ thống bình luận, nguồn cấp RSS, đăng ký người dùng, v.v.

Trong bài đăng này, chúng tôi sẽ chỉ cho bạn cách cài đặt Drupal CMS với Apache và Let's Encrypt SSL trên Debian 11.

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

  • Một máy chủ chạy Debian 11.
  • Một tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
  • Một mật khẩu gốc được cấu hình trên máy chủ.

Cài đặt LAMP Stack​

Drupal dựa trên nền tảng LAMP stack. Vì vậy, LAMP stack phải được cài đặt trên máy chủ của bạn. Nếu chưa cài đặt, bạn có thể cài đặt bằng cách chạy lệnh sau:
Mã:
apt-get install apache2 mariadb-server mariadb-client php libapache2-mod-php 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 -y
Sau khi cài đặt ngăn xếp LAMP, hãy chỉnh sửa tệp php.ini và thay đổi một số cài đặt mặc định:
Mã:
nano /etc/php/7.4/apache2/php.ini
Thay đổi các dòng sau:
Mã:
memory_limit = 256Mupload_max_filesize = 32Mmax_execution_time = 300date.timezone = Asia/Kolkata
Lưu và đóng tệp khi bạn hoàn tất.

Tạo Cơ sở dữ liệu Drupal​

Drupal sử dụng MariaDB làm cơ sở dữ liệu phụ trợ. Vì vậy, bạn sẽ cần tạo cơ sở dữ liệu và người dùng cho Drupal.

Đầu tiên, hãy đăng nhập vào MariaDB bằng lệnh sau:
Mã:
mysql
Sau khi đăng nhập, hãy tạo cơ sở dữ liệu và người dùng bằng lệnh sau:
Mã:
MariaDB [(none)]> CREATE DATABASE drupaldb;
MariaDB [(none)]> CREATE USER 'drupaluser'@'localhost' IDENTIFIED BY "securepassword";
Tiếp theo, cấp tất cả các quyền cho cơ sở dữ liệu Drupal bằng lệnh sau:
Mã:
MariaDB [(none)]> GRANT ALL ON drupaldb.* TO 'drupaluser'@'localhost' IDENTIFIED BY "securepassword";
Tiếp theo, xóa các quyền và thoát khỏi MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Tải xuống Drupal​

Trước tiên, hãy truy cập trang web Drupal, chọn phiên bản Drupal mới nhất và tải xuống bằng lệnh sau:
Mã:
wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz
Sau khi tải xuống Drupal, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Mã:
tar -xvf drupal.tar.gz
Tiếp theo, di chuyển thư mục đã giải nén đến thư mục gốc mặc định của Apache:
Mã:
mv drupal-* /var/www/html/drupal
Tiếp theo, thay đổi quyền sở hữu và quyền của thư mục Drupal bằng lệnh sau:
Mã:
chown -R www-data:www-data /var/www/html/drupal/
chmod -R 755 /var/www/html/drupal/

Tạo Apache Virtual Host cho Drupal​

Tiếp theo, bạn sẽ cần tạo tệp cấu hình Apache virtual host để lưu trữ Drupal. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/apache2/sites-available/drupal.conf
Thêm các dòng sau:
Mã:
 ServerAdmin [emailprotected] DocumentRoot /var/www/html/drupal/ ServerName drupal.example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined  Tùy chọn FollowSymlinks AllowOverride All Yêu cầu tất cả được cấp   RewriteEngine trên RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Lưu và đóng tệp, sau đó bật máy chủ ảo Drupal và mô-đun ghi đè Apache bằng lệnh sau:
Mã:
a2ensite drupal.conf
a2enmod rewrite
Tiếp theo, khởi động lại dịch vụ Apache để áp dụng các thay đổi:
Mã:
systemctl restart apache2
Để kiểm tra trạng thái của Apache, hãy chạy lệnh sau:
Mã:
systemctl status apache2
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
? apache2.service - Máy chủ HTTP Apache Đã tải: đã tải (/lib/systemd/system/apache2.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2021-09-18 14:59:40 UTC; 5 giây trước Tài liệu: https://httpd.apache.org/docs/2.4/ Tiến trình: 19698 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) PID chính: 19703 (apache2) Nhiệm vụ: 6 (giới hạn: 2341) Bộ nhớ: 15,3M CPU: 78ms CGroup: /system.slice/apache2.service ??19703 /usr/sbin/apache2 -k start ??19704 /usr/sbin/apache2 -k start ??19705 /usr/sbin/apache2 -k start ??19706 /usr/sbin/apache2 -k start ??19707 /usr/sbin/apache2 -k start ??19708 /usr/sbin/apache2 -k start
Tại thời điểm này, máy chủ web Apache được cấu hình để phục vụ Drupal. Bây giờ bạn có thể tiến hành bước tiếp theo.

Truy cập trang web Drupal​

Bây giờ, hãy mở trình duyệt web của bạn và truy cập Drupal bằng URL . Bạn sẽ được chuyển hướng đến trang sau:



Chọn ngôn ngữ tiếng Anh và nhấp vào nút Lưu và tiếp tục, bạn sẽ thấy hình ảnh sau:



Chọn Hồ sơ cài đặt và nhấp vào nút Lưu và tiếp tục. Bạn sẽ thấy trang sau:



Trong trang Cấu hình cơ sở dữ liệu, cung cấp tất cả các thông tin chi tiết cần thiết về cơ sở dữ liệu như tên cơ sở dữ liệu, tên người dùng và mật khẩu cơ sở dữ liệu, máy chủ cơ sở dữ liệu, sau đó nhấp vào nút Lưu và tiếp tục, bạn sẽ thấy hình ảnh sau:





Trong trang Cấu hình trang web Drupal, cung cấp tên trang web, tên người dùng và mật khẩu quản trị viên, sau đó nhấp vào nút Lưu và tiếp tục để bắt đầu cài đặt Drupal. Sau khi Drupal được cài đặt, bạn sẽ thấy bảng điều khiển Drupal trong hình ảnh sau:


Bật hỗ trợ SSL Let's Encrypt trên trang web Drupal​

Luôn là một ý tưởng hay để bảo mật trang web của bạn bằng Let's Encrypt SSL. Trước tiên, bạn sẽ cần cài đặt ứng dụng khách Certbot để cài đặt và quản lý SSL. Theo mặc định, gói Certbot được bao gồm trong kho lưu trữ mặc định của Debian 11 để bạn có thể cài đặt gói này bằng lệnh sau:
Mã:
apt-get install python3-certbot-apache -y
Sau khi Certbot được cài đặt, hãy chạy lệnh sau để bảo mật trang web của bạn bằng Let's Encrypt SSL:
Mã:
certbot --apache -d drupal.example.com
Bạn sẽ được yêu cầu cung cấp email và chấp nhận điều khoản dịch vụ như hiển thị bên dưới:
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator standalone, Installer NoneNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản của Dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có muốn chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuậnphát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)o: CCác plugin đã chọn: Authenticator apache, Installer apacheNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho drupal.example.comĐã bật mô-đun ghi đè ApacheĐang chờ xác minh...Dọn dẹp các thử tháchĐã tạo một vhost SSL tại /etc/apache2/sites-available/drupal-le-ssl.confĐã bật mô-đun Apache socache_shmcbĐã bật mô-đun Apache sslTriển khai chứng chỉ tới VirtualHost /etc/apache2/sites-available/drupal-le-ssl.confBật trang web khả dụng: /etc/apache2/sites-available/drupal-le-ssl.conf
Tiếp theo, chọn có chuyển hướng lưu lượng HTTP hay không sang HTTPS như hiển thị bên dưới:
Mã:
Vui lòng chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không, xóa quyền truy cập HTTP.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Không chuyển hướng - Không thực hiện thêm bất kỳ thay đổi nào đối với cấu hình máy chủ web.2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cập HTTPS an toàn. Chọn tùy chọn này chocác trang web mới hoặc nếu bạn tin tưởng rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tácthay đổi này bằng cách chỉnh sửa cấu hình máy chủ web của mình.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thích hợp [1-2] rồi [enter] (nhấn 'c' để hủy): 2
Nhập 2 và nhấn Enter để cài đặt Let's Encrypt SSL cho trang web của bạn:
Mã:
Đã bật mô-đun ghi đè ApacheĐang chuyển hướng vhost trong /etc/apache2/sites-enabled/drupal.conf sang ssl vhost trong /etc/apache2/sites-available/drupal-le-ssl.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://drupal.example.comBạn nên kiểm tra cấu hình của mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=drupal.example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/drupal.example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/drupal.example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 2021-04-20. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* chứng chỉ của bạn, hãy chạy "certbot renew" - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le

Kết luận​

Vậy là xong. Bạn đã cài đặt thành công Drupal với Let's Encrypt SSL trên Debian 11. Bây giờ bạn có thể bắt đầu tạo blog hoặc trang web của riêng mình mà không cần bất kỳ kiến thức lập trình nào. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên