<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Unreal Expectations &#187; slicehost</title>
	<atom:link href="http://unrealexpectations.com/blog/category/slicehost/feed/" rel="self" type="application/rss+xml" />
	<link>http://unrealexpectations.com/blog</link>
	<description>That actually worked??!??</description>
	<lastBuildDate>Sun, 04 Dec 2011 09:02:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>ForbesPrint.com and Open Source</title>
		<link>http://unrealexpectations.com/blog/2010/06/forbesprint-com-and-open-source/</link>
		<comments>http://unrealexpectations.com/blog/2010/06/forbesprint-com-and-open-source/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 04:22:40 +0000</pubDate>
		<dc:creator>mleo</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[slicehost]]></category>

		<guid isPermaLink="false">http://unrealexpectations.com/blog/?p=115</guid>
		<description><![CDATA[<p>A year ago, my wife, daughter and I visited my wife&#8217;s aunt and uncle in Waterford, Michigan area.  She signed me up to do a small web site for them to promote the printing business.  The printing business has been in the family since 1946. </p>
<p>I decided to use open source tools as [...]]]></description>
			<content:encoded><![CDATA[<p>A year ago, my wife, daughter and I visited my wife&#8217;s aunt and uncle in Waterford, Michigan area.  She signed me up to do a small <a href="http://www.forbesprint.com/">web site</a> for them to promote the printing business.  The printing business has been in the family since 1946. </p>
<p>I decided to use open source tools as much as possible to deliver the site.  Long term, I don&#8217;t expect to have access to tools I use at work and I actually know I shouldn&#8217;t use tools from work to work on external projects. And so, I stayed with open source tools as much as possible.</p>
<p>I set up the website relatively quickly with ruby on rails, but did not launch it for awhile.  While I like the ruby on rails approach to rapid development I haven&#8217;t used ruby enough to learn the syntax and be productive in it.  In the meantime between developing the site and actually launching it, I worked on a project for a client that utilized <a href="http://www.symfony-project.org">symfony</a>.   This gave me enough opportunity and time to learn php and the symfony framework.  So the in-development site was migrated from a ruby on rails to symfony project.  </p>
<p>One thing I liked when I set up the rails project was the usage of <a href="http://www.capify.org">capistrano</a> to manage the deployment of the application to my slicehost instance.  I decided to see how it could work with symfony as well.  In the end, I was able to get a good amount of information from the following <a href="http://blog.codingspree.net/2008/5/12/deploying-symfony-project-with-capistrano/">site</a>.  Besides paths and server changes to the configuration presented on the page, I utilize git as version control.   </p>
<p>I have found great value in git over subversion.  I like the fact that git does not require server software to run.  Getting it <a href="http://articles.slicehost.com/2009/5/13/capistrano-series-setting-up-git">up and running</a> with just a dedicated user and ssh was a snap.  Even better, git doesn&#8217;t manage every file with 3 extra files per instance like subversion seems to do.  To copy a subversion branch from one server to another takes forever due to all the .svn files.  Git can easily be moved around and ability to remove git from a file structure works just as easily.  </p>
<p>In the end, I built the very small site, <a href="http://www.forbesprint.com/">ForbesPrint.com</a> with the following tools:</p>
<ul>
<li>php for scripting language</li>
<li>symfony for php framework</li>
<li>nginx for web server</li>
<li>fastcgi for php runtime environment</li>
<li>git for source control</li>
<li>gimp for image editing</li>
<li>slicehost for server hosting utilizing Ubuntu virtual machine</li>
<li>SpringSource Tool Set for IDE with Aptana Studio plugin for php project support</li>
</ul>
<p>Now that the basics are in place, I hope to expand the site to better accommodate their needs and growth the business.</p>
]]></content:encoded>
			<wfw:commentRss>http://unrealexpectations.com/blog/2010/06/forbesprint-com-and-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx, FastCGI, WordPress Permalink &amp; &#8220;No Input file specified&#8221;</title>
		<link>http://unrealexpectations.com/blog/2010/01/nginx-fastci-wordpress-no-input-file-specified/</link>
		<comments>http://unrealexpectations.com/blog/2010/01/nginx-fastci-wordpress-no-input-file-specified/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 04:25:58 +0000</pubDate>
		<dc:creator>mleo</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[slicehost]]></category>

		<guid isPermaLink="false">http://www.unrealexpectations.com/blog/?p=17</guid>
		<description><![CDATA[<p>If you have spent any time recently look into the state of web servers then you know that nginx is getting recommended as the replacement for apache left, right and center.  Apache has a rich history, platform extensive, and highly extensible, and while these are great traits it&#8217;s 15 years of legacy code hasn&#8217;t seemed [...]]]></description>
			<content:encoded><![CDATA[<p>If you have spent any time recently look into the state of web servers then you know that nginx is getting recommended as the replacement for apache left, right and center.  Apache has a rich history, platform extensive, and highly extensible, and while these are great traits it&#8217;s 15 years of legacy code hasn&#8217;t seemed to keep pace with some of the modern design patterns such non-blocking i/o and simple configuration.  To apache developers&#8217; credit it is built to support a wide array of architectures and operating systems.</p>
<p>There is definitely a fair amount of information out there on how to get nginx running with WordPress via FastCGI.  Slicehost, my current hosting provider, offers a wealth of <a href="http://articles.slicehost.com/nginx">articles </a>on setting up nginx along with a rails cluster. I followed several other <a href="http://codeintensity.blogspot.com/2008/08/wordpress-nginx-subdirectories-and.html">articles</a> in getting FastCGI working through spawn-fcgi with requisite<a href="http://saturnboy.com/2008/10/nginx-init-script/"> init scripts</a> to ensure everything starts up properly.  Everything was working great until I enabled <a href="http://codex.wordpress.org/Using_Permalinks">pretty permalinks</a> and then got the unfortunate error:</p>
<p><code>No input file specified.</code></p>
<p>I understood this to mean FastCGI could find the script attempting to be called, but couldn&#8217;t immediately see why that was the case.  In the end it was something simple and obvious.</p>
<p>My initial configuration server configuration looked something like:</p>
<p><pre><code>
server {
  listen   80;
...
  location / {
    # this serves static files that exist without running other rewrite tests
    if (-f $request_filename) {
      expires 30d;
      break;
    }

    # this sends all non-existing file or directory requests to index.php
    if (!-e $request_filename) {
      rewrite ^.+?(/.*\.php)$ $1 last;
      rewrite ^ /index.php last;
    }
  }

  location ~ .php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME /var/www/html/www/public$fastcgi_script_name;

    root /var/www/html/www/public;
  }
}
</code></pre></p>
<p>And searching there were other suggestions for the rewrite as:</p>
<p><pre><code>
    # this sends all non-existing file or directory requests to index.php
    if (!-e $request_filename) {
      rewrite ^(.+)$ /index.php?q=$1 last;
    }
</code></pre></p>
<p>Which made no difference in the error condition.  As I said in the end, the problem was something obvious.  In my configuration, the wordpress installation is not at the root of the web server, rather it is in a subdirectory called <strong>blog</strong>.  Therefore, with the initial configuration when a path could not be found, rather than call the wordpress index.php script located at /blog/index.php, it was calling just /index.php which initially didn&#8217;t exist.  Had it existed, I probably would have quickly see which file was getting called and how to address.  The change was to set up the wordpress rewrite information in the correct location block.  The updated configuration became:</p>
<p><pre><code>
  location /blog {
    # this serves static files that exist without running other rewrite tests
    if (-f $request_filename) {
      expires 30d;
      break;
    }

    # this sends all non-existing file or directory requests to index.php
    if (!-e $request_filename) {
      rewrite ^.+?(/.*\.php)$ $1 last;
      rewrite ^ /blog/index.php last;

    }
  }
</code></pre></p>
<p>I haven&#8217;t yet configured out the &#8220;No Input file specified&#8221; when a bad php url is used, but that will probably be done shortly.</p>
]]></content:encoded>
			<wfw:commentRss>http://unrealexpectations.com/blog/2010/01/nginx-fastci-wordpress-no-input-file-specified/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started with Slicehost</title>
		<link>http://unrealexpectations.com/blog/2010/01/getting-started-with-slicehost/</link>
		<comments>http://unrealexpectations.com/blog/2010/01/getting-started-with-slicehost/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 20:15:56 +0000</pubDate>
		<dc:creator>mleo</dc:creator>
				<category><![CDATA[slicehost]]></category>

		<guid isPermaLink="false">http://blog.unrealexpectations.com/blog/?p=11</guid>
		<description><![CDATA[<p>I looked into virtual hosting solutions about a year ago and found Slicehost.  The original impetus was to have a server in the cloud in order to host a code repository and test server for things I work on in spare time.  Some of the requirements I was looking for included root access, good management [...]]]></description>
			<content:encoded><![CDATA[<p>I looked into virtual hosting solutions about a year ago and found <a href="http://www.slicehost.com/">Slicehost</a>.  The original impetus was to have a server in the cloud in order to host a code repository and test server for things I work on in spare time.  Some of the requirements I was looking for included root access, good management tools, and relatively cheap.  Slicehost fit the bill pretty well and seems there is a good amount of goodwill out there about their offering.</p>
<p>I have been pleased with the cost, performance and service they offer.   Through their great <a href="http://articles.slicehost.com/">articles</a>, I was quickly able to secure the server and set up and configure the right set of software and services to get things running.</p>
<p>I have started with a 256 slice running Ubuntu and haven&#8217;t yet had need to upgrade it to something new.  Initial software configuration includes:</p>
<ul>
<li>nginx</li>
<li>ruby</li>
<li>php5</li>
<li>mysql</li>
<li>git</li>
</ul>
<p>Since starting with just a server to host a code repository I have moved on to host some additional sites on the server including this blog.  Most of the sites are yet to be publicly available as they are things put together more to learn something than explicitly made available for public consumption.</p>
<p>In the end, this has been a great solution for my needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://unrealexpectations.com/blog/2010/01/getting-started-with-slicehost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

