Month: 四月 2014

LazyPHP4预览版发布

这次不是招人的事情了。LazyPHP4今天发布了一个预览版,为什么叫预览版呢,因为很多地方我还没弄好,但基本能用了,所以拿出来给大家看看。

首先出场的是,我们的吉祥物

lplogo

延续LazyPHP的Lazy精髓,LP4把路由指定、输入检查和文档生成全部用一套注释语法搞定了。以后还会用可视化的LazyRest来生成这部分语法——是的,我懒到家了。

最后代码就长成这个样子:

/**
* 文档分段信息
* @ApiDescription(section="User", description="查看用户详细信息")
* @ApiLazyRoute(uri="/user(/@id:[0-9]+",method="GET")
* @ApiParams(name="id", type="int", nullable=false, description="Uid", check="i|check_not_empty", cnname="用户ID")
* @ApiReturn(type="object", sample="{'id':123}")
*/
public function info($id)
{
if( !$user = db()--->getData( "SELECT * FROM
user WHERE id =:id LIMIT 1" , $id )->toLine() )
throw new \Lazyphp\core\DataException("UID 对应的用户数据不存在");

return send_result( $user );
}

其实这个版本还有很多好东西,具体看GitHub页面吧。https://github.com/geekcompany/LazyPHP4

Ubuntu下安装Gearman

gearman本身可以通过apt-get直接安装,但是它的PHP扩展是不行的,需要添加最新的源。安装命令如下:


apt-get install gearman-job-server
add-apt-repository ppa:gearman-developers/ppa
apt-get update
apt-get install libgearman7 libgearman-dev
pecl install gearman

安装完成后,需要将so添加到ini中。

sudo vim /etc/php5/apache2/php.ini
sudo service apache2 graceful

为了调试方便还可以安装gearman的命令行工具

apt-get install gearman-tools

利用Hook把Git当网站发布工具用

以前在服务器上架一个网站,都要其一个FTP server来更新代码,还经常出现误删(本博客就被删过一次,嘤嘤嘤)的情况。后来我就一直用Git来部署了,好处是不用到处找FTP客户端了,代码同时存在服务器和家里的电脑上,万一丢了也能找回来。当然,还可以随时回滚到特定的时间。

这里简单说一下通过Git的Hook机制来更新网站代码,这样你只需要在自己电脑上git push,服务器上的代码就更新了。
首先,你要有SSH权限。

架设服务器端Git仓库

apt-get install git
mkdir repo
cd repo
git --bare init

创建本地Git并完成第一次推送


mkdir source
cd source

touch README
git init
git add README
git commit -m 'init'
git remote add origin username@servername:/path/to/repo
git push origin master

最后我们来添加Hook,回到服务器

cd /repo/hooks
vim post-receive

然后填入以下内容,记得把web目录的路径替换成你自己的。

#!/bin/sh
GIT_WORK_TREE=/path/to/www git checkout -f

最后记得

chmod +x post-receive

就大功告成啦。

Hook执行的权限是由你用来往repo push的帐号决定的,如果部署不成功请检查该帐号是否对web目录具有写权限。另外post-receive必须有可执行权限,不然什么都不会发生(我就忘了,检查了好久,这也是为什么要写这篇博客的原因)。

配合GitHub客户端的Revert可以实现版本的回滚发布:

Screen Shot 2016-05-06 at 8.15.48 PM

 …