一、架构
域名及云主机:阿里云域名+搬瓦工VPS
SA及CMS:LAMP+Vsftp+Wordpress
图床:七牛云存储
二、Wordpress问题
1、中文标签及目录404问题
刚开始只发现中文标签404,网上搜索了一个插件“wp slug translate”,用上这个可以将文章的中文标签转成英语
后来发现分类目录点击后仍会出现404的错误,参考小沉御笔这篇博客,该代码消Bug,即:
1 |
# vim /var/www/html/wp-includes/class-wp.php |
将$req_uri = str_replace($pathinfo, ”, $req_uri); 改为 $req_uri = str_replace($pathinfo, ”, urldecode( $req_uri ));
问题即可解决。
注意,wordpress升级后,就会出现这个老问题,需要再改下代码。
2、插件安装
参考落格博客中安装了几款插件,Crayon Syntax Highlighter的代码插入,WP-PostViews的浏览统计还挺好的。
关于图片等管理部分,安装了WPJAM Basic和Image-elevator
图床申请了七牛存储,然后将文件备份到七牛上。安装WPJAM Basic后出现了页面排版发生紊乱,原因为加载CSS和JS错误导致,在七牛设置中,本人去掉JS和CSS的静态文件缓存,只缓存png|jpg|jpeg|gif|ico图片文件,如果全部缓存完JS/CSS文件可能没有问题。
对于撰写文章中无法动态插入图片的问题,Image-elevator插件可以完美解决这个问题。
增加了文章目录,使用了Content Index插件,尝试了wpjam-toc和手动实现目录,都不大好用。
有了这些插件,基本可以快速干活了!
3、升级
主机上配置好FTP,Dashboard中傻瓜式升级即可。
4、二级域名及多域名绑定
一个VPS上想挂多个域名或二级域名的网站,利用apache服务器的VirtualHost即可,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# vim /etc/httpd/conf/httpd.conf NameVirtualHost xx.xx.xx.xx:80 <VirtualHost xx.xx.xx.xx:80> DocumentRoot /var/www/html/image/ ServerName image.zjzone.cc </VirtualHost> <VirtualHost xx.xx.xx.xx:80> DocumentRoot /var/www/html/another/ ServerName another.site ServerAlias www.another.site </VirtualHost> <VirtualHost xx.xx.xx.xx:80> ServerName zjzone.cc ServerAlias www.zjzone.cc DocumentRoot /var/www/html/ </VirtualHost> |
其中xx.xx.xx.xx为vps的IP,/var/www/html/image/、/var/www/html/another/分别为二级域名及另外一个域名的站点目录。
接下来去域名系统配置DNS解析,保存后生效即可。
5、数据备份
不知道主流备份怎么搞的,我是采用Crontab定时Push到Github办法
Github中建好Respository,git init到博客根目录,配置好git-ssh,然后定时Push即可。
设置用户信息
1 2 |
# git config --global user.name "YourName" # git config --global user.email YourMail@example.com |
配置好git-ssh(略,可参考这里)
本地创建Respository
1 2 3 4 5 6 7 |
# cd /var/www/html # echo "# XXXXX" >> README.md # git init # git add README.md # git commit -m "first commit" # git remote add origin git@github.com:XXXXXX/XXXXXXX.git # git push -u origin master |
定时备份crontab脚本参考如下:
数据库备份脚本db_backup.sh
1 2 3 4 5 6 7 8 |
#!/bin/bash backup_dir="/var/www/html/databases" mkdir -p $backup_dir filename="${backup_dir}/mysql-`eval date +%Y%m%d%H%M%S`.sql.gz" # Dump the entire MySQL database /usr/bin/mysqldump -uYourUesr -pYourPasswd --opt --all-databases | gzip > $filename # Delete backups older than 60 days find $backup_dir -ctime +60 -type f -delete |
Git Push脚本git_push.sh
1 2 3 4 5 6 7 8 9 |
#!/bin/sh #Files backup targetdir=/var/www/html/ #Push to Github repositories cd $targetdir git add . git commit -m `eval date +%Y%m%d%H%M%S` #git push origin master git push -u origin master |
三、运维问题
1、服务器宕机检测
不知道有没有现成的插件,考虑mail通知的方案,如果没有考虑服务器上搭建mails server的方式
参考另一篇博文:Linux配置邮件提醒
欢迎留言
2、服务器磁盘不足检测
当前策略是运行定时任务,设置邮件提醒。
欢迎留言
3、博客访问缓慢检测
换VPS!!!
欢迎留言
4、浏览统计
安装了Google Analytics的插件,可以统计最近两个星期浏览走势对比,如下:
在侧边栏增加了一个小Widget,在https://clustrmaps.com/上定制了一个世界范围的浏览统计地图,点击可以浏览详细:
5、博客迁移
用了一年的搬瓦工,配置是256MB的内存,刚开始文章数较少时首页加载速度还可以,但随着文章数越来越多(100篇左右),VPS有点扛不住了,内存几乎跑满,慢的时候一行行的加载,真实愁死人了,看了下搬瓦工配置,最低配置都512MB了,价格还是一年19.99刀,果断入手一个512MB。
然后想着把网站迁移过去,由于网站每天都有数据备份,想着直接从备份数据恢复,简单安装环境,拷贝了最新备份数据,但发现首页不能正常加载,后来慢慢排查故障,发现是WP-UTF8-Excerpt这个摘要插件的问题,启用这个插件首页就无法正常加载,但原来网站是没有这个问题的,Google了半天解决方案也未果。
后来考虑做系统快照的方式迁移,发现搬瓦工是提供这个功能的,将原来VPS做个系统快照,然后点下export以下,记下VEID和TOKEN,从新VPS控制台导入“Import a snapshot”,导入完成后,可以Restore直接恢复系统,之前的环境完全复制过来了,非常方便,当然这样做的前提是新旧VPS位于同一个机房,购买VPS最好注意一下。
其实也尝试了搬瓦工提供的rsync同步复制的迁移方式,但都莫名失败了,未果!
迁移后,网页加载明显快了不少。
6、VPS磁盘清理问题
看下了日志的git有一周没有自动提交了,最近发现磁盘被打满了,手动清理了git缓存,清理了一些log
1 |
git rm -r --cached ./ |
发现磁盘使用率依旧很高,怀疑Inode被用完了,查看了Inode使用情况,发现果真已经用到100%了,
1 |
df -i |
由于自己写的定时任务脚本未处理输出内容,导致大量输出内容追加到/var/spool/clientmqueue目录中,导致磁盘被打满,首先进行目录清理:
1 |
find /var/spool/clientmqueue -type f -print -exec rm -f {} \; |
清理后,磁盘使用率正常了,然后修改自己的定时任务,丢弃定时任务的输出内容:
1 |
0 0 * * * bash +x /zj/backup/bake.sh > /dev/null 2>&1 |
参考:http://blog.51cto.com/darren/1066855
code
more code
~~~~