存档: September, 2007
在Debian上部署Rails Apache+fcgi(或FastCgi)
Rails+Apache2+fcgid安装
安装Ruby
tar xzvf ruby-1.8.6.tar.gz cd ruby-1.8.6./configure makemake install
检查一下ruby是否安装,输入:
ruby -v
安装zlib
tar xvzf zlib-1.2.3.tar.gzcd zlib-1.2.3./configuremakemake install
安装rubygem
tar xzvf rubygems-0.9.4.tgzcd rubygems-0.9.4ruby setup.rb
为了看是否安装上,输入:
gem -v
Rails
gem install rails -y
有的时候可能因为网速问题装不上,请耐心多试记下.
测试
rails testRailscd testRailsruby script/server
会有如下显示:
=> Booting WEBrick…=> Rails [...]
Confach发表于 September 26, 2007 3:26 pm | 留言(3) |一技之长
SOHO中国
18个月前,我到北京建外SOHO.白色的几幢写字楼吸引了我,因为和周边的大楼相比较,这几幢楼实在太显眼,甚至看起来有些不相称.当时就想,谁敢在北京盖这白色的大楼.后来才知道这是小潘创建的.OK,先贴张图:
看见没有,灯光最亮的就是建外SOHO.
当我踏入写字楼,感觉不错.大厅里也是乳白色的.第一感觉自己就想是透明的,非常轻,甚至有点像进入仙境的感觉.踏入电梯,比较宽敞,而且较稳.进入写字楼房间,什么都好,唯一不爽的就是每层的高度不够,感觉有点压抑.不管怎么说,感觉相当好.
午餐在其商业铺搞定的,可能是刚建成不久,看起来也没有多少商户.当然吃饭的地方还是有的.餐厅里人不是特别多,价格还可以,不是特别贵.但是最终给我的印象是环境和人气还需改善.想必现在应该好很多了吧.
这次SOHO中国给我的印象是:胆大,具有创意.
回到上海之后,才发现SOHO中国在海南有酒店,在北京有多处SOHU,例如除了建外SOHU之外,还有光华路SOHO,朝外SOHO,SOHO现代城等.
于是我开始关注起来.小潘和王石,冯仑都有着不少的关系吧.
最近这几天,SOHO中国要在香港上市了,发行约15亿股,90%给投资机构,其他给个人投资者,股价约为8.3港元.这是相当不错的融资方案.120多亿,能干很多事情的.这几天小潘在全球路演.希望他一切都顺利.
遗憾的是,如果在大陆投资的话,看起来比较遥远.毕竟还不能到香港去买其股票.但是我个人对SOHO中国还是很看好的.尽管不如万科,万通那么有名,但是其设计,创意等丝毫不差.
最后贴几张图:
SOHU现代城
光华路SOHO
朝外SOHO,据说这次上市资金可能用于此
SOHO尚都
长城脚下的公社,(这也能建?)
博鳌博鳌凯宾斯基饭店
最后,有个人不得不提,那就是小潘的爱人张欣.
关于更多详情,参考http://www.sohochina.com
注:本文绝不是给SOHO做广告,再说了,小潘也没有给我广告费呀.
Confach发表于 September 21, 2007 5:41 pm | 留言(1) |三言两语
mongrel启动问题的解决方案
如果使用Mongrel来部署Rails,就不可避免的使用
mongrel_rails start -C mongrel.config
这里mongrel.config是mongrel的配置文件,可以为:
—
:config_script:
:environment: development
:pid_file: log/mongrel.pid
:num_processors: 1024
:docroot: public
:timeout: 0
:host: 0.0.0.0
:mime_map:
:port: 3000
:daemon: false
:cwd: /home/linux/projects/mongrel/testapp
:includes:
- mongrel
:debug: false
:log_file: log/mongrel.log
然后到app的根目录下运行上述的命令,恭喜您,你启动成功了.但是有个问题,如果我不在app的根目录下运行呢?系统会给出我们信息:
!!! Path to log file not valid: log/mongrel.log
mongrel::start reported an error. Use mongrel_rails mongrel::start -h to get help.
第一眼看见这个错误,觉得非常简单,Mongrels的创始人给出的答案是将相对路径改为绝对路径.也许上述的方法能解决问题,但是我相信仍然有一种情况:即使改为绝对路径,还是出现同样的错误.如果发生上述的错误应该怎么办?不幸的是,上述的问题我已经碰见过,很长时间不得要领.文档看破皮了,还是不能运行.不得已,打开mongrels的源代码看看.最后发现需要指定工作目录,因为工作目录是在log之前验证的.摘录一段代码:
ruby 代码
module Mongrel
class Start < GemPlugin::Plugin "/commands"
include Mongrel::Command::Base
def configure
options [
["-e", "--environment ENV", "Rails environment to run as", :@environment, ENV['RAILS_ENV'] || "development"],
["-d", "--daemonize", "Run daemonized in the background", :@daemon, false],
['-p', '--port PORT', "Which port to bind to", :@port, 3000],
['-a', '--address ADDR', "Address to bind to", :@address, "0.0.0.0"],
['-l', '--log FILE', "Where to write log messages", :@log_file, "log/mongrel.log"],
['-P', '--pid FILE', "Where to write the PID", :@pid_file, "log/mongrel.pid"],
['-n', '--num-procs INT', "Number of processors active before clients denied", :@num_procs, 1024],
['-t', '--timeout TIME', "Timeout all requests after 100th seconds time", :@timeout, 0],
['-m', '--mime PATH', "A YAML file that lists additional MIME types", :@mime_map, nil],
['-c', '--chdir PATH', "Change to dir before starting (will be expanded)", :@cwd, Dir.pwd],
['-r', '--root PATH', "Set the document root (default 'public')", :@docroot, "public"],
['-B', '--debug', "Enable debugging mode", :@debug, false],
['-C', '--config PATH', "Use a config file", :@config_file, nil],
['-S', '--script PATH', "Load the given file as an extra config script", :@config_script, nil],
['-G', '--generate PATH', "Generate a config file for use with -C", :@generate, nil],
['', '--user USER', "User to run as", :@user, nil],
['', '--group GROUP', "Group to run as", :@group, nil],
['', '--prefix PATH', "URL prefix for Rails app", :@prefix, nil]
]
end
def validate
@cwd = File.expand_path(@cwd)
valid_dir? @cwd, "Invalid path to change to during daemon mode: #@cwd"
# Change there to start, then we’ll have to come back after daemonize
Dir.chdir(@cwd)
valid?(@prefix[0].chr == "/" && @prefix[-1].chr != "/", "Prefix must begin with / and not end in /") if @prefix
valid_dir? File.dirname(@log_file), "Path to log file not valid: #@log_file"
valid_dir? File.dirname(@pid_file), "Path to pid file not valid: #@pid_file"
valid_dir? @docroot, "Path to docroot not valid: #@docroot"
valid_exists? @mime_map, "MIME mapping file does not exist: #@mime_map" if @mime_map
valid_exists? @config_file, "Config file not there: #@config_file" if @config_file
valid_dir? File.dirname(@generate), "Problem accessing directory to #@generate" if @generate
valid_user? @user if @user
valid_group? @group if @group
return @valid
end
def run
# Config file settings will override command line settings
settings = { :host => @address, :port => @port, :cwd => @cwd,
:log_file => @log_file, :pid_file => @pid_file, :environment => @environment,
:docroot => @docroot, :mime_map => @mime_map, :daemon => @daemon,
:debug => @debug, :includes => ["mongrel"], :config_script => @config_script,
:num_processors => @num_procs, :timeout => @timeout,
:user => @user, :group => @group, :prefix => @prefix, :config_file => @config_file
}
#……
if @config_file
settings.merge! YAML.load_file(@config_file)
STDERR.puts "** Loading settings from #{@config_file} (they override command line)." unless settings[:daemon]
end
config = Mongrel::Rails::RailsConfigurator.new(settings) do
if defaults[:daemon]
if File.exist? defaults[:pid_file]
log "!!! PID file #{defaults[:pid_file]} already exists. Mongrel could be running already. Check your #{defaults[:log_file]} for errors."
log "!!! Exiting with error. You must stop mongrel and clear the .pid before I’ll attempt a start."
exit 1
end
daemonize
log "Daemonized, any open files are closed. Look at #{defaults[:pid_file]} and #{defaults[:log_file]} for info."
log "Settings loaded from #{@config_file} (they override command line)." if @config_file
end
看看上面的代码就非常清楚了.那么如何解决,可以这样:
mongrel_rails start -c youapp/path/to -C mongrel.config
这样就OK了.
扩展应用:可以配置为服务自动启动.
Confach发表于 September 17, 2007 4:19 pm | 留言 |一技之长