Skip to content

Instantly share code, notes, and snippets.

View swpu-lee's full-sized avatar

Christian Lee swpu-lee

  • Shenzhen, China
View GitHub Profile
-- 引言 --
Restful是一种非常优美的http接口设计风格及设计规范。使用restful原理来设计接口,可以非常显著地降低多个系统之间的耦合性,也可以使得接口变得非常一致,不仅美观,而且容易理解和上手。
然而在实际工作中,似乎很难真正用上完全的Restful,理想和现实总是有差距的- -
通过不断地实践归纳,结合restful的核心原理,我小结出了一套类Restful接口规范。它基本上解决了我在项目中遇到的90%的问题,自我感觉良好,哈哈。
-- 正文 --
== 请求/响应规范 ==
请求
GET: 使用url传参,如:?a=1&b=2
--引言--
这段时间打算在站点上添加新闻功能,但是鉴于之前的经验,觉得这个事情自己开发实在时太不值当了(需求、原型、效果图、网页重构、前后端代码、管理后台代码……还不包括维护和升级的成本),所以决定搭建一个discuz!站点,用这个来做实际的新闻录入和展示,然后在主站上做一个新闻推荐系统就行了。
之前两年一直在搞python,php说实话没看过两眼。好吧,今天就来搞一搞php。
--正文--
经以前同事文总建议,我装了php5.2.17(http://www.php.net/get/php-5.2.17.tar.gz/from/a/mirror)
不用参数的话,安装其实是很快的(./configure && make && make install)。
可蛋疼的是,据说php自带的那个cgi不给力,所以需要用一个叫php-fpm的玩意来patch一下,使用fastcgi来跑,于是开始安装php-fpm。(5.3以上版本已经自带了,详细参见http://php-fpm.org/download/)
在 http://php-fpm.org/downloads/ 上找到对应的php-fpm版本,然后下载之。下载下来的是一个补丁文件,所以需要如下方式安装:
我对项目目录结构的理解:
1、必须不交叉依赖,而应该是树状依赖
2、拥有较好的可读性和可管理性。
3、在可能的前提下,提高部分模块的可移植性
4、尽量简单,不搞层级太深,减少目录数量
基于flask建议的结构,结合实际工作中遇到的问题,总结了如下结构。
HelloApp/
系统环境:centos_6.4_x64
我的项目中还用到了virtualenv,碰到问题的朋友可以尝试以下方案:
1、让系统找到自定义安装的mysql目录下的lib
echo "/usr/local/mysql/lib/" > /etc/ld.so.conf.d/mysql.conf
2、把mysql_config 软链接到/usr/local/bin/下
ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config
解决步骤:
检查版本
[root@snow pkg]# rpm -qa | grep yum
yum-plugin-fastestmirror-1.1.30-14.el6.noarch
yum-3.2.29-40.el6.centos.noarch
yum-metadata-parser-1.1.2-16.el6.x86_64
yum-utils-1.1.30-14.el6.noarch
yum-plugin-security-1.1.30-14.el6.noarch
2)下载版本
直接下载安装包,装python2.7.5,默认应该会在/usr/bin/下面多一个python2.7
因为系统的python是2.6,所以如果用easy_install装了pip及virtualenv,那么全部的项目都不使用python2.7了
所以我们需要自己下包,安装pip等
(以下4步全都是使用su权限进行操作)
1、下载distribute,用于定位pypi内容的
wget --no-check-certificate https://pypi.python.org/packages/source/d/distribute/distribute-0.7.3.zip#md5=c6c59594a7b180af57af8a0cc0cf5b4a
1、新建一个sshkey(依次输入保存到哪个文件、密码、重复密码,例子中假设文件为:~/.ssh/22_rsa):
ssh-keygen
2、把公钥copy到服务器上去:
因为在osx下没有ssh-copy-id,所以采用如下方法获得一个ssh-copy-id命令
sudo curl 'https://raw.github.com/gist/1639381/eea46277ba544fcbd0a0768e8b3f854880ddb772/ssh-copy-id' -o /usr/bin/ssh-copy-id
sudo chmod 777 /usr/bin/ssh-copy-id
ssh-copy-id '-p 22055 user@remote.example.com'
3、把私钥添加到本地钥匙串访问(Keychain Access)
1. 生成对应github账号的ssh-key(输入存储路径~/.ssh/github_rsa => 输入swpu-lee在github上的密码)
ssh-keygen -t rsa -C "swpu-lee@github.com"
2. 将公钥copy出来,贴到model-i-work账号上的SSH Keys中
pbcopy < ~/.ssh/id_rsa.pub
https://github.com/settings/ssh
3. 测试是否连通了