If you're coming from PHP, there's a really important concept to understand 
between merb/rails development and where you're coming from.

In a PHP world, your webapp is a collection of individual PHP scripts (often 
with lots of shared code), which are run by apache on request. With merb (and 
rails) it doesn't work like that AT ALL. Instead, you have a collection of 
files (models, controllers, and views for the most part) that are all pulled 
into a single application and wrapped by a ruby webserver (like thin) and sits 
as a single running process. You then talk directly to that process via http. 
In production, you'll have something like Apache or nginx as a go between your 
users and the process, but in development it's easiest to just open up a 
browser and talk straight to your app at http://localhost:4000.

I found it to be a pretty fundamental shift, because simply renaming a file 
doesn't change the URL structure like it does in PHP. Instead you have to tell 
your application how it assembles itself through the router file.

The net result is great, and if you stick with it, you'll come to enjoy this 
style of development. But, at least for the moment, you need to put everything 
you know about PHP development aside, because this is a totally different beast.

-Sean

On Thursday, June 17, 2010 01:53:05 pm mistergoomba wrote:
> Ok, I'll try some of your suggestions, but let me break down my goal
> here:
> 
> I decided to take on a project which requires some Ruby programming.
> They use Merb on a Karmic Koala machine and a git repository. I've
> always been a PHP guy, but I decided to try something new and I've
> always heard a lot about Ruby, so why the hell not? I haven't had
> problems with the vhosts files before on my Mac, but I agree, Linux is
> always a winner ;}
> 
> All I really want to do is to pull and push code from the server to my
> machine in order to work on the site. I know I have the right code,
> however when I go to their site, the merb app launches. I noticed
> there wasn't an index.html file, but the .htaccess was pointing to
> some merb scripts.
> 
> When I first pulled the code, all I got was a blank screen instead of
> the home page that I see on their live site. So, I figured I had to
> configure something on my side to get it to work.
> 
> PS: I get this error when trying to install thin:
> sudo gem install thin
> Password:
> Building native extensions.  This could take a while...
> Building native extensions.  This could take a while...
> Successfully installed eventmachine-0.12.10
> Successfully installed thin-1.2.7
> 2 gems installed
> ERROR:  While executing gem ... (SystemStackError)
>     stack level too deep
> 
> 
> 
> On Jun 17, 1:28 pm, Michishige Kaito <[email protected]> wrote:
> > On Thu, 17 Jun 2010, mistergoomba wrote:
> > > Apologies. The error log helped me realize that I didn't replace
> > > "host_name" in httpd-vhosts.conf
> >
> > > When I did this and tried to access the site on my machine, I was no
> > > longer directed to the DocumentRoot for that server, rather the
> > > default localhost location:
> >
> > > <VirtualHost *:80>
> > >   DocumentRoot "/Users/martin/Sites/allthat.dev/allthatrails/public"
> > >   ServerName allthat.dev
> > >   ProxyPass         / balancer://allthat.dev/
> > >   ProxyPassReverse  / balancer://allthat.dev/
> > > </VirtualHost>
> >
> > > These are the errors:
> >
> > > [Thu Jun 17 13:10:05 2010] [notice] caught SIGTERM, shutting down
> > > [Thu Jun 17 13:10:27 2010] [warn] Init: Session Cache is not
> > > configured [hint: SSLSessionCache]
> > > [Thu Jun 17 13:10:27 2010] [notice] Digest: generating secret for
> > > digest authentication ...
> > > [Thu Jun 17 13:10:27 2010] [notice] Digest: done
> > > [Thu Jun 17 13:10:27 2010] [notice] Apache/2.2.14 (Unix) mod_ssl/
> > > 2.2.14 OpenSSL/0.9.8l DAV/2 PHP/5.3.1 configured -- resuming normal
> > > operations
> > > [Thu Jun 17 13:10:31 2010] [error] [client 127.0.0.1] File does not
> > > exist: /Library/WebServer/Documents/favicon.ico
> >
> > > /Library/WebServer/Documents is the DocumentRoot for localhost
> >
> > All of those errors are not related to your app not working. Is
> > "allthat.dev" directed towards localhost? I think I recall the hosts file
> > being rather dodgey on MacOS. There's nothing like Linux for these things.
> >
> > And also, maybe you're just doing overkill. If all you want is a
> > development environment, you just need to `merb -a thin`, or just `merb`
> > as of latest version since "thin" is now the default adapter. This will
> > serve the whole app, by default, at localhost:4000. Make sure you have
> > thin installed (`gem install thin`) and you should be ready to go.
> >
> > I guess I should have asked why you're even bothering with apache for a
> > local deployment =P
> >
> > ---
> > Michishige Kaito
> >
> > BOFH excuse #205:
> >
> > Quantum dynamics are affecting the transistors
> 
> 

-- 
Sean Kellogg
e: [email protected]

-- 
You received this message because you are subscribed to the Google Groups 
"merb" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/merb?hl=en.

Reply via email to