Cài đặt Wordpress trên LEMP

Last modified by Admin on 2025/03/12 11:49

1.Cấu trúc thư mục của Vhost NGINX trong linux

Trên apache server, mỗi website sẽ có một thư mục chứa mà nguồn riêng, hay còn gọi là thư mục gốc. nhiệm vụ của server là dựa vào domain đang request để gọi tới đúng thư mục gốc.

Ta sẽ tạo cấu trúc cho website được đặt trong /var/www/[your-domain]

sudo mkdir /var/www/[your-domain]

Đổi quyền folder cho người dùng hiện tại, ta dùng lệnh:

sudo chown –R $USER:$USER /var/www/[your-domain]/

image2023-5-15_15-51-30.png

Truy cập vào file config của nginx để chỉnh sửa đường dẫn tới vhost vừa tạo ta dùng lệnh:

sudo vim /etc/nginx/sites-available/[your-domain]

image2023-5-15_15-51-41.png

server {
 listen 80;
 server_name longninja www.longninja;
 root /var/www/longninja;
 index index.html index.htm index.php;

   location / {
        try_files $uri %uri/ =404;
   }
   location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
   }
   location ~ /\.ht {
        deny all;
   }
}

Thay những vị trí đánh dấu là domain của bạn. sau đó save file lại bằng nút ESC -> :wq -> ENTER

Tiếp theo, ta sử dụng a2ensite để kích hoạt virtual host vừa tạo:

sudo ln –s /etc/nginx/sites-available/[your-domain] /etc/nginx/sites-enabled/

image2023-5-15_15-51-54.png

Ta cũng cần tắt website mặt định của nginx, ta nhập lệnh:

sudo unlink /etc/nginx/sites-enabled/default

Ta kiểm tra cú pháp file cấu hình nginx:

sudo nginx -t

image2023-5-15_15-52-0.png

Sau đó reload lại dịch vụ để xác nhận các thay đổi

systemctl reload nginx

image2023-5-15_15-52-10.png

2. Tạo database và user cho wordpress

Ta tạo riêng database và user cho wordpress có quyền quản lý và lưu trữ:

sudo su
mysql –u root –p

image2023-5-15_15-52-24.png

  • Sau khi nhập password và truy cập thành công, ta tiến hành tạo database:
create database wordpress default character set utf8 collate utf_8_unicode_ci;

image2023-5-15_15-52-35.png

Tiếp theo là tạo user “wordpress” riêng để quản lý cho database đó:

create user '[your-username]' @'%' identified with mysql_native_password by '[your-password]';

image2023-5-15_15-52-47.png

Lưu ý: mật khẩu phải có chữ in hoa, in thường, số.

  • Cấp quyền cho user vừa tạo quản lí database wordpress:
grant all on wordpress.* to '[your-username] '@'%';

image2023-5-15_15-52-57.png

  • Xác nhận các thay đổi vừa rồi và thoát khởi console của mysql :
flush privileges;
exit;

image2023-5-15_15-53-2.png

3. Cài đặt các phần mở rộng của php

Để có thể chạy được wordpress, ta cần cài đặt thêm các thư viện của php:

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

Restart lại  dịch vụ của PHP-FPM để xác nhận các thay đổi.

sudo systemctl restart php7.4-fpm

4. Cấu hình để nginx

Bạn nên cấ hình cho trang web của mình trong thư mục nhận request với domain hoặc địa chỉ ip và được bảo về bằng chứng chỉ TLS/SSL.

sudo vim /etc/nginx/sites-available/[your-domain]

ta thêm các dòng sau vào file để cho phép ghi đè file.

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

image2023-5-15_15-53-24.png

Tiếp theo, ta cần thay đổi site 404 về index.php theo cú pháp:

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

image2023-5-15_15-53-34.png

Kiểm tra lại các config xem đã đúng cấu hình hay chưa, ta dùng lệnh:

sudo nginx –t

image2023-5-15_15-53-48.png

Nếu  hiển kết quả như trên nghĩa là bạn đã cài đúng cú pháp. Restart lại dịch vụ để áp dụng các thay đổi.

sudo systemctl reload nginx

5. Cài đặt Wordpress

    1. Tải và cài wordpress

Ta tải bản mới nhất của wordpress tại thư mục /tmp:

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

Tiến hành giải nén thư mục wordpress vừa tải

tar xzvf latest.tar.gz

Copy file config từ mẫu có sẵn trong thư mục wordpress để sử dụng sau này:

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

Ta sẽ tạo thư mục upgrade để wordpress không gặp lỗi khi tự động cập nhật:

mkdir /tmp/wordpress/wp-content/upgrade

Sau đó copy thư mực đó vào thư mục vhost đã tạo bên trên:

sudo cp –a /tmp/wordpress/. /var/www/[your-domain]

b. Cấu hình wordpress

Đầu tiên, ta cần cấp quyền cho nginx sử dụng thư mục vhost trên. nginx có tên user và group user là www-data:

sudo chown –r www-data:www-data /var/www/[your-domain]

image2023-5-15_15-54-1.png

Tiếp theo, ta gắn quyền 750 cho thư mục và 640 cho các file bằng 2 lệnh sau:

sudo find /var/www/[your-domain]/ -type d –exec chmod 750 {} \;
sudo find /var/www/[your-domain]/ -type f –exec chmod 640 {} \;

Ta sẽ sử dụng trình tạo key tự động để thêm vào trong file config.

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

Mở file config lên và ghi đè vào nội dung key vào file:

sudo vim /var/www/[your-domain]/wp-config.php

image2023-5-15_15-54-13.png

image2023-5-15_15-54-20.png

Tiếp theo, ta sẽ thay thông tin database vào file config này:

image2023-5-15_15-54-26.png

            Thay đổi các giá trị theo cài đặt phía trên. Sau đó lưu file :wq -> Enter

c. Hoàn thành các thiết lập cuối

Ta truy cập vào : [your_ip]/wp-admin/install.php

image2023-5-15_15-54-34.png

Đăng nhập để xác nhận thành công.

image2023-5-15_15-54-40.png

Kết quả cuối cùng:

image2023-5-15_15-54-47.png