Aug 31 2011

mysql 检查和修复Table表

Category: 技术ssmax @ 19:24:58

昨晚大厦停电了2个小时,ups太老了,撑不住,导致全部服务器挂了,应用程序的还好,重要是数据也挂掉了,今天急忙检查了一下表结构,记录一下语句:

nohup myisamchk --key_buffer_size=64M --sort_buffer_size=64M --read_buffer_size=1M -F /home/mysql/*/*.MYI > tables.log 2>&1 &

检查的时候最好加上这些buffer设置,要不遇到大表的话速度会非常慢。
如果是已经停机的话直接用myisamchk的-r 参数就可以修复了,不过我还是习惯找出问题后用

REPAIR TABLE xxx 命令来修复,顺便修复玩OPTIMIZE一下,呵呵。


Aug 29 2011

[转载] 国内外免费DNS精品

Category: 技术ssmax @ 19:01:53

刚好在找dns,看到这篇总结得很全面,转载收藏一下,呵呵

 

一、国外免费DNS解析:

1、DNS.HE.NET

用过linode的VPS的同学肯定对HE.NET多少也有些了解吧,Linode的加州服务器就放置在HE.NET的Fremont数据中心。

HE.NET( Hurricane
Electric.)成立于1994年,最近推出了免费的DNS解析服务,最多支持50个域名,解析类型:AAAA记录、CNAME别名记录、MX邮件记录、NS记录、TXT记录、SRV记录。共有5组DNS服务器,分别为ns1~ns5.he.net。支持IPv6的解析。

注册地址:http://ipv6.he.net/certification/register.php

2、ZoneEdit

美国著名的老牌免费域名DNS解析服务,成立于1999年。免费帐户最多可添加5个域名。解析类型:A记录、AAAA记录、
TXT文本记录、LOC记录、PTR记录、CNAME别名记录、MX邮件记录、网址转发、邮件转发等。界面超级简洁,速度快,稳定。

注册地址:http://www.zoneedit.com/signup.html

3、Dnsever.com

是一家韩国网站,在2004年推出的域名免费DNS解析服务,界面支持朝鲜语和英文,该网站在韩国是数一数二的著名免费DNS服务商,提供的服务很稳定,支持所有英文域名,很多申请俄罗斯ru域名的喜欢用它做DNS服务器,设置记录几分钟完成解析。

Dnsever.com提供5台DNS服务器,可设置A、MX、CNAME、TXT、SRV、PTR、NS、AAAA、TTL等解析记录,
一个账号可添加无限个域名,可设置无限个解析记录数,支持动态解析。

注册地址:http://www.dnsever.com/index.html?selected_menu=registerlanguage

注册成功后需要邮件激活,添加域名时会遇到“Memo ”为域名描述,可不填,“Template Setup”提示是否和Google
Apps(主要是谷歌的免费企业邮局)或Google AdSense(谷歌广告)进行整合,不需要可不填,或以后再添加,直接点“Start DNS
management for 域名”即可。

4、DnsExit

是一个提供免费动态DNS解析和域名DNS解析服务的公司,DnsExit的Dns解析支持MX、A、CNAME、SRV、TXT等记录。

要使用DnsExit的免费DNS解析服务,需要首先注册DnsExit账户,在登陆之后点击“Manage
Domain”开通免费dns服务,之后才可以添加域名。然后再点“Manage Domain”就可以看到自己添加的域名了。然后再点“Domain
DNS”后面的“Edit DNS”可以进入DNS管理界面,你可以在次添加和删除记录。

注册地址:https://www.dnsexit.com/Direct.sv?cmd=signup

DnsExit的DNs为:ns1.dnsExit.com、ns2.dnsExit.com、ns3.dnsExit.com、ns4.dnsExit.com

5、DNSpark.net

成立于2002年的免费DNS服务商,每个免费用户仅能添加2个域名,不过可以重复注册账号,如果有多个域名,还是推荐用其它的免费DNS解析。DNSpark被大家关注,应该也是其能解析免费的ru域名,而现在通过测试,对ru域名的支持也不是很好,经常出现不能检测通过的情况。

Dnspark的免费账号,每个只能添加2个域名,域名可添加A、CNAME、MX、TXT记录,虽然不是很多,不过我们用应该没问题了。

注册地址:https://www.dnspark.net/register/?k=

Dnspark
的域名服务器有五组:ns1.dnspark.net、ns2.dnspark.net、ns3.dnspark.net、ns4.dnspark.net、ns5.dnspark.net

6、Domaincow.com

是一家互联网域名资源中心,网站设在美国,专门从事域名注册、域名转售、域名保留和DNS服务,该网站于1999年1月10日开始上线服务,已在线至少十三年了,连续三个月的Alexa全球流量排名在11,573,893。

Domaincow.com提供简单易用的免费网页和电子邮件转发服务,域名可添加A、CNAME、MX、TXT记录。

注册地址:http://domaincow.com/

Domaincow.com的域名服务器有3组:COW1.DOMAINCOW.COM、COW2.DOMAINCOW.COM、COW3.DOMAINCOW.COM

7、Domain-dns

提供了一个简单易用的Web和电子邮件转发服务。对于高级用户还包括一个完整的DIY的DNS远程“IP更新“的服务。

Domain-DNS.com是BareMetal.com的一个分部,BareMetal.com本身是一家著名的网络主机和域名注册公司,坐落在加拿大的不列颠哥伦比亚省的维多利亚市。

Domain-DNS.com的邮件转发服务是唯一要收费的,DNS和网页转发服务是免费的。域名可添加A、CNAME、MX、TXT记录。

注册地址:http://domain-dns.com/

Domain-dns.com
的域名服务器有3组:ns1.domain-dns.com、ns2.domain-dns.com、ns3.domain-dns.com

8、EveryDNS

现已被Dyn Inc收购,美国的免费DNS解析服务商,从2001年至今一直坚持提供稳定的免费服务。免费账户支持20个域名,200条解析。解析类型:A、
CNAME、NS、MX、AAAA记录以及Axfr管理。共有4组DNS服务器,ns1~ns4.everydns.net。

注册地址:http://www.everydns.com

9、EditDNS

创建于2000年,以前提供免费服务,后来收费和免费并行。EditDNS操作简单易用,功能强大,解析速度快,解析控制面板很简洁,很方便,当然你要把TTL设为360。第一次TTL更新时间相当久,SOA记录完整更新和转移完毕,至少花了快一天的时间。

需要值得注意的是,免费账户只能添加5个域名。

解析类型也是非常的丰富:A,AAAA,CNAME,DNSKEY,LOC,MX,NS,RP,TXT,SRV,PTR,支持IPv6的解析。还有额外的DynDNS
Record、URL Forwarding(5 Forwards)、E-Mail Forwarding(5 Forwards)、Mail Re-
Routing(1 Domains)、Backup DNS(5
Domains),如果想开启更多的功能或解除一些限制,可以考虑捐献最5最少美元以上(一次3个月),或直接捐200美元成为终身付费会员。

注册地址:http://free.editdns.net/?site=register

EditDNS共有2组DNS服务器,free01.editdns.net、free02.editdns.net。

10、FreeDNS.ws

是一家美国免费域名DNS解析服务网站,界面简洁,注册简单,支持添加任何后缀的域名,支持Google Apps服务。

FreeDNS.ws的免费域名DNS解析服务有三种模式:简单模式可直接设置IP指向、转发模式可设置301永久重定向和302临时重定向、高级模式可设置A记录、AAAA记录、CNAME记录、MX记录、PTR记录、TXT记录。另外,FreeDNS.ws还提供了Lookup、Ping、
Traceroute、Whois、RBL-Check等几种免费站长网络工具。

注册地址:http://www.freedns.ws

FreeDNS.ws的DNS服务器为:ns1.freedns.ws、ns2.freedns.ws、ns3.freedns.ws、ns4.freedns.ws。

11、freedns.afraid.org

是一家创建于1999年美国的老牌DNS网站,提供免费DNS解析服务,支持CNAME, A, MX, NS,
AAAA,TXT, LOC, RP, HINFO,
SRV记录等等,支持动态域名解析,支持域名url转向,可添加无限个自己的顶级域名,免费用户每个域名只能添加20个二级域名(记录数),功能十分强大。

此外它还具有一个特色的免费服务,它就是一个免费二级域名的注册平台,允许你开放分享你的域名给别人注册以你域名为后缀的二级域名(限分享5个顶级域名),你也可以注册别人提供的二级域名,目前有68324个域名后缀可以申请,除较有名的Co.cc外,还包括us.to、uk.to
、biz.tm、it.cx、qc.to等(有些在国内被屏蔽,无法访问)易记的免费二级域名。

现在已经对中国IP开放了,无需使用代理也可以注册。注册地址:http://freedns.afraid.org/signup/,填写注册信息后,须到邮箱打开激活链接即可。

管理和设定介面有点复杂,第一次新增域名时记得要把Shared
State设为Private(私人),不要设为Public(公用),要不然所有注册会员都可以拿你的域名来当二级域名设定。 新增一笔记录是点击contact
owner旁边add按钮,非底下Add按钮。 设定NS直接点击域名管理的Edit Secondaries就可以了,一行一个,至少要保留一台他们的NS。

freedns.afraid.org的4台DNS服务器是NS1.AFRAID.ORG (67.19.72.206)、NS2.AFRAID.ORG
(66.252.5.14)、NS3.AFRAID.ORG (72.20.15.62)、NS4.AFRAID.ORG (208.43.71.243)

免费会员一个域名限制最多25笔记录,想要再增加记录请付费购买。 第一次设定之后TTL更新速度快,大概不到8小时。
如果一个域名记录移除之后再重新加入,资料都还会保留,但是域名都是尚未启用的状态,30天后资料就会全部删除。

12、Godaddy

只要有Godaddy的账户就可以使用GoDaddy 提供的域名解析服务(Off-Site DNS)。

解析类型:A、CNAME、MX、TXT、SRV、AAAA、NS等,功能十分的齐全强大。有两组DNS服务器,mns01.domaincontrol.com.和mns02.domaincontrol.com.,不过域名绑到其免费主机上后就能用其收费
DNS服务器,常用的有ns25.domaincontrol.com和ns26.domaincontrol.com两组。

注册地址:http://www.godaddy.com

13、Gratisdns.dk

是丹麦无限域名解析网站,它的英文页面很差,而使用费力,但其网站界面简洁,通俗易懂,即使是新手,上去多按几次也便记忆住了。

它的特点在于它的服务器多,总共有5台解析服务器,分别为:ns1.gratisdns.dk(194.192.15.130)、
ns2.gratisdns.dk(193.88.144.238)、
ns3.gratisdns.dk(80.163.90.200)、ns4.gratisdns.dk(217.157.61.67)、
ns5.gratisdns.dk 207.44.200.58

它的解析速度不言而喻,它的功能齐全,反正别的dns有的功能它都有。解析速度实测:30分钟 (属于最稳定的时间周期)申请很简单,不用激活信。

注册地址:https://ssl.gratisdns.dk/editdomains4.phtml

14、MyDomain

算是老牌免费域名DNS解析服务商了,从1998年服务至今,现在已被美国著名域名主机服务商Dotster收归旗下。

MyDomain的免费域名DNS解析服务可以设置A记录、CNAME记录、MX记录、TXT记录以及NS记录,还可以设置网址转发和电邮转发。

注册地址:https://secure.mydomain.com/order/usc/login.php

使用方法:

先申请个MyDomain的帐户。登陆帐户后,在页面中部有一行粗体字“To manage domains not registered with us,
click here”,点击进入,再点页面下方“Add Domains”进入添加域名。

把添加的域名的DNS设置为:NS1.MYDOMAIN.COM、NS2.MYDOMAIN.COM、NS3.MYDOMAIN.COM、NS4.MYDOMAIN.COM。

然后回到原来的位置,点添加的域名进入设置解析、转发,如果要添加二级域名在页面左面的“New
Subdomain”中添加,再进入这个二级域名设置就行了。

15、Sitelutions

公司成立1995,提供免费的DNS服务,保证99.999%网络正常运行时间、支持动态DNS,网址重定向,可以在上面停放域名,免费的子域名,支持自定义域名服务器等。查询该域名的相关信息,PR值为6,域名于2002年注册,2013年到期,貌似确实挺好挺强大的样子。

Sitelutions 提供数种免费子网域名( Free subdomain ),例如:.rr.nu, .fw.nu, .FindHere.org,
Lookin.At, Passing.as, Redirect.hm, Kwik.to, OnTheWeb.nu, IsTheBe.st,
OnTheNet.As等, DNS 纪录设置,支持 A Records, CNAME, MX Records, TXT Records, AAAA(IPv6),
NS Records。

注册地址:http://www.sitelutions.com

Sitelutions的DNS解析服务器总共有5台,分别为:ns1.sitelutions.com(66.117.40.216)、
ns2.sitelutions.com(69.26.176.28)、ns3.sitelutions.com(66.231.180.140)、
ns4.sitelutions.com(69.26.176.208)、ns5.sitelutions.com(69.93.94.154)

16、Twisted4Life

免费帐号只能设定Secondary DNS,10个域名记录,一台ns1.twisted4life.com的Name
Server。 只要设定域名和Primary DNS的IP就完成了,剩下就是等TTL资料更新,通常一个小时内就会更新完成。

Name Server不知是稳定性不够好,还是线路问题,偶尔检测DNS会无回应被判定为Lame
Server或Offline。比较特别的一点是,如果把EveryDNS当Primary
DNS,在这里IP要设为64.158.219.3(axfr.everydns.net),不能设为其他NS的IP,否则会无法zone
transfer而出现Non-authoritative answer。 如果是使用其他家的Primary DNS,NS的IP则可以正常设定。

注册地址:http://twisted4life.com/dnsadmin.php?Create=newaccount

17、Web-dns.co.uk

是一家英国网站,从2000年起提供免费的域名DNS解析服务,支持A纪录,NS纪录,MX纪录,CNAME纪录,设置的记录数没有限制。功能强大,操作简单。

网站已经很久没更新,目前还是正常运作中,可以设定多种记录(例如TEXT、PTR等),连SOA记录都可以细部设定,不过在设定栏位的字体和颜色实在太小又太浅,眼睛看得很吃力。网站宣称完全免费,似乎没有限制域名和记录的数量,但也只能当一般Primary
DNS,其他功能都没有。

注册地址: http://web-dns.co.uk/index.php

Web-dns.co.uk的DNS服务器为:ns1.nsnoc.com 195.69.95.112、ns2.nsnoc.com
195.69.95.114、ns3.nsnoc.net、ns4.nsnoc.net

个人不建议使用,因为四台Name
Server都在同一个IP网段(195.69.95.*),一旦提供该IP的ISP断线(或其他因素),同IP网段有很高的机率会同时断线(线路相同)。

18、XName.org

是一家法国网站,从2001年起提供免费的域名DNS解析服务,有三台DNS服务器,网页有英文和法文两种语言界面。可解析所有英文字母组成的域名,支持设置NS、MX、A、CNAME、AAAA(IPv6)解析记录,设置的记录数没有限制。

注册地址:https://www.xname.org/createuser.php?language=en,注册需要邮件激活。

使用方法:

1. 激活后登录

2. 点顶部的“Create zone ”,在“Zone”中填入你的域名,在“zone
type”选择“Primary”(首选),其他可以不填,点“Creat”

3. 点顶部的“Modify zone”,就能看到你刚添加的域名了,点域名即可进入管理。
每个记录只能看到4个条数的设置框,当保存后再回来又看到多出4个条数的设置框,所有设置的记录时无限的。

基本设定记录都算完整,可以到change your preferences设定你需要的记录和数量(应该没限制),此处的vild
mail会被加入SOA记录中,还是得填写正确,要不然会收不到通知信(操作Log或设定密码等等)。
记录填写表单都是在各不同的记录栏位,并不是以固定栏位下拉式选单来设定记录,所以整个页面会相当长。 允许AXFR,支援Dynamic
DNS,也可以当Secondary DNS。

XName.org的DNS服务器为: ns0.xname.org. 、ns1.xname.org. 、ns2.xname.org.

提醒:

1. 你的域名设置的第一个DNS记录必须为ns0.xname.org

2. XName只提供给个人和小公司使用,一个账户添加25个以上域名会被认为是滥用。不允许发送大量LJ邮件。

3. 由于XName一切服务都是免费的,所以可能有宕机的风险。

二、国内免费域名解析:

DNSPod:http://www.dnspod.com

SooDns:http://www.soodns.com

iiDNS:http://www.iidns.com

DNSPod是国内老牌免费DNS解析,目前已成立公司并且开展多项收费服务,所以免费服务是有强大的稳定保障;SooDNS和iiDNS也都是有企业背景的免费DNS解析,给了大家在选择国内免费DNS解析的又一选择。至于国内其它的免费DNS解析,要么是解析不稳定、要么是制度不稳定、要么是注册繁琐等等,本人就不做推荐了。

三、利用域名解析TTL值加速的谬传:

网上有一篇文章的大意是说,将域名解析的TTL值设置为一天、一周甚至半月,可以为网站解析加速。其实如果真这么做,一来会导致下次更换DNS或主机的时间增长很多;二来,TTL值无论过小还是过大,都会造成DNS解析的不稳定,根据国际惯例,TTL值默认设置为3600是最合适,这个3600是经过N个域名使用后的一个安全经验值,强烈推荐使用3600做为TTL值!

四、必要的总结:

1、如果网站的服务对象以国外用户居多,那么选择国外免费DNS解析且最好是具体国。例如:网站的服务对象以美国用户居多,那么就选择美国免费DNS解析;网站服务对象以英国用户居多,那么就选择英国免费DNS解析。

2、如果网站的服务对象以国内用户居多,那么选择国内免费DNS解析。

3、以上两点只是选择域名解析商的参考项,而最终决定权要看两个重要指标:域名解析的质量和断开解析的次数。

域名解析的质量:同一个空间分别被不同的域名解析商解析出来的域名指向,看打开的时间差,时间越小说明解析的质量越高。比如:我在A域名解析商做域名解析后,一个小时就能打开网站主页,而在同等条件下,我在B域名解析商做域名解析后,却用了两个小时才打开网站主页,很明显A比B的域名解析质量要高。

断开解析的次数:一年之内,无论因何原因,域名解析商断开解析的次数。次数越少,域名解析商就越优秀。比如:A域名解析商一年断开解析的次数为5次,B域名解析商为12次,那么我不管你什么原因,我不会将域名交给一个平均每月断开1次解析的域名解析商。


Aug 23 2011

squid 的header/body编辑功能 续2

Category: 技术ssmax @ 16:57:45

今天终于有时间再搞一下squid的事情了,呵呵

书接上一回,下载GreasySpoon,解压,因为是java包,其实就可以直接运行了。

运行以后自动监听8088端口,这个是管理端口,使用admin/admin登录后就可以进行管理。

界面做的还不错,管理功能也很全面,里面直接就可以写script,有三种方式,EcmaMscript/java/Ruby,我比较熟悉java,所以就直接用java了,呵呵

其中一些script的控制是放在注释头的,具体可以看看

http://greasyspoon.sourceforge.net/scripts_resp.html

修改response还是比较简单的,java封装好了基本的方法,主要用到几个:

httpMessage.deleteHeader

httpMessage.rewriteHeader

httpMessage.addHeader

httpMessage.setBody

这几个基本囊括了修改response头所需的东东了。

服务器默认只是支持

GreasySpoon.mimesupported=html htm xml xhtml wml

可以修改services.properties文件,加上你所想要的文本类型,如:

GreasySpoon.mimesupported=html htm xml xhtml wml css javascript

 

经过查看源代码,这个判断会直接获取content-type 头,然后判断是否contains,所以随便写下就好了,另外最好设置一下

GreasySpoon.mimemagic=off

这样它就不会跑mime的预判,这个预判是对那些头设置错误的请求来说的,一般http请求现在都有正确的content-type 头了,所以关掉还省点资源吧。。。

还有一些配置也是看看代码看看文档就好了,自己懂的语言看代码没有这么痛苦。。。

开启以后,设置一下squid的icap相关参数,直接就成功了,很好很好。哈哈哈


Aug 21 2011

今天修理好一个推拉门

Category: 乱up当秘笈ssmax @ 20:40:42

广海的那个推拉门周六终于不堪重负,坏掉了,拆下来一看,原来下面的滑轮卡死了,从棠石路一直找到二横路,再绕回来四横路,和科韵路,所有的五金店,做门窗的,都找了一遍,终于找到一个差不多的铜皮的,现在新款都是塑胶的,真是越来越差,今天加了点机油,装上去就弄好了,哈哈哈


Aug 17 2011

squid 的header/body编辑功能 续1

Category: 技术ssmax @ 21:02:26

书接上一回,经过一天的测试,发现ecap方式需要用c编译module,自定义的规则用起来不是太方便,遂退而求其次,找了一下icap的服务器实现,找到一下几个,来自wiki:

icap开源实现,其中squid只是客户端:

装了其中python、c、java的实现分别试了一下,最后确定尝试用GreasySpoon配置比较方便,也支持支持java开发,可能就是效率稍差了,先试试吧,呵呵。


Aug 16 2011

squid 的header/body编辑功能

Category: 技术ssmax @ 20:14:34

squid有提供类似apache的substitute_module的内容编辑功能,具体分为以下几种类型:

类型 更改请求Request 更改响应Response
头Header 内容Body 头Header 内容Body
ICAP yes yes yes yes
Client Streams     yes yes
eCAP yes yes yes yes
ACLs yes   del  
code hacks yes yes yes yes

各个的性能对比:

Evaluation Criteria Mechanisms in rough order from “best” to “worst”
Squid independence(独立性,不依赖) ICAP, eCAP, ACLs, Client Streams, code hacks
Processing speed(处理速度) eCAP or Client Streams or ACLs or code hacks, ICAP
Development effort (header adaptation)开发难度(头Header处理) ACLs, code hacks, Client Streams, eCAP, ICAP
Development effort (content adaptation)开发难度(内容Body处理) eCAP, ICAP, Client Streams, code hacks
Versatility(功能支持) code hacks, eCAP, ICAP, Client Streams, ACLs
Maintenance overheads(维护开销) ACLs, eCAP, ICAP, Client Streams, code hacks

总体来说,用squid 3.1之后自带的ECAP支持比较方便,功能也比较强悍,具体研究一下才清楚,呵呵。

原文地址:http://wiki.squid-cache.org/SquidFaq/ContentAdaptation


Aug 13 2011

今天某国家领导来园区参观

Category: 乱up当秘笈ssmax @ 14:17:44

戒严了,早早的在昨晚就躲来了美林,免得进出不方便啊。。。
话说那个规格真是高啊,整个园区基本全部摆满了鲜花,真的是新鲜的哦,放不了几天的那种。。。


Aug 12 2011

ROR redmine + mysql + fcgi + apache

Category: 技术ssmax @ 16:00:42

rubyonrails ROR
这种架构了已经听了非常久了,但是一次都没有试过,这次看中上面一个issue track类的系统redmine,想试试,所以就有了这一次历程,由于各种版本问题,安装还是比较需要经验的,呵呵。

第一步,去看看redmine的文档,发现对ruby和相关组件的版本要求相当多。。。具体如下:

http://www.redmine.org/projects/redmine/wiki/RedmineInstall

The required Ruby and Ruby on Rails versions for a given Redmine version is:

Redmine version Supported Ruby versions Required Rails version Required Rack version
current trunk ruby 1.8.6, 1.8.7 Rails 2.3.11 Rack 1.1.1
trunk from r2887 to r4903 ruby 1.8.6, 1.8.7 Rails 2.3.5 Rack 1.0.1
trunk from r2493 to r2886 ruby 1.8.6, 1.8.7 Rails 2.2.2
trunk before r2493 ruby 1.8.6, 1.8.7 Rails 2.1.2
1.2.x ruby 1.8.6, 1.8.7 Rails 2.3.11 Rack 1.1.1
1.1.x ruby 1.8.6, 1.8.7 Rails 2.3.5 Rack 1.0.1
1.0.x ruby 1.8.6, 1.8.7 Rails 2.3.5 Rack 1.0.1
0.9.x ruby 1.8.6, 1.8.7 Rails 2.3.5 Rack 1.0.1
0.8.x ruby 1.8.6, 1.8.7 Rails 2.1.2

根据redmine最新版1.2.x,确定对应的ruby和相关组件的版本

ruby 1.8.7 / rails 2.3.11 / rack 1.1.1

第二步,去找ruby了,当前最新版本是 ruby 1.9.2 ,好像没找到链接是下载旧版本的(这相当郁闷,后面还有这样的情况)

http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz

下载地址反推一下,就找到ftp的下载路径,里面就有所有版本的源代码可以下载了

http://ftp.ruby-lang.org/pub/ruby/

找到1.8.7的最新版,找p数字最大的,p for patch

http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p352.tar.gz

下载,解压,configure ,make,make install

编译ruby之前记得看看自己的openssl-dev 在不在,如果不在的话要装好,要不就没有编译ssl部分的功能了,这样会影响后面的安装。

如果你不安装在标准目录下面,记得自己添加PATH

安装完成后看看版本号?


>ruby -v
 ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]

第三步,安装其他组件,在找文档的过程中,发现ruby的组件有个比较方便的管理器,类似rpm形式的rubygems

找到它的网站

http://rubygems.org/

最新版本1.8.7,这里又是一个大大的陷阱,如果前面看安装文档不注意的话,就按装了gems的最新版了,发现是和rails不兼容的,真是瀑布汗。。。

具体如下:

RubyGems 1.3.7 or higher is required with following limitations :

  • Rails 2.3.5 will fail with RubyGems 1.5.0 or later, stick to previous versions of RubyGems !
  • Rails 2.3.11 will fail with RubyGems 1.7.0 or later, stick to previous versions of RubyGems !

意思就是2.3.11的rails只支持rubygems 1.7.0 以下的,又是一轮寻找旧版的历程,首页也没有直接指进去的

要去到一个叫rubyforge的地方,类似sourceforge吧,找到rubygems项目,找各版本的源代码,如下

http://rubyforge.org/frs/?group_id=126

在其中找到1.6的最新版,1.6.2

http://rubyforge.org/frs/download.php/74445/rubygems-1.6.2.tgz

下载,解压,执行


>ruby setup.rb

会自动判断ruby版本,安装到对应的路径下面

第四步,安装了rubygems以后,就可以用gems命令来管理ruby的组件了

按要求安装rails版本

>gem install rails -v=2.3.11

这个时候会自动帮你安装好所需要的包,和rpm类似了

装好以后会有以下的包

> gem list --local

 actionmailer (2.3.11)
 actionpack (2.3.11)
 activerecord (2.3.11)
 activeresource (2.3.11)
 activesupport (2.3.11)
 rack (1.1.2)
 rails (2.3.11)
 rake (0.9.2)

自动就装好了rack 和 rake,只是希望 rack 1.1.2 不要 太高了,和要求的1.1.1不要有冲突就好,唉。。。

装到这里,还缺少mysql 和 fcgi 的 ruby组件,还有一个叫i18n的组件,这些都是后面出错里面提醒了,都写在这一步安装即可

>gem install i18n -v=0.4.2
>gem install fcgi
>gem install mysql

报错的话自己装好 fastcgi 的dev包和mysql的dev包,其中mysql的随便用yum或者apt-get搞定即可,但是fastcgi的开发包在centos下面貌似没有,yum找不到,apt-get 是有的,那就自己编译咯

最新的fastccgi包,http://www.fastcgi.com/dist/fcgi.tar.gz

下载编译安装,一样的流程,如果不是安装在标准路径的话,gem安装的时候要指定如下:

>gem install fcgi -- --with-fcgi-dir=/home/fastcgi

全部成功之后,看看ruby组件有哪些:

>gem list --local

*** LOCAL GEMS ***

actionmailer (2.3.11)
 actionpack (2.3.11)
 activerecord (2.3.11)
 activeresource (2.3.11)
 activesupport (2.3.11)
 fcgi (0.8.8)
 i18n (0.4.2)
 mysql (2.8.1)
 rack (1.1.2)
 rails (2.3.11)
 rake (0.9.2)

第五步,就是安装redmine了

下载最新版

http://rubyforge.org/frs/download.php/75097/redmine-1.2.1.tar.gz

解压之后就是一个完整的项目结构了。

ok,先访问自己的数据库,建立一个database供其使用

按照安装文件一步步来,先进入你解压出来的目录

>cp config/database.yml.example config/database.yml

编辑 database.yml 中的production配置,设置好你的mysql主机/用户密码和database

production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: my_password

执行

>rake generate_session_store

创建session目录,会有一些warning,别管它。

>RAILS_ENV=production rake db:migrate

创建数据库,RAILS_ENV的环境变量就指定了要用哪一份配置文件

>RAILS_ENV=production rake redmine:load_default_data

插入初始数据

>ruby script/server webrick -e production

开启webrick服务器,默认端口3000,这样就可以通过http://your_ip:3000/访问你的redmine了

初始的用户名密码是 admin/admin

到这里,测试的话已经够用了,那如果要整合apache呢,看看 pubic/htaccess.fcgi.example

这里就有apache的基本配置了,全部是基于rewrite的,看看你是要cgi还是fcgi实现,就对应

dispatch.fcgi.example

dispatch.cgi.example

两个脚本,这些都是生成好了放在pubic的了,按需要就改名即可,这里解释一下htaccess里面的设置


#判断加载的模块,看看要什么样的处理流程。

<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
</IfModule>
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
</IfModule>
<IfModule mod_cgi.c>
AddHandler cgi-script .cgi
</IfModule>

#目录加上跟随链接和可执行cgi
Options +FollowSymLinks +ExecCGI

#打开rewrite

RewriteEngine On

#直接访问根的,跳转到index.html,访问其他没有扩展名的,如xxx,也跳转到对应的xxx.html
#如果请求的文件不存在,就跳转到对应的cgi/fcgi处理,存在的话,就直接访问静态文件。

RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
<IfModule mod_fastcgi.c>
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
</IfModule>
<IfModule mod_fcgid.c>
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
</IfModule>
<IfModule mod_cgi.c>
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
</IfModule>
# 500 服务器错误时候的显示文本。
ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"

如果有apache配置经验的人看到这里基本就都懂得如何配置了,其实原理就是把所有动态的请求都转发到cig/fcgi处理,QSA的意思就是带上所有参数,非常简单明了。

整个安装过程有点长,关键在于各个版本号的兼容性处理上面,很让人头疼,如果没有linux编译经验的人,要完成这个功能的话可能会比较抓狂,呵呵。


Aug 11 2011

JAVA 7 第一次装

Category: 技术ssmax @ 17:12:25

Oracle 收购java以后貌似一直都没啥大动作,今天帮服务器装jdk,上去发现java 7已经是推荐版本了,下载了一个试试看

rpm包就一个 jdk-7-linux-i586.rpm

比以前清爽了一点,以前jdk6的时候是一个自解压包,运行以后装一堆docs啊db啊之类的rpm,看得不爽。

装完以后看看目录结构,没啥大变化

>java -version
java version “1.7.0”
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode, sharing)

>javac -version
javac 1.7.0

看小版本号竟然已经到174了,呵呵

不知道加了些什么新特性,用了这么久好像jdk6的新特性都没怎么用上,唉,老了老了

 

release notes:

http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html

 

看了一下G1 GC仍然是试验阶段,啥时候能转正啊。。。

http://www.oracle.com/technetwork/java/javase/jdk-7-readme-429198.html

Using G1

G1 is still considered experimental and can be enabled with the following two
parameters:

-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC

To set a GC pause time goal, use the following parameter:

-XX:MaxGCPauseMillis =50 (for a pause time target of 50ms)

With G1, a time interval can be specified during which a GC pause should last
no longer than the time given above:

-XX:GCPauseIntervalMillis =200 (for a pause interval target of
200ms)

Note that the above two options represent goals, not promises or guarantees.
They might work well in some situations but not in others, and the GC might not
always be able to obey them.

Alternatively, the size of the young generation can be specified explicitly
to impact evacuation pause times:

-XX:+G1YoungGenSize=512m (for a 512 megabyte young generation)

G1 also uses the equivalent of survivor spaces, which are, naturally, a set
of (potentially non-contiguous) regions. Their size can be specified with the
usual parameters (e.g., -XX:SurvivorRatio=6).

Finally, to run G1 at its full potential, try setting these two parameters
which are currently disabled by default because they may uncover a rare race
condition:

-XX:+G1ParallelRSetUpdatingEnabled
-XX:+G1ParallelRSetScanningEnabled

One more thing to note is that G1 is very verbose compared to other HotSpot
GCs when -XX:+PrintGCDetails is set. This is because it prints per-GC-thread timings and other information very helpful in profiling and trouble-shooting. If you want a more concise GC log, please switch to using -verbosegc (though it is recommended that the more detailed GC log
be obtained).

 

 


Aug 10 2011

Jira 真是越做越失败

Category: 技术ssmax @ 16:15:08

今天要帮别人装一个Jira,下载了最新的4.4 war版,由于平时习惯用resin,所以就直接放在resin4下面了。

按照指引把UserTransation之类的设置好了,试试访问,结果一堆ejb-jar.xml 的定义错误,ok,这个问题其他地方碰到过,在resin4里面不会自动忽略,resin说这个无关紧要,可以删掉的,编辑了几个osxxx和propertyset.jar , 删掉ejb-jar.xml,再试。

这次就报另外一个错误了:

PersistenceUnitInfo propertyset has transactionType JTA, but does not have a jtaDataSource defined.

意思就是propertyset.jar 里面的 persistence.xml 的定义有问题,翻了半天google,发现这个是开发者没有按照EJB开发规范来开发,这里其实是动态提供一个数据源,但是EJB规范里面规定必须显式指定一个,但是新版的jira数据库datasource好像是自己管理了,不需要在服务器里面创建,所以也不知道这里要指定一个什么东东才行。

尝试改成 RESOURCE_LOCAL 结果出来另外一个错误

Exception Description: The attribute [dateValue] from the entity class [class com.opensymphony.module.propertyset.ejb3.PropertyEntry] does not specify a temporal type. A temporal type must be specified for persistent fields or properties of type java.util.Date and java.util.Calendar.

这次真是完全看不懂了,无解。。。最后还是乖乖用standalone版吧,不折腾了。

类似的错误在JBOSS里面也会遇上,jira的开发人员很牛x的讲了一句:

JBoss is no longer a support Application Server. Our recommendation is to use JIRA Standalone or deploy JIRA using Tomcat

也是,人家提供了standalone,你丫的就别想用别的服务器了,哈哈。

https://jira.atlassian.com/browse/JRA-24370


Next Page »