0

我在 /home/insane-36/.rvm 目录中安装了 ruby​​ 和 gems。我安装了passenger gem,并在apache mod-available 中创建了passenger.load 和passenger.conf 文件,并为apache 启用了mod。这些文件的内容如下;

载客量

LoadModule 乘客模块 /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/ext/apache2/mod_passenger.so

乘客配置文件

PassengerRoot /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12 PassengerRuby /home/insane-36/.rvm/wrappers/ruby-1.9.3-p194/ruby

然后,我在 /home/insane-36/www/testing 位置为 /var/www/testing 的应用程序创建了一个符号链接。我还创建了一个文件来启用该站点;

<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName testing
    DocumentRoot /var/www/testing/public/   
    <Directory /var/www/testing/public/>
      Options Indexes +ExecCGI FollowSymLinks 
      Order allow,deny
      Allow from all
    </Directory>
</VirtualHost>

然后启用该站点并重新启动服务器,但它给了我一个错误,说无法启动 ruby​​ (rack) 应用程序。我一直在搜索互联网并找到了一些解决方案,但对我没有任何帮助。我认为这是权限问题。我不知道应该设置什么权限。我想这些文件应该可供 apache 用户使用。并尝试修改权限,但出现相同的错误。详细日志如下;

A source file that the application requires, is missing.
It is possible that you didn't upload your application files correctly. Please check whether all your application files are uploaded.
A required library may not installed. Please install all libraries that this application requires.
Further information about the error may have been written to the application's log file. Please check it in order to analyse the problem.
Error message:
cannot load such file -- rubygems/path_support
Exception class:
LoadError
Application root:
/var/www/testing
Backtrace:
#   File    Line    Location
0   /home/insane-36/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems.rb    395 in `paths'
1   /home/insane-36/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems.rb    416 in `path'
2   /home/insane-36/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb  382 in `dirs'
3   /home/insane-36/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb  267 in `_all'
4   /home/insane-36/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb  410 in `each'
5   /home/insane-36/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb  442 in `find'
6   /home/insane-36/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb  442 in `find_by_path'
7   /home/insane-36/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems.rb    206 in `try_activate'
8   /home/insane-36/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb 59  in `rescue in require'
9   /home/insane-36/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb 35  in `require'
10  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/utils.rb  241 in `prepare_app_process'
11  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/rack/application_spawner.rb   156 in `block in initialize_server'
12  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/utils.rb  572 in `report_app_init_status'
13  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/rack/application_spawner.rb   154 in `initialize_server'
14  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb    204 in `start_synchronously'
15  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb    180 in `start'
16  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/rack/application_spawner.rb   129 in `start'
17  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb  253 in `block (2 levels) in spawn_rack_application'
18  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server_collection.rb 132 in `lookup_or_add'
19  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb  246 in `block in spawn_rack_application'
20  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server_collection.rb 82  in `block in synchronize'
21      prelude>    10:in `synchronize'
22  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server_collection.rb 79  in `synchronize'
23  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb  244 in `spawn_rack_application'
24  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb  137 in `spawn_application'
25  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb  275 in `handle_spawn_application'
26  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb    357 in `server_main_loop'
27  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb    206 in `start_synchronously'
28  /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/helper-scripts/passenger-spawn-server   99  in `'

任何帮助,将不胜感激。

4

2 回答 2

1

这就是我在本地部署应用程序的方式。

sudo gem install passenger
sudo apt-get install apache2-dev libapr1-dev libaprutil1-dev
sudo passenger-install-apache2-module

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

LoadModule passenger_module /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/ext/apache2/mod_passenger.so

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

PassengerRoot /home/insane-36/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12 
PassengerRuby /home/insane-36/.rvm/wrappers/ruby-1.9.3-p194/ruby

现在,启用 apache 的 mod-passenger 为;

> sudo a2enmod passenger

在 /home/insane-36/www/ 中创建了一个 rails 应用程序

rails new testing -T -D mysql

在 /var/www/ 文件夹中创建了指向应用程序的符号链接;

ln -s /home/insane-36/www/testing /var/www/testing

在 /etc/apache2/sites-available/testing 中创建了一个文件

<VirtualHost *:80>
        ServerAdmin admin@example.com
        ServerName testing
        DocumentRoot /var/www/testing/public/   
    <Directory /var/www/testing/public/>
     Options Indexes +ExecCGI FollowSymLinks 
         Order allow,deny
         Allow from all
    </Directory>
</VirtualHost>

启用网站使用,

sudo a2ensite 测试

在 /etc/apache2/sites-available/testingthe 站点中添加了为 /etc/hosts 文件选择的服务器名称并创建了一个文件;

测试 127.0.0.1

注意:请务必启用当前用户目录的权限 755。

chmod 755 /home/insane-36

    bundle exec rake assets:precompile to compile your assets periodically. 

我这里还是有问题。我已经设法使应用程序工作。但是,每次我对应用程序进行更改时,我都需要重新加载服务器。是否有一些方法可以处理这个问题,以便服务器自动跟踪正在更改的文件,然后重新加载服务器或合并更改。

如果我添加了空文件 tmp/restart.txt ,建议的一些注释应该适用于重新启动应用程序并带来更改,但对我不起作用。

于 2012-05-30T01:35:51.453 回答
0

我认为您需要删除与 ruby​​gem 相关的所有内容

/home/insane-36/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1   
于 2012-05-29T23:16:59.177 回答