搭建环境

  • 机器:本地小主机n3540
  • 系统:debian11
  • 搭建方式:docker+wordpress(php7.4版本)+nginx+Ripro-v5 7.13

n3540安装debian11:https://yilancn.top/posts/01b4e1a9a784/

docker环境部署:https://yilancn.top/posts/b59f3b919c93/

项目文件创建

  • 创建项目目录
1
mkdir -p /root/data/docker_data/wordpress_ripro
  • 移动到项目目录下
1
cd /root/data/docker_data/wordpress_ripro
  • 创建文件
1
touch docker-compose.yml nginx.conf php.ini uploads.ini

复制代码到对应的文件中

  • docker-compose文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
version: '3.0'

services:
db:
image: mysql:8.0
container_name: wordpress-db
restart: unless-stopped
command: --max-binlog-size=200M --expire-logs-days=2
environment:
MYSQL_ROOT_PASSWORD: aPvpUn4d29www # 可修改
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress # 可修改
MYSQL_PASSWORD: aPvpUn4d29 # 可修改
volumes:
- './db:/var/lib/mysql'
networks:
- default

app:
image: wordpress:5.8-fpm # 使用带 PHP 7.4 的 WordPress 版本
container_name: wordpress-app
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: aPvpUn4d29 # 与MYSQL_PASSWORD一致
volumes:
- './app:/var/www/html'
- './uploads.ini:/usr/local/etc/php/conf.d/uploads.ini' #解除上传文件限制
- './php.ini:/usr/local/etc/php/php.ini' #php配置文件
depends_on:
- db
networks:
- default

nginx:
image: nginx:alpine # 使用 Nginx 作为 Web 服务器
container_name: wordpress-nginx
restart: unless-stopped
ports:
- 8989:80 # 冒号左边可以更改,但是后续要访问IP:改动的端口。例如改了9999,就是IP:9999
volumes:
- './nginx.conf:/etc/nginx/nginx.conf' # 自定义 Nginx 配置
- './app:/var/www/html' # 共享 WordPress 文件
depends_on:
- app
networks:
- default

networks:
default:
name: wordpress_network
  • nginx.conf配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
worker_processes 1;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;

# 设定最大上传文件大小
client_max_body_size 64M;

server {
listen 80;

server_name localhost;

root /var/www/html;
index index.php index.html index.htm;

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

location ~ \.php$ {
include fastcgi_params;
fastcgi_pass wordpress-app:9000; # 指定 PHP-FPM 容器
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}

location ~ /\.ht {
deny all;
}
}
}
  • uploads.ini文件
1
2
3
upload_max_filesize=20M
post_max_size=20M
memory_limit=50M

upload_max_filesize:这个配置项控制允许上传的最大文件大小,设置为 20MB。

post_max_size:这个配置项控制通过 POST 请求传递的数据的最大大小(包括文件上传),设置为 20MB。

memory_limit:这个配置项控制 PHP 脚本可以使用的最大内存,设置为 50MB。

  • php.ini文件
1
extension=swoole_loader_74_nts.so

运行项目

/root/data/docker_data/wordpress_ripro目录下执行

1
docker-compose up -d

文件目录

查看服务运行状态

1
docker-compose ps

服务状态

安装wordpress

浏览器地址栏输入IP:8989访问站点;选择简体中文点击继续

安装wordpress

把密码复制下来,其他自定义,点击安装wordpress

安装wordpress步骤2

点击登陆

安装wordpress步骤3

输入用户名和密码

输入用户名名和密码

安装Ripro-v5 主题

进入网站后台

依次点击外观主题安装主题

安装主题

依次点击上传主题选择文件选择主题文件打开

安装主题

然后点击立即安装

安装成功,点击启用

启用主题

安装php扩展

点击下载 unix PHP7.4 Swoole Loader扩展文件

安装扩展

把下载好的swoole_loader_74_nts.so上传到服务器的项目目录下

上传扩展文件到项目目录

将php扩展文件复制到容器中:

1
docker cp /root/data/docker_data/wordpress_ripro/swoole_loader_74_nts.so wordpress-app:/usr/local/lib/php/extensions/no-debug-non-zts-20190902/swoole_loader_74_nts.so

docker cp命令解释:

  1. docker cp
    • docker cp 命令用于在宿主机和 Docker 容器之间复制文件或目录。可以将文件从宿主机复制到容器,也可以从容器复制到宿主机。
  2. /root/data/docker_data/wordpress_ripro/swoole_loader_74_nts.so
    • 这是宿主机上的文件路径,表示你在本地系统中的某个目录下的文件 swoole_loader_74_nts.so
    • 该文件是一个 PHP 扩展文件,通常用于加载 Swoole 扩展,适用于 PHP 7.4 的非线程安全 (NTS) 版本。
  3. wordpress-app
    • 这是 Docker 容器的名称或 ID。docker cp 命令需要知道要把文件复制到哪个容器中。
    • 在这个例子中,容器的名称是 wordpress-app
  4. :/usr/local/lib/php/extensions/no-debug-non-zts-20190902/swoole_loader_74_nts.so
    • 这是文件在容器内的目标路径。docker cp 将文件复制到容器内的这个位置。
    • /usr/local/lib/php/extensions/no-debug-non-zts-20190902/ 是 PHP 扩展的目录,no-debug-non-zts-20190902 表示 PHP 7.4 的扩展目录版本。
    • swoole_loader_74_nts.so:在容器中,文件将被放置在这个路径下,并且保持相同的文件名。

总之这条命令的目的是将宿主机 /root/data/docker_data/wordpress_ripro/ 目录下的 swoole_loader_74_nts.so 文件复制到名为 wordpress-app 的 Docker 容器的路径 /usr/local/lib/php/extensions/no-debug-non-zts-20190902/ 中。

这通常用于在容器中安装或更新 PHP 扩展,如 Swoole loader,尤其是在容器化的 PHP 环境中运行 WordPress 或其他 PHP 应用时。

注意:docker cp命令的/usr/local/lib/php/extensions/no-debug-non-zts-20190902要根据安装扩展那张图第二个步骤里面的路径做相应更改。

复制扩展到容器内

重启服务

1
docker-compose restart app

再次访问ip:8989

成功搭建

激活主题

ripro-v5-active.php上传到服务器的项目目录下。

执行:

1
docker cp /root/data/docker_data/wordpress_ripro/ripro-v5-active.php wordpress-app:/var/www/html/ripro-v5-active.php

进入 WordPress 容器,确保文件已成功复制到 /var/www/html/ 目录:

1
2
docker exec -it wordpress-app bash
ls /var/www/html/

能看到 ripro-v5-active.php 文件在列表中。

复制完成后,能够通过浏览器访问这个 PHP 文件,URL 格式如下:

http://<你的服务器IP>:8989/ripro-v5-active.php

成功激活

其他相关命令:

1.进入 wordpress-app 容器

运行以下命令进入 WordPress 容器的终端:

1
docker exec -it wordpress-app bash

2.查看 PHP 版本

进入容器后,使用以下命令查看 PHP 版本:

1
php -v

这会显示当前容器中安装的 PHP 版本。

3.确认 swoole_loader74.so 扩展是否正确安装并加载。

1
php -m | grep swoole

如果没有看到 swoole 扩展,说明加载失败,可能是路径错误或 php.ini 配置不正确。

4.退出容器

完成查看后,输入 exit 来退出容器的 Shell:

1
exit

结语

相关资料获取方式:后台回复riprov5

主题源码源自网络,安全性自行检测,仅供学习使用