阿里云下wordpress遇到的2个坑

2015-11-21 12:02:03

1.Nginx下开启固定连接,就是apache下的rewrite:
在nginx配置文件目录下新建一个 wordpress.conf 内容为
location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
然后进入到nginx.conf文件中在root那一行下面加入:
include wordpress.conf;
重启nginx
2.Mysql内网可以访问,外网访问不了
只因为开了防火墙
如果你确定ip bind 啥的你都放开了,mysql也正常跑着,3306都ok的话,估计就和我是一样的原因了
打开防火墙
vi /etc/sysconfig/iptables
在防火墙列表里加入3306端口开放
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
重启防火墙
service iptables restart

博客归来

2015-11-21 11:47:32

已经有一年多了没写博客了。一直懒,而且一些小东西就记印象笔记里了。
随着前端的工业革命,我自己的前端路也在一起变化
这一年一直在做全栈开发,重点是Node.js。本子换成了rmbp,编辑器换成了我4年前就看好的Sublime
开始NPM,Grunt。
越发的发现Node.js是如此的神奇,胜过我之前的大爱,世界上最好的语言php。
55u.me搬家了,为自己买了阿里云,所以空余时间把整个55u.me搬了过来,换成了现在这个猥琐的玉米。感谢大猫的这么多年的稳定服务,虽然不在那了,但还是给大猫加个广告。
现在的博客还是wp搭建的,全站图片都加了cdn,快了很多,因为是北京的服务器,所以在我这是秒开,nodejs版的blog还在搭建中。架构是基于Nodejs(KOA)+ Mysql + Nginx + Linux之前搭建了一个 Nodejs(KOA)+ Mongo+ Nginx + Linux 的,但是方便wp迁移数据还是换成了Mysql。
这一年的时间一直在做千丁小区,最早版本的千丁小区是ionic搭建的,自带Angular用起来比较爽,但是随着业务的加大用ionic搭建的站点实在显得臃肿,在万能的宝哥的带领下,我们开始了基于node全栈的多页面H5网站。

将要做的事:给自己挖了个硬件坑,下周开始搞树莓派,只因为在人海中听到了node.js可以在树莓派上跑。
 
 

利用Fiddler对手机端数据抓包

2014-07-18 17:31:02

移动端请求测试木有chrome那么方便没有了控制台,调试起来很麻烦,于是利用代理代理抓包的方法来解决这个问题,查看请求cookie神马的。
Fiddler2是个老牌抓包利器,新版内置代理。
1.设置fiddler
 
抓包
抓包
 
 
2.查看本机ip地址win+r 运行cmd 然后用ipconfig看,我这里是192.168.56.1
3.然后设置移动设备,这里拿肾5作说明,安卓设置基本相同。
设置--无线局域网
 抓包
 抓包
现在就可以捕获到移动端设备的请求信息了
抓包

关于响应式移动端遇到的问题

2014-05-14 16:08:35

1.oppo中兴等个别安卓端页面css postion:fixed支持问题。
fixed元素会停留在页面中上的位置,和希望呈现方式不一致,导致无法使菜单在页面上下滚动时固定在一个位置。
解决方案:在<head>标签中添加
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />


2.mp4在安卓和ipad下播放正常无法在iphone下播放。
iphone-mp4


打开格式工厂会发现mp4有三种格式
把不好使的mp4转换成最下边的AVC的就ok了。

代码规则

2014-04-22 16:46:50

新的项目客户要求代码通过
CSS质量工具(规则默认): https://github.com/twitter/recess https://github.com/stubbornella/csslint JS质量工具(规则默认): https://github.com/douglascrockford/JSLint 所有样式添加命名前缀 
先吐槽,采取严格标准固然是好的,但是硬性规则使得页面效率降低,严重影响SEO这也是好的么,规则是死的,人是活的。
Recess :
twitter开源代码检测工具,主要过滤样式命名中的_ ,css属性顺序,也是就是说id,class 不可以有类似 skua_content的名字,然后属性必须要先是position,然后是上右下左的顺序,所有属性值顺序有一点不符合规则都拿不到perfect。
CssLint:
不准用id选择器,不许超过10个浮动,不许有太多字号,不许。。。。。。然后改完了JQ就只能用类选择器了,据说效率慢了10倍没辙。
总感觉这玩意的主旨是为了避免ie6 bug而不用可能引起bug的一切样式。有点因噎废食的节奏。
相关文章转自这里
1. 盒模型(box-model)/*消灭*/ (1)当设定width 的同时,还设置了border,border-left,border-right,padding,padding-left,padding-right中的任意一个,那么必须显示设置box-sizing (2)当设定height的同时,还设置了border,border-top,border-bottom,padding,padding-top,padding-bottom中的任意一个,那么必须显示设置box-sizing 例如: 正确 .mybox { box-sizing: border-box; border: 1px solid black; width: 100px; }
2. box-sizing(box-sizing)/*消灭*/ 即使设置了box-sizing,仍然会warn,因为ie67不支持此属性
3. display(display-property-grouping)/*消灭*/ /*csslint在此出只提到了显式设置display时的情况,对于未设置display时,如何检查如何警告未作描述*/ (1)当设为inline      时,不允许设置width, height, margin, margin-top, margin-bottom, float. /* 关于inline和float,csslint还是提到了ie6 double margin ,但没有说对于要怎么处理 */ (2)当设为inline-block时,不允许设置float. (3)当设为block       时,不允许设置vertical-align. (4)当设为table-*     时,不允许设置margin, float. 例如: 正确: .mybox { display: inline; margin-left: 10px; } 错误 .mybox { display: inline; height: 25px; }
4. 样式冗余(display-property-grouping) (1)同样属性名以及属性值,在同一个容器中不允许声明两遍 (2)相同的属性名(但不同值),必须放在一起,不允许被其他属性隔开 例如 正确: .mybox { border: 1px solid black; border: 1px solid red;   } 错误: .mybox { border: 1px solid black; border: 1px solid black; } .mybox { border: 1px solid black; color: green; border: 1px solid red; }
5. 空的样式规则(empty-rules) 不允许出现空的样式规则 例如 错误: .mybox {} .mybox { /* a comment */ }
6.使用已知样式,方式拼写错误(known-properties) (1)csslint不会检测以横线(-)开头的属性名 (2)属性名和属性值的拼写都会检查 例如 错误: a { clr: red;   } a { color: foo; }
7.链式class(known-properties) (1)不允许对相连的class(即链式class,类似于.foo.bar这样的)设置样式 (2)可以新增一个class来代替链式class 例如 错误: .foo { font-weight: bold; } .bar { padding: 10px;  } .foo.bar { color: red; } 正确 .foo { font-weight: bold; } .bar { padding: 10px; } .baz { color: red;    }
8. vendor前缀(compatible-vendor-prefixes) 当出现以下样式时,应该拥有vender前缀,此时csslint会逐个检查Firefox(-moz),Safari/Chrome(-webkit),Opera(-o),以及Internet Explorer(-ms)前缀是否齐全,若少一种前缀,则会warn。 animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function appearance border-end border-end-color border-end-style border-end-width border-image border-radius border-start border-start-color border-start-style border-start-width box-align box-direction box-flex box-lines box-ordinal-group box-orient box-pack box-sizing box-shadow column-count column-gap column-rule column-rule-color column-rule-style column-rule-width column-width hyphens line-break margin-end margin-start marquee-speed marquee-style padding-end padding-start tab-size text-size-adjust transform transform-origin transition transition-delay transition-duration transition-property transition-timing-function user-modify user-select word-break writing-mode
9.渐变样式(gradients) 对于渐变样式,不同浏览器有不同的属性名称,不仅仅是前缀不同,区别如下 Internet Explorer 10+              : -ms-linear-gradient    , -ms-radial-gradient Firefox 3.6+                       : -moz-linear-gradient   , -moz-radial-gradient Opera                              : -o-linear-gradient     , -o-radial-gradient for Safari 5+ and Chrome               : -webkit-linear-gradient, -webkit-radial-gradient Safari 4+ and Chrome("Old WebKit") : -webkit-gradient csslint会检查与渐变(gradient)相关的样式,若以上样式只写了一个或几个,且没有写全,则会warn 例如 错误: /* Missing old and new -webkit */ .mybox { background: -moz-linear-gradient(top,  #1e5799 0%, #7db9e8 100%); background: -o-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); background: -ms-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); } 正确: /* Missing old and new -webkit */ .mybox { background: -moz-linear-gradient(top,  #1e5799 0%, #7db9e8 100%); background: -o-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); background: -ms-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); }
10.不带vendor前缀的标准属性(vendor-prefix) 要将不带vendor前缀的标准属性样式,放在带vendor前缀的属性的后面 例如 错误: .mybox { -moz-border-radius: 5px; } .mybox { border-radius: 5px; -webkit-border-radius: 5px; } 正确: .mybox { -moz-border-radius: 5px; border-radius: 5px; }
11.向后兼容的的颜色样式(fallback-colors) (1)在使用css3中的颜色样式(rgba,hsl,hsla)时候, 同时也要加上一个普通的颜色样式(十六进制,颜色名称,或者rgb) (2)css3的颜色样式要写在普通颜色样式的后面 (3)csslint会根据以上规则去检测color, background, background-color属性 例如 错误: .mybox { color: rgba(100, 200, 100, 0.5); } .mybox { background-color: hsla(100, 50%, 100%, 0.5); } .mybox { background: hsla(100, 50%, 100%, 0.5) url(foo.png); } .mybox { background-color: hsl(100, 50%, 100%); background-color: green; } 正确: .mybox { color: red; color: rgba(255, 0, 0, 0.5); }
12. 文本反向缩进 (1)当为text-indent的值设置为-99,或者更小的值(比如-100,-999)的时候,必须加上direction: ltr (2)csslint只检测text-indent的值,而不检测其的单位(em, px)。 例如 错误: .mybox { text-indent: -999px; } .mybox { text-indent: -999em; } .mybox { direction: rtl; text-indent: -999em; } 正确: .mybox { direction: ltr; text-indent: -999em; } .mybox { text-indent: -1em; }
13. 字体过多(font-faces) 当使用超过5个字体时,会warn
14. @import(import) (1)可以将多个css合并为一个 (2)使用多个<link>标签引入多个css文件
15. 正则式的选择符(regex-selectors) (1)不允许使用类似于正则语法(*=, |=, ^=, $=, ~=)的css选择符 例如 正确: a[href] { color: red; } a[rel=external] { color: blue; } 错误: a[href*=yahoo.com] { color: green; } a[rel^=ext]        { color: red;   } a[href$=.html]     { color: blue;  } a[rel~=external]   { color: red;   } a[data-info|=name] { color: red;   }
16.通配符选择符(universal-selector) 不能将通配符(*)作为选择符的关键部分(key part) 例如: 错误: *             { color: red; } .selected *   { color: red; } 正确: .selected * a { color: red; }
17.属性选择符(unqualified-attributes) 同上面的通配符一样,属性选择符不能作为选择符的关键部分(key part) 例如: 错误: [type=text]           { color: red; } .selected [type=text] { color: red; } 正确: .selected [type=text] a { color: red; }
18.零的单位(zero-units) 零后面不能跟单位 例如: 错误: .mybox { margin: 0px; } .mybox { width: 0%; } .mybox { padding: 10px 0px; } 正确: .mybox { margin: 0; } .mybox { padding: 10px 0; }
19.高级选择符(overqualified-elements)/*消灭*/ (1)若某个class紧跟(无空白符)在多个不同的元素后面, 则合法 (2)上面这条规则中,若不是多个,而只是一个的时候,则会warn 例如: 错误: div.mybox        { color: red; } .mybox li.active { background: red; } 正确: li.active { color: red; } p.active  { color: green;}
20.属性简写(shorthand) (1)当在一个样式规则中,同时设置了margin-left, margin-right, margin-top, margin-bottom, 则会warn。 (2)当在一个样式规则中,同时设置了padding-left, padding-right, padding-top, padding-bottom , 则会warn。 例如: 错误: .mybox { margin-left: 10px; margin-right: 10px; margin-top: 20px; margin-bottom: 30xp } .mybox { padding-left: 10px; padding-right: 10px; padding-top: 20px; padding-bottom: 30px; } 正确: .mybox { margin-left: 10px; margin-right: 10px; } .mybox { padding-right: 10px; padding-top: 20px; }
21. 背景图片冗余(duplicate-background-images) (1)当多个样式需要使用同一张图片作为背景图片的时候,如果在这些样式规则中重复设定background-image, 则会warn (2)当多个样式需要使用同一张图片作为背景图片的时候,应该新建一个class样式用于指定background-image,其他样式则用于设定background-position 例如 错误: .heart-icon { background: url(sprite.png) -16px 0 no-repeat; } .task-icon  { background: url(sprite.png) -32px 0 no-repeat; } 正确: .icons { background: url(sprite.png) no-repeat; } .heart-icon { background-position: -16px 0; } .task-icon  { background-position: -32px 0; }
22. 浮动(floats)/*消灭*/ (1)当使用float超过10次时,csslint会warn (2)在某些情况下,可以使用grid systems代替频繁的float
23. 字体大小(font-sizes) 尽可能少用font-size,而应该设定几个样式规则用于对于不同的字体大小,然后在需要设定字体大小的地方添加需要的样式规则
24. id选择符(ids)/*消灭*/ 使用class选择符代替id选择符
25. !important(important)/*消灭*/ 不允许使用!important
26. outline(outline-none)/*消灭*/ (1)只有在包含伪类:focus的样式规则中,才能移除(设为none或者0)outline样式 (2)在包含伪类:focus的样式规则中,移除outline样式的同时,必须要使用其他样式 例如: 错误: a { outline: none; } a { outline: 0; } a:focus { outline: 0; } 正确: a:focus { border: 1px solid red;outline: 0; }
27. heading样式(qualified-headings, unique-headings) (1)heading样式(h1-h6)应该全局化。也就是说在整个网站中,heading样式应该以常量形式出现。 (2)不要对heading样式做局部定制,也就是说(h1-h6)不能作为css规则的关键部分(key part)。 例如: 错误: h3 { font-weight: normal; } .box h3 { font-weight: bold; } 正确: h3 { font-weight: normal; } h3:hover { font-weight: bold; }
 
JSLint:
检测js代码的工具,有在线链接http://www.jslint.com/
连一个空格都不会放过你的js规则,我这能说这个可以保证代码格式,效率神马的,呵呵。
相关报错原因巨多,参考老外的一个http://jslinterrors.com/项目
git :https://github.com/jamesallardice/jslint-error-explanations

调教ghost

2013-12-27 23:57:12

介个ghost不是当年柿子家园的那个盗版镜像了,而是用node搭建的以MARKDOWN格式书写的类似wordpress的超轻量级blog。 初玩node准备拿这个拆解,就和当年拆wordpress一样的拆。 另外打个广告推荐朴灵最新node新书“深入浅出” node
 
附加开光照: 开光
跑题了,速度回来继续阿里云。
1.安装node 首先安装gcc
#yum install gcc-c++
然后搞node
#wget http://nodejs.org/dist/v0.10.23/node-v0.10.23.tar.gz
#tar xvf node-v0.10.23.tar.gz
#cd node-v0.10.23
#./configure
#make install
#node -v

#v0.10.23
ok! node安装成功
接下来安装ghost。 目前最新的ghost 是 0.3.3
###不知道上哪里找,稍后我会上传一份。###
解压后 在ghost文件夹下
# npm install --production
然后copy一份配置文件并修改配置文件
#cp config.example.js config.js
#vi config.js
然后把 host: '127.0.0.1', port: '2368' 统统改成自己需要的 反正我是改成 host: '0.0.0.0', port: '2368' 也就是说到时候得在ip后面加端口号的 就像XXX.XXX.XXX.XXX:2368
ESC :wq #npm start
然后就可以去XXX.XXX.XXX.XXX:2368 去看了 ghost
由于ghost还木有进入正式版本,所以后台显得有点渣,希望大家不要吐槽。 因为明天的ghost会更好。
补充一下,用ssh上去#npm start后关闭ssh会使ghost关闭进程 所以
#nohup npm start &
让你离开ssh后依旧持久。

阿里云急速搭建nginx

2013-12-27 22:59:10

为了玩玩node,入手了最低配置的阿里云 系统选的CentOS 6.3 64位 安全加固版 部署过程如下
# yum -y update
# yum install libaio-devel.x86_64
# yum install curl-devel
# yum -y install libpng-devel libjpeg-devel freetype-devel gmp-devel libxml2-devel
# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
# yum -y install nginx
# chkconfig nginx on


如果希望把域名也解析了的同学把
/etc/nginx/conf.d/default.conf

server_name改成自己的玉米就好
nginx helloworld

最简单的渴望 从来不想证明 最荒谬的大时代。

2013-12-26 17:40:08

Hebe Tian喜碧依旧那样,和十几年想的那个一样,补了点眼妆,仅此,很素雅,皮肤超赞,那么近的距离化妆会被吐槽的。 不让安保推歌迷,理由是她觉得这些人是喜欢她的不会有敌意,她想见见喜欢她的人是什么样的,好知道她的作品甚至她自己的风格。 甄哥一直在反思,无论这些正能量是公司包装还是个人修养,总之她的那种骨子里的东西一直影响着我这么多年,我也觉得很神奇,这么多年习惯爱好变了一个又一个,唯独对Hebe的喜爱一直没变。或者更近于生活的说,连喜欢的妹纸都或多或少有田妞的性格元素。
在我还在留恋她眼妆的时候,竟然签完了专辑伸手在等我, 女神的手很轻,矫情的说就是很柔弱,但还是觉得柔弱这个词不适合形容喜碧。 外表的柔弱不代表内心的软弱。 和女神同时说谢谢是很有意思的事,我知道她的谢谢代表着她对歌迷的感谢能让她实现爱唱歌女孩的梦,而我的谢谢,则是感谢这十几年来那种源自我内心取自于田妞的精神食粮。
我一直觉得歌手什么样,她的歌迷就什么样,喜碧的粉丝都很安静,这点是异于其他粉的, 甄宝们不会很闹,不会乱喊。大家觉得自己的一言一行直接会影响hebe的形象,仅此。
遼闊卻擁擠;擁擠卻有其中的秩序。
黄牛把专辑炒到了500,去晚的孩纸只能从黄牛那里买无签售的高价CD,我前面的妹纸买了个,后来得知不给签,很抑郁,喜碧不会让粉丝难过的,所以我拿了张有签的换给了妹纸,算是少了几秒和喜碧的时间,走的时候 发现没签标Hebe也是给签的,本打算再排一次队,结果又一只妹纸来袭,原价卖给了她,真心不舍得黑喜碧的粉丝的钱。
今年算是一直尽力的陪着她们了,从巡回,到首发,再到签售。 甄宝们有句话: 歌手不仅要会唱,还要光芒万丈,发得了唱片,开得了演唱会。喜欢一个歌手,就像谈一场恋爱,可以听着Ta的歌独陶醉,也可以拿着Ta的专辑去签唱会。等到变老了,不再追星了,听着熟悉的歌曲也会有温暖涌上心头。Ta是恋人,是神,是青春,想到这些,怎么不能大气磅礴。
跟随与成长,田妞不是神,她只是个邻家妹纸,与其说是神到不不如说是信仰,青春的信仰。
昨晚和思南在絮叨着这些年感慨的歌,那些伴随伤痛喜乐的歌,我说,我觉得音乐这玩意我不懂,但我知道这东西有一种力量能把你所在的那段日子的记忆封印到曲子里,若干年后,早已不记得曾经发生了什么,但是,旋律响起,会一把拉你到那个只有你懂得的年代,那些久违或以不在的脸。 比如魔力,比如北京北京。。。
昨天看godaddy的账单,从09到13web开发这已经有几百刀了,想当初要是不舍得花的话,现在还SB一样的搞渣技术。借着前一阵给企鹅部署服务器,为自己买了阿里云,在新的一年把node搞好。

最近webapp遇到的问题

2013-10-30 17:21:25

width:640px layout
1.双击放大问题 webapp会有大量点击交互,所以需要禁用缩放功能user-scalable=no
但是同时user-scalable=no 会导致安卓端缩放不正常
解决办法
增加width=640,可保证双击移动端不放大。
2.移动端屏幕触摸事件
touchstart按下 touchend抬起
obj = document.getElementById("skua");
obj.addEventListener("touchstart",function(event) {

document.getElementById("right").click();
},false);
3.阻止浏览器默认事件,例如移动端QQ浏览器,长按屏幕会弹出菜单。 所以在事件前添加 event.preventDefault();
var obj_2 = document.getElementById("right");
obj_2.addEventListener("touchstart",function(event) {
event.preventDefault();

document.getElementById("right").click();
},false);

北京现代金融项目总结(2)

2013-09-18 15:37:40

难得有时间整理一下这几个月遇到的bug了,尽管北现项目依旧没上线。
1.position:fixed IE6下无效问题
尝试:
 position: fixed;
 _position: absolute;
top: 10px;
_top: expression(eval(document.documentElement.scrollTop+10));
2.中文post乱码 josn处理是出现乱码 尝试:decodeURIComponent();
3.flash Error #2044: 未处理的 ioError:。 text=Error #2032: 流错误。 json 数据问题 尝试:encodeURIComponent(json);
4.css ie6、ie7、ie8中overflow:hidden无效 产生原因: 当父元素的直接子元素或者下级子元素的样式拥有position:relative属性时,父元素的overflow:hidden属性就会失效。 解决办法: 我们在IE 6内发现子元素会超出父元素设定的高度,即使父元素设置了overflow:hidden。 解决这个bug很简单,在父元素中使用position:relative;即可解决该bug。
6.div 内 ul多出空白边距
list-style-position:outside;
padding:0px;margin:0px;
7.table细边框 设置table的CSS为{border-collapse:collapse;border:none;},再设置td的CSS为{border:solid #000 1px;}, 大功告成!而且Word也能认出这种设置。
8.click事件多次触发
$("#skua").unbind('click').bind('click',function(){})