Docker快速搭建Wordpress + HTTPS
虽然最终选择了GithubPages + Hexo,但之前使用Docker搭的Wordpress + HTTPS。搭完后才发现维护起来又累又贵,就把整个流程贴出来留给有缘人吧。
甩锅申明:出了问题我不知道怎么解决,请问万能的Stackoverflow吧😉
好处:
- 方便,命令几乎都是cd, ls和nano/vim。
- 快速,不需要LAMP或者LNMP漫长的安装/编译过程。新机器建站和删库跑路都很快。
- 干净,不污染其他文件夹,删除网站只需要一条Docker命令。
- https,Let’s Encrypt! 不仅是网站,还要加个绿色的小锁。
坏处:
- 出了问题不好解决,包括通过命令行修改网站、给网站装个监控什么的等等,都涉及有一定门槛儿的Docker命令。但对于正常地通过Wordpress面板的操作足够了。
准备工作
先把域名解析上,最后上小锁时需要。
新系统来了先
1 | apt update |
老系统没有apt
,用apt-get
安装Docker
Docker是将程序和其依赖放在容器中,再进行部署的开源软件……总之很方便就对了。
在其官网,不同系统有不同的安装教程。
中文文档在
举例:我的Debian8(注意对内核有要求)是:
1 | apt-get install \ |
安装Docker-compose
一次运行多个容器的工具。
官网有安装指南,中文的似乎没翻译。
举例:
1 | curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose |
安装代理
安装之前,先新建一些文件夹,来存放我们网站的内容。
1 | #/你的目录 |
安装代理需要这么一个Github Repo: Web Proxy using Docker, NGINX and Let’s Encrypt
它的README有安装教程,但有几个坑。
- 下载Repo:
git clone https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion.git
- 【可选】如果不使用反向代理的话,可以删掉Repo中
/conf.d/realip.conf
- 【可选】可以修改
/conf.d/uploadsize.conf
中的client_max_body_size
的值,默认是100MB,限制上传文件的最大大小,不够就加大。 - 改名,
mv .env.sample .env
- 修改变量,
nano .env
,或者用vim
。 - 需要修改的变量有
IP
:修改为机器的IPNGINX_FILES_PATH
:修改为刚刚新建的nginx-files
文件夹的路径USE_NGINX_CONF_FILES
:【可选】去掉变量前的井号。这里是要使用conf.d文件夹下的设置,包括之前第三步上传文件的最大大小。如果不在乎这几个设置也可以不管它(后果就是搭好后上传主题时,2MB就GG)
- 运行
./start.sh
安装Wordpress
又需要一个Github Repo:Using Wordpress with SSL enabled integrated with NGINX proxy and autorenew LetsEncrypt certificates
同样有几个坑。
下载:
git clone https://github.com/evertramos/wordpress-docker-letsencrypt.git
【可选】新建一个
uploads.ini
的文件,内容是1
2
3
4
5file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600这里跟上一步中修改上传文件的最大大小是一致的,要么一起用,要么就不用,下几步的可选也是一样的,不用的话都可以跳过。这里的最大上传文件设置为64MB,不够随便改。
【可选】修改
docker-compose.yml
,在services - wordpress - volumes
下加一行- ${PHP_UPLOAD_CONF}:/usr/local/etc/php/conf.d/uploads.ini
改名,
mv .env.sample .env
修改
.env
DB_PATH
: 修改为刚刚新建的database
文件夹的路径MYSQL_ROOT_PASSWORD
: 挑一个数据库根密码MYSQL_DATABASE
: 数据库的名字,随便取,习惯上用wordpress
MYSQL_USER
: 数据库用户,随便取,习惯上用wordpress
MYSQL_PASSWORD
: 挑一个数据库密码WP_CORE
: 修改为刚刚新建的core
文件夹的路径WP_CONTENT
: 修改为刚刚新建的wp-content
文件夹的路径DOMAINS
: 修改为开头就应该解析上的域名LETSENCRYPT_EMAIL
: 修改为你的邮箱,用于Let’s Encrypt- 【可选】如果执行了2、3步的话,最后加一行
PHP_UPLOAD_CONF=/刚刚新建的文件路径/uploads.ini
运行
docker-compose up -d
等个几十秒一分钟,网站就可以使用了,带个https绿色小锁。
命令与支援
- 不带
-d
直接运行docker-compose up
可以查看日志,用于排错。 - 在第二个Repo的文件夹中,运行
docker-compose down
可以停止Wordpress。 docker container ls [--all]
: 显示所有Container,最后不带--all
的仅显示运行中的,带的话还显示已停止的。最后应该一共有5个Container。docker rm [--force] linux_tweet_app
: 删除一个Container,带--force
强制删除,无视是否运行。