我在/home/insane-36/.rvm目录中安装了ruby和gem。我安装了乘客gem并在apache mod-available中创建了passenger.load和passenger.conf文件,并为apache启用了mod。这些文件的内容为;
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
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
然后,我在/ 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(机架)应用程序。我一直在网上搜索,找到了一些解决方案,但没有一个对我有用。我认为这是许可问题。我不知道应该设置什么权限。我想这些文件应该可供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 `'
任何帮助将不胜感激。
答案 0 :(得分: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
现在,启用mod-passenger for apache as;
> sudo a2enmod passenger
在/ home / insane-36 / www /
中创建了一个rails应用程序rails新测试-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 testing
添加了为/ etc / apache2 / sites-available / testthe site选择的ServerName和创建文件到/ 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应该可以用于重新启动应用程序并进行更改但不适用于我。
答案 1 :(得分:0)
我认为您需要删除
中与rubygem相关的所有内容/home/insane-36/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1