原创文章,转载请注明出处
https://qiedd.com/

0. 简介

在部署之前,我已经把旧的 WordPress 备份好了,现在需要在一台新的机器上部署

旧的 WordPress 是在宝塔上迁移过来的,有些地方可能需要修改

如果是全新安装,那么部署好环境,创建完数据库,直接安装就行

环境

System:Arch Linux

内存: 32G (建议内存大于2G)

Caddy:2.4.6 (Arch 官方源)

PHP : 8.0 (Arch 官方源)

Mariadb : 10.6.5 (Arch 官方源)

1. 安装

系统安装

可以选择 Vps2arch 来装好 Arch 系统,如果需要使用ZFS,可以参考 Wiki,和我写的这篇

安装环境

# 安装环境
pacman -S caddy php mariadb php-fpm tar zip ffmpeg imagemagick php-gd vim php-imagick php-intl --needed

# 设置systemd开机启动
systemctl enable php-fpm
systemctl enable caddy
systemctl enable mariadb

2. 配置环境

分别配置 PHP Caddy Mariadb

一、配置 PHP

# 修改配置文件
vim /etc/php/php-fpm.d/www.conf

# 使用vim搜索功能
# 输入 /listen.owner 然后回车,将
user = http
group = http

listen.owner = http
listen.group = http

# 改成caddy
user = caddy
group = caddy

listen.owner = caddy
listen.group = caddy

# 修改配置文件
vim /etc/php/php.ini

# 使用vim搜索功能
# 输入 extension=exif  然后回车,将
# ;extension=exif 和 ;extension=gd 前面的分号去掉
extension=curl
extension=exif
extension=gd
extension=iconv
extension=intl
extension=mysqli
extension=pdo_mysql

# 防跨站
user_ini.filename = ".user.ini"

# 然后在网站根目录下创建这个.user.ini的文件
vim /www/wordpress/.user.ini

# 文件内容
open_basedir=/www/wordpress/:/tmp/:/proc/

# 修改配置文件
vim /etc/php/conf.d/imagick.ini

# 取消注释
extension = imagick

二、配置Caddy

# Caddy的配置文件在这
cd /etc/caddy

# 修改Caddyfile
vim Caddyfile

这是我的Caddyfile,添加了 HTTP2/HTTP3 的支持,原本 Caddyfile 内的配置可以将其注释或者删掉

{
        servers :443 {
                protocol {
                        allow_h2c
                        experimental_http3
                }
        }
        servers :80 {
                protocol {
                        allow_h2c
                        experimental_http3
                }
        }
}
import /etc/caddy/conf.d/*

然后在 /etc/caddy/conf.d/ 中添加一个配置

# 添加配置
vim /etc/caddy/conf.d/wordpress.conf

*** 示例 ***
wordpress.com {
        log {
                output file /var/log/caddy/wordpress.log
        }
        root * /www/wordpress
        php_fastcgi unix//run/php-fpm/php-fpm.sock
        file_server
        encode zstd gzip
        @disallowed {
                path /xmlrpc.php
		path /wp-config.php
                path /readme.html
                path /*.txt
                path /*.sql
                path /.user.ini
                path /wp-content/uploads/*.php
                path /wp-content/uploads/*.log
        }
        rewrite @disallowed /index.php
}

三、配置Mariadb

我们已经上传好了备份好的 sql文件

# 安装Mariadb
mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

# 启动Mariadb
systemctl start mariadb.service

# 登录
mysql -uroot -p

# 设置mysql root密码
use mysql;
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
exit;

# 创建一个用户
mysql -uroot -p
create user 'wordpress'@'localhost'  IDENTIFIED BY '你的密码';

# 授权
GRANT ALL ON wordpress.* TO 'wordpress'@'localhost';
exit;

# 登录试试
mysql -uwordpress -p

# 然后在这个用户下创建数据库
create database wordpress;
use wordpress;
set names utf8;

# 导入旧sql(如果有)
source /root/backup.sql;
show tables;

四、导入旧网站

新建的 WordPress 请省略

# 解压
tar xvf backup.tar.gz /www/
mv 文件夹 wordpress

# 安全起见,我们不能用root来跑wordpress
chown -R caddy /www/wordpress
chgrp -R caddy /www/wordpress

五、修改旧配置

# 安全原因,将组和用户修改成caddy
chown -R caddy wordpress
chgrp -R caddy wordpress

# 编辑wp-config.php
define('DB_NAME','数据库名称');
define('DB_USER','数据库用户名');
define('DB_PASSWORD','数据库密码');

# 修改.user.ini
open_basedir=/www/wordpress/:/tmp/:/proc/

# 删除.htaccess
rm /www/wordpress/.htaccess

六、启动环境

systemctl start caddy
systemctl start php-fpm

0 条评论

发表回复

Avatar placeholder

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

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