简介
WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。截至2018年4月,排名前1000万的网站中超过30.6%使用WordPress。WordPress是最受欢迎的网站内容管理系统。全球有大约43%的网站都是使用WordPress架设网站的。
搭建
bash 代码:mkdir ~/wp && cd ~/wp # 在系统任意位置创建一个文件夹,此文档以 ~/wp 为例。
注意:后续操作中,产生的所有数据都会保存在这个目录,请妥善保存。bash 代码:
nano docker-compose.yaml # 创建 docker-compose.yaml
text 代码:services:
wordpress:
image: wordpress
container_name: wp
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- ./wordpress:/var/www/html
db:
image: mysql:9.0.0
container_name: wpdb
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- ./db:/var/lib/mysql
volumes:
wordpress:
db:
bash 代码:docker compose up -d #拉去镜像,启动容器
bash 代码:docker compose logs -f #实时查看日志
尝试访问 http://localhost:port 或 http://host-ip:port 是否能够正常访问
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 http://ip:端口号 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
更新容器
bash 代码:cd ~/wp && docker compose down # 停止运行中的容器组
bash 代码:cp -r ~/wp ~/wp.archive # 备份数据(重要)
需要注意的是,wp.archive 文件名不一定要根据此文档命名,这里仅仅是个示例bash 代码:
修改 docker-compose.yaml 中配置的镜像版本
docker compose up -d #拉取镜像,启动服务
解决方案
备份大小限制问题
添加uploads.ini文件
bash 代码:nano ~/wp/wordpress/uploads.ini
添加以下内容
text 代码:file_uploads = On
upload_max_filesize = 1000M #可以自己设置大小
post_max_size = 1000M #可以自己设置大小
在docker-compose.yaml中映射这个文件
text 代码: volumes:
~~~
- ./wordpress/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
停止容器,重新拉取,
检查~/wp/wordpress/ 检查路径。会出现uploads.ini的一个文件夹。删除文件夹,再次拉取。即可生效
更改响应时间
bash 代码:nano ~/wp/wordpress/.htaccess
在结尾添加
text 代码:~~
php_value max_execution_time 300
实用代码
bash 代码:docker exec php sh -c 'echo "upload_max_filesize=50M " > /usr/local/etc/php/conf.d/uploads.ini' > /dev/null 2>&1
docker exec php sh -c 'echo "post_max_size=50M " > /usr/local/etc/php/conf.d/post.ini' > /dev/null 2>&1
docker exec php sh -c 'echo "memory_limit=256M" > /usr/local/etc/php/conf.d/memory.ini' > /dev/null 2>&1
docker exec php sh -c 'echo "max_execution_time=1200" > /usr/local/etc/php/conf.d/max_execution_time.ini' > /dev/null 2>&1
docker exec php sh -c 'echo "max_input_time=600" > /usr/local/etc/php/conf.d/max_input_time.ini' > /dev/null 2>&1
docker exec php sh -c 'echo "max_input_vars=3000" > /usr/local/etc/php/conf.d/max_input_vars.ini' > /dev/null 2>&1