BlueHost下部署rails app经验

google search了一下 "bluehost rails" 就有很多文章(英文居多)。

大家请参考!



但有几个特别要注意的地方。

1. 添加子域名

进入cPanel后在Domains下的subdomains,点击进入,然后添加即可。



(一般人在生成rails时忘了添加子域名,也会忘了生成子域名的link.)



2.dispatch.fcgi和dispatch.rb(在publice目录下)的首行。

因为BlueHost下是虚拟的unix系统,所以要改成#!/usr/bin/ruby



(如果在windows下开发的程序,用户常会忘了把首行改成unix下ruby的路径)



3.添加Apache对.fcgi文件的处理handler.

默认是有两个handler,但没有对.fcgi的handler.

进入cPanel 后,在Adance下的Apache handlers,点击进入。

添加handler: fcgid-script,

Extension(s): .fcgi.



(如果没有添加这个handle,就不能对dispatch.fcgi 文件进行解析。)



3.修改 dispatch.fcgi

添加

ENV['RAILS_ENV'] = 'production'

ENV["GEM_HOME"]= "/home/[User_Name]/ruby/gems"

ENV["GEM_PATH"]= "/home/[User_Name]/ruby/gems:/usr/lib/ruby/gems/1.8"



(这里的[User_Name]是你的用户名)



4.修改权限(这点也是比较重要的)

cd public/

chmod -R 755 *

cd tmp/

chmod -R 755 *

cd log/

chmod -R 755 *



chmod -R 755 public/



chmod -R 755 tmp/

chmod -R 755 log/



这里不要把权限开放到777,不然有错误。





下面是几个重要文件(public目录)

.htaccess:

AddHandler fcgid-script .fcgi
#Options +FollowSymLinks +ExecCGI

SetEnv RAILS_ENV production
RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f



RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]


dispatch.fcgi:

#!/usr/bin/ruby


ENV['RAILS_ENV'] = 'production'
ENV["GEM_HOME"]= "/home/fortyaga/ruby/gems"
ENV["GEM_PATH"]= "/home/fortyaga/ruby/gems:/usr/lib/ruby/gems/1.8"

require File.dirname(__FILE__) + "/../config/environment"
require 'fcgi_handler'

RailsFCGIHandler.process!



dispatch.rb:
#!/usr/bin/ruby

require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)


require "/usr/local/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/dispatcher"

ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
Dispatcher.dispatch



5.Application error错误发生时,应该先在public/路径下,运行 ./dispatch.fcgi 查看是否有错误发生.

同时查看cpanel下的Log方面的error logs.



6.如果在cpanel下error logs.碰到 Premature end of script headers 错误时,有可能是文件格式错误,大多数情况是app文件为dos格式,在使用dos2unix filename命名可以转换.

在这里特别要注意.htaccess,dispatch.fcgi两个文件.建议应用程序下载时尽量用tar.gz压缩的.



7/新建数据库后要更改数据库编码 ALTER DATABASE `[your_database]` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值