MAC OS X 10.10.1下安装 php 扩展

MAC OS X 10.10.1下安装 php 扩展

年后开发环境从 ubuntu 14.0.4 迁移到 MAC OS X 10.10.1 Yosemite 版本,本以为 ubuntu 中编译过的 php 扩展可以直接拷贝使用,其实是我“想多了”。除了常见的*unix 系统的基本操作相同外,还是存在很大的差异。现记录一下 mac os 下如何安装 php 扩展,以便后面查阅。

安装 PHP 扩展要求你的 Mac 系统已经安装了 Xcode 环境和命令行开发工具,如果还没安装,请先使用 Shell 安装。

1
xcode-select --install

为了扩展管理方便,首先来安装 pecl 扩展管理器。

1
2
cd /usr/lib/php
sudo php install-pear-nozlib.phar

安装 Redis、Memcache、Mongo 等扩展。

1
2
3
sudo pecl install redis
sudo pecl install memcache
sudo pecl install mongo

将扩展配置添加的 php.ini 文件中:

1
2
3
4
5
6
[memcache]
extension=memcache.so
[mongo]
extension=mongo.so
[redis]
extension=redis.so

由于 Mac 自带的 PHP 环境是不包括 mcrypt 扩展的,所以需要下载同版本的 php 源码包,单独编译这个模块加载。从官网的归档里面找到 php5.5.14 的源码包,下载:http://php.net/releases/

1
2
3
4
5
6
tar zxvf php-5.5.14.tar.gz
cd php-5.5.14/ext/mcrypt/
phpize
./configure
make
sudo make install

配置 Mcrypt

1
extension=mcrypt.so

为了加速,还需要打开 opcache。

1
2
3
4
5
6
7
8
zend_extension=opcache.so

[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=0

; Determines if Zend OPCache is enabled for the CLI version of PHP
opcache.enable_cli=0

如果在安装过程中 PHP 动态编译出现 Cannot find autoconf 错误:

1
2
3
4
5
6
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

请安装 autoconf

1
brew install autoconfig
快速提升前端开发工作效率的总结

快速提升前端开发工作效率的总结

近期在考虑团队建设以及前端小组的效率提升,故对前端开发过程中效率的提升做了个简单的总结,同时
也希望对前端新人有点帮助。

选择一个好的编辑器,并熟练使用她(他)

一个好的编辑器,至少应该具备:

  • 语法高亮
  • 括号匹配
  • 能快速定位
    • 快速打开文件
    • 在文件中查找
    • 在文件夹中查找
    • 跳至某一行
  • 能安装插件

推荐编辑器: SublimeText Hbuilder Intellij IDEA

能熟练使用一个前端调试工具

一个好的前端调试工具,应该具备:

  • 网络请求数据查看
  • 审查元素
  • 打断点和断点调试
  • 控制台打印 log

PC 端推荐调试工具: 谷歌浏览器(chrome) 火狐游览器(firefox) 苹果浏览器(safari)

移动端推荐调试工具: 谷歌浏览器(chrome) 苹果浏览器(safari) weinre UC 浏览器

良好的前端开发辅助环境

前端模板、初始化项目、组件依赖管理、工具集等

  • Yeoman 项目脚手架
  • Bower 依赖管理
  • Grunt 前端构件工具
  • node 前端工具开发和运行环境
  • less css 预编译

文档规范

一个快速发展中的技术小组,应该具备:

  • 需求文档(PM)
  • 视觉规范(设计)
  • 接口文档(开发)
  • 代码规范(风格与全名等)

其他

当然还可以通过其他方式以及相关的组合来提升效率,例如:

svn、git、ruby、compass、yuicompress、coffeescript、代码片段模板页面bootstrap前端常用插件

最后的最后,欢迎大家来补充~

Linux 命令行和 Shell 高效率使用方法(转)

Linux 命令行和 Shell 高效率使用方法(转)

快速调用 history 中的命令

  • Ctrl+R 快速搜索 history
  • Ctrl+P 显示上一条命令
  • 快速执行一条 history 命令:!!/!-number

快速进入某些目录

  • 键入 cd ~可直接进入用户的 home 目录;
  • 键入 cd-可进入上一个目录。
  • export CDPATH=.:~:/etc:/usr/local
  • mkdir -p ///***/
  • alias cd3=”cd ../../../“

一次运行多个命令

  • 在一个命令行中还可以置入多个命令,用分号将各个命令隔开
  • $last;exit
  • $make && make install

命令行下快捷键

  • Ctrl+a:把光标移到行首。
  • Ctrl+e:把光标移到行尾。
  • Ctrl+l:清除终端。该快捷操作与在命令行键入 clear 作用相同。
  • Ctrl+d:从 Shell 提示中注销并关闭,使用该快捷键就不必键入 exit
  • Ctrl+u:删除光标至行首的所有字符,使用这一快捷操作可以清除从光标处到行首的字符
  • Ctrl+K:删除从光标到行末所有字符。
  • Ctrl+t:新建屏幕。
  • Alt+1 到 9:选择屏幕。
  • Ctrl + F :向前移动一个字符。
  • Ctrl + B :向后移动一个字符
  • Alt + F : 向前移动一个单词。
  • Alt + B : 向后移动一个单词。

在文件里查找

grep -rlI '\<main' .
find -type f -name *.java -exec grep -l '\<main' {} \;

快速的建立一个文件

cat >> filename ,输入一些内容然后按Ctrl-d结束输入。

将文本文件中 DOS 换行符号转化为 UNIX 的换行符号

tr -s "\r" "\n" <inputfile
tr -s "\r" "\n" <inputfile >outputfile

当然你使用 vim 编辑文件时,vim 也提供文件转换功能

// 整个文件大小写转换
tr a-z A-Z < **.txt
tr A-Z a-z < **.txt

Shell 脚本

  • $0 为程序名称,$1 为第一个参数,$2 为第二个参数,依次类推,直到$9 为第九个参数。
  • 特殊变量$#测试执行脚本时包含的命令行参数个数。
  • 变量$*将命令行中提供的所有参数作为一个单词处理,它将多个参数看成 一个参数。
  • 变量$@将命令行中提供的所有参数作为同一个字符串中的多个单词处理。
  • shift 命令能够改变命令行参数的相对位置。默 认将每个参数变量左移一个位置
  • 使用-t 指定一个计时器,计时数满还未输入,read 返回一个非 0 的退出状态。
  • 使用-n 指定输入的字符个数,输入达到预定数目时,就自动结束输入
  • 使用-s 使输入不显示在终端(例如输入密码)
  • shell 调试 set -xv
  • dstat & sar
  • iostat, vmstat, ifstat 三合一的工具,用来查看系统性能。
  • 官方网站:http://dag.wieers.com/rpm/packages/dstat/
  • 你可以这样使用:
  • alias dstat=’dstat -cdlmnpsy’

vim 命令

  • 查找一个字符:fx
  • 重复上次 find: ;
  • 重复执行上次:.
  • w 下一个单词开始字符
  • e 下一个单词结束字符
  • b 上一个单词开始字符
  • H M L 目前屏幕的第一行,中间行,最后一行
  • gg G 文件的第一行和最后一行
  • 拷贝到指定寄存器:yt{标识符}
  • Ctrl + r{register}调出寄存器的值
  • 分割窗口:split vsplit
  • 超级自动补全:ctrl-N
  • 转到一个变量定义的位置: gd(文件) gD(全局)
  • 快速查询命令 :K 2K
  • 匹配花括号:%
  • 选取标志符的内容:va{ vit vi{
  • 修改标示符的内容:ci{标识符}
  • 删除标志符的内容:di”
  • 删除指定行前的内容::10,20g/^$/d

原文来自:http://www.cnblogs.com/thinksasa/p/3507714.html

Ubuntu 下 Vim 安装 Markdown 插件

Ubuntu 下 Vim 安装 Markdown 插件

Markdown 出来也有很长时间了,网上也有很多关于 Markdown 的语法介绍以及使用说明,如果还不知道什么是 Markdown,可以查看这篇文章。写这篇文章的初衷只为了记录在 Windows 系统与 Ubuntu 系统下使用 markdown 的一些个人感受。

Markdown in windows
Sublime text 2
由于个人偏爱使用 Sublime text 2(以下简写为 ST2)进行编码,所以一般都偏向安装 ST2 的插件,在这里选择的是 Markdown 和 Markdown Preview,Markdown 主要是 markdown 的语法高度,Markdown Preview 主要是文档预览(非实时的预览)。也许是更加喜爱像 Dreamweaver 那样的可视化操作,因此搜索后发现了 MarkdownPad。

MarkdownPad
相比使用 ST2 来讲,MarkdownPad 可以实时预览,多文件切换也很流畅,但不喜爱它默认的 markdown 语法高度的颜色以及有限的免费版功能,因此尝试了使用 MdCharm。

阅读更多
JS判断客户端是否为手机移动设备

JS判断客户端是否为手机移动设备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
function is_mobile() {
var ua = navigator.userAgent,
isMobile = false;
var ma = [
"240x320",
"acer",
"acoon",
"acs-",
"abacho",
"ahong",
"airness",
"alcatel",
"amoi",
"android",
"anywhereyougo.com",
"applewebkit/525",
"applewebkit/532",
"asus",
"audio",
"au-mic",
"avantogo",
"becker",
"benq",
"bilbo",
"bird",
"blackberry",
"blazer",
"bleu",
"cdm-",
"compal",
"coolpad",
"danger",
"dbtel",
"dopod",
"elaine",
"eric",
"etouch",
"fly ",
"fly_",
"fly-",
"go.web",
"goodaccess",
"gradiente",
"grundig",
"haier",
"hedy",
"hitachi",
"htc",
"huawei",
"hutchison",
"inno",
"ipad",
"ipaq",
"ipod",
"jbrowser",
"kddi",
"kgt",
"kwc",
"lenovo",
"lg ",
"lg2",
"lg3",
"lg4",
"lg5",
"lg7",
"lg8",
"lg9",
"lg-",
"lge-",
"lge9",
"longcos",
"maemo",
"mercator",
"meridian",
"micromax",
"midp",
"mini",
"mitsu",
"mmm",
"mmp",
"mobi",
"mot-",
"moto",
"nec-",
"netfront",
"newgen",
"nexian",
"nf-browser",
"nintendo",
"nitro",
"nokia",
"nook",
"novarra",
"obigo",
"palm",
"panasonic",
"pantech",
"philips",
"phone",
"pg-",
"playstation",
"pocket",
"pt-",
"qc-",
"qtek",
"rover",
"sagem",
"sama",
"samu",
"sanyo",
"samsung",
"sch-",
"scooter",
"sec-",
"sendo",
"sgh-",
"sharp",
"siemens",
"sie-",
"softbank",
"sony",
"spice",
"sprint",
"spv",
"symbian",
"tablet",
"talkabout",
"tcl-",
"teleca",
"telit",
"tianyu",
"tim-",
"toshiba",
"tsm",
"up.browser",
"utec",
"utstar",
"verykool",
"virgin",
"vk-",
"voda",
"voxtel",
"vx",
"wap",
"wellco",
"wig browser",
"wii",
"windows ce",
"wireless",
"xda",
"xde",
"zte",
"GiONEE",
"GiONEE-",
];
for (var i = 0, lens = ma.length; i < lens; i++) {
if (ua.indexOf(ma[i]) > -1) {
isMobile = true;
break;
}
}
return isMobile;
}
if (is_mobile() === true) {
document.write(navigator.userAgent + "<br>");
document.write("mobile access!");
//location.href = "http://blog.hanyi.pro/"
} else {
document.write(navigator.userAgent + "<br>");
//document.write('pc access!');
}

参考:http://levi.cg.am/?p=2214