docker 制作自己的 php-fpm镜像

php-fpm的镜像官方已经有了,但是直接拿过来用或许不行,不同的项目所需要的扩展不一定一样。所以这里我们以官方的php-fpm 5.6版本为基础镜像,在这个镜像上制作我们自己的镜像。开发环境安装尽可能多的扩展,线上环境则安装所需要的扩展。

为了构建我们的镜像,首先需要一个名为Dockerfile的文件,docker会根据这个Dockerfile来构建镜像。

首先使用FROM指令,表示当前构建的镜像的基础镜像

FROM php:5.6-fpm

docker会从他自己的镜像库中拉取php-fpm5.6的镜像。 (更多…)

后端开发需要安装的chrome插件

每一次更换环境都要重新安装一遍chrome的各种插件,这次就记录下来,供下次需要,也供正在阅读本文的你作为参考,说不定能够找到一些比较好的插件呢。

json handle

在处理接口的时候,json-handle格式化输出的json字符串。

AdBlock

比较厌烦广告,adblock是一个比较好的屏蔽广告的插件

HostSwitch

使用代理的方式来达到切换host目的,HostSwitch是一个不错的选择,不直接修改hosts文件。在调试网站或者接口是一个非常棒的选择

Proxy SwitchyOmega

一个非常棒的代理插件,能够根据规则选择是否使用代理

Eye Dropper

一个网页取色器的插件,本来想搜索color picker,然而不知道为什么搜索到的不好用。

未完…

使用 ssh config给你的远程主机创建别名

与windows不一样,通常在linux下(mac也一样)一般使用终端来连接远程主机而不是使用一些比如putty或者是xshell。

ssh -p port name@host

这样未免有些麻烦,实际上通过配置ssh的config文件能够使用别名,简化连接,用户的配置文件在~/.ssh/config, 没有的话就创建一个。配置示例如下

Host 别名
    HostName 主机域名或者ip
    User 用户名
    Port 指定端口号

(更多…)

发布composer包到packagist让所有人都能用

创建了composer包之后,要让所有人都能使用你的包,就必须要发布到packagist上。

首选你的包需要使用git

大多数人可能都有github了,进入packagist的提交页面:https://packagist.org/packages/submit,输入包的github地址,提交即可。

使用hook自动更新

当提交了github之后,想让你的包自动更新可以使用webhook。按照相应的提示去设置就可以了。

创建自己的composer包之怎样制作composer包

项目做多了之后,可能会慢慢总结出自己的代码库出来,当在新的项目中使用的时候,总不能一直是复制粘贴。这个时候,composer就能派上用场了。一个项目开始,使用composer就能够加载所需要的依赖,非常方便。这个时候,来做一个自己的包吧!

使用命名空间

composer自动加载需要用到命名空间,因此所有的代码库都需要使用命名空间,如果没有,那就改吧!使用命名空间之后你可能会打开新世界的大门。

创建composer.json

我假设你已经安装了composer,并且已经会使用了。创建自己的包我们首先需要创建一个composer.json,示例文件如下

{
    "name": "cmhc/tests",
    "description": "a test",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "huchao",
            "email": "hu_chao@139.com"
        }
    ],
    "minimum-stability": "stable",
    "require": {},
    "autoload":{
        "psr-4":{
            "test\\":"src/"
        }
    }
}

上面的composer.json有一个比较重要的是autoload,这个表示的是根据某种规范实现自动加载,使用psr4。key为这个包的根命名空间,value为根命名空间的文件夹。 (更多…)

mongodb 常用命令

最近业务可能会用到mongodb,因此将mongodb的一些特性和常用命令整理一下。

mongodb是一种非关系型数据库中最像关系数据库的,但我用mongodb仍然只把它当做KV存储,其他的关系一概不做,对于关系,还是让MySQL去做吧!关于mongo集群的搭建已经有运维帮我搭建好了,我就直接用了,但是在用之前,了解mongo集群的搭建十分有必要。

关于Mongos,Mongod

Mongos:起着路由的作用,根据分片key找到数据所存放的分片位置

Mongod:数据存放的位置

关于索引

索引在任何数据库都起着至关重要的作用,没有索引的数据只能是一堆杂乱无章的集合,在mongo的集合中,可以创建索引,创建索引的命令是ensureIndex (更多…)