【问题标题】:start rails server automatically after reboot重启后自动启动 Rails 服务器
【发布时间】:2013-05-31 17:37:36
【问题描述】:

我希望我的 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]

谁能帮我解决这个问题?谢谢

【问题讨论】:

  • 在 crontab 中使用/etc/init.d 或带有@reboot /path/to/script 的一行以及包含所有这些命令的脚本怎么样?
  • 你在用ubuntu吗?
  • @fedorqui :感谢您的及时回复。我尝试使用 init.d 并且可以看到脚本已执行(基于 echo 某些内容),但之后出现了问题,而当我手动运行脚本时问题不会发生。
  • @Vimsha :感谢您的及时回复。我正在使用 Centos 5.8
  • @rh4games 检查脚本是否属于root,是否有执行权限。

标签: ruby-on-rails bash sqlite centos


【解决方案1】:

安装 Apache 和Passenger

他们会以一种更安全、更系统的方式以及现在或多或少成为标准的方式在服务器上启动您的应用程序。

我在 CentOS 6 上使用 Rails 4、Ruby 2.1 时遇到了同样的问题。如果您不熟悉 bash 脚本和 rc、配置文件系统 - 设置 passenger 会更快更容易。

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

这是我介绍宝石的快速方法。

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

    yum 安装 httpd curl-devel httpd-devel

  2. 让 Apache 在启动时启动:

    chkconfig httpd on

  3. 安装 Phusion Passenger 和依赖包:

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

  4. 编译环境:

    passenger-install-apache2-module

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

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

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

    LoadModulepassenger_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>
    

我总共花了 30 分钟,其中包括几次使用 httpd.conf 的试错,以确保一切正常。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 2020-07-17
    • 2011-04-21
    • 2021-03-24
    • 1970-01-01
    • 2019-08-23
    相关资源
    最近更新 更多