进入svn data文件夹下你的repos
会发现里面会有这些文件夹
|-- README.txt
|-- conf
|-- dav
|-- db
|-- format
|-- hooks
`-- locks
此次我们会用到的就是hooks
SVN已经为我们提供了一些hook模板
cp pre-commit.tmpl pre-commit 复制一份
chmod +x pre-commit 增加可执行权限
然后修改其内容
ok啦!
内容如下
REPOS="$1"
TXN="$2"
RES="OK"
# Make sure that the log message contains some text.
SVNLOOK=/app/subversion/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | egrep "[^[:space:]]+" >/dev/null || unset RES
if [ "$RES" != "OK" ]
then
echo "You must input some comments for you commit" >&2
exit 1
fi
# All checks passed, so allow the commit.
exit 0
今天在用一个mysql函数的时候 发现正常的select查询中文是正常的 但是通过function返回的值确中文编码显示不正常
后来才发现 在mysqlfunction创建的时候是可以指定 return charset的
如下
CREATE DEFINER=`root`@`localhost` FUNCTION `functionname`
(arg1 INT, arg2 INT, agr3 VARCHAR(255)) RETURNS text CHARSET gbk
BEGIN
##function具体细节
RETURN rAreas;
END
重点在于
RETURNS text CHARSET gbk
这里是可以指定返回值编码的~ 解决此问题
记录一下
今天一个命令行php程序 运行出现错误 dat e();时区设置的问题 需要通过php.ini来设置默认时区
OSX系统 命令行php 并没有启用php.ini 需要自己创建一个
sudo cp /private/etc/php.ini.default /private/etc/php.ini
今天看到了forever-webui觉得很不错、于是就安装了一下试试
参见mk2大人的:http://www.cnblogs.com/fengmk2/archive/2011/11/23/2259679.html
默认安装forever-webui是不能通过外网访问的,且进入管理界面也不需要密码
相信很多同学都需要在外部网络管理自己的nodejs服务~
于是乎想把forever-webui添加一个密码验证~
小弟不才,对nodejs还没玩透,正巧之前是使用nginx端口转发来实现多域名绑定的
所以这次也通过nginx来在中间加一层密码验证~
分为2步:
1.生成auth文件
参考该文:http://www.vpser.net/build/nginx-htpasswd.html
执行:wget -c soft.vpser.net/lnmp/ext/htpasswd.sh;bash htpasswd.sh
按提示输入用户名、密码、及认证文件名。脚本会自动生成认证文件。记录下脚本返回的文件路径。如:/usr/local/nginx/conf/vpser.net.auth。

2.修改nginx conf文件
修改nginx配置文件 我这里是用的vhost
upstream app_node_hello {
server 127.0.0.1:8085;#代理forever-webui的端口
}
# the nginx server instance
server {
listen 0.0.0.0:80;
server_name nodejs.uedpark.com;
# pass the request to the node.js server with the correct headers and much more can be added, see nginx config options
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://app_node_hello/;
proxy_redirect off;
#添加验证
auth_basic "plese input forever web UI password:";
auth_basic_user_file /usr/local/nginx/conf/my.auth.conf;
}
}
然后reload或restart nginx~
再次访问forever-webui 显示如下

至此,为forever-webui添加密码验证完成~没有什么难度,只是提供一种思路而已~
欢迎大家交流分享~
在上一篇文章给大家介绍了Linode
点此查看 http://www.iamued.com/other/2021.html
这次给大家带来的是SAE(Sina App Engine)平台的介绍

你现在访问我的blog其实就是搭建在SAE平台上面的~
为什么现在才介绍SAE不是已经出很久了么?
你说得对,不过SAE在两周年之际 升级了很多东西,应该在第一时间传达给大家
SAE是什么?
SAE是基于云计算技术实现的应用开发和运行平台
目前SAE稳定支持PHP语言 编写的Web应用程序、Python for sae 已经在内测,同时支持多个python框架(Djanjo、Flask、Bottle)等
Python for sea帮助文档:http://appstack.sinaapp.com/static/doc/release/testing/index.html
为什么选择SAE?
其实SAE与GAE(http://code.google.com/appengine/)有很大的相似度
很不幸的是GAE 在国内是无法访问的
国内的同类平台有阿里云的(ACE)、百度的(BAE)
相比之下 SAE已经相对稳定 且免费注册立即开通使用 非常的方便
SAE的服务优势?
1.基于云的架构 分布式 保障系统稳定、性能高效 不因单点故障导致应用down机
2.相关服务
SAE目前已经提供了十多种服务,整体上分为计算型和存储型,计算型又包括同步计算和异步计算,而存储型则分为持久化存储和非持久化存储。具体列表如下:
| 服务名称 |
类型 |
说明 |
| HTTP+PHP |
同步计算 |
带SAE沙盒的Apache和Zend为用户提供Web计算服务 |
| Storage |
持久化存储 |
提供分布式文件存储 |
| Memcache |
非持久化存储 |
提供分布式缓存服务 |
| RDC |
持久化存储 |
分布式数据库集群,提供MySQL服务 |
| TaskQueue |
异步计算 |
异步离线轻量级任务队列,HTTP方式调用 |
| DeferredJob |
异步计算 |
异步离线重量级任务队列,系统方式调用 |
| Counter |
持久化存储 |
计数器服务 |
| RankDB |
持久化存储 |
分布式排行榜服务 |
| KVDB |
持久化存储 |
分布式key/value存储服务 |
| Cron |
异步计算 |
分布式定时服务 |
| FetchURL |
同步计算 |
分布式抓取服务 |
| TmpFS |
非持久化存储 |
提供临时文件存储,文件生命周期在一个会话内,Http请求结束文件自动消失 |
| AppConfig |
|
提供应用配置功能,取代Apache htaccess |
| Mail |
异步计算 |
邮件发送服务 |
| Image |
同步计算 |
图像处理服务 |
| XHProf |
同步计算 |
Facebook提供的强大的PHP调优工具 |
| SVN |
持久存储 |
用户代码部署的入口点:https://svn.sianapp.com/yourapp |
| Online CodeEditor |
持久存储 |
在线代码编辑器,编辑的代码保存后入自动入SVN并部署到Web服务器 |
SAE如何使用?费用贵吗?
其实本文的标题已经提到了,开发者、站长、Geek必备,大家其实非常关心成本的问题
SAE的收费模式是按使用量进行计费,也就是使用多少收费多少,目前SAE有身份认证活动
身份认证成功直接赠送2000云豆、在此申请开发者认证 可以获得应用的推荐及每月高额的云豆奖励

如果你只是想尝试一下 免费赠送的云豆基本就够用了
如果你申请了开发者认证 我相信 跑一个日UV2千的网站也应该足够了 如果你不超过配额的话、也可以理解为是免费的云服务
ok~希望我的使用感受能够帮助你~如果还没有sae帐号,还等什么?立即去注册吧
也欢迎朋友们与我沟通讨论使用经验和问题
http://sae.sina.com.cn/