Can someone please help? I’ve been banging my head against for wall
for 2 months; all of which has been spent trying to set up ROR. So I
actually haven’t written 1 line of code Any help would be greatly
appreciated
I’m following the 4th edition of “Agile Web D. with Rails”.
So, I’m able to deploy the site via WEBrick. However, when I go to my
URL (without using port 3000), I get the error message below. What am
I missing?
Ruby (Rack) application could not be started
These are the possible causes:
There may be a syntax error in the application’s code. Please check
for such errors and fix them. A required library may not installed.
Please install all libraries that this application requires. The
application may not be properly configured. Please check whether all
configuration files are written correctly, fix any incorrect
configurations, and restart this application. A service that the
application relies on (such as the database server or the Ferret
search engine server) may not have been started. Please start that
service.
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:
unable to open database file (SQLite3::CantOpenException)
Exception class:
PhusionPassenger::UnknownError
Application root:
/home/rubys/work/depot
Backtrace
This is the error in /var/log/httpd/error_log
*** Exception PhusionPassenger::UnknownError in
PhusionPassenger::Rack::ApplicationSpawner (unable to open database
file (SQLite3::CantOpenException)) (process 3244, thread #<Thread:
0xa1db870>):
By the way, I’m running:
Ruby 1.9.3p0
Rails 3.1.3
Phusion Passenger version 3.0.11
CentOS release 5.6
Server version: Apache/2.2.3
I missing?
configurations, and restart this application. A service that the
Exception class:
PhusionPassenger::Rack::ApplicationSpawner (unable to open database
CentOS release 5.6
<Directory /home/rubys/work/depot/public>
Order allow,deny
Allow from all
By any chance, have you run rake:db:migrate RAILS_ENV=production yet? If
not, then one possible reason why you can’t open the database is that it
does not exist.
I missing?
configurations, and restart this application. A service that the
Exception class:
PhusionPassenger::UnknownError
Application root:
/home/rubys/work/depot
Backtrace
The problem is not with your web server but with your database file.
Check the database configured in config/database.yml exists and is
accessible by the user that runs Apache (I guess on CentOS that user
is called apache).
I think you are correct. I had neglected to set up a production
version of the database.
I just ran “rake db:migrate RAILS_ENV=production”. However, I now get
a “500 Internal Server Error”.
Anyway, here is the error from production.log. Any ideas?
Thanks,
Kal
Processing by StoreController#index as HTML
Rendered store/index.html.erb within layouts/application (17.9ms)
Completed 500 Internal Server Error in 38ms
I did as instructed but now getting a “rake aborted! stack level too
deep” error (in /home/rubys/work/depot/app/assets/stylesheets/
scaffolds.css.scss).
I also tried modified “config.assets.compile = true” (from false)
within config/environments/production.rb but still no good
Thanks,
Kal
rake assets:precompile --trace
** Invoke assets:precompile (first_time)
** Execute assets:precompile
/usr/local/bin/ruby /usr/local/bin/rake assets:precompile:all
RAILS_ENV=production RAILS_GROUPS=assets --trace
** Invoke assets:precompile:all (first_time)
** Execute assets:precompile:all
** Invoke assets:precompile:primary (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment (first_time)
** Execute environment
** Invoke tmp:cache:clear (first_time)
** Execute tmp:cache:clear
** Execute assets:precompile:primary
rake aborted!
stack level too deep
(in /home/rubys/work/depot/app/assets/stylesheets/
scaffolds.css.scss)
/usr/local/lib/ruby/1.9.1/rake/task.rb:162
Tasks: TOP => assets:precompile:primary
rake aborted!
Command failed with status (1): [/usr/local/bin/ruby /usr/local/bin/
rake as…]
/usr/local/lib/ruby/1.9.1/rake/file_utils.rb:53:in block in create_shell_runner' /usr/local/lib/ruby/1.9.1/rake/file_utils.rb:45:incall’
/usr/local/lib/ruby/1.9.1/rake/file_utils.rb:45:in sh' /usr/local/lib/ruby/1.9.1/rake/file_utils_ext.rb:39:insh’
/usr/local/lib/ruby/1.9.1/rake/file_utils.rb:80:in ruby' /usr/local/lib/ruby/1.9.1/rake/file_utils_ext.rb:39:inruby’
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.1.3/lib/sprockets/
assets.rake:9:in ruby_rake_task' /usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.1.3/lib/sprockets/ assets.rake:17:ininvoke_or_reboot_rake_task’
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.1.3/lib/sprockets/
assets.rake:25:in block (2 levels) in <top (required)>' /usr/local/lib/ruby/1.9.1/rake/task.rb:205:incall’
/usr/local/lib/ruby/1.9.1/rake/task.rb:205:in block in execute' /usr/local/lib/ruby/1.9.1/rake/task.rb:200:ineach’
/usr/local/lib/ruby/1.9.1/rake/task.rb:200:in execute' /usr/local/lib/ruby/1.9.1/rake/task.rb:158:inblock in
invoke_with_call_chain’
/usr/local/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /usr/local/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain’
/usr/local/lib/ruby/1.9.1/rake/task.rb:144:in invoke' /usr/local/lib/ruby/1.9.1/rake/application.rb:116:ininvoke_task’
/usr/local/lib/ruby/1.9.1/rake/application.rb:94:in block (2 levels) in top_level' /usr/local/lib/ruby/1.9.1/rake/application.rb:94:ineach’
/usr/local/lib/ruby/1.9.1/rake/application.rb:94:in block in top_level' /usr/local/lib/ruby/1.9.1/rake/application.rb:133:instandard_exception_handling’
/usr/local/lib/ruby/1.9.1/rake/application.rb:88:in top_level' /usr/local/lib/ruby/1.9.1/rake/application.rb:66:inblock in run’
/usr/local/lib/ruby/1.9.1/rake/application.rb:133:in standard_exception_handling' /usr/local/lib/ruby/1.9.1/rake/application.rb:63:inrun’
/usr/local/bin/rake:32:in `’
Tasks: TOP => assets:precompile
I did as instructed but now getting a “rake aborted! stack level too
deep (in /home/rubys/work/depot/app/assets/stylesheets/
scaffolds.css.scss)” error.
I tried to modify "config.assets.compile = true: (from false) within
config/environments/production.rb but still no good
Thanks Again,
-Kin
rake assets:precompile --trace
** Invoke assets:precompile (first_time)
** Execute assets:precompile
/usr/local/bin/ruby /usr/local/bin/rake assets:precompile:all
RAILS_ENV=production RAILS_GROUPS=assets --trace
** Invoke assets:precompile:all (first_time)
** Execute assets:precompile:all
** Invoke assets:precompile:primary (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment (first_time)
** Execute environment
** Invoke tmp:cache:clear (first_time)
** Execute tmp:cache:clear
** Execute assets:precompile:primary
rake aborted!
stack level too deep
(in /home/rubys/work/depot/app/assets/stylesheets/
scaffolds.css.scss)
/usr/local/lib/ruby/1.9.1/rake/task.rb:162
Tasks: TOP => assets:precompile:primary
rake aborted!
Command failed with status (1): [/usr/local/bin/ruby /usr/local/bin/
rake as…]
/usr/local/lib/ruby/1.9.1/rake/file_utils.rb:53:in block in create_shell_runner' /usr/local/lib/ruby/1.9.1/rake/file_utils.rb:45:incall’
/usr/local/lib/ruby/1.9.1/rake/file_utils.rb:45:in sh' /usr/local/lib/ruby/1.9.1/rake/file_utils_ext.rb:39:insh’
/usr/local/lib/ruby/1.9.1/rake/file_utils.rb:80:in ruby' /usr/local/lib/ruby/1.9.1/rake/file_utils_ext.rb:39:inruby’
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.1.3/lib/sprockets/
assets.rake:9:in ruby_rake_task' /usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.1.3/lib/sprockets/ assets.rake:17:ininvoke_or_reboot_rake_task’
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.1.3/lib/sprockets/
assets.rake:25:in block (2 levels) in <top (required)>' /usr/local/lib/ruby/1.9.1/rake/task.rb:205:incall’
/usr/local/lib/ruby/1.9.1/rake/task.rb:205:in block in execute' /usr/local/lib/ruby/1.9.1/rake/task.rb:200:ineach’
/usr/local/lib/ruby/1.9.1/rake/task.rb:200:in execute' /usr/local/lib/ruby/1.9.1/rake/task.rb:158:inblock in
invoke_with_call_chain’
/usr/local/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /usr/local/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain’
/usr/local/lib/ruby/1.9.1/rake/task.rb:144:in invoke' /usr/local/lib/ruby/1.9.1/rake/application.rb:116:ininvoke_task’
/usr/local/lib/ruby/1.9.1/rake/application.rb:94:in block (2 levels) in top_level' /usr/local/lib/ruby/1.9.1/rake/application.rb:94:ineach’
/usr/local/lib/ruby/1.9.1/rake/application.rb:94:in block in top_level' /usr/local/lib/ruby/1.9.1/rake/application.rb:133:instandard_exception_handling’
/usr/local/lib/ruby/1.9.1/rake/application.rb:88:in top_level' /usr/local/lib/ruby/1.9.1/rake/application.rb:66:inblock in run’
/usr/local/lib/ruby/1.9.1/rake/application.rb:133:in standard_exception_handling' /usr/local/lib/ruby/1.9.1/rake/application.rb:63:inrun’
/usr/local/bin/rake:32:in `’
Tasks: TOP => assets:precompile
Ok this might sound funny but , this problem is usually caused by lack
of javascript libraries in your rails setup so i would recommend you to
do this .
I did as instructed but now getting a “rake aborted! stack level too
deep (in /home/rubys/work/depot/app/assets/stylesheets/
scaffolds.css.scss)” error.
I tried to modify "config.assets.compile = true: (from false) within
config/environments/production.rb but still no good
What version of rake? What version of bundler? Have you run bundle
install or bundle update on your server? I’m guessing in the dark here,
but it sounds like you may not have everything the same on your server
as your dev box, version-wise. If you were able to use the site locally,
it should work on the server. Try running the site in production on your
development machine, using
rake db:migrate RAILS_ENV=production
rake assets:precompile
rails server RAILS_ENV=production
to duplicate the experience locally. See if it’s specific to this
server.
Also, try prefixing your assets:precompile step on the server with
bundle exec so you’re sure you’re getting the actual versions of
everything when you do that.
Again, my apologies for the delay in reply. I’m more confused now
than before, so it took some time to poke around.
Firstly, I don’t run a separate development and production server.
Does that matter?
If you start rails with rails server (and no other arguments) you are
starting the development environment, which means you are running the
development server. This uses a different database than production, and
by default listens on port 3000. When you start rails under Passenger or
another proxy system, you are starting the production environment, which
uses a different (production) database and listens on the default port
80 (depends on your Apache config, actually).
Installed are rake (0.9.2.2) and bundler (1.0.21). I have not run
bundle install or bundle update
You really must do this on the server, having done it on the desktop
computer will not have instantiated the gems on the server, and you can
pretty much guarantee failure to run.
Although, I am thinking that it’s a permission issue now.
Permissions is a valid concern here – how did you get the files over to
your server? What exact method did you use to copy the files from your
desktop computer to the server?
I’m not testing any of the aforementioned items on a desktop nor am I
deploying to Apache via (localhost); everything is live.
Are you writing the app on the server? Aren’t you building the app on
your local machine?
http://www.cowboycoded.com/tag/passenger/
That’s very interesting. I think that makes a lot of sense. Make a new
user, then chown - R new_user /path/to/rails/root and see if that
makes a difference.
When I mention server, I’m actually referring to the box, not a
service(s).
I’m actually running everything from a virtual dedicated server
(through GoDaddy.com).
I’m not testing any of the aforementioned items on a desktop nor am I
deploying to Apache via (localhost); everything is live.
As stated in my initial posting “I’m able to deploy the site via
WEBrick. However, when I go to my URL (without using port 3000), I
get the error message below”.
Of course, the original error message no longer appears (thanks to
your advise :).
I found the following posting, what do you think of item 4?
I was wrong; creating a new user ‘app_user’, adding it to the sudoer
file, and then applying ‘chown - R app_user /home/rubys/work/depot’
did work.
I was just reading too deep into Cowboy’s (http://www.cowboycoded.com/
tag/passenger/) instructions, which didn’t pertain to my setup
(specifically, the part about NGINX).
However, my setup was still not working and I think my problem
involves asset pipeline (Sprockets).
This is further complicated by me following the “Depot” exercise in
the 4th edition of “Agile Web D. with Rails”
I’ve since rebuilt the entire test app with a couple of simple pages
and no database content.
I ran “RAILS_ENV=production bundle exec rake assets:precompile” and
successfully got it to appear on Apache.
This is warrants much investigation but at least I know everything
wired properly.
Thanks Again,
~Kal
PS: I really don’t know about ROR. It’s really kludgy to say the
least
I get the same error. I am also using passenger, although I don’t
always use it. I am also using RVM.
I noticed an error that popped up in my email from rake (I am working on
a Mac) that showed an error from rake 1.8.X something or other, instead
of the rake from 1.9.2 that I am running. I suspect that deep in some
of the code, someone is diddling the path incorrectly. I don’t have
time right now to chase it down, but I thought that this might at least
help.