本文最后更新于 103 天前,其中的信息可能已经有所发展或是发生改变。
我也不知道为什么要写这个东西,可能就是单纯想写?或者修改配置文件的时候被容器内部恶心到了?凸(艹皿艹 ) 嘛~ 就当记录一下这个内网搭建的wordpress,应该如何解开wordpress文件上传限制,上传自己想要的主题来装饰一下自己的wordpress,也算是加深一下对容器内部配置文件的理解
先叠甲:这个不是解除限制,只是设置了新的上限而已
正片开始
这边用mobaxterm来演示,hexhub也是同样的效果
一、创建配置文件uploads.ini
先在wordpress的容易目录下(例如我的路径/home/yxwa/wordpress-compose/)创建一个配置文件uploads.ini
upload_max_filesize=64M //这些数据都可以修改 但不建议过大
post_max_size=64M
memory_limit=128M

确保 uploads.ini 文件权限允许 Docker 进程读取
ls -l /home/yxwa/wordpress-compose/uploads.ini
文件权限至少是 -rw-r--r-- 或类似,让所有用户都可读,至少docker容器可读
确保权限正确:
chmod 644 /home/yxwa/wordpress-config/uploads.ini
二、修改docker-compose.yml文件的配置

version: '3.8'
services:
wordpress:
image: wordpress:latest
depends_on:
- db
- redis
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpressuser
WORDPRESS_DB_PASSWORD: wordpresspassword
WORDPRESS_DB_NAME: wordpressdb
WORDPRESS_REDIS_HOST: redis
ports:
- "8080:80" # 注意这里必须是数组格式
volumes:
- wordpress_data:/var/www/html
- /home/yxwa/你的wordpress目录/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
#一定要确保路径是正确的,否则会失败
退出后重启容器
docker-compose down
docker-compose up -d
手动检查挂载文件是否存在
sudo docker exec -it 你的容器名称 ls -l /usr/local/etc/php/conf.d/

看到uploads.ini文件代表挂载成功
验证容器确认配置是否生效:
docker exec -it <wordpress_container_name> bash
php -i | grep upload_max_filesize
php -i | grep post_max_size

返回这样的结果说明成功了
ヾ(@^▽^@)ノ恭喜你可以上传中意的主题ヾ(@^▽^@)ノ
进入容器手动修改
说明:这一步只能临时修改容器内部配置,如果容器再次重启,新添加、修改的配置文件都会失效,必定会回到初始状态,因此最好在前面的步骤中就成功挂载uploads.ini配置文件。这一步只是作为容器内部学习而保留。
确认正在运行中的容器,找的wordpress容器那一行
sudo docker ps

3.1 进入运行中的容器
docker exec -it wordpress-compose-wordpress-1 bash

3.2 检查php配置文件中是否存在这行命令Loaded Configuration File
php -i | grep "Loaded Configuration File"

如果像图片展示一样没有,再查看是否存在这些文件夹
ls /usr/local/etc/php/conf.d/
3.3 进入/usr/local/etc/php/conf.d/路径下创建uploads.ini文件
cd /usr/local/etc/php/conf.d/
touch uploads.ini

cat > uploads.ini <<EOF
upload_max_filesize=64M
post_max_size=64M
memory_limit=128M
EOF
再次查看是否写入了uploads.ini
cat uploads.ini

如果跟图片一致,说明成功了
3.4 退出容器内部后重启容器
docker-compose down
docker-compose up -d
再次检查是否生效
sudo docker exec -it wordpress-compose-wordpress-1 bash
php -i | grep upload_max_filesize
php -i | grep post_max_size
如果返回结果
upload_max_filesize => 64M => 64M
post_max_size => 64M => 64M
说明成功了
如果还失败,麻烦另请高明吧orz






评论