docker 搭建 WordPress
介绍
GitHub原项目地址:https://github.com/WordPress/WordPress
搭建环境
安装好Docker、Docker-compose
ubuntu/debian 安装 docker | 赛博空间 (macin.top)
centos 安装 docker | 赛博空间 (macin.top)
docker-compose常用命令 | 赛博空间 (macin.top)
【非必需】提前安装好宝塔面板海外版本aapanel,并安装好Nginx(教程)
【非必需本教程采用】安装好Nginx Proxy Manager (教程)
搭建
服务器初始设置,参考
1 | sudo -i # 切换到root用户 |
创建一下安装的目录:
1 | mkdir -p /root/data/docker_data/wordpress |
docker-compose.yml改自wordpress - Official Image | Docker Hub,内容如下:
1 | version: '3.1' |
注意:VPS的内存最好大于1G,可以再设置1G的SWAP。
设置SWAP可以用脚本:
1 | wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh |
没问题的话,ctrl+x
退出,按y
保存,enter
确认。
查看端口是否被占用,输入:
1 | lsof -i:8080 #查看8080端口是否被占用,如果被占用,重新自定义一个端口 |
如果出现:
1 | -bash: lsof: command not found |
运行:
1 | apt install lsof #安装lsof |
如果端口没有被占用,可以运行:
1 | docker-compose up -d |
访问:http:服务ip:8080
即可。
注意:
1、不知道服务器IP,可以直接在命令行输入:
curl ip.sb
,会显示当前服务器的IP。2、遇到访问不了的情况,请在宝塔面板的防火墙和服务商的后台防火墙里打开对应端口。
更新
1 | cd /root/data/docker_data/wordpress # 进入docker-compose所在的文件夹 |
利用Docker-compose搭建的应用,更新非常容易~
卸载
1 | sudo -i # 切换到root |
利用Docker-compose搭建的应用,删除也非常容易~
反向代理(必须)
此项目和别的项目不同,必须采用https形式,否则浏览器无法加密,无法使用。
利用Nginx Proxy Manager
在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上
之后,登陆Nginx Proxy Manager(docker-compose 搭建 nginx proxy manager | 赛博空间 (macin.top))
注意:
Nginx Proxy Manager(以下简称NPM)会用到
80
、443
端口,所以本机不能占用(比如原来就有Nginx)
直接丢几张图:
注意填写对应的
域名
、IP
和端口
,按文章来的话,应该是8080
IP填写:
如果Nginx Proxy Manager
和WordPress
在同一台服务器上,可以在终端输入:
1 | ip addr show docker0 |
查看对应的Docker容器内部IP。
否则直接填cryptgeon所在的服务器IP
就行。
再次打开,勾选这些:
然后就可以用域名来安装访问了。
使用教程
出现上传的文件尺寸超过php.ini
中定义的upload_max_filesize
值
默认php设置的上传文件大小为2M,我们需要调整一下。参考:https://github.com/docker-library/wordpress/issues/375
1 | cd /root/data/docker_data/wordpress |
输入下面的内容:
1 | file_uploads = On |
ctrl+x
,y
,enter
确认。
修改docker-compose
文件,volume
下面加入一句:
1 | - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini |
完整的配置文件:
1 | version: '3.1' |
重新启动容器:
1 | docker-compose down |
查看:
1 | docker exec 你的wp容器id php -i | grep upload |
出现“因为我们不能复制一些文件,升级未被安装,这通常是因为存在不一致的文件权限”的错误
1 | cd /root/data/docker_data/wordpress/data |
上传主题,出现“您点击的链接已过期”
解决方法:
1 | cd /root/data/docker_data/wordpress/data |
在.htaccess
最后面加上:
1 | php_value max_execution_time 300 |
这样就能成功上传了~
redis(不用redis的可以跳过)
默认放在/root/data/docker_data/wordpress
文件夹下。
1 | version: '3.0' |
redis设置
1 | cd /root/data/docker_data/wordpress/app/wp-config.php |
找到DB_COLLATE
在define( 'DB_COLLATE', 'XXX...');
后添加如下内容:
1 | /** Redis Object Cache */ |
重启docker之后,在后台安装Redis Object Cache
插件,直接点击Enable Object Cache
即可。
右键查看网页源代码,最后面出现这个说明搞定了!
1 | <!-- |
上传文件大小限制:
1 | cd /root/data/docker_data/wordpress/app/ |
填入下面内容:
1 | upload_max_filesize = 512M |
翻译过来就是
1 | 最大的文件上传: 512M |
英文输入法下,按冒号+wq保存退出之后,修改一下php.ini
的权限
1 | sudo chown -R 33:33 php.ini |
然后重启一下服务器
1 | cd /root/data/docker_data/wordpress |
这下上传主题或者文件啥的就没问题了。