Setting up Rails for the first time - is this normal? - ruby-on-rails

I am trying to setup a Rails environment via CPanel. I've tried on several distinct hosting environments (on all of which I used CPanel to create the project) and I always get the following:
Is this something I've done wrong - I have to first create models/controllers etc - or something I need to bark up my hosting provider's tree about?

Have you tried running your app locally? If I remember correctly, for security reasons, the "about your application's environment" won't load unless it's from localhost.

If you are running your app in production mode (so it is recognized as it doesn't run locally), rails won't show this information, instead it will show this message.
I had this issue and wondering what's wrong when I first setup a new application in a server with passenger. The default environment of passenger is the production so it doesn't show this info. You have to set it up to development mode if you want to see them, to do that go to your virtual host file and add this:
RailsEnv development
When you start creating your application, delete the index.html from the public.

Maximum supported versions at this time are:
Ruby 1.8.7
RubyGems 1.8.25
Rails 2.3.18
Anything newer than that is a near guaranteed breakage and cPanel & WHM will be incapable of utilizing it in any way, shape, or form.
http://tickets.cpanel.net can assist you with removing your existing Ruby on Rails installations and reverting them back to cPanel supported and sanctioned versions (Ruby 1.8, RubyGems 1.8, and Rails 2). That is the only thing they can do for you at this time.
If you want to use any versions newer than this, then you will be unable to use the cPanel & WHM interfaces or management tools for it -- they simply will not work. You will then have to manually manage your RoR install by yourself through command line exclusively. None of it would fall under the scope of cPanel support.

Related

I have a complete ruby project on my system but how do I run it?

I have a complete ruby project on my system that I downloaded from github.com and I want to run it on my Windows machine.
I have already installed Ruby and Rails on my system, but I have no idea how to run this project. The directory of this project is something like:
C:\Users\{username}\Desktop\BitcoinFundi\BitcoinFundi
How would I run this project on my system?
To run your Ruby on Rails application, use the following command:
rails server
This will start the server and you will be able to access the application in your browser at http://localhost:3000. Port 3000 is default and you can change it in the application settings.
To run a Ruby script use:
ruby name_of_script.rb
You should check out various resources and tutorials on getting started with rails.
As you say in your comment this is your first experience with Ruby on Rails, I think you should follow through chapter 1 and 2 (at least) of Ruby on Rails Tutorial. After that you should have a better understanding of how you start up a rails app and configure the DB. You also need a bunch of other libraries and software such as mysql from the sounds of it.
You should also read Getting Started with Rails. Section 4 covers how to start the default rails server.
Here is a guide on setting up a Rails environment for Windows, which is one of many guides, that shows you some of the needed steps to get a fully working environment.

How do I set up an old Ruby on Rails project on a new server?

I'm not a RoR programmer myself, but a good client of ours has sent a project their previous web team built and I need to get it up and running on their server.
The server uses cPanel and Ruby on Rails is already installed. I've created a project via the cPanel wizard and located the file tree via SSH.
Using SSH, I've tried to replace this file tree with the project I've been sent, but when I hit 'run' in cPanel, the application doesn't actually start (although the success message would indicate that it has).
If I leave the original cPanel-created application in place, I can run/stop no problem and the web interface at :12001 opens up just fine.
I assume there are either conflicts with RoR versions that I need to resolve, or there's simply more to it than just replacing the file tree? Again I'm not a RoR programmer and I'm having a hard time finding a migration guide that tells me anything other than "set up in cPanel and replace the files".
I'd very much appreciate either some genuinely useful links to RoR application setup/migration guides (ideally for cPanel) or a step-by-step answer please.
First, forget Cpanel for now. Try in one environment where you can control everything.
Try to know better the rails version used and the associated gem19s or plugin if from 2.x days. The ruby version is important too, only then you can start defining a plan.
I'm afraid you won't get a step-by-step answer, but I'm sure you can be pointed in the right direction by providing the requested information.
Simple questions: Do you have a Gemfile file at the top at your project? Do you have any plugins (stuff in vendor/plugins)?
Update:
With the Gemfile provided here are the required steps:
Install ruby (if you haven't install it using rvm. The version 1.9.3-x should be the safest.
Install rubygems
Install bundler
Go the project dir and run bundle install
run rake db:migrate (assure you have the database setup acording to config/database.yml
run rails s and check the logs and see if the server is up.
If after installing bundler, you don't have the bundle command in your path, you need to add this your .bash_profile:
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH

Rails 3.1 application deployment tutorial

I'm looking for a good deployment tutorial for a Rails 3.1.1 application on a server. And by good I actually mean complete. The reason I'm posting this question is that although there are tons of tutorials out there on the web (google, blogs, books, other stackoverflow questions etc...) all of them seem to focus either on a problem with the deployment process or make some assumptions about the deployment environment that do not match with what I need.
I realize that deploying a Rails app on a server requieres a variety of different programs and tools that need to be configured and somehow I always get stuck on apparently "little" things that make me very frustrated.
So, let's begin from the start. What I have now is a server that I can access through SSH and a domain name, let's call it www.example.com. The server runs a fresh Ubuntu 10.04 x64 and has just a user installed, namely root (through root I access the server with SSH).
Note! There is no Apache, Ruby, PHP, MySQL, cPanel or any other panel installed, just the bare minimum that comes with a fresh installation.
Also the web server will host a single application and the database will run on the same machine.
From my knowledge the process of deploying a Rails application follows the following scenarios:
Installing Ruby
I already did this by using RVM using the Multi-User install process (simply because I have just the root user and it does it automatically). This seems to work fine aftewards but I do have some questions:
Would it make more sense to install Ruby directly and not through RVM (I'm thinking maybe in terms of efficiency - also RVM does a little bit of magic behind the scences modifying some bash_profile files in ways that I don't understand and this somehow seems invasive...)?
Would it make more sense to install as a separate user through RVM (can there any safety problems arise)?
Necessary gems
Now that Ruby is installed what would be the best initial set of gems to install along side it?
I installed just bundler, so that once I upload my application on the server I can run a bundle install command which will install in turn the required app gems.
Question - Should I install the rails gem before hand? Are there any other gems that need to be installed?
Web server
This is where it gets tricky for me. I'm trying to use apache and mod-passenger for deployment (they seem to be the most popular). So I installed the apache web server and the passenger gem and all the related dependencies (libraries mentioned by passenger).
Now, the problems arise. First thing is user related. How does Apache run? I mean under each user? If I installed it and (re)started it using the root user, will it permanently run under the root user? Is this a bad thing? If yes, should I create another user? If yes, how? In what groups should I put the new user in, what rights should he have (namely what folders should he have access to). How to start the apache in this case (under root, under that user, add a line somewhere in the configuration file, etc.)
Website configuration
Where to put the website configuration stuff? Is it OK to put it into apache.conf, or should I create a new file in sites-available? Or should I simply reuse the default file that is already present there? If a new user has been created at the previous step, what rights should he have in relation to the config files?
Also... where to eventually put the rails application? In what folder would it be best? Somewhere under home? Maybe under /var/www? I want to know how would this affect the rights of the apache process serving the app? (Generally I have problems while serving an app, it complains that it doesn't have rights on a specific folder. Also, using the new asset pipelines - which I don't fully understand - asset files are being created and they seem not to inherit the parent folder rights...)
Database
As database I'm using MySQL and installing it is pretty straightforward. The question that I have here is again user related. Should I use a special user for the database? How does MySQL actually manage users (are they internal, or are they the Linux users or ...?). Should the database user be the same as the "web user" from above? Or should it be a different one?
Assets
Here I get really lost. I really have troubles making the assets pipeline works. I've checked the railscasts episode and also the rails website tutorial and I do seem to theoretically understand the thing, yet I have problems in practice.
So the questions here would be - what commands should I run to precompile the assets? (Trying to run rake assets:precompile). Is it ok? What should I change in the production.rb file? How do the assets generated work in relation with the webuser or database users created above? I am personally getting a problem in this step namely the log files say that some css files are not accessible (for example I have jqplot library installed under the vendor/assets folder and its files cannot be accessed - should I add a manifest file here somehow?).
It would be really great if someone could point me towards a nice article, or resource that explains all this stuff. The main area which I'm having problems in is how does Apache, Passenger, Ruby, Rails and MySQL interact with a Linux user. How to properly set up the permissions for the Rails app folder? How does the assets pipeline affect this user permission stuff?
Thank you
Here's my way of deploying Rails:
Installing Ruby
I would not use RVM because it's very tricky to get it running properly in combination with stuff like cron jobs. Doable (with wrappers for example), but a bit of a hassle. If you don't need other Ruby versions on that machine, just install it from source yourself.
Gems
Just let Bundler work its magic. Remember to install with the flags --without test development --deployment. I wouldn't do that up front though. Just make sure you have bundler.
Web server
Using Passenger (with either Apache or Nginx) is a fine and easy choice. When you install Apache from apt, it will run in a special user.
Apache is configured correctly automatically on Ubuntu. It will start on reboot.
Website configuration
All configuration be in /etc/apache2. Place your virtual host configuration in /etc/apache2/sites-available and use a2ensite to enable it.
Put your app in /var/www, since that is the default location in Ubuntu. I usually make a deploy user.
Make sure that user can access your application by assigning your app to the www-data group.
Database
MySQL has its own user system. Log in as root user and create a new user with SQL: GRANT ALL ON 'application_production'.* TO 'deploy' IDENTIFIED BY 'some password';
Assets
Assets should be generated as the user owning the application. You should add any css and javascript files to production.rb. For example:
config.assets.precompile += %w(backend.css)
Conclusion
It helps to use a deploy tool like Capistrano. When you run capify, uncomment the appropriate line in the Capfile to get assets compilation. Here's mine:
ENV['RAILS_ENV'] = 'production'
load 'deploy' if respond_to?(:namespace) # cap2 differentiator
load 'deploy/assets'
load 'config/deploy'
require 'capistrano/ext/multistage'
require "bundler/capistrano"
require 'capistrano_colors'
This is just how I normally install my rails apps. I hope this will get you going. Recently I've written a gem for integrating Chef-solo with Capistrano, called capistrano-chef-solo. It's very alpha and might be a bit too complicated if you're just starting with deployment, but it might help you.

Railties in Rails 2.3 project?

I've inherited a small Rails project from a new client and unfortunately the previous developer(s) left essentially no information other than the Rails app instance running in production. (No source repository, no documentation, just the login to the production server.)
Inspecting the server shows Rails version 2.3.8 installed (confirmed by the version number in "config/environment.rb") but when I try to run "ruby script/console" (or "server") on my local dev environment I get (essentially fatal) error messages originating from files in "vendor/rails/railties" and searching the internet for "railties" shows a lot of Rails 3 documentation.
I'm guessing that a previous developer/maintainer crossed the Rails 2/3 streams somehow. Should I be ok to just delete the entire "vendor/rails" directory or am I missing something?
What kind of error are you getting? Do you know that your local environment is the same as production? Do other Rails 2.3.8 projects run fine on your machine?
Now, I think it should be fine to remove vendor/rails with the exception being that if the previous developer monkeypatched something in Rails, but directly in the vendor/rails directory. Then, you might have a problem.
This approach might be a bit tedious, but I might go as follows:
Clone 2.3.8 somewhere else on my machine.
Check it in to some form of version control.
Copy your version of 2.3.8 from the project into the newly cloned directory.
Diff it.
This should show you if the previous developer made any changes, both significant and insignificant, to Rails.
Good luck, because this doesn't sound very fun :(

How to begin with Ruby on Rails using Windows

I've tried downloading the Rails package and installing it on Windows, but have no idea to make it work.
I have had some experience with this commbination:
PHP 4.x + 5.x (Windows)
LIGHTTPD (Windows)
Connecting to a Firebird Database (Windows)
Can anybody enlighten me?
I've gotten Rails up and running on Windows just following the instructions on the RoR website. To paraphrase:
Download Ruby Windows installer from here. I recommend this one.
Execute the .exe [ruby186-26.exe]
Verify your Windows environment variables now includes C:\ruby\bin in the PATH variable. (My Computer -> Properties -> Advanced -> Environment Variables). If it's not there, add it.
Download Ruby Gems from here.
Extract the zip [rubygems-1.3.0.zip] to a temporary directory.
Open a command window and cd to the temp directory.
Type ruby setup.rb in the command window and hit enter.
After that from the command window type gem install rails
Boom! You have rails on windows.
I've heard good things about Instant Rails I've avoided it though. I highly recommend RadRails for Eclipse. I do all my RoR development in Windows using RadRails to connect to a MySQL database.
Either try Instant Rails, which hasn't been updated in a while.
Or try this tutorial and install everything yourself: http://beans.seartipy.com/2008/06/09/setting-up-rails-development-environment-on-windows-vistaxp/
If you're really beginning and have no special attachment to the stuff you've downloaded, try getting the latest Netbeans (v6.1) which comes with Ruby and Rails build in. Its massively simple to install and get running. (A double click install). Then, once you've done that do a "File > New Project > Ruby > Ruby On Rails Application", press F6 and you'll be looking at the start page of your first Rails App.
To get to grips with it all, I'd suggest Sang Shin's free Ruby On Rails course. Its been running a while, but its free, is hands on, has some excellent material, and covers a great deal. I'm doing it and have learned a lot about Rails and Ruby also.
HTH
I use Heroku this is the Signup page for all my Rails Development
You don't have to install or set up anything and you are up and running Fast.
Also, this is a good tutorial for setting up Instant Rails on Vista:
You should really consider just install a Virtual Machine using VMWare if possible. You can still get start with Windows, but you could come across a lot of hiccups on various packages you want to use. I was from Windows too... now I switched myself to a mac and never looked back....
The point is, Ruby runs just a lot better on any POSIX other than using Windows, so its better not to try forcing anything suppose to work properly on one platform on another one. Practically, you will NEVER consider hosting a rails application in Windows (similarly, I doubted if you should ever consider hosting a PHP app in Windows too... you are just putting more cost to hurt your own feet by doing so...)
Another possibility is try to get Ubuntu setup on a USB memory/ hard drive and boot using that when you want to play Rails, slightly problematic, but better performance.
NetBeans as suggested as beginner IDE is good. Although if you get start properly with a good book (Pragmatic defacto Rails book 3rd edition is a good choice, you will never put that one down even after so long as the references are just too useful). Alternatively Rails Guide is something you shouldn't miss.
These are the best tutorials that I have seen for setting up rails on Windows.
Xp: http://www.buildingwebapps.com/articles/6467-setting-up-rails-on-windows-xp
Vista: http://www.buildingwebapps.com/articles/6491-setting-up-rails-on-windows-vista
I used this tutorial just yesterday and it worked well. BUT you need to install RubyGems yourself, after installing Ruby and before installing Rails. I found this guide helpful for RubyGems installation.
I was not able to use an environment variable to set up the http proxy; instead I must pass that as a param on the CL when installing gems (-p [myproxy].[mysite]:[port])
Late to the party, but could you try this tutorial instead?
Getting Started with Rails and MySQL
Two observations:
--source http://gems.rubyinstaller.org is no longer needed. remove that part from the command
Install latest RC1 for either 1.9.1 or 1.8.6 from here
Hope that helps
Here's some tools that have helped me in Windows for general RoR development
TextMate-like editor: http://www.e-texteditor.com/
Multi-tab SSH client: http://www.vandyke.com/products/securecrt/index.html
Full featured UNIX shell (including git): http://code.google.com/p/msysgit/
I just followed this tutorial, and it worked great the first time, and gives steps to take if you encounter common errors. I HIGHLY recommend it. it's one of the best tutorials I've ever gone through. I'm an ASP .NET guy, and I had no trouble.
My suggestion is to begin with a microframework. Something like Sinatra. You can move to Rails / Merb afterwards.
checkout Rails Windows Installer
it installs :
Ruby 1.8.7-p330
Rails 3.0.3
Git 1.7.3.1
Sqlite 3.7.3
DevKit
Rubystack is a free, all-in-one installer for Windows that installs Apache, MySQL, Ruby, Rails and all other third-party libraries typically used on a development environment (such as Imagemagick). We include PHP as well, but no lighttpd

Resources