Thứ ba, 16/07/2019 | 00:00 GMT+7

Cách cài đặt WordPress với LEMP (Nginx, MariaDB và PHP) trên Debian 10

WordPress là CMS (hệ thống quản lý nội dung) phổ biến nhất trên internet. Nó cho phép bạn dễ dàng cài đặt các blog và trang web linh hoạt trên phần backend dựa trên MySQL với PHP processor . WordPress đã được sử dụng một cách đáng kinh ngạc và là một lựa chọn tuyệt vời để cài đặt và chạy một trang web một cách nhanh chóng. Sau khi cài đặt , hầu hết tất cả các quản trị có thể được thực hiện thông qua giao diện user web.

Trong hướng dẫn này, ta sẽ tập trung vào việc cài đặt một version WordPress trên một LEMP (Linux, Nginx, MariaDB và PHP) trên server Debian 10.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần truy cập vào server Debian 10.

Bạn cần thực hiện các việc sau trước khi bắt đầu :

  • Tạo user sudo trên server của bạn : Ta sẽ hoàn thành các bước trong hướng dẫn này bằng cách sử dụng user không phải root có quyền sudo . Bạn có thể tạo user có quyền sudo theo hướng dẫn cài đặt server ban đầu Debian 10 của ta .
  • Cài đặt LEMP : WordPress cần một web server , database và PHP để hoạt động chính xác. Cài đặt LEMP (Linux, Nginx, MariaDB và PHP) đáp ứng tất cả các yêu cầu này. Làm theo hướng dẫn này để cài đặt và cấu hình phần mềm này.
  • Bảo mật trang web bằng SSL : WordPress cung cấp nội dung động và xử lý xác thực và ủy quyền user . TLS / SSL là công nghệ cho phép bạn mã hóa lưu lượng truy cập từ trang web của bạn để kết nối của bạn được an toàn. Hướng dẫn này sẽ giả định bạn có một domain cho blog của bạn . Bạn có thể sử dụng Let's Encrypt để nhận certificate SSL miễn phí cho domain của bạn . Làm theo hướng dẫn Hãy mã hóa cho Nginx của ta để cài đặt điều này.

Khi bạn hoàn tất các bước cài đặt , hãy đăng nhập vào server của bạn với quyền là user sudo của bạn và tiếp tục bên dưới.

Bước 1 - Tạo database và user cho WordPress

WordPress cần một database dựa trên MySQL để lưu trữ và quản lý thông tin trang web và user . Cài đặt của ta sử dụng MariaDB , một nhánh cộng đồng của dự án MySQL root của Oracle. MariaDB hiện là server database tương thích với MySQL mặc định có sẵn trên trình quản lý gói dựa trên debian repossudo systemctl status php * | grep fpmitories.

Để bắt đầu, hãy đăng nhập vào account MariaDB root (quản trị). Nếu MariaDB được cấu hình để sử dụng plugin xác thực auth_socket , plugin này là mặc định, bạn có thể đăng nhập vào account quản trị MariaDB bằng sudo :

  • sudo mariadb

Nếu bạn đã thay đổi phương thức xác thực để sử dụng password cho account root MariaDB, hãy sử dụng định dạng sau để thay thế:

  • mariadb -u root -p

Bạn sẽ được yêu cầu nhập password bạn đã đặt cho account root MariaDB.

Đầu tiên, ta có thể tạo một database riêng mà WordPress có thể kiểm soát. Bạn có thể đặt tên này là bạn muốn , nhưng ta sẽ sử dụng wordpress trong hướng dẫn này để đơn giản hóa . Bạn có thể tạo database cho WordPress bằng lệnh :

  • CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Tiếp theo, ta sẽ tạo một account user MariaDB riêng biệt mà ta sẽ sử dụng riêng để hoạt động trên database mới của bạn . Tạo database và account một chức năng là một ý tưởng hay từ quan điểm quản lý và bảo mật. Ta sẽ sử dụng tên wordpress_user trong hướng dẫn này. Hãy thay đổi điều này nếu bạn muốn.

Lệnh sau sẽ tạo account này, đặt password và cấp quyền truy cập vào database mà ta đã tạo. Hãy nhớ chọn một password mạnh cho user database của bạn:

  • GRANT ALL ON wordpress.* TO 'wordpress_user'@'localhost' IDENTIFIED BY 'password';

Đến đây bạn có một database và một account user , mỗi account được tạo riêng cho WordPress. Ta cần xóa các quyền để version hiện tại của server database biết về những thay đổi gần đây mà ta đã thực hiện:

  • FLUSH PRIVILEGES;

Thoát khỏi MariaDB bằng lệnh :

  • EXIT;

Phiên MariaDB sẽ thoát, đưa bạn trở lại shell Linux thông thường.

Bước 2 - Cài đặt các phần mở rộng PHP bổ sung

Khi cài đặt LEMP của ta , ta chỉ yêu cầu một bộ phần mở rộng rất tối thiểu để PHP có thể giao tiếp với MariaDB. WordPress và nhiều plugin của nó tận dụng các phần mở rộng PHP bổ sung.

Ta có thể download và cài đặt một số phần mở rộng PHP phổ biến nhất để sử dụng với WordPress bằng lệnh :

  • sudo apt update
  • sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

Lưu ý: Mỗi plugin WordPress có một bộ yêu cầu riêng. Một số có thể yêu cầu cài đặt thêm các gói PHP. Kiểm tra tài liệu plugin của bạn để khám phá các yêu cầu PHP của nó.

Khi hoàn tất cài đặt các tiện ích mở rộng mới, bạn cần khởi động lại quy trình PHP-FPM để PHP processor đang chạy có thể tận dụng các tính năng mới được cài đặt:

  • sudo systemctl restart php7.3-fpm.service

Bạn có thể cần điều chỉnh phần được đánh dấu của lệnh với version PHP-FPM cụ thể của bạn, vì điều đó có thể khác nhau. Để xác minh tên dịch vụ chính xác mà bạn cần sử dụng trong các lệnh systemctl , bạn có thể sử dụng:

  • sudo systemctl status php* | grep fpm.service

Bạn sẽ thấy kết quả như thế này:

Output
php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled) CGroup: /system.slice/php7.3-fpm.service

Chuỗi được đánh dấu là tên mà bạn cần sử dụng khi quản lý dịch vụ PHP-FPM bằng các lệnh systemctl .

Các phần mở rộng PHP của ta hiện đã được cài đặt. Trong phần tiếp theo, ta sẽ cấu hình Nginx để sử dụng PHP-FPM để xử lý các trang PHP.

Bước 3 - Cấu hình Nginx

Bây giờ ta sẽ thực hiện một vài điều chỉnh nhỏ đối với các file khối server Nginx của ta . Dựa trên các hướng dẫn yêu cầu , bạn nên có file cấu hình cho trang web của bạn trong folder /etc/nginx/sites-available/ cấu hình để phản hồi với domain của server của bạn và được bảo vệ bằng certificate TLS / SSL. Ta sẽ sử dụng /etc/nginx/sites-available/ your_domain làm ví dụ ở đây, nhưng bạn nên thay thế đường dẫn đến file cấu hình của bạn nếu thích hợp.

Ngoài ra, ta sẽ sử dụng /var/www/ your_domain làm folder root của cài đặt WordPress của ta . Bạn nên sử dụng root web được chỉ định trong cấu hình của bạn .

Lưu ý: Có thể bạn đang sử dụng cấu hình mặc định /etc/nginx/sites-available/default (với /var/www/html là web root của bạn). Điều này có thể sử dụng nếu bạn chỉ lưu trữ một trang web trên server này. Nếu không, tốt nhất bạn nên chia cấu hình cần thiết thành các phần hợp lý, một file cho mỗi trang web.

Mở file cấu hình Nginx của trang web với các quyền sudo để bắt đầu:

  • sudo nano /etc/nginx/sites-available/your_domain

Ta cần thêm một vài chỉ thị location trong khối server chính của bạn . Sau khi thêm certificate SSL, cấu hình của bạn có thể có hai khối server . Nếu vậy, hãy tìm cái có chứa root /var/www/ your_domain và các chỉ thị location khác của bạn và triển khai các thay đổi ở đó.

Bắt đầu bằng cách tạo các khối vị trí khớp chính xác cho các yêu cầu đến /favicon.ico/robots.txt , cả hai đều mà ta không muốn ghi lại các yêu cầu.

Ta sẽ sử dụng vị trí biểu thức chính quy để trùng với bất kỳ yêu cầu nào đối với file tĩnh. Ta sẽ lại tắt tính năng ghi log cho những yêu cầu này và sẽ đánh dấu chúng là có khả năng lưu vào bộ nhớ cache cao vì đây thường là những tài nguyên đắt tiền để cung cấp. Bạn có thể điều chỉnh danh sách file tĩnh này để chứa bất kỳ phần mở rộng file nào khác mà trang web có thể sử dụng:

/ etc / nginx / sites-available / your_domain
server {     . . .      location = /favicon.ico { log_not_found off; access_log off; }     location = /robots.txt { log_not_found off; access_log off; allow all; }     location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {         expires max;         log_not_found off;     }     . . . } 

Bên trong location / khối hiện có, ta cần điều chỉnh danh sách try_files để thay vì trả về lỗi 404 làm tùy chọn mặc định, quyền điều khiển được chuyển đến index.php với các đối số yêu cầu.

Cái này sẽ trông giống như sau:

/ etc / nginx / sites-available / wordpress
server {     . . .     location / {         #try_files $uri $uri/ =404;         try_files $uri $uri/ /index.php$is_args$args;     }     . . . } 

Khi bạn hoàn tất, hãy lưu file .

Bây giờ, ta có thể kiểm tra cấu hình của bạn để tìm lỗi cú pháp bằng lệnh :

  • sudo nginx -t

Nếu không có lỗi nào được báo cáo, hãy reload Nginx bằng lệnh :

  • sudo systemctl reload nginx

Tiếp theo, ta sẽ download và cài đặt chính WordPress.

Bước 4 - Download WordPress

Bây giờ phần mềm server của ta đã được cấu hình , ta có thể download và cài đặt WordPress. Đặc biệt, vì lý do bảo mật, bạn nên tải version WordPress mới nhất từ trang web của họ.

Thay đổi thành một folder có thể ghi và sau đó download bản phát hành nén bằng lệnh :

  • cd /tmp
  • curl -LO https://wordpress.org/latest.tar.gz

Extract file nén để tạo cấu trúc folder WordPress:

  • tar xzvf latest.tar.gz

Ta sẽ chuyển các file này vào folder root của ta trong giây lát. Trước khi làm điều đó, ta có thể sao chép file cấu hình mẫu sang tên file mà WordPress thực sự đọc:

  • cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Bây giờ, ta có thể sao chép toàn bộ nội dung của folder vào folder root . Ta đang sử dụng cờ -a đảm bảo các quyền của ta được duy trì. Ta đang sử dụng một dấu chấm ở cuối folder nguồn của ta để cho biết rằng mọi thứ trong folder nên được sao chép, bao gồm mọi file ẩn:

  • sudo cp -a /tmp/wordpress/. /var/www/your_domain

Bây giờ các file của ta đã có sẵn, ta sẽ chỉ định quyền sở hữu chúng cho user và group www-data . Đây là user và group mà Nginx điều hành và Nginx cần có khả năng đọc và ghi các file WordPress để phục vụ trang web và thực hiện cập nhật tự động.

  • sudo chown -R www-data:www-data /var/www/your_domain

Các file của ta hiện nằm trong folder root của server và có quyền sở hữu chính xác, nhưng ta vẫn cần hoàn thành một số cấu hình khác.

Bước 5 - Cài đặt file cấu hình WordPress

Tiếp theo, ta cần thực hiện một vài thay đổi đối với file cấu hình WordPress chính.

Khi ta mở file , trình tự kinh doanh đầu tiên của ta sẽ là điều chỉnh các khóa bí mật để cung cấp một số bảo mật cho cài đặt của ta . WordPress cung cấp một trình tạo an toàn cho các giá trị này để bạn không phải cố gắng tự mình đưa ra các giá trị tốt. Chúng chỉ được sử dụng trong nội bộ, vì vậy sẽ không ảnh hưởng đến khả năng sử dụng khi có các giá trị phức tạp, an toàn ở đây.

Để lấy các giá trị bảo mật từ trình tạo khóa bí mật của WordPress, hãy nhập:

  • curl -s https://api.wordpress.org/secret-key/1.1/salt/

Bạn sẽ nhận lại các giá trị duy nhất trông giống như sau:

Cảnh báo: Điều quan trọng là bạn phải yêu cầu các giá trị duy nhất mỗi lần. KHÔNG sao chép các giá trị hiển thị bên dưới!

Output
define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

Đây là những dòng cấu hình mà ta có thể dán trực tiếp vào file cấu hình của bạn để đặt khóa an toàn. Sao chép kết quả bạn nhận được bây giờ.

Bây giờ, hãy mở file cấu hình WordPress:

  • nano /var/www/your_domain/wp-config.php

Tìm phần chứa các giá trị giả cho các cài đặt đó. Nó trông giống như sau :

/var/www/wordpress/wp-config.php
. . .  define('AUTH_KEY',         'put your unique phrase here'); define('SECURE_AUTH_KEY',  'put your unique phrase here'); define('LOGGED_IN_KEY',    'put your unique phrase here'); define('NONCE_KEY',        'put your unique phrase here'); define('AUTH_SALT',        'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT',   'put your unique phrase here'); define('NONCE_SALT',       'put your unique phrase here');  . . . 

Xóa các dòng đó và dán các giá trị bạn đã sao chép từ dòng lệnh:

/var/www/wordpress/wp-config.php
. . .  define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE'); define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');  . . . 

Tiếp theo, ta cần sửa đổi một số cài đặt kết nối database ở đầu file . Bạn cần điều chỉnh tên database , user database và password được liên kết mà ta đã cấu hình trong MariaDB.

Một thay đổi khác mà ta cần thực hiện là đặt phương thức mà WordPress nên sử dụng để ghi vào hệ thống file . Vì ta đã cấp cho web server quyền ghi ở nơi nó cần, ta có thể đặt phương thức hệ thống file thành “direct” một cách rõ ràng. Không cài đặt cài đặt này với cài đặt hiện tại của ta sẽ dẫn đến việc WordPress nhắc nhập thông tin đăng nhập FTP khi ta thực hiện một số hành động. Có thể thêm cài đặt này bên dưới cài đặt kết nối database hoặc bất kỳ nơi nào khác trong file :

/var/www/wordpress/wp-config.php
. . .  define('DB_NAME', 'wordpress');  /** MySQL database username */ define('DB_USER', 'wordpress_user');  /** MySQL database password */ define('DB_PASSWORD', 'password');  . . .  define('FS_METHOD', 'direct'); 

Lưu file khi bạn hoàn tất.

Bước 6 - Hoàn tất cài đặt thông qua giao diện web

Bây giờ cấu hình server đã hoàn tất, ta có thể hoàn tất quá trình cài đặt thông qua giao diện web.

Trong trình duyệt web , chuyển đến domain hoặc địa chỉ IP công cộng của server :

http://server_domain_or_IP 

Chọn ngôn ngữ bạn muốn sử dụng:

Lựa chọn ngôn ngữ WordPress

Tiếp theo, bạn sẽ đến trang cài đặt chính.

Chọn tên cho trang web WordPress của bạn và chọn tên user (không nên chọn thông tin như "admin" vì mục đích bảo mật). Mật khẩu mạnh được tạo tự động. Lưu password này hoặc chọn một password mạnh thay thế.

Nhập địa chỉ email của bạn và chọn xem bạn có muốn ngăn cản các công cụ tìm kiếm lập index trang web của bạn hay không:

Cài đặt  cài đặt  WordPress

Khi bạn nhấp vào phía trước, bạn sẽ được đưa đến một trang nhắc bạn đăng nhập:

 Dấu nhắc  đăng nhập WordPress

Sau khi đăng nhập, bạn sẽ được đưa đến console quản trị WordPress:

Bảng quản trị WordPress

Từ trang tổng quan, bạn có thể bắt đầu áp dụng các thay đổi đối với chủ đề của trang web và nội dung xuất bản.

Kết luận

WordPress nên được cài đặt và sẵn sàng sử dụng! Một số bước tiếp theo phổ biến là chọn cài đặt liên kết cố định cho bài đăng của bạn (có thể tìm thấy trong Settings > Permalinks ) hoặc chọn chủ đề mới (trong Giao Appearance > Themes ). Nếu đây là lần đầu tiên bạn sử dụng WordPress, hãy khám phá giao diện một chút để làm quen với CMS mới của bạn hoặc xem hướng dẫn Các bước đầu tiên với WordPress trên tài liệu chính thức của họ.


Tags:

Các tin liên quan