<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>Paul Marsh Has a Blog - Home</title>
  <id>tag:paulmarsh.net,2008:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.8.0">Mephisto Drax</generator>
  <link href="http://paulmarsh.net/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://paulmarsh.net/" rel="alternate" type="text/html"/>
  <updated>2008-07-23T22:00:31Z</updated>
  <entry xml:base="http://paulmarsh.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:paulmarsh.net,2008-07-23:33</id>
    <published>2008-07-23T21:44:00Z</published>
    <updated>2008-07-23T22:00:31Z</updated>
    <category term="mod_rails"/>
    <category term="passenger"/>
    <category term="production"/>
    <category term="ruby enterprise"/>
    <category term="ruby-ee"/>
    <link href="http://paulmarsh.net/passenger-in-production-take-2" rel="alternate" type="text/html"/>
    <title>Passenger in Production Take 2</title>
<summary type="html">&lt;p&gt;Well after a quick failure with Passenger on my larger production box I reported my problems and low and behold there had been some fixes committed that Friday that would have prevented my problems had I been following the development versions.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Well after a quick failure with Passenger on my larger production box I reported my problems and low and behold there had been some fixes committed that Friday that would have prevented my problems had I been following the development versions.&lt;/p&gt;
&lt;p&gt;This time things went smoother. I compiled Ruby Enterprise 20080709 and then pulled the latest updates to Passenger and recompiled that. After again making sure monit wasn't going to flip out that the mongrels were coming down, a quick restart of Apache and we were off and running. &lt;/p&gt;

&lt;p&gt;Now I haven't done any real number collecting, but the site does feel faster when rendering a new page. &lt;/p&gt;

&lt;p&gt;We've been up and running on Passenger for almost 2 weeks now and things have been solid. No random memory spikes or Apache alerts. &lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://paulmarsh.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:paulmarsh.net,2008-07-14:29</id>
    <published>2008-07-14T20:42:00Z</published>
    <updated>2008-07-14T20:44:20Z</updated>
    <category term="memes"/>
    <category term="old man"/>
    <category term="pet peeves"/>
    <link href="http://paulmarsh.net/keep-internet-memes-on-the-internet" rel="alternate" type="text/html"/>
    <title>Keep Internet Memes On The Internet</title>
<summary type="html">&lt;p&gt;There's been either a growing trend, or an existing trend I'm finally catching onto, where people use internet-speak in real life conversations. Might as well play the sounds of nails on a chalkboard as far as I'm concerned. A sure sign that I'm getting old.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;There's been either a growing trend, or an existing trend I'm finally catching onto, where people use internet-speak in real life conversations. Might as well play the sounds of nails on a chalkboard as far as I'm concerned. A sure sign that I'm getting old.&lt;/p&gt;
&lt;p&gt;I remember the time my parents tried to use the Wayne's World slang, &quot;NOT!&quot;. I still cringe. I have the same reaction to hearing people say they did something &quot;for the lulz&quot;, or &quot;such and such was full of fail.&quot; A perfect example would be the guy with purple hair towards the end of this &lt;a href=&quot;http://davidjr.com/iphone2/&quot; title=&quot;DavidJr.com iPhone&quot;&gt;amusing video blog by DavidJr.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now I'm no scholar, I have my own problems with proper speech, but my God does this not bother anyone else?&lt;/p&gt;

&lt;p&gt;Are you one of the people who talks this way? I certainly hope you keep it between friends because you genuinely sound like a moron. What's next? Should we just troll around 4chan and start picking up new lame terms to break out in normal conversation.&lt;/p&gt;

&lt;p&gt;Internet memes can stay right there on the internet please.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://paulmarsh.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:paulmarsh.net,2008-07-11:27</id>
    <published>2008-07-11T21:45:00Z</published>
    <updated>2008-07-11T21:48:40Z</updated>
    <category term="development"/>
    <category term="osx"/>
    <category term="rails"/>
    <category term="samba"/>
    <category term="vmware"/>
    <category term="winxp"/>
    <link href="http://paulmarsh.net/rails-development-under-windows-xp-or-osx-or-any-other-os" rel="alternate" type="text/html"/>
    <title>Rails Development Under Windows XP or OS X or any other OS</title>
<summary type="html">&lt;p&gt;Just what is the best way to develop Rails applications? Well my answer is a question, what's your production environment?&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Just what is the best way to develop Rails applications? Well my answer is a question, what's your production environment?&lt;/p&gt;
&lt;p&gt;If you are currently developing your Rails app under Windows XP or OSX and deploying to a Linux production box, why are you not running a copy of whatever Linux flavor your production server is on in a Virtual Machine?&lt;/p&gt;

&lt;p&gt;The only reason I could  see for not doing so would be because you are lacking sufficient RAM. Which I'd find it hard to believe as it seems everyone is running around with 2GB or more and I can tell you that even with 1GB you can get away with dedicating 128MB to a VM instance. There are plenty of VM programs out there, &lt;a href=&quot;www.vmware.com/products/server/,&quot; title=&quot;VMWare Server&quot;&gt;VMWare Server&lt;/a&gt; and &lt;a href=&quot;http://www.virtualbox.org/,&quot; title=&quot;VirutalBox&quot;&gt;VirtualBox&lt;/a&gt; if you're on a PC, or for the Mac, &lt;a href=&quot;http://www.vmware.com/products/fusion/,&quot; title=&quot;VMWare Fusion&quot;&gt;VMWare Fusion&lt;/a&gt; and &lt;a href=&quot;http://www.parallels.com/en/products/desktop/,&quot; title=&quot;Parallels&quot;&gt;Parallels&lt;/a&gt; on the Mac . &lt;/p&gt;

&lt;p&gt;Plus probably a dozen others that all can do the job.&lt;/p&gt;

&lt;p&gt;After you get your favorite flavor installed with the same versions of packages that are running in production turn on samba and share out whatever directories you need. I have symlinks in my home directory to my various apps and simply share out home directories in my smb.conf. Then mount that share on your host OS. In my case my home directory is mapped to H:. &lt;/p&gt;

&lt;p&gt;Now you can edit files from that drive with your favorite editor. Or you can do what I do and SSH into the guest OS and edit there. If you need X applications like &lt;a href=&quot;http://www.kernel.org/pub/software/scm/git/docs/gitk.html,&quot; title=&quot;gitk&quot;&gt;gitk&lt;/a&gt; get an X server running on your host and ssh into the guest with XForwarding turned on. &lt;/p&gt;

&lt;p&gt;All in all now you can deal with situations like &quot;I can't get this gem installed on XP/OSX&quot;, &quot;For some reason when I deployed my app is segfaulting&quot;, &quot;I wonder if my app will run under this fancy new app server&quot;. Everything you do and test will be under the same environment as your production saving you time and headaches.&lt;/p&gt;

&lt;p&gt;For me at some point along the line I realized that writing my Rapture CMS code to run on both Windows and Linux was a exercise in futility. It ate up way too much time so I decided to focus on just writing for my production environment, which was and is RedHat Enterprise (RHEL). This was back pre-0.13 days and trying to get certain things to work right under Windows XP, wether it was ruby, gems, Apache, whatever was just eating up time. It probably still would. &lt;/p&gt;

&lt;p&gt;Using VMWare Server machine of an install of CentOS I was easily able to mimic my production environment. Yes I realize it's not a perfect mirror, but it's close enough. It has 440MB to play with out of the 2GB of RAM I have on my laptop and 12GB of hard disk space dedicated to it. More than enough to run the Mongrels I need to do debugging. &lt;/p&gt;

&lt;p&gt;Give it a try next time you can't get that random gem to compile and it's driving you nuts for a day. &lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://paulmarsh.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:paulmarsh.net,2008-06-30:25</id>
    <published>2008-06-30T21:35:00Z</published>
    <updated>2008-07-23T21:43:17Z</updated>
    <category term="mod_rails"/>
    <category term="passenger"/>
    <category term="ruby enterprise"/>
    <category term="ruby-ee"/>
    <link href="http://paulmarsh.net/passenger-with-ruby-enterprise-in-production-take-1" rel="alternate" type="text/html"/>
    <title>Passenger with Ruby Enterprise in Production Take 1</title>
<summary type="html">&lt;p&gt;Well Passenger had been running on this VPS nicely so why not try it out on a larger site? My server could use a nice decrease in memory usage, simpler Apache config files, and better concurrency. &lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Well Passenger had been running on this VPS nicely so why not try it out on a larger site? My server could use a nice decrease in memory usage, simpler Apache config files, and better concurrency. &lt;/p&gt;
&lt;p&gt;Using the 06242008 release of &lt;a href=&quot;http://www.rubyenterprise.com,&quot; title=&quot;Ruby Enterprise&quot;&gt;Ruby Enterprise&lt;/a&gt; and Passenger 2.0.1 I converted over a site with 8 Mongrels that's been running very steady for almost a year now.&lt;/p&gt;

&lt;p&gt;Everything seemed to be going well enough for about a day and a half and then while finishing dinner Saturday night I get an alert message that Apache has crapped out. Getting back in front of a computer I see that the load on the box is fine, but Apache logged an error saying that it reached its MaxClients. Considering I have that set to 400, anything over 256 requires some custom tuning, this was surprising.&lt;/p&gt;

&lt;p&gt;Apache had been restarted automatically by monit, but that's not what I wanted on a production box. So it's a quick switch back to Mongrel for now!&lt;/p&gt;

&lt;p&gt;See the chart below that illustrates the Apache crap-out.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://paulmarsh.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:paulmarsh.net,2008-04-22:21</id>
    <published>2008-04-22T16:07:00Z</published>
    <updated>2008-07-08T19:04:06Z</updated>
    <category term="apache"/>
    <category term="mod_rails"/>
    <category term="passenger"/>
    <link href="http://paulmarsh.net/passenger-mod_rails-with-mephisto" rel="alternate" type="text/html"/>
    <title>Passenger (mod_rails) with Mephisto</title>
<summary type="html">&lt;p&gt;With what appears at first glance as a solution to the &quot;complicated&quot; problems of hosting Rails apps Passenger could make the Rails world an even happier place to live. Less administration and more coding.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;With what appears at first glance as a solution to the &quot;complicated&quot; problems of hosting Rails apps Passenger could make the Rails world an even happier place to live. Less administration and more coding.&lt;/p&gt;
&lt;p&gt;Well that was too easy. Following the  &lt;a href=&quot;http://www.modrails.com/install.html&quot; title=&quot;Passenger mod_rails instructions&quot;&gt;simple Passenger instructions&lt;/a&gt; on this CentOS 5 box and now the blog is running on mod_rails 1.0.1. Passenger runs using the user/group of your app's config/environment.rb so some changes in permission for my cache and asset directories was all I had to do. Memory use doesn't seem to be any higher than a mongrel and I haven't seem any performance problems. Not exactly a high traffic site.&lt;/p&gt;

&lt;p&gt;If this proves to be stable Rails just took a big leap for many sites. Using an app server still offers some nice benefits but at this point I'll be quite happy installing Passenger on most hosts.&lt;/p&gt;

&lt;p&gt;Time will tell though.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;UPDATE&lt;/em&gt; Just FYI for anyone using 1.0.1 if you have Rails' page cache directory set to something other than public/ Passenger currently doesn't honor that. Hongli on #passenger on freenode has informed me that's fixed in the development version. So it should be in the next release.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;UPDATE 05/07/08&lt;/em&gt; See graph below to see the difference in memory usage between the site with Mongrel and the site with Passenger. No problems yet to report with using Apache Worker with it. Upgraded to Passenger 1.0.4.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;UPDATE 05/23/08&lt;/em&gt; The second graph shows two changes. The first was I dropped the number of MinSpareThreads and MaxSpareThreads to cut down on the Committed memory. For a rundown of what the committed memory on munin means I would refer you to this &lt;a href=&quot;http://www.redhat.com/advice/tips/meminfo.html&quot; title=&quot;Committed Memory and other usage&quot;&gt;RedHat Article&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;The second drop was when I paid attention to the Passenger Documentation and dropped my RailsMaxPoolSize in my Apache configuration file to 2. Now running passenger-memory-stats I show less than 7MB of dirty memory.&lt;/p&gt;

&lt;p&gt;Also a great post by &lt;a href=&quot;http://nubyonrails.com/articles/ask-your-doctor-about-mod_rails&quot; title=&quot;As Your Doctor About Mod_rails&quot;&gt;Technoweenie over at NubyOnRails about mod_rails&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;UPDATE 06/19/08&lt;/em&gt; Upgraded to &lt;a href=&quot;http://www.rubyenterpriseedition.com/&quot; title=&quot;Ruby Enterprise&quot;&gt;Ruby Enterprise&lt;/a&gt;, also from the Phusion guys  and the &lt;a href=&quot;http://github.com/FooBarWidget/passenger/tree/master&quot;&gt;latest Passenger from Github&lt;/a&gt;. In the third chart you can see that, around the 17th the memory usage dropped, although Swap usage bumped up a little bit. I'll see over the next week if committed memory remains in a lower range. That gap of space in the chart is due to a server crash. One which I am not sure of the cause unfortunately. &lt;/p&gt;

&lt;p&gt;What is interesting to me is the drop in the Individual Interrupts and Interupts and Context Switches. Not sure what they do yet though. I'll dig up some Google links in a bit.&lt;/p&gt;

&lt;p&gt;When you do install Ruby Enterprise though, be sure to install the necessary gems for your app. I forgot this step and missed installing tzinfo and image_science. If you install to /opt/ like the default install recommends just run /opt/ruby-ent/bin/gem install tzinfo image_science.&lt;/p&gt;

&lt;p&gt;Oh, and if you're on a VPS I would suggest running gem install with --no-rdoc and --no-ri for a faster install. Unless of course you're developing on it at the same time.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;UPDATE 07/08/08&lt;/em&gt; After a couple of weeks things are looking good. The monthly memory graph below shows that my committed memory is now staying under the total available memory which is good. There haven't been any of those random spikes/crashes that occurred early on so I'm happy to keep Passenger running on this VPS server.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://paulmarsh.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:paulmarsh.net,2008-03-10:19</id>
    <published>2008-03-10T20:38:00Z</published>
    <updated>2008-04-24T12:54:25Z</updated>
    <category term="openads"/>
    <category term="openx"/>
    <category term="optimization"/>
    <category term="performance"/>
    <link href="http://paulmarsh.net/openx-openads-2-4-x-performance" rel="alternate" type="text/html"/>
    <title>OpenX (OpenAds) 2.4.x Performance</title>
<summary type="html">&lt;p&gt;Well, if a server is going to turn on you suddenly like a good dog gone bad I guess having something of a clue as to why is better than none. Today we had our largest spike in traffic in several months and everything held up fine, except the OpenX server wigged out shooting load up to 190! Let's see what you can do if this happens to you.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Well, if a server is going to turn on you suddenly like a good dog gone bad I guess having something of a clue as to why is better than none. Today we had our largest spike in traffic in several months and everything held up fine, except the OpenX server wigged out shooting load up to 190! Let's see what you can do if this happens to you.&lt;/p&gt;
&lt;p&gt;I should have known. Isn't it one of Murphy's laws, you take one day off and that's the day a server decides to wig out? Well that's what ended up happening. &lt;a href=&quot;http://paulmarsh.net/openads-upgrading&quot; title=&quot;OpenAds 0.3.30-alpha to 2.4.2 Upgrade&quot;&gt;From my other post&lt;/a&gt; you'll know we recently brought our ad server up-to-date with 2.4.2 of OpenAds/OpenX.&lt;/p&gt;

&lt;p&gt;At that time there was a bump up in the CPU usage on the webserver with the MySQL server seeming to take things in stride. Things seemed to be relatively normal since then with just that increase in CPU usages, but the patterns were close to what they were over the course of a day for the past year.&lt;/p&gt;

&lt;p&gt;Then on this past Friday we had a huge jump in traffic compared to the norm. Well that bump caused an exponential increase in the load on the box. Started getting notifications that things weren't quite right and spent the morning trying to get things fixed.&lt;/p&gt;

&lt;p&gt;First off we've had spikes of this nature in the past while running 0.3.x of Openads without this kind of load increase so this was pretty surprising. After trying &lt;a href=&quot;http://xcache.lighttpd.net/&quot; title=&quot;Xcache Homepage&quot;&gt;Xcache&lt;/a&gt; using the source rpms from &lt;a href=&quot;http://www.jasonlitka.com/2006/12/20/php-caching-and-acceleration-with-xcache/&quot; title=&quot;Xcache SRPM&quot;&gt;Jason Litka&lt;/a&gt; and enabling it not much changed. Although the amount of RAM being used by the cache went up compared to &lt;a href=&quot;http://eaccelerator.net/&quot;&gt;eAccelerator&lt;/a&gt;, which is good and as a side note you can give more memory to eAccel as well, the overall CPU usage stayed way too high.&lt;/p&gt;

&lt;p&gt;Time to look more closely at OpenAds' configuration for this box. Everything looked right, caching is turned on and working, file store is set to be in a local directory, check. Wait, there's nothing actually *in* that directory. A frantic couple of questions to #openads on freenode confirmed that ads were being pulled from the database. Not sure if that was the problem, it couldn't hurt to move the images from the DB into the directory. Fortunately Openads under settings has a link to a script under Settings -&gt; Maintenance -&gt; Storage -&gt; Move images stored inside the database to a directory.&lt;/p&gt;

&lt;p&gt;Just one small problem it seems that over time there must be some banner records that are 'dirty', meaning although they are in the DB something isn't quite right causing the script to throw an error in lib-storage.inc.php on line 224. It seems that it is trying to delete an image from the DB if the storage type is SQL after moving that image to the filesystem. Problem is, if there isn't a file to delete the script errors out.&lt;/p&gt;

&lt;p&gt;Here's a quick ugly fix :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;if($doImages) {
$doImages-&amp;gt;delete();
} else { echo &quot;ERROR :&quot;.$name.&quot;&quot;;}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;With that in place I've noticed only one banner that actually seemed to lose its artwork.&lt;/p&gt;

&lt;p&gt;After dumping out the images the load on the server started to drop and settled under 0.75 for the rest of the day and into the next even as traffic remained relatively high.&lt;/p&gt;

&lt;p&gt;Next is to upgrade to 2.4.4 and address some other admin interface slowdowns.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;UPDATE&lt;/em&gt; Bug was reported and tagged as invalid &lt;a href=&quot;OX-1832&quot;&gt;https://developer.openx.org/jira/browse/OX-1832&lt;/a&gt;. Not sure how my records got screwy but I think an error message out to the user would be helpful. Anyone out there ever run into this problem and have some info on what caused it for you?&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://paulmarsh.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:paulmarsh.net,2008-02-21:8</id>
    <published>2008-02-21T19:38:00Z</published>
    <updated>2008-02-21T21:36:43Z</updated>
    <category term="openads"/>
    <category term="upgrade"/>
    <link href="http://paulmarsh.net/openads-upgrading" rel="alternate" type="text/html"/>
    <title>OpenAds 0.3.30-alpha to 2.4.2 Upgrade</title>
<summary type="html">&lt;p&gt;There's a nice clear upgrade path from 0.3.31-alpha-pr3 but not from 0.3.31-alpha. Thankfully OpenAds is a well written app and rolling up to 0.3.31-alpha-pr3 wasn't much of a problem. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;EDIT&lt;/em&gt; : Totally not true any more with the 2.4.4 release.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;There's a nice clear upgrade path from 0.3.31-alpha-pr3 but not from 0.3.31-alpha. Thankfully OpenAds is a well written app and rolling up to 0.3.31-alpha-pr3 wasn't much of a problem. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;EDIT&lt;/em&gt; : Totally not true any more with the 2.4.4 release.&lt;/p&gt;
&lt;p&gt;Well now of course OpenAds has become &lt;a href=&quot;http://blog.openx.org/02/changes-to-openx-site-and-brand-quick-guide/&quot; title=&quot;OpenX&quot;&gt;OpenX&lt;/a&gt; since I've been dragging my feet on getting this up. However that doesn't change the underlying code much and the changes from 2.4.2 to 2.4.4 aren't that great.&lt;/p&gt;

&lt;p&gt;What's even nicer is in the &lt;a href=&quot;http://www.openx.org/docs/2.4/release-notes/openx-2.4.4&quot; title=&quot;2.4.4 release notes&quot;&gt;release notes&lt;/a&gt; upgrades from v0.1.29-rc now appear supported. 2.4.2 required v0.1.31-alpha-pr3. So I guess this post is a bit deprecated but might still help some. The &lt;a href=&quot;http://www.openx.org/docs/2.4/adminguide/install-and-upgrade&quot; title=&quot;OpenX Install/Upgrade docs&quot;&gt;install/upgrade procedure&lt;/a&gt; on the OpenX site is also recommended reading.&lt;/p&gt;

&lt;p&gt;Let me get back to the initial upgrade that I meant to be writing about. The install that I was working on upgrading has been in use since way back when OpenX was known as phpAdsNew and version 2.0 was not released yet. As such sometimes upgrades require just a little more manual massaging.&lt;/p&gt;

&lt;p&gt;While v0.3.30 was running well enough there were plenty of change in the move to 2.4.x and it's always good to keep current especially for security. My main goal was to speed up things a bit more on the admin site of the install. Along with the code upgrade I also switched all my tables to MyISAM type instead of InnoDB. &lt;/p&gt;

&lt;p&gt;The CPU usage graphs below is from my webserver and the other is a query graph of my DB server. There is an increase in overall CPU usage once the upgrade was in place on the webserver went up a bit. The two query graphs show that my cronjob for maintenance seemed to have stopped working. Once it was enabled the queries went back to normal. &lt;/p&gt;

&lt;p&gt;Overall Openads/OpenX continues to support what we need extremely well. It's versitile to handle some interesting ad formats without requiring much tinkering. &lt;/p&gt;

&lt;p&gt;As always remeber to back up those databases before preforming upgrades.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://paulmarsh.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:paulmarsh.net,2008-02-14:17</id>
    <published>2008-02-14T20:14:00Z</published>
    <updated>2008-02-20T20:05:23Z</updated>
    <category term="cakephp"/>
    <category term="dreamhost"/>
    <category term="linux"/>
    <category term="mod_rewrite"/>
    <link href="http://paulmarsh.net/cakephp-on-dreamhost-linux" rel="alternate" type="text/html"/>
    <title>CakePHP on Dreamhost Linux</title>
<summary type="html">&lt;p&gt;Really not that difficult, but there are a couple of trip-up spots. &lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Really not that difficult, but there are a couple of trip-up spots. &lt;/p&gt;
&lt;p&gt;Let me say this first, GoDaddy is a miserable experience. I will back off a little and say perhaps it's just been a very long time since I've dealt with a shared host, but that doesn't change the fact that their web interface times out, is slow, and cluttered.&lt;/p&gt;

&lt;p&gt;That all aside I needed to get a &lt;a href=&quot;http://www.cakephp.org/&quot; title=&quot;CakePHP MVC Framework&quot;&gt;CakePHP&lt;/a&gt; based app up and running on an account there. There are some &lt;a href=&quot;http://www.google.com/search?q=cakephp+godaddy&quot; title=&quot;Google CakePHP GoDaddy&quot;&gt;google results&lt;/a&gt; that pointed the way.&lt;/p&gt;

&lt;p&gt;First of all if you have a relatively new GoDaddy account hosted on Linux you'll be able to use .htaccess files. Windows hosts seem to be out of luck. Of course the &lt;a href=&quot;http://www.google.com/search?q=apache+rewrite+rules&quot;&gt;rewrite rules&lt;/a&gt; in .htaccess files are needed by CakePHP to function properly.&lt;/p&gt;

&lt;p&gt;Before uploading your app edit app/webroot/.htaccess and change :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;to&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Just an additional slash. GoDaddy has some of its own rewrites that seem to enjoy getting in the way.&lt;/p&gt;

&lt;p&gt;Now the fun part that caught me off guard and doesn't seem to get any mention in GoDaddy's Help Documentation, wait 15 minutes and check your site. So I would deploy your app to a subdomain first then move it to production to make sure everything is actually working properly.&lt;/p&gt;

&lt;p&gt;And that's about it. Seems to be all you need to do for a 1.1 and 1.2 Cake apps. &lt;/p&gt;
          </content>  </entry>
</feed>
