Drupal là một hệ thống quản lý nội dung nguồn mở nổi tiếng dựa trên PHP. Nó được cung cấp miễn phí và được phát hành theo Giấy phép Công cộng GNU. Drupal có thể được sử dụng cho mọi quy mô trang web, từ các trang web quốc tế lớn đến các blog cá nhân và các trang web của công ty hoặc chính phủ. Phần cốt lõi của drupal được gọi là "Drupal Core", nó chứa hệ thống quản lý nội dung cơ bản, quản lý người dùng, quản lý menu, tùy chỉnh bố cục và quản trị hệ thống. Drupal Core có thể được mở rộng bằng các plugin, cho đến nay, cộng đồng drupal đã được cung cấp hơn 31.000 mô-đun cho Drupal.
Trong hướng dẫn này, chúng ta sẽ cài đặt Drupal 8.1.10 với máy chủ web Nginx, MariaDB 10 làm máy chủ cơ sở dữ liệu và PHP-FPM (PHP 7.0) để xử lý các yêu cầu PHP. Tôi cũng sẽ chỉ cho bạn cách cài đặt Chứng chỉ SSL để bảo mật trang web Drupal.
Cài đặt Nginx bằng lệnh apt sau với tư cách là người dùng sudo/root:
Tiếp theo, cài đặt php7.0-fpm với tiện ích mở rộng php-gd được yêu cầu bởi lõi drupal:
Trong bước tiếp theo, chúng ta sẽ cấu hình Nginx.
Ở dòng 761, bỏ chú thích ở dòng cgi.fix_pathinfo và đổi giá trị thành "0".
Lưu tệp và thoát khỏi trình chỉnh sửa.
Bây giờ chúng ta sửa đổi cấu hình máy chủ ảo Nginx mặc định. Chỉnh sửa tệp "mặc định" và kích hoạt lệnh php-fpm.
Bỏ chú thích dòng 51- 58để sử dụng php-fpm với nginx.
Lưu tệp và thoát.
Sau đó kiểm tra cấu hình Nginx bằng lệnh "nginx -t" để đảm bảo rằng nó hợp lệ:
Nếu không có lỗi, hãy khởi động lại nginx và dịch vụ php-fpm:
Tiếp theo, hãy kiểm tra xem php-fpm có hoạt động bình thường với nginx không bằng cách tạo tệp thông tin php mới trong thư mục web "/var/www/html".
Truy cập tệp info.php tại IP máy chủ (trong trường hợp của tôi là http://192.168.1.4/info.php)trong trình duyệt web. Kết quả sẽ tương tự như ảnh chụp màn hình bên dưới.
Cài đặt phiên bản MariaDB mới nhất bằng lệnh apt-get:
Khi quá trình cài đặt hoàn tất, hãy khởi động MariaDB:
Tên dịch vụ MariaDB là "mysql", đó là lý do tại sao lệnh systemctl sử dụng từ mysql ở đây.
Bây giờ chúng ta sẽ cấu hình tên người dùng và mật khẩu MariaDB bằng lệnh bên dưới:
Đăng nhập vào shell MariaDB bằng mật khẩu của bạn và tạo một cơ sở dữ liệu mới cho drupal có tên là "drupaldb" và tạo người dùng MariaDB/MySQL mới "drupaluser" với mật khẩu "drupaluser@" và cuối cùng cấp cho người dùng quyền truy cập vào cơ sở dữ liệu. Vui lòng chọn mật khẩu an toàn thay vì "drupaluser@" cho quá trình cài đặt của bạn!
Cơ sở dữ liệu "drupaldb" với người dùng "drupaluser" đã được tạo.
Sau đó tạo chứng chỉ SSL tự ký mới bằng lệnh openssl bên dưới:
Điền thông tin được yêu cầu. Tệp chứng chỉ SSL đã được tạo, bây giờ hãy thay đổi quyền của tệp khóa riêng "drupal.key" thành 600:
Sau đó, hãy đến thư mục máy chủ ảo Nginx "/etc/nginx/sites-available/" và tạo một tệp mới "drupal8" bằng trình soạn thảo vim:
Dán cấu hình Nginx cho drupal bên dưới vào tệp drupal8:
Trong hướng dẫn này, chúng ta sẽ cài đặt Drupal 8.1.10 với máy chủ web Nginx, MariaDB 10 làm máy chủ cơ sở dữ liệu và PHP-FPM (PHP 7.0) để xử lý các yêu cầu PHP. Tôi cũng sẽ chỉ cho bạn cách cài đặt Chứng chỉ SSL để bảo mật trang web Drupal.
Điều kiện tiên quyết
- Ubuntu 16.04 - Phiên bản 64bit.
- Quyền root.
Bước 1 - Cập nhật hệ thống Ubuntu
Đăng nhập vào máy chủ Ubuntu bằng ssh, sau đó trở thành người dùng root và cập nhật kho lưu trữ Ubuntu:
Mã:
sudo su
sudo apt-get update
Bước 2 - Cài đặt Nginx và PHP-FPM
Nginx hay "engine-x" là máy chủ HTTP nhanh tập trung vào hiệu suất cao với mức sử dụng bộ nhớ/RAM thấp. Chúng ta cũng có thể sử dụng Nginx làm proxy ngược cho các giao thức HTTP, HTTPS, POP3 và IMAP. Trong hướng dẫn này, chúng ta sẽ sử dụng Nginx làm máy chủ HTTP hỗ trợ SSL.Cài đặt Nginx bằng lệnh apt sau với tư cách là người dùng sudo/root:
Mã:
sudo apt-get install nginx -y
Mã:
sudo apt-get install php7.0-fpm php7.0-cli php7.0-gd php7.0-mysql php7.0-xml -y
Bước 3 - Cấu hình Nginx và PHP-FPM
Trong bước này, chúng ta sẽ cấu hình Nginx để sử dụng php-fpm để phục vụ các yêu cầu HTTP cho các trang PHP. Vào thư mục php-fpm "/etc/php/7.0/fpm" và chỉnh sửa tệp "php.ini":
Mã:
cd /etc/php/7.0/fpm/
vim php.ini
Mã:
cgi.fix_pathinfo=0
Bây giờ chúng ta sửa đổi cấu hình máy chủ ảo Nginx mặc định. Chỉnh sửa tệp "mặc định" và kích hoạt lệnh php-fpm.
Mã:
cd /etc/nginx/sites-available/
vim default
Mã:
location ~ \.php$ { include snippets/fastcgi-php.conf; # # # Chỉ với php7.0-cgi: # fastcgi_pass 127.0.0.1:9000; # # Với php7.0-fpm: fastcgi_pass unix:/run/php/php7.0-fpm.sock; }
Sau đó kiểm tra cấu hình Nginx bằng lệnh "nginx -t" để đảm bảo rằng nó hợp lệ:
Mã:
nginx -t
Mã:
systemctl restart nginx
systemctl restart php7.0-fpm
Mã:
cd /var/www/html/
echo "" > info.php
Bước 4 - Cài đặt và cấu hình MariaDB
MariaDB là nhánh máy chủ cơ sở dữ liệu của hệ thống quản lý cơ sở dữ liệu quan hệ MYSQL, nó cung cấp chức năng thay thế trực tiếp cho MySQL.Cài đặt phiên bản MariaDB mới nhất bằng lệnh apt-get:
Mã:
sudo apt-get install mariadb-client mariadb-server -y
Mã:
systemctl start mysql
Bây giờ chúng ta sẽ cấu hình tên người dùng và mật khẩu MariaDB bằng lệnh bên dưới:
Mã:
mysql_secure_installation
Mã:
mysql_secure_installation
Đặt mật khẩu root? [Y/n] Y
Mật khẩu mới:
Nhập lại mật khẩu mới:
Xóa người dùng ẩn danh? [Y/n] Y
... Thành công!
Không cho phép đăng nhập root từ xa? [Y/n] Y
... Thành công!
Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] Y
... Thành công!
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
... Thành công!
Đăng nhập vào shell MariaDB bằng mật khẩu của bạn và tạo một cơ sở dữ liệu mới cho drupal có tên là "drupaldb" và tạo người dùng MariaDB/MySQL mới "drupaluser" với mật khẩu "drupaluser@" và cuối cùng cấp cho người dùng quyền truy cập vào cơ sở dữ liệu. Vui lòng chọn mật khẩu an toàn thay vì "drupaluser@" cho quá trình cài đặt của bạn!
Mã:
mysql -u root -p
create database drupaldb;
create user drupaluser@localhost defined by 'drupaluser@';
grant all privileges on drupaldb.* to drupaluser@localhost defined by 'drupaluser@';
flush privileges;
\q
Cơ sở dữ liệu "drupaldb" với người dùng "drupaluser" đã được tạo.
Bước 5 - Tạo chứng chỉ SSL tự ký
Đi tới thư mục /etc/nginx và tạo một thư mục mới có tên "ssl" để cấu hình SSL file.
Mã:
mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl
Mã:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/drupal.key -out /etc/nginx/ssl/drupal.crt
Mã:
chmod 600 drupal.key
Bước 6 - Cấu hình VirtualHost cho Drupal
Chúng tôi sẽ cài đặt Drupal 8 trong thư mục "/var/www/drupal8" với tên miền "drupal8.me". Vui lòng thay thế tên miền trong cài đặt của bạn bằng tên miền của trang web mà bạn muốn sử dụng cài đặt drupal này. Vậy hãy tạo thư mục:
Mã:
mkdir -p /var/www/drupal8
Mã:
cd /etc/nginx/sites-available/
vim drupal8
Mã:
server { server_name drupal8.me; root /var/www/drupal8; ##