WP折腾记录

125次阅读

上一次折腾 blog 还是 2016 年,在 github 上部署 hexo 静态站点,限制颇多;

最近开始记录 lindon 成长及生活的点滴,因此搭建了这个网站,框架用的是开源的 wordpress,theme 使用的是 puock,以下是遇见各类问题修正后的部署过程,主题配置略过。

个人使用,目前尚未考虑性能优化,例如缓存服务的配置、database 的优化、CDN 的引入、DNS 的就近路由等; 给云计算从业者或学习者留个问题,当并发用户数规模剧增时,如何通过云计算的产品能力实现系统的横向动态扩展,包括 DB 层面的横向扩展(Scale Out),以实现高性能、高可用、高可靠。

一、安装 mysql 数据库
apt install default-mysql-server default-mysql-client
或者
apt install mariadb-server mariadb-client

开启并设置开机启动:systemctl start mysql.service
systemctl enable mysql.service

使用 mysql 命令来登录:mysql

创建一个由 WordPress 专用的数据库:CREATE DATABASE wordpress;

创建一个新的 mysql 用户,Wordpress 将以这个用户的名义来操作刚才建立的 wordpress 数据库:CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'XXXX';

将“wordpress”库的操作权限授予我们新建的用户“wpuser”:GRANT ALL ON wordpress.* TO 'wpuser'@'localhost';

刚开始 root 用户的是没有登录密码的,我们也可以给他设一个密码:mysqladmin -u root password 'XXXXX'

二、安装 PHP

apt install apt-transport-https lsb-release
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg # 下载签名密钥
sh -c 'echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main"> /etc/apt/sources.list.d/php.list' # 将 Ondrej 的仓库添加到来源列表.
apt update

apt install php7.4 php7.4-common php7.4-cli
apt install php7.4-curl php7.4-json php7.4-gd php7.4-mbstring php7.4-intl php7.4-bcmath php7.4-bz2 php7.3-readline php7.3-zip
apt install php7.4-fpm

有点奇怪,指定安装 7.4,实际安装了 8.2

三、安装 WP
cd /home/wwwroot/
wget -c https://cn.wordpress.org/latest-zh_CN.tar.gz
tar -xzvf latest-zh_CN.tar.gz
#如需备份 wp 原始文件
cp -r wordpress wordpress.bak.20230917

四、修改 nginx、php 配置文件
已经安装 nginx 的情况下
cd /etc/nginx/conf/
vim nginx.conf

修改 php 中的配置文件
cd /etc/php/8.2/fpm/pool.d

vim www.conf

user = www-data # 这里的 user 需要匹配 nginx.conf 中的 user
group = www-data
不能修改成 root

listen.owner = www-data # 这里的 listen.owner 同样需要匹配 nginx.conf 中的 user
listen.group = www-data
不能修改成 root

如果需要修改的话,改变 /var/www/wordpress 目录的用户及组:chown -R www-data:www-data wordpress

cd /etc/nginx/conf/conf.d
vim v2ray.conf

root /var/www/wordpress; # wordpress 程序将被放在这个目录下
index index.php;

location / {try_files $uri $uri/ /index.php?$args;}

location ~ .php$ {
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
client_max_body_size 20M;
#NOTE: 修改上传文件的大小限制为 20M
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}

五、修改 WordPress 配置文件
cp /home/wwwroot/wordpress/wp-config-sample.php /home/wwwroot/wordpress/wp-config.php
vim /home/wwwroot/wordpress/wp-config.php

wp-config.php 文件中有两处需要修改,一个是数据库信息,另一个是认证设置:/* Database settings */
define('DB_NAME', 'wordpress');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'password');

通过命令获取认证信息
curl -s https://api.wordpress.org/secret-key/1.1/salt/

define('AUTH_KEY', '4j:.pGZpAf#RP0Y6w5|F>s=fa{yzQ|^dsnw-%Wn|)@m--|U7Z'); 
define('SECURE_AUTH_KEY', '2bI|zKxvVW]Bo~.v*H@S[3cGF[xs{hlP*[tMz7c*k ZS'); 
define('LOGGED_IN_KEY', 'lHV*(Svcm)1_cyHB-VV+r)>6zp]A%YS8Ly#xu!C2)-/P04<'); 
define('NONCE_KEY', 'P_mu17Cr0*-cRrvlwm@=7+RkptS?z!<pM}{t5W0F#nr$B>6;q@XZ');
define('AUTH_SALT', '(yj BT#EI{252/gf% Y!E8>rVz-Oaa9A.x|Q TbFd6+wT50Z4%]');
define('SECURE_AUTH_SALT', '[$/rAv+r9{HTM8G{G$_XV{v^7<1U-fWx3.4[3p-RtAG~>'); 
define('LOGGED_IN_SALT', '>jperh9{$W??p_%J@e]5v=yTxa11a*7ZII=#%|');
define('NONCE_SALT', 'LBy0dl:hxaT|l!z,[mv.H]x[~taaBct;l{Rfqw!~q!JnZ6U-V]d&+kb');

六、重启服务
#php 相关配置的修改
vim /etc/php/8.2/fpm/php.ini

systemctl restart php8.2-fpm.service
systemctl restart nginx.service

七、备份 WP 及数据库
安装插件 UpdraftPlus,可配置定期备份至本地或远程存储,具体操作略。

如需要更换 php 版本,可先彻底卸载
一、删除 php 的相关包及配置
apt-get autoremove php7*
二、删除关联
sudo find /etc -name “php” |xargs rm -rf
三、清除 dept 列表
sudo apt purge dpkg -l | grep php| awk '{print $2}' |tr "\n" " "
四、检查是否卸载干净(无返回就是卸载完成)
dpkg -l | grep php7.0

正文完