Cách cài đặt WordPress với LEMP trên Ubuntu 20.04

3 tuần trước, Cài đặt VPS, Ubuntu, 221 Lượt xem

Đăng ký cập nhập video từ netweb.vn

WordPress, một trong những hệ thống quản lý nội dung (CMS) phổ biến nhất trên internet hiện tại, cho phép người dùng thiết lập các blog và trang web linh hoạt bằng cách sử dụng phần phụ trợ MySQL với xử lý PHP. WordPress đã chứng kiến ​​một tỷ lệ chấp nhận đáng kinh ngạc giữa các kỹ sư mới và có kinh nghiệm, và là một lựa chọn tuyệt vời để thiết lập và chạy trang web một cách hiệu quả. Sau khi thiết lập ban đầu, hầu hết mọi hoạt động quản trị trang web WordPress đều có thể được thực hiện thông qua giao diện đồ họa của nó – những tính năng này và hơn thế nữa khiến WordPress trở thành lựa chọn tuyệt vời cho các trang web được xây dựng theo quy mô.

Trong hướng dẫn này, bạn sẽ tập trung vào việc thiết lập một phiên bản WordPress trên ngăn xếp LEMP (Linux, Nginx, MySQL và PHP) cho máy chủ Ubuntu 20.04.

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

Để hoàn thành hướng dẫn này, bạn cần truy cập vào máy chủ Ubuntu 20.04. Để cài đặt thành công WordPress với LEMP trên máy chủ của bạn, bạn cũng cần thực hiện các tác vụ sau trước khi bắt đầu hướng dẫn này:

Bước 1 – Tạo Cơ sở dữ liệu MySQL và Người dùng cho WordPress

WordPress sử dụng MySQL để quản lý và lưu trữ thông tin trang web và người dùng. Mặc dù bạn đã cài đặt MySQL, hãy tạo cơ sở dữ liệu và người dùng cho WordPress để sử dụng.

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

sudo mysql

Nếu bạn đã thay đổi phương thức xác thực để sử dụng mật khẩu cho tài khoản gốc MySQL, hãy sử dụng lệnh sau để thay thế:

mysql -u root -p

Bạn sẽ được nhắc nhập mật khẩu bạn đã đặt cho tài khoản gốc MySQL.

Sau khi đăng nhập, hãy tạo một cơ sở dữ liệu riêng mà WordPress có thể kiểm soát. Bạn có thể gọi đây là bất cứ điều gì bạn muốn, nhưng chúng tôi sẽ sử dụng wordpress trong hướng dẫn này để giữ cho nó đơn giản. Bạn có thể tạo cơ sở dữ liệu cho WordPress bằng cách nhập:

CREATE DATABASE thietkewebs DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Tiếp theo, hãy tạo một tài khoản người dùng MySQL riêng biệt mà chúng tôi sẽ sử dụng riêng để hoạt động trên cơ sở dữ liệu mới của chúng tôi. Tạo cơ sở dữ liệu và tài khoản cho một mục đích là một ý tưởng hay từ quan điểm quản lý và bảo mật. Chúng tôi sẽ sử dụng tên thietkewebs trong hướng dẫn này – vui lòng thay đổi tên này nếu bạn muốn.

Trong lệnh sau, bạn sẽ tạo tài khoản, đặt mật khẩu và cấp quyền truy cập vào cơ sở dữ liệu bạn đã tạo. Hãy nhớ chọn một mật khẩu mạnh ở đây:

CREATE USER 'thietkewebs'@'localhost' IDENTIFIED BY '12345678';

GRANT ALL ON thietkewebs.* TO 'thietkewebs'@'localhost';

Bây giờ bạn có một cơ sở dữ liệu và tài khoản người dùng, mỗi tài khoản được tạo riêng cho WordPress.

Khi các tác vụ cơ sở dữ liệu hoàn thành, hãy thoát khỏi MySQL bằng cách gõ:

EXIT;

Phiên MySQL 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 thiết lập ngăn xếp LEMP, nó yêu cầu một bộ mở rộng rất tối thiểu để PHP có thể giao tiếp với MySQL. WordPress và nhiều plugin của nó tận dụng các tiện ích mở rộng PHP bổ sung và bạn sẽ sử dụng thêm một số tiện ích trong hướng dẫn này.

Hãy tải xuống 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 cách nhập:

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

Khi bạn hoàn tất cài đặt các tiện ích mở rộng, hãy khởi động lại quy trình PHP-FPM để bộ xử lý PHP đ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.4-fpm

Bước 3 – Định cấu hình Nginx

Tiếp theo, hãy thực hiện một vài điều chỉnh đối với các tệp khối máy chủ Nginx của chúng tôi. Dựa trên các hướng dẫn điều kiện tiên quyết, bạn nên có tệp cấu hình cho trang web của mình trong /etc/nginx/sites-available/thư mục được định cấu hình để phản hồi với tên miền hoặc địa chỉ IP của máy chủ và được bảo vệ bằng chứng chỉ TLS / SSL. Chúng tôi sẽ sử dụng làm ví dụ ở đây, nhưng bạn nên thay thế đường dẫn đến tệp cấu hình của mình nếu thích hợp./etc/nginx/sites-available/thietkewebs.net

Ngoài ra, chúng tôi sẽ sử dụng làm thư mục gốc của cài đặt WordPress của chúng tôi trong hướng dẫn này. Một lần nữa, bạn nên sử dụng gốc web được chỉ định trong cấu hình của riêng bạn./var/www/thietkewebs.net

sudo nano /etc/nginx/sites-available/thietkewebs.net

File cấu hình full sẽ như thế này

server {
    listen 80;
    server_name thietkewebs.net www.thietkewebs.net;
    root /var/www/thietkewebs.net;

    index index.html index.htm index.php;

    location / {
       # try_files $uri $uri/ =404;
	try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     }

    location ~ /\.ht {
        deny all;
    }

    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;
    }

}

Khi bạn hoàn tất, hãy lưu và đóng tệp.

Bây giờ, hãy kiểm tra cấu hình của chúng tôi để tìm lỗi cú pháp bằng cách nhập:

sudo nginx -t

nếu trả về thông báo như vậy là cấu hình đã ok

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nếu không có lỗi nào được báo cáo, hãy tải lại Nginx bằng cách nhập:

sudo systemctl reload nginx

Bước 4 – Tải xuống WordPress

Bây giờ phần mềm máy chủ của bạn đã được định cấu hình, hãy tải xuống và thiết lập WordPress. Vì lý do bảo mật, bạn nên tải phiên bản mới nhất của WordPress trực tiếp từ trang web của dự án.

Thay đổi thành một thư mục có thể ghi và sau đó tải xuống bản phát hành nén bằng cách nhập:

sau khi tải về các bạn dùng phần mềm bitvise ssh client sftp up load lên mục /var/www/thietkewebs.net

Sau khi upload file wordpress-5.7-vi.zip lên đúng thư mục xong các bạn dùng lệnh cd truy cập vào thư mục có chứa source wordpress nhé!

cd /var/www/thietkewebs.net

Cài đặt unzip nếu chưa cài để xả nén file zip

sudo apt-get install zip unzip

Sau đó dùng lệnh unzip để xả nén zip ra nhé

unzip wordpress-5.7-vi.zip
Mặc định khi xả nén, sẽ có thêm 1 thư mục wordpress, các bạn vào thư mục wordpess Ctrl + A chọn tất cả và move hết ra bên ngoài thư mục gốc nhé
Sau khi move sẽ được như thế này, vậy là các bước tiến hành đã xong

Bây giờ các tệp của chúng tôi đã có sẵn, bạn sẽ chỉ định quyền sở hữu cho nhóm và người dùng www-data . Đây là người dùng và nhóm mà Nginx điều hành và Nginx sẽ cần có khả năng đọc và ghi các tệp 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/thietkewebs.net

Giao diện cài đặt wordpress bắt đầu, các bạn nhập database như đã tạo ở trên nhé!
Giao diện sau khi cài xong, chúc các bạn thành công

Bước 5: Cách cài đặt nhiều website wordpress trên nginx

Cái mấu chốt là các bạn có thể chạy được nhiều domain và nhiều website nhé! ở bài này netweb sẽ hướng dẫn chi tiết cho các bạn nhé!

Tạo thư mục web gốc cho demo.thietkewebs.net như sau:, subdomain cấu hình tương tự với domain mới nhé, domain mới thì chỉ việc thêm thao tác trỏ domain về thôi

sudo mkdir /var/www/demo.thietkewebs.net

Tiếp theo, chỉ định quyền sở hữu thư mục với biến môi trường $ USER, biến môi trường này sẽ tham chiếu đến người dùng hệ thống hiện tại của bạn:

sudo chown -R $USER:$USER /var/www/demo.thietkewebs.net

Sau đó, mở tệp cấu hình mới trong sites-available thư mục của Nginx bằng trình chỉnh sửa dòng lệnh ưa thích của bạn. Ở đây, chúng tôi sẽ sử dụng nano:

sudo nano /etc/nginx/sites-available/demo.thietkewebs.net

file cấu hình chuẩn

server {
    listen 80;
    server_name demo.thietkewebs.net www.demo.thietkewebs.net;
    root /var/www/demo.thietkewebs.net;

    index index.html index.htm index.php;

    location / {
       # try_files $uri $uri/ =404;
	try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     }

    location ~ /\.ht {
        deny all;
    }

    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;
    }


}

Kích hoạt cấu hình của bạn bằng cách liên kết đến tệp cấu hình từ sites-enabledthư mục của Nginx :

sudo ln -s /etc/nginx/sites-available/demo.thietkewebs.net /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
nano /var/www/demo.thietkewebs.net/index.html
<html>
  <head>
    <title>hello netweb</title>
  </head>
  <body>
    <h1>hello netweb</h1>
  </body>
</html>

Cài đặt ssll Let’s Encrypt  cho domain mới

Lấy chứng chỉ ssl cho domain mới, chỉ cần thay tên domain và lặp lại với nhiều domain khác cần cài

sudo certbot --nginx -d demo.thietkewebs.net -d www.demo.thietkewebs.net
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/demo.thietkewebs.net/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/demo.thietkewebs.net/privkey.pem
   Your cert will expire on 2021-08-04. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Đến đây thì đã hoàn thành cách cấu hình nhiều domain trên nginx và cài đặt ssl cho nhiều website, việc còn lại, là các bạn, tạo database và user theo bước 1 và cài lại wordpress theo bước 4 của bài này nhé! chúc các bạn thành công!

Bước 6: Kiểm tra hoạt động của server

Sử dụng câu lệnh để cài htop nếu chưa cài

sudo apt install htop

Sa khi cài xong, mỗi khi các bạn cần kiểm tra tình trạng server chỉ cần gõ lệnh htop là xong

htop
Tình trạng server như này load quá nhanh phải không các bạn, nếu các bạn tự cài thì sẽ tối ưu được server và tránh những phần mềm dư thừa nhé, chúc các bạn thành công!

Bình luận trên facebook netweb.vn