ubuntu20.04 & caddy2 & mysql8的wordpress部署!

/ 0评 / 0

最近在尝试在全新的环境下部署wordpress,顺便实践一下比较新的技术栈。(尤其是caddy2)
由于是工作笔记性质的文章,所以是保姆级教学。

天啊所以你怎么到现在还在部署wordpress
为了过备案容易吗我

服务器基础配置与软件安装

这次部署的服务器是腾讯云的ubuntu20.04镜像,自带镜像源。
所以一开始先安装基础软件。这里省略了新机的ssh配置。

sudo apt update

安装mysql 8并初始化数据库

sudo apt install mysql-server

安装完成后不知道是不是腾讯云+ubuntu20.04+mysql8特有的现象,并没有给出root密码,因此我们需要自己重置一下。

因此无法访问root用户,所以我们需要用特殊的配置文件登录

sudo mysql --defaults-file=/etc/mysql/debian.cnf

之后显示mysql >后,可以尝试show databases;,如果打印出库名,便说明登录成功,权限正确。之后使用

use mysql;
ALTER USER 'root'@'localhost'  IDENTIFIED  WITH caching_sha2_password BY 'new_password';
# 5.7版本之前可以用下面这句,此方法废弃的原因是mysql废弃了PASSWORD函数
# SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
FLUSH PRIVILEGES;  # 刷新权限

之后为wordpress建立新的用户和数据库

# 创建一个utf8mb4字符集utf8mb4_general_ci编码的数据库wordpress
CREATE DATABASE IF NOT EXISTS wordpress DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
# 创建一个名为wordpress密码为wordpress_password的用户
CREATE USER wordpress IDENTIFIED  WITH caching_sha2_password BY 'wordpress_password';
# 名为wordpress的本地用户授予wordpress数据库所有权限。数据库不在本机可以换成部署机ip或者使用‘%’不限制
grant all privileges on wordpress.* to ‘wordpress’@’localhost’;
FLUSH PRIVILEGES;  # 刷新权限
exit; # 退出数据库

安装php7-fpm

执行下列命令

sudo apt install php7.4-fpm php7.4-mysql php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-xmlrpc

之后使用php -v查看是否安装成功

安装并配置caddy

Ubuntu的最新安装方法可以查看这个链接

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

安装完成后可以访问ip查看部署是否成功。(记得开安全组)
之后配置文件在/etc/caddy/Caddyfile。使用vim /etc/caddy/Caddyfile修改该文件。

xxxxx.com {
    tls [email protected]  # 申请https证书所用邮箱
    root * /var/www/html  # wordpress即将放置的目录
    encode gzip
    php_fastcgi unix//run/php/php-fpm.sock
    file_server

    @disallowed {
        path /xmlrpc.php
        path *.sql
        path /wp-content/uploads/*.php
    }

    rewrite @disallowed '/index.php'
}

只后下列命令重载配置

sudo service caddy reload

这里顺带记录一些caddy的常用配置

# 纯静态服务器
example.com

root * /var/www
file_server

# 重定向
# :80 { 这样写是绑定端口
aaa.com {
    redir https://bbb.com{uri}

    # 路由修改
    redir /add     /add/
    redir /remove/ /remove

    # 内部重定向(浏览器无感)
    # rewrite /add     /add/
    # rewrite /remove/ /remove
}

# 反向代理
reverse_proxy localhost:5000

# 反向代理带路由匹配
root * /var/www
reverse_proxy /api/* localhost:5000
file_server

更多实例请参考官方文档

上传wordpress并配置

建立文件夹

sudo mkdir -p /var/www
cd /var/www

最新版wordpress可以在官方github仓库下载到。https://github.com/WordPress/WordPress
如果连服务器github速度比较快可以考虑直接
git clone https://github.com/WordPress/WordPress.git
否则建议去这里下载zip包用scp上传。
上传后可使用unzip解压,记得用'mv'将文件夹名字改为html(与上文caddyfile中的配置路径一致即可)。之后记得查看cat /etc/passwd检查是否有www-data用户。
如果有记得将该文件夹所有者改为www-data

sudo chown -R www-data:www-data html/

之后就可以访问网址进行wordpress配置啦。
如果你和我设置一样,没有修改,数据库地址为localhost,用户名为wordpress,密码为wordpress_password,数据库名同样是wordpress
之后用UI的设置就和以前一样啦~!
Bless u!!!

发表评论

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

不够聪明的人工智能可进不来哦 *