Docker wordpress 的定期自动备份

#!/bin/bash
rm -rf /web/import/*
docker exec db sh -c 'exec mysqldump -uroot -ppassword wordpress' > /web/import/idehe.com.sql
tar -cvf /web/import/idehe.com.tar.gz /web/wp
sshpass -p password scp /web/import/idehe.com.tar.gz root@dl.web.com:/mnt/test
sshpass -p password scp /web/import/idehe.com.sql root@dl.web.com:/mnt/test
  • 删除所有现成的备份
  • 执行mysqldump导出数据库命令
  • 打包html
  • scp传输两个文件到远程备份服务器的目录,同时使用工具sshpass 传递密码给scp命令,省事。
  • 全部使用bash脚本,crontab -e 添加每12小时运行一次。
  • * 12 * * * /docker2/wp/2web/back.sh
  • 搞定。

稍微解决一下docker WordPress的文件夹权限问题

今天升级插件发现,发现docker wp 无法创建文件夹,尝试几个办法都不行:

  • 往docker-compose 添加privileged: true 没有效果
  • 往docker-compose 添加user: “33:33” 也就是代表www-data:www-data也不行。。

最后发现 wp的项目文件夹是-v 映射到容器内的,给wp-content 增加权限可以解决,但是不知道安不安全,暂时先这样吧:

chmod -R 777 wp-content
感觉还是不安全,改回来。。
chmod -R 755 wp-content

办法改为,进入wordpress 的container, 执行chown -R www-data:www-data /var/www/html

同时 wp-config 增加了一句:define(‘FS_METHOD’, ‘direct’);

Docker 化 Kodexplorer 的总结

从frantech买了storage, 价格大概是256GB 15 USD,挂载在VPS上面的。开始转移我的KOD到新的VPS上面,同时尝试用docker化运行。

思路是:

  1. 用docker 文件生成customize 的 image,其中有 两个主要的
    1. php7.1,php需要安装扩展插件,通过RUN命令搞定
    2. wyveo/nginx-php-fpm:php71 ,包括写好nginx conf配置的nginx,基本只要打开填入域名就可以了。后期可以考虑只用nginx 标准官方的。
  2. 第一次运行后,docker container cp 命令从镜像拷贝整个/etc/nginx出来,并配置default.conf 中的域名即可。
  3. 生产运行:
    1. -v 镜像kod 目录,
    2. -v 镜像我的block storage 目录/mnt/files 到nginx html里面
    3. -v log
    4. -v nginx 配置文件进去
    5. -p 80:80端口, -d daemon, -t name, 最后填上定制的image 名称
  4. 最后我的dockerfile:
FROM php:7.1-fpm
#FROM php:7.1-fpm-alpine3.4
#FROM nginx:1.17.4-alpine

# install dependencies
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libmcrypt-dev \
        libpng-dev \
        libjpeg-dev \
        libpng-dev 

#install php extension
RUN docker-php-ext-install iconv mcrypt 


#config gd and install
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ 
RUN docker-php-ext-install gd


FROM wyveo/nginx-php-fpm:php71

5. 生产运行的 docker run 命令

docker run \
-d \
-p 80:80 \
--name kod \
--volume "/kod_html/kod":/usr/share/nginx/html \
--volume "/mnt/files":/usr/share/nginx/html/files \
--volume "/kod_html/log":/var/log/nginx/ \
--volume "/kod_html/nginx":/etc/nginx/ \
kod

软件:ICEBOX无需ROOT了

Icebox 是一个安卓基本必备的工具,冻结所有占内存的app, 有时候比较老一点的手机,一个淘宝能占掉100多m, 而你并不需要他给你传输任何即使讯息。同样一个腾讯手机管家一百多,都可以从安卓原生的开发者选项,正在运行的软件中可以看到。

这个App 价格也很公道,加速手机内存最快速最方便的辣。

  • 首先下载ADB android 工具包。adb android
  • 执行命令adb shell dpm set-device-owner com.catchi ngnow.icebox/.receiver.DPMReceiver
  • 回显:

Success: Device owner set to package ComponentInfo{com.catchingnow.icebox/com.ca
tchingnow.icebox.receiver.DPMReceiver}
Active admin set to component {com.catchingnow.icebox/com.catchingnow.icebox.rec
eiver.DPMReceiver}

  • 那么就成功了!特别适合V版的google pixel 啦。

[VPS] 速度优化

网站进入整体加速,精简,产品为主的模式。快速的访问放网站,精简简洁的界面,产品为主的内容为王的形式。

以前网站优化打开产品目录页面的时间为2-3秒,现在突然变成13-16秒,十分慢十分不正常,所以开始找原因,以下为分析过程。

  • 首先准备demo。新建一个linode,clone过来主站,修改hosts,并连接VPS。
  • 开机,发现mysql没有启动,于是尝试启动,失败,查找发现有很多mysql僵尸进程,全部杀掉。重启成功

pgrep mysql | xargs kill -s 9

  • 开始分析问题,首先考虑的是插件,一个个关闭并重启,同时替换主题,发现速度变回正常,是2-3秒了,进一步测试,锁定问题是theme主题。
  • 怀疑是子主题的问题,把子主题内的内容删掉测试,并不行。没有办法,于是打算把其中内容全部复制会父主题,不用子主题了。过程发现widget需要重新设置,于是怀疑是不是产品页面的插件有问题,因为其他页面并没有这么慢,采用子主题,并移除所有侧边栏widget,问题消除,进一步锁定是widget的问题。
  • 在一个个尝试,锁定是woocommerce products widget的问题,这个widget找出所有有折扣的产品,并显示,因为产品多所以造成了页面慢,果断移除,问题解决。

[VPS] VPS 服务器+监控

全部是由搞IT的朋友的推荐的,三个:

  • Linode 老牌靠谱首推,界面简洁,价格也很划算,很少有down机的可能性。操作起来也很简单,可以随时升级服务。我额外开通的功能有backup和longview, backup非常有用有最近一天,最近一周的备份,随时方便的一键还原。同时开了新的linode,复制过去也是一键的。longview在网站如果经常被攻击的情况,监控挺好的。。购买的选项从1024升级到2048到4096啦,跑比较大型的网站。

Plans and Pricing Linode

  • Digital Ocean 号称是linode杀手,但是linode到底是老牌稳定这么久了。然后为什么是杀手呢,因为价格更便宜,据说同样很稳定。网站嘛要的就是稳定性能好。DO的服务器叫做droplet, 也可以一键备份还原。这里放着本人的博客啦,属性是:
    • debian-512mb-nyc3-01 ACTIVE
      104.131.XX.XXX 512MB Ram 20GB SSD Disk New York 3 Debian 8.2 x64

      • 说说价格,IT哥帮我注册了,搞了很多优惠给我,应该是黑五圣诞节之类的,反正余额已经50美元了,还没冲过值,就是这么好!然后是5美元一个月的。

DigitalOcean Control Panel

  • 最后是ramnode,他有什么优势呢,他的128MB ram的服务器,性能一般般,但是有80GB的贮存空间,一年的价格是15美元,便宜吧,适合放很多文件备份。这就是优点。。而且和DO一样的512MB的VPS每个月是3.5,更加便宜。
    • 128MB CVZ 128 / 64 MB 1 Core 1 /64 80 GB 500 GB $15 / yr NYC / ATL / SEA / LA / NL
    • 512MB SVZS 512 / 256 MB 1 Core 1 /64 40 GB 1000 GB $3.5 / mo NYC / ATL / SEA / LA / NL
  • 最后推荐一个网页监控,https://www.site24x7.com, 也可以用jetpack的邮件报警,site24x7的到处在于中国地区也可以收到短信报警,电话好像最近不行了。。试试把。

暂时更新到这里。

[VPS]This is test post, posted by jetpack email

This is a function called “post by email” in jetpack, just need to enable for each user to use, check image, seems pretty easy.

Now this is send by email.

Sent from other email account, different to the user email.

Try the markdown heading “####”

Added – solve post by email image size 1024 problem, add this into theme functions.php page:

reference: http://stackoverflow.com/questions/22026871/wordpress-jetpack-post-by-email-controlling-image-size

[php]
add_filter( ‘post_thumbnail_html’, ‘remove_width_attribute’, 10 );
add_filter( ‘the_content’, ‘remove_width_attribute’, 10 );

function remove_width_attribute( $html ) {
$html = preg_replace( ‘/(width|height)="\d*"\s/’, "", $html );
return $html;
}
[/php]

[VPS] Jetpack 排障 – 插件冲突-微信机器人高级版

connect to wordpress.com的时候出现空页面问题,百思不得其解,然后根据网络上的提示,禁止所有插件,只开启jetpack,再连接,成功了。。。就这么简单,就这么扯蛋。。

问题更新:

  • 开启插件微信机器人以后,登录wordpress.com 发现和网站的连接有问题。。有红色感叹号,用不了, 同时post by email 功能也用不了。

jetpack bug

  • 开启open social 之后 jetpack 连接不上 出现空白页面现象。。。但是暂时禁用再连接jetpack就好了。

再次更新:

  • 采用wechat manager 插件替代微信机器人, 插件在这里:http://9iphp.com/opensystem/wordpress

唯一有点比较愚蠢的小bug,设置里面比较再输入一遍关键词类似 n c 什么的,否则不正常工作,已经在评论里面提给作者了~ 好评推荐。

  • 最后开启WPtouch mobile plugin 手机浏览效果更好哦。