一个带有Passenger4.0.53/nginx(通过乘客安装)和postgresql 9.3.5数据库的rails3应用程序正在运行。。。部分!
调用主页URL是根据rails应用程序控制器=>主页,操作=>索引来呈现页面。
但是点击登录链接,生成了正确的URL,但结果是404错误。重新启动乘客,然后ngingx未能改变行为。。。
/etc/nginx/sites-enabled/default设置如下:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name ranz2.iwant2go2.com;
passenger_enabled on;
rails_env development;
root /home/deploy/ranz/current/public;
# location / {
# try_files $uri $uri/ =404;
# passenger_enabled on;
# }
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
nginx错误日志
[ 2014-10-14 07:42:57.7851 24433/7f42e3109780 agents/Watchdog/Main.cpp:538 ]: Options: { 'analytics_log_user' => 'nobody', 'default_group' => 'nogroup', 'default_python' => 'python', 'default_ruby' => '/usr/bin/ruby', 'default_user' => 'nobody', 'log_level' => '0', 'max_pool_size' => '6', 'passenger_root' => '/usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini', 'passenger_version' => '4.0.53', 'pool_idle_time' => '300', 'temp_dir' => '/tmp', 'union_station_gateway_address' => 'gateway.unionstationapp.com', 'union_station_gateway_port' => '443', 'user_switching' => 'true', 'web_server_passenger_version' => '4.0.53', 'web_server_pid' => '24432', 'web_server_type' => 'nginx', 'web_server_worker_gid' => '33', 'web_server_worker_uid' => '33' }
[ 2014-10-14 07:42:57.8090 24436/7f55db281780 agents/HelperAgent/Main.cpp:650 ]: PassengerHelperAgent online, listening at unix:/tmp/passenger.1.0.24432/generation-0/request
[ 2014-10-14 07:42:57.8705 24441/7fbfd457b7c0 agents/LoggingAgent/Main.cpp:321 ]: PassengerLoggingAgent online, listening at unix:/tmp/passenger.1.0.24432/generation-0/logging
[ 2014-10-14 07:42:57.8715 24433/7f42e3109780 agents/Watchdog/Main.cpp:728 ]: All Phusion Passenger agents started!
[ 2014-10-14 07:42:57.8865 24441/7fbfd457b7c0 agents/LoggingAgent/Main.cpp:289 ]: Caught signal, exiting...
更新看到其他类似的问题,我禁用了"passenger_enabled on;"第一位置块内的指令。重新启动nginx和应用程序。行为没有变化。随后我禁用了第一个位置块。。。重新启动nginx和应用程序。行为没有变化。
我错过了什么?
问题出现在nginx.conf中。我的理解是passenger_ruby应该指向which ruby
的结果,这就是我切换到的:
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
# passenger_ruby /usr/bin/ruby;
passenger_ruby /home/deploy/.rvm/rubies/ruby-1.9.3-p547/bin/ruby;
但是,RTFM会返回一个乘客错误。其内容指向正确的方向(很好的‘ya Phusion!)。本手册第8.3.1节。passenger_ruby"是明确的。
which passenger-config
粘贴导致后续命令
rvm use <desired_version>
<result_of_which passenger_config> --ruby-command
然后,从输出字符串中,您可以在nginx.conf中定义passengerruby的字符串,它应该重新汇编类似的东西
/home/deploy/.rvm/gems/ruby-1.9.3-p547/wrappers/ruby