Cài đặt WordPress trên CentOS8 và CentOS Stream 8 bằng NGINX

03.04.21 02:45 PM Nhận xét Bởi Anln

Nginx là một máy chủ sử dụng phổ biến giao thức HTTP, HTTPS, SMTP, POP3 và IMAP, cũng như dùng làm cân bằng tải (load balancer), HTTP cache và máy chủ web (web server). Nginx tập trung vào việc phục vụ số lượng kết nối đồng thời lớn (high concurrency), hiệu suất cao và sử dụng bộ nhớ thấp. Nginx được biết đến bởi sự ổn định cao, nhiều tính năng, cấu hình đơn giản và tiết kiệm tài nguyên.

Trong bài này chúng ta sẽ thực hiện cài đặt Nginx, cài đặt WordPress, cài đặt Mariadb trên máy chủ CentOS 8 sau đó cấu hình để kích hoạt thành công dịch vụ Web. IP máy chủ CentOS8 giả lập là: 66.0.0.9

Tương tự với CentOS Stream 8 các bạn cài một bản song song để cảm nhận, hoặc khi cài giả lập thì tắt CentOS 8 để máy bộ nhớ RAM và Ổ cứng.

Bước 0: Sửa Hosts file và Hostname của máy cài Nginx

#vi /etc/hosts 

9.9.9.10  web.daihockhonggiay.com  web

#vi /etc/hostname

web

Bước 1: Cài đặt một số gói bổ sung

dnf makecache 

dnf -y install epel-release

dnf install yum-utils -y

Bước 2. Tạo file "nginx.repo" (phải cài từ Internet vì trong đĩa không có Nginx)

vi /etc/yum.repos.d/nginx.repo

Viết nội dung cho file "nginx.repo"

[nginx-stable]

name=nginx stable repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=1

enabled=1

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

Bước 3: Cài đặt Nginx, PHP và các gói bổ trợ

dnf install mariadb mariadb-server nginx \

>php php-cli php-json php-gd php-mbstring php-pdo php-xml \

> php-mysqlnd php-pecl-zip wget

Bước 4: Vô hiệu hóa Apache (httpd) và kích hoạt nginx, php-fpm

systemctl stop httpd

systemctl disable httpd

systemctl start nginx

systemctl enable nginx

systemctl start php-fpm

systemctl enable php-fpm

systemctl start mariadb.service

systemctl enable mariadb.service

Bước 5: Kiểm tra phiên bản của nginx và php-fpm

nginx -v

php-fpm -v

Bước 6: Mở Port 80 cho Web Server

systemctl start firewalld

firewall-cmd --permanent --zone=public --add-port=80/tcp

firewall-cmd --reload

firewall-cmd --list-all

Bước 7: Mở File default.conf và xóa sạch rồi copy đoạn sau:

vi /etc/nginx/conf.d/default.conf

 server {

    listen  80;

          server_name  web. daihockhonggiay.com;

          #charset koi8-r;

    #access_log  /var/log/nginx/log/host.access.log  main;

     location / {

     root  /usr/share/nginx/html;

    index  index.html index.htm index.php;

    }

    #error_page  404  /404.html;

      # redirect server error pages to the static page /50x.html

    #

    error_page  500 502 503 504  /50x.html;

    location = /50x.html {

    root  /usr/share/nginx/html;

    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80

        #

    #location ~ \.php$ {

    #  proxy_pass  http://127.0.0.1;

    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

    #

    location ~ \.php$ {

    root  /usr/share/nginx/html;

    fastcgi_pass  unix:/var/run/php5-fpm.sock;

         fastcgi_index  index.php;

    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

    include  fastcgi_params;

    }

    # deny access to .htaccess files, if Apache's document root

    # concurs with nginx's one

    #

    #location ~ /\.ht {

    #  deny  all;

    #}

 }              

Bước 8: Mở File nginx.conf: vi /etc/nginx/nginx.conf

[root@centos7 ~]# vi /etc/nginx/nginx.conf

    user  nginx; <= Gán quyền cho user nginx

    worker_processes  1;  <= Cần chỉnh lại worker_processes bằng với số lượng CPU core bạn được sử dụng​

     error_log  /var/log/nginx/error.log warn;  <= Cấu hình đường dẫn file error_log

    pid  /var/run/nginx.pid;

     events {

    worker_connections  1024;

    }

      http {

     include  /etc/nginx/mime.types;

    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

     '$status $body_bytes_sent "$http_referer" '

     '"$http_user_agent" "$http_x_forwarded_for"';

      access_log  /var/log/nginx/access.log  main; <= Cấu hình log access

    sendfile  on;

          server_tokens off;  <= Cấu hình ẩn phiên bản nginx đang sử dụng

      #tcp_nopush  on;

      keepalive_timeout  65;

    #gzip  on;

    fastcgi_buffers  8 16k;

     fastcgi_buffer_size  32k;

     fastcgi_connect_timeout 300;

    fastcgi_send_timeout  300;

     fastcgi_read_timeout  300;

     include /etc/nginx/conf.d/*.conf; <= Đường dẫn gán file cấu hình virtual hosts cho từng site

     }

 

Bước 9: Thiết lập lại User và Group chạy PHP

vi /etc/php-fpm.d/www.conf

Gõ lệnh :set nu tìm đến dòng 24,26,38,48,49 bỏ dấu ; và sửa lại thành

listen = /var/run/php5-fpm.sock

listen.owner = nginx

listen.group = nginx

user = nginx

group = nginx

Lưu lại thiết lập và khởi động lại PHP-FPM

systemctl restart php-fpm

systemctl restart nginx

Bước 10: đổi lại mật khẩu của tài khoản Root quản trị Mysql server

/usr/bin/mysqladmin -u  root  password 123456a@

Bước 11: Đăng nhập và tạo tài khoản Database

mysql -u root -p

MariaDB> CREATE DATABASE dhkg;

MariaDB> GRANT ALL ON dhkg.* TO 'anln'@'localhost' IDENTIFIED BY '123456a@';

MariaDB> FLUSH PRIVILEGES;

MariaDB>quit

Bước 12: Chuyển tới thư mục html trong nginx xóa 2 file và tải wordpress về

cd /usr/share/nginx/html

wget https://wordpress.org/latest.tar.gz

tar -zxvf latest.tar.gz

ls -lh

Bước 13:dịch chuyển toàn bộ file trong thư mục Wordpress ra thư mục html

Dùng WinsCP vào thư mục Wordpress mới giải nén

/usr/share/nginx/html/wordpress => chọn Move to:

 /usr/share/nginx/html/*.*

Bước 14: Cấp quyền thư mục

chown -Rf apache:apache ./html/

chmod -Rf 775 ./html/

Bước 15: Cấp quyền chủ sở hữu cho toàn bộ thư mục

chown -R nginx:nginx /var/lib/php/session/

Bước 16: Khởi động lại php-fpm, nginx

systemctl restart php-fpm

systemctl restart nginx

Bước 17:Tạo file cấu hình cho Wordpress (phải đặt trong thư mục httpd)

vi /etc/httpd/conf.d/wordpress.conf

<VirtualHost *:80>

ServerAdmin root@localhost

DocumentRoot /usr/share/nginx/html

<Directory "/usr/share/nginx/html">

Options Indexes FollowSymLinks

AllowOverride all

Require all granted

</Directory>

ErrorLog /var/log/nginx/wordpress_error.log

CustomLog /var/log/nginx/wordpress_access.log common

</VirtualHost>

Bước 18: Khởi động lại dịch vụ nginx 

systemctl restart nginx

Bước 19: Truy cập bằng địa chỉ ip để cấu hình Wordpress

http://66.0.0.9/wp-admin/setup-config.php

database name: dhkg

user: anln

pass: 123456a@

Trong lúc install nếu gặp đoạn chèn code thì vào:

/usr/share/nginx/html tạo một file (wp-config.php) rồi copy nội dung vào

Bước 20: Điền user name và pass cho trang quản trị admin của wordpress

User: admin

Pass: qwertyuiop!@#$%12345678A

Kiểm tra kết quả

Chú ý: nêu muốn đổi thư mục thì phải sửa đường dẫn và phải phân quyền cho thư mục

mkdir -p /nginx/log

touch /nginx/log/error.log

mkdir -p /nginx/html

chown -R nginx:nginx /nginx (Trao toàn bộ thư mục /home/nginx cho user và group)

Với kinh nghiệm cài đặt thì 2 bản CentOS 8 và CentOS Stream 8 là giống hệt nhau. Trên CentOS Stream 8 có đẩy đủ upate hơn. 

           ----------------------*****--------------------

            Người viết bài: ThS. Lê Ngọc An

Chia sẻ -