前言

WordPress是基于PHP和MySQL的免费开源内容管理系统(CMS)。 它是全球使用最广泛的CMS软件,截至2019年5月,它为排名前1000万个网站中[提供了超过30%的支持,并拥有在使用CMS构建的所有网站中,估计有60%的市场份额。

WordPress始于2003年,最开始仅为一款简单的博客系统,但现已发展成为具有数千款插件,小工具和主题功能完整的CMS系统。它是根据开源协议通用公共许可证(GPLv2或更高版本)进行授权。

前提条件

  • 准备全新的 Ubuntu 系统
  • 做好系统的备份以防安装出错可以回滚系统

检查更新 Ubuntu 系统

sudo apt-get update
sudo apt-get upgrade -y

1

检查系统版本

lsb_release -a

2

安装 Nginx

sudo apt-get install nginx -y

3

查看 Nginx 运行状态

sudo systemctl status nginx

4

启动 Nginx、配置 Nginx 开机自启动

sudo systemctl start nginx

sudo systemctl enable nginx

5

安装数据库 MariaDB

sudo apt-get install mariadb-server -y
sudo systemctl start mariadb
sudo systemctl enable mariadb

6

7

查看MeriaDB是否运行

service mysql status

8

安装脚本:mysql_secure_installation提高数据库服务器的安全性。

sudo mysql_secure_installation 

9

安装 PHP 7.4

sudo apt-get install php7.4 php7.4-cli php7.4-fpm php7.4-mysql php7.4-json php7.4-opcache php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl -y

10

查看 PHP 版本

php -verson

11

创建 WordPress 数据库

使用以下命令以 root 身份登录 MariaDB shell。

sudo mysql -u root -p

12

登录后,使用以下命令为 WordPress 创建数据库。

CREATE DATABASE wordpress_db;

13

然后输入以下命令为 WordPress 创建数据库用户。此命令还向用户授予 WordPress 数据库的所有权限。将 用户名密码 替换为你自己要设置的用户名和密码。

GRANT ALL ON wordpress_db.* TO '用户名'@'localhost' IDENTIFIED BY '密码' WITH GRANT OPTION;

14

刷新权限表以使更改生效,然后退出 MariaDB shell。

flush privileges;
exit;

15

编辑 Nginx 相关文件

创建 WordPress 根目录。

sudo mkdir /home/wordpress

16

server {             
            listen 80;                                    
            server_name SUBDOMAIN.DOMAIN.TLD ;     
            root /www/wwwroot/wordpress;  

            access_log /var/log/nginx/www.access.log;             
            location / {    
            index index.php index.html index.htm;
            	        autoindex on;
     		 autoindex_exact_size off;
     		 autoindex_localtime on;                        
                 try_files $uri $uri/ /index.php?$args;
            }
	 location ~ \.php$ {
   	 #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
   		 include fastcgi_params;
  		  fastcgi_intercept_errors on;
   		 fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
   		 fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}

         
            location ~ /\.ht {                            
                 deny all;             
            }             
            location = /favicon.ico {                            
                 log_not_found off;                            
                 access_log off;             
            }             
            location = /robots.txt {                            
                 allow all;                            
                 log_not_found off;                            
                 access_log off;             
            }             
            location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {                            
                 expires max;                            
                 log_not_found off;             
            }  
}

*替换 SUBDOMAIN.DOMAIN.TLD 为你的域名

17

检查上述配置文件的正确性

nginx -t

18

创建链接

cd /etc/nginx/sites-enabled  
sudo ln -s ../sites-available/wordpress.conf .

19

重新加载 Nginx 以应用更改的设置

sudo systemctl reload nginx

20

下载和配置 WordPress

cd /home/wordpress
sudo wget https://cn.wordpress.org/latest-zh_CN.tar.gz  
sudo tar -zxvf latest-zh_CN.tar.gz  

21

sudo mv wordpress/* .  
sudo rm -rf wordpress latest-zh_CN.tar.gz

22

更改文件所有权并且应用权限给 WordPress 所有文件

sudo chown -R www-data:www-data * 
sudo chmod -R 755 *

23

配置 wp-config.php 文件

cd /www/wwwroot/wordpress  
sudo mv wp-config-sample.php wp-config.php  
sudo nano wp-config.php

24

/** 在wp-config.php文件中找出并更改以下内容 */ 
...  
...  
define('DB_NAME', 'wordpress_db');  
define('DB_USER', 'wpuser');  
define('DB_PASSWORD', 'Passw0rd!');  
...  
... 
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' ); 
... 
...

为了保证 WordPress 网站的安全,在上面的 WordPress 配置文件中,在数据库配置选项之后,通过 https://api.wordpress.org/secret-key/1.1/salt/ 生成安全密钥,粘贴在配置中。

安装 WordPress

在浏览器中访问你的域名,根据 WordPress 设置指引完成最后的配置。

WordPress 安装完成。


参考:Ubuntu 20.04 基于 Nginx 部署 WordPress – 我的it技术 (kingsonho.com)