ruby on rails - ubuntu篇

本文记录了在Ubuntu Server上部署Rails应用遇到的问题及解决方案,包括配置Java Script运行时、使用Rails命令生成控制器以及通过Passenger模块在Apache服务器上运行Rails应用的具体步骤。

今天正式把sample做到ubuntu server上,有一些细节点不太一样


1.运行 rake db:create的时候报错

rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.

我直接试着装gem install execjs 但是发现装了也没解决问题

最后的解决方法是

step1:用vim打开Gemfile文件 追加一行 gem 'therubyracer' 保存退出

step2:重新运行一遍 bundle install 

顺利解决~

(问题的原因是rails3.1开始默认使用jQuery, CoffeeScript,如果没有的话就报错了)


2.运行 ruby script/generate controller home index的时候报错

ruby: No such file or directory -- script/generate (LoadError)

其实是因为普通用ruby的话运行脚本是用ruby xxx.rb。这句命令其实是执行script下的generate

但是这里看一下script下的内容,发现其实只有一个rails


最后把命令改成rails g controller home index 就顺利通过了


3.让app在网页上显示

这一块折腾了不少时间。。。

①首先安装passanger(在ubuntu上用apache显示ruby app时需要的包)

$ gem install passenger
$ passenger-install-apache2-module

装好以后部署passenger给apache2(这样在apache2重启的时候就可以启动ruby app):

/etc/apache2/mods-available/passenger.load  生成新文件

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11/ext/apache2/mod_passenger.so

/etc/apache2/mods-available/passenger.conf

NameVirtualHost *:80
ServerName www.yoursite
DocumentRoot /var/www/yoursite/yourapp/public
<Directory /var/www/yoursite/yourapp/pubulic>
AllowOverride all
Order allow,deny
Allow from all
Options -MultiViews
</Directory>
RailsBaseURI /yourapp
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11
PassengerRuby /usr/bin/ruby1.8
RailsEnv development

文件名叫什么没什么限制,apache2会自动遍历这个文件夹下的load文件和conf文件的

②设置网页指向  

cd /etc/apache2/sites-available/yoursite
vim yoursite
编辑内容:

<VirtualHost *:80>
    ServerName yoursite
    DocumentRoot /var/www/yoursite/yourapp/public
</VirtualHost>

一定要指向到你的app下面的public文件夹

③最后让模块和你的网站有效重启apache:

首先是你设置的conf/load模块-这里是passenger,然后是你的网站,最后重启apache2

$ sudo a2enmod passenger  
$ sudo a2ensite yoursite
$ sudo /etc/init.d/apache2 restart

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值