跳至正文

Ubuntu 20.04 基于 Nginx 部署 WordPress

前言

WordPress是目前流行的开源内容管理系统(CMS)之一,WordPress可以用来开发任何类型的网站,无论是博客、小型企业还是大型企业。通过它的免费和高级插件和主题,WordPress网站可以快速扩展以提供高级功能。

前提条件

  • 准备全新的 Ubuntu 20.04 系统
  • 做好系统的备份(Check Points,Snapshots……)以防安装出错可以回滚系统

检查更新 Ubuntu 系统

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

检查系统是否 Ubuntu 20.04

lsb_release -a

安装 Nginx

sudo apt-get install nginx -y

查看 Nginx 运行状态

sudo systemctl status nginx

启动 Nginx

sudo systemctl start nginx

配置 Nginx 开机自启动

sudo systemctl enable nginx

安装数据库 MariaDB

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

运行以下命令提高数据库安全性。

sudo mysql_secure_installation 

安装 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

查看 PHP 版本

php -verson

创建 WordPress 数据库

sudo mysql -u root -p
CREATE DATABASE wordpress_db;
GRANT ALL ON wordpress_db.* TO 'wpuser'@'localhost' IDENTIFIED BY 'Password' WITH GRANT OPTION;

*更改 Password 为你的密码

FLUSH PRIVILEGES;

exit

编辑 Nginx 相关文件

创建 WordPress 根目录。

sudo mkdir /usr/local/lsws/wordpress/wordpress/wordpress

为 WordPress 创建 Nginx 文件。

sudo nano /etc/nginx/sites-available/wordpress.conf
server {             
            listen 80;             
            root /usr/local/lsws/wordpress/wordpress/wordpress;             
            index index.php index.html;             
            server_name SUBDOMAIN.DOMAIN.TLD;             
           
            access_log /var/log/nginx/www.access.log;             
            error_log /var/log/nginx/www.error.log;              

            location / {                            
                 try_files $uri $uri/ /index.php?$args;
            }
         
            location ~ \.php$ {
            include snippets/fastcgi-php.conf;                            
                 fastcgi_pass unix:/run/php/php7.4-fpm.sock;             
            }              

            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 为你的域名

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

nginx -t

创建链接

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

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

sudo systemctl reload nginx

下载和配置 WordPress

cd /usr/local/lsws/wordpress/wordpress/wordpress  
sudo wget https://cn.wordpress.org/latest-zh_CN.tar.gz  
sudo tar -zxvf latest-zh_CN.tar.gz  
sudo mv wordpress/* .  
sudo rm -rf wordpress latest-zh_CN.tar.gz

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

cd /www/wwwroot/www.kingsonho.com
sudo chown -R www-data:www-data * 
sudo chmod -R 755 *

配置 wp-config.php 文件

cd /usr/local/lsws/wordpress/wordpress/wordpress  
sudo mv wp-config-sample.php wp-config.php  
sudo nano wp-config.php
/** 在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 安装完成。


发表评论须遵守中华人民共和国相关法律法规。违规评论将会被删除。

Comments must subject to the relevant laws and regulations of the People’s Republic of China. Offending comments will be deleted.

《Ubuntu 20.04 基于 Nginx 部署 WordPress》有6个想法

  1. 说下走的一个弯路,nginx配置文件中有这么一句“fastcgi_pass unix:/run/php/php7.4-fpm.sock”,因为我安装PHP时可能因为库里面已经没有这个7.4版本,就安装了默认的新版,结果版本对不上,配置里这句就没法使用fpm,导致502 bad gateway,去掉这个版本号或者对应正确的就可以。

    1. 的确是的,之前Ubuntu 18的时候没有php7的包还得额外源安装,ubuntu 20就好了已经有了,不过现在用docker部署WordPress比手动部署方便多了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据