重启后自动启动rails服务器

时间:2013-06-05 06:18:12

标签: ruby-on-rails bash sqlite centos

我希望我的rails服务器在每次重启后自动启动,所以我将以下内容添加到我的.bashrc文件中

rvm use 1.9.2
cd /home/user/myapp
rails server

这样,服务器永远不会在重启后自动启动,我必须手动启动它。

此外,当我登录启动服务器时,我看到以下消息

Using /usr/local/rvm/gems/ruby-1.9.2-p290
/usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby: symbol lookup error: /usr/local/rvm/gems/ruby-1.9.2-p290/gems/sqlite3-1.3.4/lib/sqlite3/sqlite3_native.so: undefined symbol: sqlite3_initialize

因此,我需要在每次重启后使用“gem install sqlite3”安装sqlite3后我自己做超级用户,然后才能启动rails服务器而没有问题。

$ cat /etc/*-release
CentOS release 5.8 (Final)

$ rails -v
Rails 3.1.1

$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]

任何人都可以帮我解决这个问题吗?感谢

1 个答案:

答案 0 :(得分:1)

安装Apache和Passenger

他们将负责以更安全,更系统的方式使用服务器启动您的应用程序,现在或多或少是标准。

我对CentOS 6上的Rails 4,Ruby 2.1也有同样的问题。如果你不熟悉bash脚本和rc,profiles系统 - 设置passenger会更快更容易。

此外,还有其他原因可供您选择乘客,包括安全性性能(www.phusionpassenger.com)

以下是我介绍宝石的快速操作方法。

  1. 安装Apache(html守护程序)和依赖包(如果你还没有):

      

    yum install httpd curl-devel httpd-devel

  2. 让Apache开始启动:

      

    上的chkconfig httpd
  3. 安装Phusion Passenger和依赖包:

      

    宝石安装乘客
      yum install curl-devel httpd-devel

  4. 编译环境:

      

    乘客安装-apache2的模块

  5. 在etc / httpd / conf / httpd.conf中编辑Apache配置文件

    • 取消注释包含NameVirtualHost *:80的行

    • 将第4点的输出粘贴到文件末尾的任何位置,例如:

      

    LoadModule passenger_module /usr/local/rvm/gems/ruby-2.1.1/gems/passenger-4.0.41/buildout/apache2/mod_passenger.so

         

    PassengerRoot /usr/local/rvm/gems/ruby-2.1.1/gems/passenger-4.0.41

         

    PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.1.1/wrappers/ruby

    <VirtualHost *:80>
     ServerName 1.2.3.4 # www.whatever.com
     DocumentRoot /var/www/rails/public # the path to your rails app
     <Directory /var/www/rails/public>
     AllowOverride all
     Options -MultiViews
     </Directory>
    </VirtualHost>
    
  6. 我总共花了30分钟,包括httpd.conf的几次试错,以确保一切正常。

    请注意,您的计算机上安装至少需要1 GB RAM。