Mac下架SVN

2011年12月12日

Mac create svn 作个笔记:

1.准备工作
准备好源码包安装,客户端我用smart svn

2.安装
安装不多写,make && make install

3.配置
首先需要创建一个版本库存放的目录,如:
# mkdir -p /usr/local/svndata
之后需要使用 svnadmin 命令来创建一个版本库,如:
# svnadmin create /usr/local/svndata/test

svnadmin 和 svnlook 都是服务器端的工具,他们可以直接操作版本库服务器上的目录和文件,
而不需要 Subversion 服务器运行。

进入到刚才创建的版本库目录 /var/svnroot/test 中,可以看到里面的目录结构如下:
# ls
conf db format hooks locks README.txt

其中的conf目录为存放配置文件的地方,里面共有三个文件:authz、passwd 和 svnserve.conf 。

svnserve.conf 文件是用来设置认证和授权策略的,例如认证使用简单的用户名和密码机制,授权策略为经过认证的用户可以读写版本库、匿名用户只能读不能写。这个配置文件如下:
  [general]
  # 匿名用户只读
  anon-access = read
  # 认证用户可写
  auth-access = write
  # 使用 passwd 文件保存用户名和密码
  password-db = passwd

其中最后一行 password-db = passwd 的意思是按照 passwd 文件中设置的用户名和密码进行验证,故需要配置 passwd 文件,如:
  [users]
  test = 111111

4.启动
运行 svnserve 命令,带 -d 选项即可以作为一个单独的守护进程运行,-r 选项可以指定发布哪个目录下的版本库。
# svnserve -d -r /var/svnroot

一旦服务器运行,就在端口3690进行监听。使用 telnet 可以测试到 3690 端口已经开放了,如下:
# telnet 127.0.0.1 3690

Frank Linux/Unix相关, Network/Servers相关 ,

Linux服务器管理软件

2011年11月29日

发现一套WEB服务器管理软件,个人感觉不错,与大家分享!

Linux服务器管理系统 wdcp v2.0 正式版发布

不多说,可看演示http://demo.wdlinux.cn:8080
用户密码:admin/wdlinux.cn
详细功能列表 http://www.wdlinux.cn/wdcp

原文章链接:URL

Frank Linux/Unix相关, 文章

web压力测试工具

2011年11月16日

介绍两款WEB压力测试工具(window and linux平台)
1. window平台下的工具:apache jmeter
URL:http://www.apache.org/dist/jmeter/binaries/jakarta-jmeter-2.5.1.zip
描述:此工具有图形报表。

2. linux平台下工具:webbench
URL: http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz
描述:此工具报告每分每秒字节量和请求数。
Usage:
webbench -c 500 -t 30 http://www.example.com/phpinfo.php
参数说明:-c表示并发数,-t表示时间(秒)

Benchmarking: GET http://www.example.com/phpinfo.php
3000 clients, running 30 sec.

Speed=8358 pages/min, 8791523 bytes/sec.
Requests: 4179 susceed, 0 failed.

Frank Network/Servers相关, 文章

基于OpenSSL的CA建立及证书签发

2011年9月2日

最近接触到RSA算法加解密问题,涉及到的公钥密钥生成的问题,借助OpenSSL来解它,废话不多说,直接上步骤。

建立 CA 目录结构

按照 OpenSSL 的默认配置建立 CA ,需要在文件系统中建立相应的目录结构。相关的配置内容一般位于 /usr/ssl/openssl.cnf 内,详情可参见 config (1) 。在终端中使用如下命令建立目录结构:

$ mkdir -p ./demoCA/{private,newcerts}
$ touch ./demoCA/index.txt
$ echo 01 > ./demoCA/serial

产生的目录结构如下:

.
`– demoCA/
|– index.txt
|– newcerts/
|– private/
`– serial

阅读全文…

Frank Network/Servers相关, 文章, 算法加解密

GUID和UUID生成类

2011年8月24日

工作需求接触GUID,整理了一个类,作个笔记吧!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 <?php
 
class Guid
{
 /**
 * 系统当前时间
 */
 private static function  _curTimeMillis() {  
 list($usec,  $sec)  =  explode("  ",microtime());
 return  $sec.substr($usec,  2,  3);  
 }
 
 /**
 * 客户端相关信息
 */
 private static function  _getHost() {
 $name = empty($_SERVER["HTTP_USER_AGENT"]) ? 'localhost' : $_SERVER["HTTP_USER_AGENT"];
 return strtolower($name . '/' . self::_clientIp());
 }
 
 /**
 * 客户端IP
 */
 private static function _clientIp() {
 $ip = (@$_SERVER['HTTP_REALIP'])
 ? $_SERVER['HTTP_REALIP']
 : ((@$_SERVER['HTTP_X_FORWARDED_FOR'])
 ? $_SERVER['HTTP_X_FORWARDED_FOR']
 : @$_SERVER['REMOTE_ADDR']);
 
 if (empty($ip))    $ip = '0.0.0.0';
 return $ip;
 }
 
 /**
 * 随机数
 */
 private static function  _random() {
 $tmp  =  rand(0,1) ? '-' : '';
 return  $tmp.rand(1000,  9999).rand(1000,  9999).rand(1000,  9999).rand(100,  999).rand(100,  999);  
 }
 
 /**
 * 生成GUID字符串
 * (长度:32 + 4)
 * 三段:一段是微秒,  一段是地址,  一段是随机数
 */
 public static function  toString() {
 if (function_exists('com_create_guid')) {
 return com_create_guid();
 } else {
 $string = md5(self::_getHost() . ':' . self::_curTimeMillis() . ':' . self::_random());
 $raw  =  strtoupper($string);
 return  substr($raw,0,8).'-'.substr($raw,8,4).'-'.substr($raw,12,4).'-'.substr($raw,16,4).'-'.substr($raw,20);
 }
 }
}
 
------------------------------------------------
class Uuid
{
 private $_yearCode = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T');
 const START_YEAR = 2011;
 
 /**
 * 组成结构:年份(1个字符),月份(1个字符[十六进制]),日(2个字符),时间戳(后5字符),微秒(6个字符),随机数(3个字符) = 18个字符
 */
 public static function make() {
 return    $this->_yearCode[intval(date('Y')) - self::START_YEAR].
 strtoupper(dechex(date('m'))) . date('d') .
 substr(time(), -5) . substr(microtime(), 2, 6) . sprintf('%02d', rand(0, 99));
 }
}

Frank PHP相关 ,

Notepad++与Textmate主题可互导

2011年8月17日

Notepad++是一款不错的编辑器,很轻巧,我很喜欢它。再换个主题,加个代码高亮,看上去就更专业了。如果你是Mac用户,应该听说或使用过Textmate(什么?没听过,那你该补课了!),Textmate的主题可以通过转化使用在Notepad++上,让你同样拥有漂亮的编辑界面。

操作很简单:

1. 到Textmate Theme Directory里找一个你喜欢的主题;
2. 下载这个主题,用任何文本编辑器把它打开,复制所有代码,贴到theme converter page里,然后“Download”;
3. 把转化完的主题放到“C:\Documents and Settings\%%USERNAME%%\Application Data\Notepad++\” 中;
4. 将文件名改为stylers.xml;
5. 关闭你的Notepad++,重新打开,你的新主题是不是已经起作用了?

Frank 文章

MySQL v5.5怪问题

2011年8月15日

环境:LAMP , MySQL v 5.5,
问题:命令行登录mysql
格式:#mysql -u user -p password -h 127.0.0.1 (回车)
{提示:在上一行中如果不输入密码,在提示输入时再输入却可以登录,因为是程序自动跑,所以要预先设置好密码}
提示:ERROR 1045 (28000): Access denied for user ‘user’@'localhost’ (using password: NO)
分析:
用另一个帐号能正常登录,用ROOT帖号也能正常登录,分析密码中,发现一个此帐号密码中有符号“&”,
初步判断问题就在于它。
解决:修改密码去掉“&”符号,然后再登录便正常。
总结:“&”符号可能是MySQL的特殊关键符或其它什么,看来MySQL密码不是什么字符都能有 :(

不知道有没有朋友遇到和我类似的问题呢,欢迎探讨!

Frank Database相关 ,

产品设计常用软件——MAC

2011年8月8日

工具永远是一件好东西,如果你不能创造,那就不妨学着去使用他们。在如果在你的产品设计工作中需要完成一些设计稿、交互图、导图和文档,都可以试试我下面推荐的一些软件。

下图是我的DOCK,供大家参考。

1、Axure RP

AXURE是一款原型设计软件,用于交互设计的工具,用来设计软件WEB产品的原型效果图。相较于利用PowerPoint或Visio软件,Axure RP 可以让应用网站策划人员或网站功能产品设计师,更快速且更简易的建立Web AP和Website的wireframe、流程图。我目前所用的是5.6.0版本。 Axure目前提供Mac版和windows版,感兴趣的话可以去网上下载试用。

2、OmniGraffle Professional

主要用于绘制流程图。界面华丽,功能智能,只要对流程图的概念比较熟悉,上手就可以绘制非常精美的图形。最喜欢它的功能是有很多开源的模板,可以完成一套自己爱用的样式。

通常情况下,我会用它完成日常设计工作中难以用语言和文字表述清楚的逻辑关系。 阅读全文…

Frank 设计类 ,

常用的MySQL语句

2011年8月4日

作个记录:

以下是权限,除了“create user, grant”两权限没有,其它都有:

SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE

 

以下是新增用户并且授权:

GRANT ALL PRIVILEGES ON *.* TO ‘user’@'localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO ‘user’@'localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;

最后刷新
flush PRIVILEGES;

Frank Database相关

CentOS 5下配置Samba

2011年8月3日

居然博客里没有类似的笔记,补下吧。
首先切换到ROOT用户下,步骤如下:
vi /etc/samba/smb.conf  ← 编辑 Samba 的配置文件

找到相应位置,修改原则:如有则改,如无则增.

[global]   ← 找到这一行(全局设置标签),在此行下面添加如下行:
dos charset = GB2312  ← 将 Windows 客户端的文字编码设置为简体中文 GB2312
unix charset = GB2312  ← 指定 CentOS Samba所在的 CentOS 服务端新建文件或目录时的编码为 GB2312
display charset = GB2312  ← 指定使用 SWAT(一种通过浏览器控制Samba的工具)时页面的默认文字编码
directory mask = 0777  ← 指定新建目录的属性(以下4行)
force directory mode = 0777
directory security mask = 0777
force directory security mode = 0777
create mask = 0777  ← 指定新建文件的属性(以下4行)
force create mode = 0777
security mask = 0777
force security mode = 0777

workgroup = WORKGROUP ← 变为此状态,这里以 Windows XP 默认的“WORKGROUP”为例
hosts allow = 192.168.0. 127.  ← 变为此状态,指定内网IP地址及本地,只允许这两种情况的访问

security = user
# security =user 修改为 security =share
# 再在下面[Samba]增加下guest 可读
# guest ok =yes
#允许匿名访问。

passdb backend = tdbsam
username map = /etc/samba/smbusers

然后在CentOS Samba 配置文件的末尾填如下几行,定义公众共享目录:

[Samba]
comment = Develop Server
path = /home/share
public = yes
browseable = yes
writable = yes
available = yes 阅读全文…

Frank Linux/Unix相关, Network/Servers相关