rh4*_*mes 5 sqlite bash centos ruby-on-rails
我希望我的rails服务器在每次重启后自动启动,所以我将以下内容添加到我的.bashrc文件中
rvm use 1.9.2
cd /home/user/myapp
rails server
Run Code Online (Sandbox Code Playgroud)
这样,服务器在重新启动后永远不会自动启动,我必须手动启动它.
此外,当我登录启动服务器时,我看到以下消息
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
Run Code Online (Sandbox Code Playgroud)
因此,我需要在每次重启后使用"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]
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗?谢谢
他们将负责以更安全、更系统的方式通过服务器启动您的应用程序,这或多或少是一个标准。
我在 CentOS 6 上的 Rails 4、Ruby 2.1 上也遇到了同样的问题。如果您不熟悉 bash 脚本和 rc、配置文件系统 - 它的设置更快、更容易passenger。
此外,还有其他原因让您选择乘客,包括安全性和性能(www.phusionpassenger.com)
以下是我介绍该 gem 的快速方法。
安装 Apache(html 守护进程)和依赖包(如果您还没有):
yum install httpd curl-devel httpd-devel
让 Apache 在启动时启动:
chkconfig httpd 打开
安装 Phusion Passenger 和依赖包:
gem 安装乘客
yum 安装curl-devel httpd-devel
编译环境:
乘客安装 apache2 模块
编辑 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
Run Code Online (Sandbox Code Playgroud)<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。
| 归档时间: |
|
| 查看次数: |
3801 次 |
| 最近记录: |