重启后自动启动 Rails 服务器

start rails server automatically after reboot(重启后自动启动 Rails 服务器)
本文介绍了重启后自动启动 Rails 服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'd like my rails server to start automatically after every reboot, so I added the following to my .bashrc file

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

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

With that, the server never starts automatically after a reboot, and I have to start it manually.

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

Also, when I login to start the server, I see the following message

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 服务器.

As a consequence, I need to install sqlite3 after every reboot using "gem install sqlite3" after I make myself superuser, and only then I can start the rails server without issues.

$ 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]

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

Anyone can please help me overcome this issue? Thanks

推荐答案

安装Apache和Passenger

他们会以更安全、更系统的方式以及现在或多或少成为标准的方式来处理使用服务器启动您的应用程序.

InstallApacheandPassenger

They will take care of starting your App with the server in a safer and more systematic way and what is now more or less a standard.

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

I had the same issue with Rails 4, Ruby 2.1 on CentOS 6. If you're not familiar with bash scripts and the rc, profiles system - it's much faster and easier to setup passenger.

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

Also, there are other reasons why you would go for passenger, including security and performance ( www.phusionpassenger.com )

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

Here is a quick how-to of what it took me to introduce the gem.

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

  1. Install Apache (html daemon) and dependency packages (if you don't have them already):

yum 安装 httpd curl-devel httpd-devel

yum install httpd curl-devel httpd-devel

  • 让 Apache 在开机时启动:

  • Get Apache to start on boot:

    chkconfig httpd on

    chkconfig httpd on

  • 安装 Phusion Passenger 和依赖包:

  • Install Phusion Passenger and dependency packages:

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

    gem install passenger
    yum install curl-devel httpd-devel

  • 编译环境:

  • Compile the environment:

    passenger-install-apache2-module

    passenger-install-apache2-module

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

  • Edit the Apache config file in etc/httpd/conf/httpd.conf

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

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

    Paste the output from point 4) anywhere at the end of the file, eg:

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

    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

    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

    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 的试错,以确保一切正常.

    Took me 30 minutes in total, including several trial-errors with the httpd.conf to get everything right.

    请注意,安装需要您的机器上至少有 1 GB RAM.

    Note that installation requires at least 1 GB RAM on your machine.

    这篇关于重启后自动启动 Rails 服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

    本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

    相关文档推荐

    FastAPI + Tortoise ORM + FastAPI Users (Python) - Relationship - Many To Many(FastAPI+Tortoise ORM+FastAPI用户(Python)-关系-多对多)
    Window functions not working in pd.read_sql; Its shows error(窗口函数在pd.read_sql中不起作用;它显示错误)
    (Closed) Leaflet.js: How I can Do Editing Geometry On Specific Object I Select Only?((已关闭)Leaflet.js:如何仅在我选择的特定对象上编辑几何图形?)
    in sqlite update trigger with multiple if/Case Conditions(在具有多个IF/CASE条件的SQLite UPDATE触发器中)
    Android: Why is Room so slow?(Android:为什么Room这么慢?)
    Remote Procedure call failed with sql server 2008 R2(使用 sql server 2008 R2 的远程过程调用失败)