CI 常用 DB 操作

CI….蛋疼菊紧

Read on →
php

Intro-homebrew

brew 命令备份: http://liwenqiu.me/blog/2011/12/17/intro-homebrew/

mac

安装 Centos Mini 之后需要做的一些事情

装上 vagrant 了.但是 centos 是 minimal 版的,所以需要做很多东西(不是 mini 版的也需要做很多事 囧rz).其实很多事情都是玩 vps 的时候做过的,但是人老了记性不好,每次都要 google. 所以我觉得还是记录下来比较好.

先添加源吧..啥也不说了 直接上阿里云的开源镜像吧..网易萎了..

Read on →

Redis的连接释放问题

redis连接的时候有 connect 和 pconnect 两种 , 今天做项目时候用的 pconnect 手动 close 之后用 redis-cli info | grep conn 发现连接数并没有释放,感到奇怪,查询了很多资料后得到如下结论.

首先看看官方文档

pconnect, popen


Description: Connects to a Redis instance or reuse a connection already established with pconnect/popen.

The connection will not be closed on close or end of request until the php process ends. So be patient on to many open FD’s (specially on redis server side) when using persistent connections on many servers connecting to one redis server.

Also more than one persistent connection can be made identified by either host + port + timeout or host + persistent_id or unix socket + timeout.

This feature is not available in threaded versions. pconnect and popen then working like their non persistent equivalents.

Read on →

Use Vagrant Build Linux Environment to Develop on Mac Os X

vagrant 常用命令

1
2
3
4
5
6
7
8
9
$ vagrant box add {your_box_name} {mirror_uri}#我一般用先用迅雷下好
$ cd {your_destination_directory} #一个目录初始化一台虚拟机
$ vagrant init {your_box_name} #初始化
$ vagrant up  # 启动虚拟机
$ vagrant halt  # 关闭虚拟机
$ vagrant reload  # 重启虚拟机
$ vagrant ssh  # SSH 登录虚拟机
$ vagrant status  # 查看虚拟机运行状态
$ vagrant destroy  # 销毁当前虚拟机

ps: vagrant init不加 box 的名字 默认会初始化一个叫 base 的 box,但是其实 base box 是不存在的..这个时候需要把当前目录删掉 重新来过.

关于 box 的一些操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[haidx@mbp:~/vagrant/centos64_test]$ vagrant box --help
Usage: vagrant box <subcommand> [<args>]

Available subcommands:
     add
     list
     outdated
     remove
     repackage
     update

For help on any individual subcommand run `vagrant box <subcommand> -h`

[haidx@mbp:~/vagrant/centos64_test]$ vagrant box list
centos64     (virtualbox, 0)
centos64test (virtualbox, 0)
[haidx@mbp:~/vagrant/centos64_test]$ vagrant box remove centos64test
Removing box 'centos64test' (v0) with provider 'virtualbox'...
mac

在本地用 Satis 搭建 Composer Packages 镜像

这篇文章将教导你怎么在本地搭建一个composer镜像以节约大量的网络开销时间.

What Is Satis?

Sitis是我们将要用来对我们的项目镜像各种仓库的应用程序名字.它就像一个代理坐落在 Internet 和你的 Composer 之间. 我们的解决方案将要创建一个本地的一些包的镜像并且通知我们的 composer 来使用它来替代在 Internet 上寻找 sources.

一张图胜过千言万语.

如果在本地找到了包,那么讲从本地安装,如果没有,那么将默认从 packagist.org 安装.

Read on →

Ab 压力测试

想必很多人都知道 ab 是干啥的,网上也有很多介绍用 ab 做压力测试的文章,但是大多对其结果介绍的都是稀里糊涂的.这里我们简单介绍下 ab .

Usage

1
ab -n 5000 -c 200 http://thisobj.com/

这里表示总共对目标网址发起5000个请求 并发为200 那么也就是说 一共会发起25次,每次并发200的请求.

Read on →

Git Rm 与 Rm 的区别

git rm = rm + 记录 rm 操作

也就是说执行 git rm 之后,本地会把目标文件删除,而且版本控制系统还会将这个删除操作记录下来. 用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除。

而对于用 rm 命令直接删除的文件,执行 git commit -m "abc" 提交时, 则不会将删除该文件的操作提交上去。 不过不要紧,即使你已经通过 rm 将某个文件删除掉了, 也可以再通过 git rm 命令重新将该文件从 git 的记录中删除掉, 这样的话,在执行 git commit -m "abc" 以后,也能将这个删除操作提交上去。

如果之前不小心用 rm 命令删除了一大批文件呢? 是的,此时用 git rm 逐个地再删除一次就显得相当蛋疼了。 所幸还有更方便的处理方案,用如下的方式做提交就没有问题了: git commit -am "abc"

git rm --cached readme.txt 删除仓库中的记录 保留本地版本

Git

Install Octopress on Mac Os X 10.9

安装方法就不多说了 详情见参考文献 说下注意初学者难理解的地方

整个项目分为两个部分 一部分是博客的源码 也就是source分支(除开_deploy目录之外的其他所有文件)
还有一部分是网站的静态资源(打开网站你看到的全部都是静态资源 所有的页面都是纯html页面) 这部分属于master分支 也就是_deploy整个目录 你可以这样看看

1
2
3
4
5
[haidx@mbp:~/repo/octopress]$ cd _deploy/
[haidx@mbp:~/repo/octopress/_deploy]$ git status
# On branch master
nothing to commit, working directory clean
[haidx@mbp:~/repo/octopress/_deploy]$

安装好之后 运行 rake new_post["myTitle"] 会自动生成一个 markdown 文件

文章生成在目录下的source/_posts目录下。文章是markdown格式的。可以通过 Mou 软件来编辑保存。

rake new_page['about'] 用来新建页面 页面源路径为 source\about\index.markdown

rake generate 根据 _config.ymlsource/_posts下的 markdown 文件生成网站所有需要的静态资源.

rake deploy 这个命令是把网站所有生成的静态资源放到 _deploy 目录下,然后把该目录下得所有文件推送到github的 master 分支.

发布之后运行git status之后发现还是有很多修改文件 , 没错 因为 rake deploy 并没有 push source 分支过去. 如有需要 可以手动 push

1
2
3
git add .
git commit -m 'Initial source commit'
git push origin source

[参考]

Git 阅读笔记(一)

设置参数 git config —global user.name 'starsea'

  • system 编辑 /etc/gitconfig
  • global 编辑 ~/.gitconfig
  • 不带参数 编辑 .git/config

以上依次覆盖配置参数

本篇文章将记录 git config diff igonre add 等基础命令.

Read on →
Git