
He visto otras preguntas similares pero ninguna con respuestas satisfactorias, así que ahí va. Instalé Ruby, Rails, Nginx y Passenger e intenté configurarlo para que todos funcionen juntos.
Aquí está la parte relevante de/opt/nginx/conf/nginx.conf
server {
listen 80;
server_name .myapp.dev; # There is an entry in my local /etc/hosts file for this
passenger_enabled on;
root /srv/www/myapp.dev/public;
access_log /srv/www/myapp.dev/logs/access_log;
error_log /srv/www/myapp.dev/logs/error_log warn;
}
Hay otro server
bloque, pero está escuchando, localhost
así que no creo que esté causando ningún problema.
Aquí está la salida dels -la /srv/www/myapp.dev/
drwxr-xr-x 3 josh josh 4096 Dec 4 19:12 .
drwxr-xr-x 3 josh josh 4096 Dec 4 18:34 ..
drwxr-xr-x 2 josh josh 4096 Dec 4 18:34 logs
lrwxrwxrwx 1 josh josh 37 Dec 4 19:12 public -> /home/josh/rails/myapp/public
Me pregunto si es posible que haya un error de permisos, pero no veo ningún error que indique que esté intentando ejecutar Ruby.
Esto es lo que se agrega /opt/nginx/logs/error.log
cuando se reinicia nginx
[ 2013-12-04 20:16:17.9953 2321/b6fea000 agents/Watchdog/Main.cpp:574 ]: Options: { 'analytics_log_user' => 'nobody', 'default_group' => 'nogroup', 'default_python' => 'python', 'default_ruby' => '/home/josh/.rvm/wrappers/ruby-2.0.0-p353/ruby', 'default_user' => 'nobody', 'log_level' => '0', 'max_instances_per_app' => '0', 'max_pool_size' => '6', 'passenger_root' => '/home/josh/.rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.26', '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.26', 'web_server_pid' => '2320', 'web_server_type' => 'nginx', 'web_server_worker_gid' => '65534', 'web_server_worker_uid' => '65534' }
[ 2013-12-04 20:16:18.0527 2324/b6f0b000 agents/HelperAgent/Main.cpp:626 ]: PassengerHelperAgent online, listening at unix:/tmp/passenger.1.0.2320/generation-0/request
[ 2013-12-04 20:16:18.1577 2329/b6683000 agents/LoggingAgent/Main.cpp:318 ]: PassengerLoggingAgent online, listening at unix:/tmp/passenger.1.0.2320/generation-0/logging
[ 2013-12-04 20:16:18.1644 2321/b6fea000 agents/Watchdog/Main.cpp:761 ]: All Phusion Passenger agents started!
Nginx sirve archivos estáticos, por ejemplo, si visito myapp.dev/500.html, veo la página de error predeterminada de Rails 500. Phusion Passenger se menciona en los registros, por lo que parece estar funcionando (aunque es el resultado error.log
, el resultado no parece negativo).
Me estoy arrancando el pelo intentando que esto funcione. ¿Alguien tiene alguna idea?
EDITAR
Aquí está la salida derake routes
rake routes
Prefix Verb URI Pattern Controller#Action
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
new_post GET /posts/new(.:format) posts#new
edit_post GET /posts/:id/edit(.:format) posts#edit
post GET /posts/:id(.:format) posts#show
PATCH /posts/:id(.:format) posts#update
PUT /posts/:id(.:format) posts#update
DELETE /posts/:id(.:format) posts#destroy
root GET / posts#index
Pero las visitas myapp.dev/posts
regresan 404
.
Respuesta1
El pasajero no puede encontrar su aplicación....
Cambie root /srv/www/myapp.dev/public;
a
root /home/josh/rails/myapp/public;