让 WordPress & Nginx 拥抱Docker

xtimthumb.php,qsrc=,hwww.kaushalkishore.com,_wp-content,_uploads,_2015,_01,_Docker-Wordpress.png,aw=460,ah=180,azc=1,aq=100.pagespeed.ic.e5gC7lBLAY

Docker真是个让人开心的东西,它把所有变化的配置文件和日志集中在一起,使得迁移、升级等管理变得简单多了,让我们solo一族省下大把时间撸啊撸。

WP最早是跑在apache下的,一直用apache,后来docker的时候让我的小flask程序试着在nginx上走,发现容器和http管理分开是个很先进的理念。当时还不知道怎么用nginx托管php,所以还是用的php-apache镜像,我的天,大家都知道云服务器默认安装LAMP+wp后都是龟速,特别是小网站如果有一段静默期后再来的那个肯定就倒霉了,要等好久,好的用php-apache后不仅仅慢,连好多功能都莫名其妙的出问题,最严重的是更改了固定连接的生成方式后就无法工作,我去。因为刚用docker和nginx只好妥协先搁置了。当然docker作为容器肯定是会比原生的慢在理论上,但是我宁可牺牲这部分性能也好省下我自己的时间去享受生活。

两天前实在忍无可忍,因为网站的监控总是会提醒我站点访问不了或者特别慢,实在不能无视短信和邮件提醒了,下决心好好研究。

庆幸的是我的gg反代工作比较稳定,wp给出了很详细的配置,nginx配置顺利搞定,php镜像这次我选的是php:5.6-fpm,fpm是和nginx配合最多的php容器。

研究和学习很花时间但是做起来就快了,这里有一个小问题,docker包裹后页面文件的位置和实际位置是不一致的,最大的后果就是无法使用自动更新,懒人是不允许这种事情发生的。解决办法也很简单,就是容器里映射时把位置做成一样的就好了比如: /opt/wp:/opt/wp即可。