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