第36个标记 » 2007 » September

     喜马拉雅的天空

存档: 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 | 留言 |一技之长 

上一页