<?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>Salient Digital Techno Blog &#187; Software</title>
	<atom:link href="http://blog.salientdigital.com/topic/technology-computers-and-digital-lifestyle/computer-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.salientdigital.com</link>
	<description>Ramblings on technology with a dash of social commentary</description>
	<lastBuildDate>Sun, 05 Feb 2012 00:51:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Top 10 Redis Resources Online</title>
		<link>http://blog.salientdigital.com/2012/02/04/top-10-redis-resources-online/</link>
		<comments>http://blog.salientdigital.com/2012/02/04/top-10-redis-resources-online/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 00:27:46 +0000</pubDate>
		<dc:creator>phpguru</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[Redis]]></category>

		<guid isPermaLink="false">http://blog.salientdigital.com/?p=1138</guid>
		<description><![CDATA[Chances are you&#8217;ve heard of Memcache. Tons of websites use it to speed up page load times. I often say that Redis is like Memcache on steroids. You may not have heard of Redis, but if you&#8217;re using Memcache or APC, you should see how Redis could improve what you&#8217;re already doing. If you&#8217;re not [...]]]></description>
			<content:encoded><![CDATA[<p>Chances are you&#8217;ve heard of Memcache. Tons of websites use it to speed up page load times. I often say that Redis is like Memcache on steroids. You may not have heard of Redis, but if you&#8217;re using Memcache or APC, you should see how Redis could improve what you&#8217;re already doing. If you&#8217;re not using Memcache or APC yet, don&#8217;t bother &#8211; I urge you to take a look at Redis for a bunch of reasons.</p>
<blockquote><p>First, Memcache is a key-value store only. You set a string value under a string key, and that&#8217;s it. With Redis, on the other hand, you have the luxury of several different types of data storage, including keys and values, but Redis also supports hashes, lists, sets and sorted sets.</p>
<p>An example to help explain why this is such a huge improvement. Say you have a big array of data, such as the kind that can come back from a web service request, like a parsed XML file or JSON packet. With Memcache, to store this in memory you have to serialize the data, often base64 encode the data, and then store it on the way in, and then to get a portion of the data back out again, you have to get the whole string, base64 decode it, deserialize it and then you can read from it. These extra steps needlessly chew up compute cycles.</p>
<p>With the same data object stored in a Redis Hash, for example, you can have instant access to the data stored in any key of the hash, you don&#8217;t have to grab the whole thing, deserialize it and all that mess. Just a single line of code, and boom, there&#8217;s your data. Much more elegant.</p>
<p>Another key reason Redis is superior to Memcache is that when you ask Memcache to store something, it&#8217;s in memory and that&#8217;s it. If your server goes down and you have to reboot, you have to repopulate your Memcache data over again. If your app has gotten huge, and your cache is huge, this can not only take awhile but puts a huge strain on your database server during this so-called &#8220;cache warmup&#8221; period. Unlike Memcache, Redis actually stores a copy of its data to a file on disk in the background, so if you stop and start your Redis server, it reloads everything automatically. It does this mind-blowingly fast, too, like millions of keys in seconds.</p>
<p>Finally, Redis supports master-slave configurations that you can use to build high-availability systems more easily. In the upcoming release (everyone is very eager for) <a title="Redis Cluster" href="https://docs.google.com/present/view?authkey=CK3Bv7oF&amp;id=0AW46Gd5VoPJ8ZGR2cmJtczNfMjE3d3pibTdjaw" target="_blank">Redis Cluster</a> will support sharding out of the box!</p></blockquote>
<div>So, now that you want to dig in and start learning Redis, here are my&#8230;</div>
<div></div>
<h2><strong>Top 10 Redis Resources Online</strong></h2>
<div>
<div>
<ol>
<li>Redis documentation: <a href="http://redis.io/commands" target="_blank">redis.io/commands</a></li>
<li>Try Redis Online: <a href="http://try.redis-db.com/" target="_blank">try.redis-db.com</a></li>
<li>Redis-DB Google Group List Archives: <a href="http://groups.google.com/group/redis-db/topics?pli=1" target="_blank">groups.google.com/group/redis-db</a></li>
<li>Antirez (Redis developer Salvatore Sanfilippo&#8217;s) blog: <a href="http://antirez.com/" target="_blank">antirez.com</a></li>
<li>Recent blog posts about Redis: <a href="http://www.google.com/search?q=redis&amp;hl=en&amp;client=safari&amp;rls=en&amp;tbm=blg&amp;output=rss" target="_blank">RSS Feed</a></li>
<li>Q&amp;A: <a href="http://stackoverflow.com/questions/tagged/redis" target="_blank">stackoverflow.com/questions/tagged/redis</a></li>
<li>The Little Redis Book &#8211; Just released <a title="The Little Redis Book" href="http://openmymind.net/2012/1/23/The-Little-Redis-Book" target="_blank">openmymind.net/2012/1/23/The-Little-Redis-Book</a></li>
<li>Slides from Redis Tutorial <a href="http://simonwillison.net/static/2010/redis-tutorial/" target="_blank">simonwillison.net/static/2010/redis-tutorial</a></li>
<li>A Collection of Redis Use Cases <a title="Collection of Redis Use Cases" href="http://www.paperplanes.de/2010/2/16/a_collection_of_redis_use_cases.html" target="_blank">www.paperplanes.de/2010/2/16/a_collection_of_redis_use_cases</a></li>
<li>My GitHub Page. Chock full of Redis-related project forks. <a href="http://github.com/phpguru" target="_blank">github.com/phpguru</a></li>
</ol>
</div>
<div>
<div><strong>Notes</strong></div>
<div>You may be wondering about NoSQL and where Redis fits into this discussion. When people bring up NoSQL, I tend to think of <a title="MongoDB is WebScale" href="http://www.mongodb.org/" target="_blank">MongoDB</a>. Unlike Memcached and Redis, MongoDB is a general purpose document/object (think JSON) store that (strangely enough) allows you to use some SQL-like commands to retrieve subsets of your data. I think of Redis as a data structure server. You don&#8217;t use SQL to talk to Redis, so I guess it could be considered along with other NoSQL solutions. You can compare Redis to MongoDB by going to <a href="http://try.mongodb.org/" target="_blank">try.mongodb.org/</a></div>
</div>
</div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.salientdigital.com/2012/02/04/top-10-redis-resources-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configure Subversion with Apache and Security in 5 Easy Steps</title>
		<link>http://blog.salientdigital.com/2012/01/19/configure-subversion-with-apache-and-security-in-5-easy-steps/</link>
		<comments>http://blog.salientdigital.com/2012/01/19/configure-subversion-with-apache-and-security-in-5-easy-steps/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 06:08:58 +0000</pubDate>
		<dc:creator>phpguru</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://blog.salientdigital.com/?p=1128</guid>
		<description><![CDATA[I&#8217;ve been running WampServer for years on my trusty Dell XPS running Windows XP Pro. A while back I installed Subversion and got it working with mod_dav and authz_svn to serve multiple repositories, each with their own user and group permissions. It was tricky to set up and there are some finer points that most [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been running WampServer for years on my trusty Dell XPS running Windows XP Pro. A while back I installed Subversion and got it working with mod_dav and authz_svn to serve multiple repositories, each with their own user and group permissions. It was tricky to set up and there are some finer points that most documentation I read doesn&#8217;t address. I followed a few different web resources like <a title="Subversion for Windows with Apache" href="http://svn.spears.at/" target="_blank">this great beginners guide</a>, but ultimately it boils down to the 5 simple steps below.</p>
<p>Just recently I needed to add a new repository. I thought I had done everything right, but when I went to use it for the first time, I got the following errors:</p>
<pre>D:\svn\repos&gt;svn mkdir http://localhost:8080/svn/myproject/trunk -m "Trunk"
svn: OPTIONS of 'http://localhost:8080/svn/myproject': 200 OK (http://localhost:8080)</pre>
<pre>D:\svn\repos&gt;svn ls http://localhost:8080/svn/myproject/trunk
svn: URL 'http://localhost:8080/svn/myproject/trunk' non-existent in that revision</pre>
<pre>D:\svn\repos&gt;svn ls http://localhost:8080/svn/myproject
svn: Could not open the requested SVN filesystem</pre>
<p>If you are getting any of these common errors, this post is for you.</p>
<p>When using svn over http, you have to use Apache&#8217;s configuration files to control access to each repository separately. Start by installing Apache, Subversion, and then referencing these three modules in your httpd.conf as follows:</p>
<pre>LoadModule  dav_module             modules/mod_dav.so
LoadModule  dav_svn_module         modules/mod_dav_svn.so
LoadModule  authz_svn_module       modules/mod_authz_svn.so</pre>
<p>Now we&#8217;re ready to begin.</p>
<p><strong>1) Add the repository:</strong></p>
<pre>#&gt; svnadmin create D:\svn\repos\myproject</pre>
<p><em>*(On Unix systems, chown -R myproject so it is writable by the user Apache runs as)*</em></p>
<p><em><strong>2) Edit your httpd.conf </strong></em>(or extras/httpd-vhosts.conf) adding something like this:</p>
<pre>&lt;Location /svn/myproject&gt;
   DAV svn
   SVNPath d:/svn/repos/myproject
   AuthType Basic
   AuthName "My Project SVN Repo"
   AuthUserFile c:/etc/svn-auth-file
   Require valid-user
   AuthzSVNAccessFile c:/etc/svn-acl
&lt;/Location&gt;</pre>
<p><strong>3) Add the project to your svn auth file at c:/etc/svn-acl</strong> (it&#8217;s referenced in the Location directive in your Apache config.)</p>
<pre>[groups]
yourgroupname = yourusername, user_b, user_c</pre>
<pre>[myproject:/]   
yourusername = rw
@yourgroupname = rw</pre>
<p><em>This is what tells Apache which users and groups are allowed to access the path(s) in your repository.</em></p>
<p><strong>4) Give yourusername an htpasswd</strong> (and user_b and user_c)</p>
<pre>cd c:/etc/
htpasswd -c svn-auth-file yourusername</pre>
<p><em>*(If that file already exists, omit the -c option)*</em></p>
<p><strong>5) Finally, restart Apache</strong></p>
<pre>httpd -k restart</pre>
<p>Then you&#8217;re ready to create trunk</p>
<pre>#&gt; svn mkdir http://localhost:8080/svn/myproject/trunk -m "Adding trunk"

Committed revision 1.</pre>
<p>I got the errors shown above when forgetting step one or more of these steps.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.salientdigital.com/2012/01/19/configure-subversion-with-apache-and-security-in-5-easy-steps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redis 101 at Desert Code Camp 2011</title>
		<link>http://blog.salientdigital.com/2011/10/27/redis-101-at-desert-code-camp-2011/</link>
		<comments>http://blog.salientdigital.com/2011/10/27/redis-101-at-desert-code-camp-2011/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 08:56:31 +0000</pubDate>
		<dc:creator>phpguru</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Website Development]]></category>

		<guid isPermaLink="false">http://blog.salientdigital.com/?p=1042</guid>
		<description><![CDATA[I&#8217;m proud to announce that I&#8217;ll be teaching Redis 101 at Desert Code Camp on November 5, 2011. Redis is a powerful memory-resident data store. In order to give you a good background on what Redis is, let&#8217;s take a trip down memory lane, back to our first lesson on how computers work. Computers have [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m proud to announce that I&#8217;ll be teaching <a href="http://nov2011.desertcodecamp.com/session/400">Redis 101</a> at <a href="http://nov2011.desertcodecamp.com/home">Desert Code Camp on November 5, 2011</a>. </p>
<p><a href="http://redis.io">Redis</a> is a powerful memory-resident data store.</p>
<p>In order to give you a good background on what Redis is, let&#8217;s take a trip down memory lane, back to our first lesson on how computers work. Computers have a <em>hard disk drive</em>, which enables data and files to be stored permanently (or, at least, for very long periods of time). They also have <em>memory, or RAM,</em> which is volatile, but very, very fast, comparatively. </p>
<p>Why do we need both hard-drives and memory? Economics, mainly. Cheap, huge hard drives can store millions of files permanently, even if the power goes out. The tradeoff to all that massive amount of permanent storage is that hard drives are slow. RAM, on the other hand, is volatile storage, meaning that whatever is in RAM is lost when you power down your computer. Data in RAM is blazing fast, though. The trade-offs for all that blazing speed are high cost and impermanence. </p>
<blockquote><p>The latest Solid State Disks (SSD&#8217;s) are breaking some of these rules by being decent-sized, permanent storage that&#8217;s faster and quieter than a regular hard drive, but not as expensive as RAM. SSDs are more like hard drives or memory sticks with no moving parts. <em>What&#8217;s Cool About SSDs</em> would make a good blog post in the near future.</p></blockquote>
<p>Back to caching. In general terms, a <b>cache</b> is simply a faster place to retrieve data from. </p>
<p>Your computer can access data stored in RAM much, much faster than it can access files on disk. When you launch a program, your computer is reading the application data from disk (slow) and loading it into memory (fast) so you can work on it.</p>
<p>Several forms of <b>caching</b> are used to speed up surfing the web. </p>
<p>You&#8217;re probably most familiar with <b>client-side caching</b>—your browser cache, or <em>Temporary Internet Files</em> for you Windows users. Web browsers use a local cache (just a special hidden folder) on your hard drive to store the stuff you&#8217;ve downloaded before. The theory here is, if you&#8217;ve already downloaded the home page of a site, chances are most of the files, scripts and stylesheets are reused across other pages on the stite, so by keeping local copy in the cache, your browser doesn&#8217;t have to re-fetch assets from the server again. </p>
<p><b>Server-side caching</b>, on the other hand, is a technique implemented by web application architects, to help speed up web applications. Some of the things that can be cached on the server-side include frequently-used files, query results, or processing PHP templates into their rendered HTML. With server-side caching, the idea is to alleviate some or most of the work your web server has to do when processing a particular request.</p>
<p>Going back to our lesson on how computers work, we know hard drives are slow and memory is very fast. So when talking about maximum performance for web servers, we had better be looking at storing data in memory. </p>
<p>Two of the most popular memory-caching platforms for PHP are <a href="http://memcached.org/">Memcache</a> and <a href="http://www.php.net/apc">APC</a>, the Alternative PHP Cache. These PHP extensions have been around a very long time, and are able to utilize RAM, instead of files on disk, to make data available to your PHP scripts almost instantly.</p>
<p>Memcache and APC are known as <b>key-value stores</b>. Memcache is <em>only</em> a key-value store, meaning that&#8217;s basically the only feature it offers. APC is a key-value store, and also an opcode cache. An opcode cache actually compiles PHP scripts into machine-executable code, very much like compiling C# into a .DLL or Java code into a .war file. Compiled code runs faster than code that has to be parsed first.  </p>
<p>With any key-value store, you hand it a <b>key</b> and some <b>data</b>, and then later, you can lookup the data again almost instantly by using the original key. </p>
<p><b>So why Redis?</b> Like Memcache, Redis is also a <b>key-value store</b>, but it also offers several unique, blazing-fast data structures, including <b>hashes, sets, lists and more</b>. In addition, Redis includes a terrific <b>write-to-disk</b> feature as well as <b>master-slave replication</b>, giving you an extremely flexible and powerful set of tools, that fits in perfectly with any database-driven web application. And all for the amazing low-low price of only $0.00! By combining APC&#8217;s opcode cache capabilities, with the flexibility of Redis, you have everything you need to make your web applications really scream.</p>
<p>Whether you&#8217;ve never used a caching platform before or you&#8217;re already fluent in Memcache or APC for high-performance website scalability, come and learn why Redis is quite possibly the best thing since sliced bread.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.salientdigital.com/2011/10/27/redis-101-at-desert-code-camp-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using XDebug with Command-line PHP and NetBeans</title>
		<link>http://blog.salientdigital.com/2011/10/25/using-xdebug-with-command-line-php-and-netbeans/</link>
		<comments>http://blog.salientdigital.com/2011/10/25/using-xdebug-with-command-line-php-and-netbeans/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 20:50:39 +0000</pubDate>
		<dc:creator>phpguru</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[PHP Development]]></category>

		<guid isPermaLink="false">http://blog.salientdigital.com/?p=1038</guid>
		<description><![CDATA[Magic sauce, so easy to misplace: export $XDEBUG_CONFIG="idekey=netbeans-xdebug" echo $XDEBUG_CONFIG idekey=netbeans-xdebug The string, `netbeans-xdebug` is configurable inside NetBeans preferences.]]></description>
			<content:encoded><![CDATA[<p>Magic sauce, so easy to misplace:</p>
<p><code> export $XDEBUG_CONFIG="idekey=netbeans-xdebug"<br />
 echo $XDEBUG_CONFIG<br />
idekey=netbeans-xdebug<br />
</code><br />
The string, `netbeans-xdebug` is configurable inside NetBeans preferences.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.salientdigital.com/2011/10/25/using-xdebug-with-command-line-php-and-netbeans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to install MySQL 5.5 on Mac OS X 10.7 Lion</title>
		<link>http://blog.salientdigital.com/2011/09/08/how-to-install-mysql-5-5-on-mac-os-x-10-7-lion/</link>
		<comments>http://blog.salientdigital.com/2011/09/08/how-to-install-mysql-5-5-on-mac-os-x-10-7-lion/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 18:54:59 +0000</pubDate>
		<dc:creator>phpguru</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology, Computers & Digital Lifestyle]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.salientdigital.com/?p=1026</guid>
		<description><![CDATA[This may not be obvious, but on the new Macs that ship with Lion, you can use the MySQL 5.5 64-bit dmg installer. It works perfectly on Lion, even though the MySQL site (still, at the time of this writing) says Mac OS X 10.6 Snow Leopard. You can use the Preference Pane to stop [...]]]></description>
			<content:encoded><![CDATA[<p>This may not be obvious, but on the new Macs that ship with Lion, you can use the <a href="http://dev.mysql.com/downloads/mirror.php?id=403421#mirrors">MySQL 5.5 64-bit dmg installer</a>. It works perfectly on Lion, even though the MySQL site (still, at the time of this writing) says Mac OS X 10.6 Snow Leopard. You can use the Preference Pane to stop and start MySQL.</p>
<p>Now after MySQL 5.5 is running, strangely enough, you cannot simply launch terminal and type <code>mysql -u root</code>Bash will complain that it can&#8217;t find mysql. So we have to help it like so:</p>
<ol>
<li>Use your favorite text editor to edit the file <code>/Users/%yourname%/.bash_profile</code> If this file doesn&#8217;t exist you can create it.</li>
<li>Add the following line to your .bash_profile <code>export PATH=$PATH:/usr/local/mysql/bin</code> and save the file. <b>Be careful editing this file exactly as above. You can render terminal unable to find all your programs if you break your $PATH.</b></li>
<li>Quit and relaunch terminal, or type <code>source ~/.bash_profle</code> and hit return to reload the changes in your profile.</li>
<li>Check your $PATH by typing <code>echo $PATH</code> and pressing return. You should see something like this <code>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/mysql/bin</code></li>
<li>Now you should be able to run <code>mysql -u root</code> which means <strong>there is no root password by default!</strong></li>
<li>Run this next, at the mysql prompt <code>GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'your_password_here' WITH GRANT OPTION;</code>This is how to secure your root user login.</li>
</ol>
<p>Now, for PHP to use this connection I had to tweak my system as shown below:</p>
<ol>
<li>Run phpinfo() and check out the path PHP is trying to use for mysql.sock. On my new Mac Mini, it was<code>/var/mysql/mysql.sock</code></li>
<li>From terminal, I did <code>sudo find / -name mysql.sock -print</code></li>
<li>The critical line of output shows that MySQL 5.5 installs the sock to <code>/private/tmp/mysql.sock</code></li>
<li>Now we need to create a symlink for PHP to be able to access the mysql.sock. Trouble is if you try it you&#8217;ll get an error because /var/mysql doesn&#8217;t exist. So next, do <code>sudo mkdir /var/mysql</code></li>
<li>Finally, do this <code>sudo ln -s /private/tmp/mysql.sock /var/mysql/mysql.sock</code></li>
</ol>
<p>Did that work for you?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.salientdigital.com/2011/09/08/how-to-install-mysql-5-5-on-mac-os-x-10-7-lion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zend &amp; RightScale: The Ferrari of PHP Deployment has Arrived</title>
		<link>http://blog.salientdigital.com/2011/08/15/zend-and-rightscale-the-ferrari-of-php-deployment-has-arrived/</link>
		<comments>http://blog.salientdigital.com/2011/08/15/zend-and-rightscale-the-ferrari-of-php-deployment-has-arrived/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 01:54:33 +0000</pubDate>
		<dc:creator>phpguru</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology, Computers & Digital Lifestyle]]></category>
		<category><![CDATA[PHP Development]]></category>
		<category><![CDATA[The Cloud]]></category>

		<guid isPermaLink="false">http://blog.salientdigital.com/?p=996</guid>
		<description><![CDATA[Zend Server is already the Cadillac of PHP Application Servers. The Ferrari of PHP Application Deployments has arrived. At least some, if not many PHP application developers are comfortable maintaining an Apache-based web server on Linux, the critical hardware that most often drives the web. Apache is free, and PHP is free, but you can&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://static.zend.com/topics/zend-rightscale-logos.png" alt="" width="661" height="136" /></p>
<p>Zend Server is already the <strong>Cadillac</strong> of <em>PHP Application Servers</em>.</p>
<p>The <strong>Ferrari</strong> of <em>PHP Application Deployments</em> has arrived.</p>
<p>At least some, if not many PHP application developers are comfortable maintaining an Apache-based web server on Linux, the critical hardware that most often drives the web. Apache is free, and PHP is free, but you can&#8217;t be afraid to roll up your sleeves and get your hands dirty if you need to upgrade your software, install a new module, or tweak your server config.</p>
<p>Most, if not all PHP developers are familiar with <a title="Zend.com The PHP Company" href="http://www.zend.com/" target="_blank">Zend</a>, the engine that powers the PHP scripting language interpreter, and many great sites are developed using the Zend Framework.</p>
<p><img class="alignright" style="border: 0px initial initial;" src="http://static.zend.com/topics/elephphant-in-the-clouds-box02.jpg" border="0" alt="Zend PHP Cloud Platform on RightScale" width="253" height="232" /></p>
<p>The <a title="The Zend Framework: PHP Open Source Software" href="http://www.zend.com/en/community/framework" target="_blank">Zend Framework</a> is an enormous collection of ready-to-go building blocks (object-oriented PHP classes) for building just about any type of web application. There&#8217;s no question that their <a title="Zend Studio PHP IDE" href="http://www.zend.com/en/products/studio/" target="_blank">Zend Studio IDE</a> ($299, built on <a title="Eclipse IDE" href="http://www.eclipse.org/" target="_blank">Eclipse</a>) is a solid PHP development platform, and <a title="Zend Server" href="http://www.zend.com/en/products/server/" target="_blank">Zend Server</a> ($1,195 and up for support licenses) provides a terrific web-based GUI for managing your development, staging or production server&#8217;s LAMP stack.</p>
<p>A little pricey, maybe, but if you rely on a LAMP environment for your deployed software applications and you don&#8217;t have a lot of time or resources to be fiddling with your server software, Zend solutions still are excellent product choices to rely on from the company most closely associated with PHP development.</p>
<p>In today&#8217;s <a title="Zend and RightScale Announce Partnership" href="http://app.news.zend.com/e/es.aspx?s=714&amp;e=203142&amp;elq=37073db373af4a12b4b12179cb07920a" target="_blank">inbox</a>, Zend announced a partnership with <a title="Why RightScale?" href="http://www.rightscale.com/products/advantages/" target="_blank">RightScale</a>. If you&#8217;re not already familiar with RightScale, their service piggy-backs onto Amazon AWS to give you a nice, clean, friendly UI to manage and deploy webscale applications in the cloud. If you&#8217;ve ever experimented with Amazon AWS, you know it can be a little confusing and cumbersome to manage multiple server configurations as they scale.</p>
<p><img class="alignleft" style="border: 0px initial initial;" src="http://static.zend.com/topics/quote-box02.jpg" border="0" alt="&quot;Considering PHP's ubiquity on the web, it wasn't a question of it embraced the cloud, but when,&quot; said Stephen O'Grady, Principal Analyst with RedMonk. &quot;With the recently announced RightScale/Zend partnership, the two companies are offering PHP users the best of both worlds, with the time to market of Platform-as-a-Service (PaaS) and the flexibility of Infrastructure-as-a-Service (IaaS).&quot;" width="253" height="331" /></p>
<p>With RightScale, you can save server templates and security group configurations, manage users and more. In the same way that Jenkins can help you automate testing your PHP applications and delivering them seamlessly to your server environments, RightScale can help you manage multiple-server cloud server application architectures with ease. Really a big time-saver.</p>
<p>Definitely not cheap, but absolutely worth checking out if you have a decent budget and need to save time managing PHP cloud deployments.</p>
<p><strong>Scalable, Flexible, Portable PHP in the Cloud</strong></p>
<p>RightScale and Zend recently introduced a solution to provide a best practices path to launching and maintaining highly-available PHP applications in the cloud. Learn more about the RightScale and Zend Solution Pack: <a href="http://app.news.zend.com/e/er.aspx?s=714&amp;lid=3183&amp;elq=37073db373af4a12b4b12179cb07920a" target="_blank">attend our webinar on August 17</a>.</p>
<p>Join us on August 17 for a demo of this new cloud solution that<br />
enables you to:</p>
<p>&nbsp;</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">•</td>
<td width="7"></td>
<td>Provision a pre-configured, high availability PHP environment<br />
in minutes</td>
</tr>
<tr>
<td valign="top">•</td>
<td width="7"></td>
<td>Autoscale your application based on system and application<br />
load metrics</td>
</tr>
<tr>
<td height="27" valign="top">•</td>
<td width="7"></td>
<td>Receive system, server and application-level monitoring,<br />
alerting and diagnostics</td>
</tr>
<tr>
<td height="27" valign="top">•</td>
<td width="7"></td>
<td>Abstract your application from underlying cloud infrastructure to<br />
enable future portability&nbsp;</p>
<table border="0" cellspacing="0" cellpadding="0" width="380">
<tbody>
<tr>
<td colspan="2"><img src="http://static.zend.com/topics/short-line-dotted.png" alt="" /></td>
</tr>
<tr>
<td width="63" valign="top">Topic:</td>
<td width="325"><a href="http://app.news.zend.com/e/er.aspx?s=714&amp;lid=3183&amp;elq=37073db373af4a12b4b12179cb07920a" target="_blank">Introducing &#8220;PaaS in a Box&#8221;: Scalable, Flexible, Portable PHP in the Cloud</a></td>
</tr>
<tr>
<td colspan="2"><img src="http://static.zend.com/topics/short-line-dotted.png" border="0" alt="" /></td>
</tr>
<tr>
<td valign="top">Date:</td>
<td>Wednesday, August 17</td>
</tr>
<tr>
<td colspan="2"><img src="http://static.zend.com/topics/short-line-dotted.png" border="0" alt="" /></td>
</tr>
<tr>
<td valign="top">Time:</td>
<td>9 AM PT / 12 PM ET / 5 PM BST / 6 PM CEST</td>
</tr>
<tr>
<td colspan="2"><img src="http://static.zend.com/topics/short-line-dotted.png" border="0" alt="" /></td>
</tr>
<tr>
<td valign="top">Speakers:</td>
<td>Uri Budnik – Director ISV Partner Program, RightScale<br />
Claudio Gentile – Sales Engineer, RightScale<br />
Kevin Schroeder – Zend Technology Evangelist, Zend</td>
</tr>
<tr>
<td colspan="2"><img src="http://static.zend.com/topics/short-line-dotted.png" border="0" alt="" /></td>
</tr>
</tbody>
</table>
<p>&nbsp;</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><a href="http://app.news.zend.com/e/er.aspx?s=714&amp;lid=3183&amp;elq=37073db373af4a12b4b12179cb07920a" target="_blank"><img src="http://static.zend.com/topics/register-button.jpg" border="0" alt="Register" width="259" height="36" /></a></p>
<p><span style="font-size: small;"><span style="line-height: normal;"><br />
</span></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.salientdigital.com/2011/08/15/zend-and-rightscale-the-ferrari-of-php-deployment-has-arrived/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to install PHP APC extension on Snow Leopard</title>
		<link>http://blog.salientdigital.com/2011/08/11/how-to-install-php-apc-extension-on-snow-leopard/</link>
		<comments>http://blog.salientdigital.com/2011/08/11/how-to-install-php-apc-extension-on-snow-leopard/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 16:58:19 +0000</pubDate>
		<dc:creator>phpguru</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Website Development]]></category>

		<guid isPermaLink="false">http://blog.salientdigital.com/?p=991</guid>
		<description><![CDATA[I followed several posts on the Apple Suppor forum to install APC on Snow Leopard (not Server, but this forum seems much more appropriate as I am using Snow Leopard on my local MBP 17 for serious web development, trying to match my Ubuntu Server config as closely as possible.) Most notably, these: discussions.apple.com/thread/2448001 discussions.apple.com/message/12923918 [...]]]></description>
			<content:encoded><![CDATA[<p>I followed several posts on the Apple Suppor forum to install APC on Snow Leopard (not Server, but this forum seems much more appropriate as I am using Snow Leopard on my local MBP 17 for serious web development, trying to match my Ubuntu Server config as closely as possible.)</p>
<p>Most notably, these:</p>
<p><a href="https://discussions.apple.com/thread/2448001">discussions.apple.com/thread/2448001</a><br />
<a href="https://discussions.apple.com/message/12923918">discussions.apple.com/message/12923918</a><br />
<a href="https://discussions.apple.com/message/11696363">discussions.apple.com/message/11696363</a><br />
<a href="https://discussions.apple.com/message/10454666">discussions.apple.com/message/10454666</a></p>
<p>as well as</p>
<p><a href="http://www.kevinworthington.com/nginx-mac-os-snow-leopard-2-minutes/">www.kevinworthington.com/nginx-mac-os-snow-leopard-2-minutes/</a><br />
<a href="http://serverfault.com/questions/206633/failed-to-instal-apc-via-pecl-install-apc">serverfault.com/questions/206633/failed-to-instal-apc-via-pecl-install-apc</a></p>
<p>I had to instal PCRE 8.12 before APC 3.1.9 install would work. <a href="https://wincent.com/wiki/Installing_nginx_0.8.54_on_Mac_OS_X_10.6.6_Snow_Leopard">Wincent has perfect instructions</a> for that.</p>
<p>Now back in my APC source directory, doing phpize and ./configure resulted in test failures; I realized that the recommended way of installing APC is via <code>pecl channel-discover pecl.php.net<br />
pecl install APC<br />
</code></p>
<p>This succeeded: <code>Build process completed successfully<br />
Installing '/usr/include/php/ext/apc/apc_serializer.h'<br />
Installing '/usr/lib/php/extensions/no-debug-non-zts-20090626/apc.so'<br />
install ok: channel://pecl.php.net/APC-3.1.9<br />
configuration option "php_ini" is not set to php.ini location<br />
You should add "extension=apc.so" to php.ini<br />
</code></p>
<p>Okay, so I add extension=apc.so to php.ini and restart apache. <code>sh-3.2# php -i | grep apc<br />
apc<br />
apc.cache_by_default =&gt; On =&gt; On<br />
apc.canonicalize =&gt; On =&gt; On<br />
apc.coredump_unmap =&gt; Off =&gt; Off<br />
apc.enable_cli =&gt; Off =&gt; Off<br />
apc.enabled =&gt; On =&gt; On<br />
apc.file_md5 =&gt; Off =&gt; Off<br />
apc.file_update_protection =&gt; 2 =&gt; 2<br />
apc.filters =&gt; no value =&gt; no value<br />
apc.gc_ttl =&gt; 3600 =&gt; 3600<br />
apc.include_once_override =&gt; Off =&gt; Off<br />
apc.lazy_classes =&gt; Off =&gt; Off<br />
apc.lazy_functions =&gt; Off =&gt; Off<br />
apc.max_file_size =&gt; 1M =&gt; 1M<br />
apc.mmap_file_mask =&gt; no value =&gt; no value<br />
apc.num_files_hint =&gt; 1000 =&gt; 1000<br />
apc.preload_path =&gt; no value =&gt; no value<br />
apc.report_autofilter =&gt; Off =&gt; Off<br />
apc.rfc1867 =&gt; Off =&gt; Off<br />
apc.rfc1867_freq =&gt; 0 =&gt; 0<br />
apc.rfc1867_name =&gt; APC_UPLOAD_PROGRESS =&gt; APC_UPLOAD_PROGRESS<br />
apc.rfc1867_prefix =&gt; upload_ =&gt; upload_<br />
apc.rfc1867_ttl =&gt; 3600 =&gt; 3600<br />
apc.serializer =&gt; default =&gt; default<br />
apc.shm_segments =&gt; 1 =&gt; 1<br />
apc.shm_size =&gt; 32M =&gt; 32M<br />
apc.slam_defense =&gt; On =&gt; On<br />
apc.stat =&gt; On =&gt; On<br />
apc.stat_ctime =&gt; Off =&gt; Off<br />
apc.ttl =&gt; 0 =&gt; 0<br />
apc.use_request_time =&gt; On =&gt; On<br />
apc.user_entries_hint =&gt; 4096 =&gt; 4096<br />
apc.user_ttl =&gt; 0 =&gt; 0<br />
apc.write_lock =&gt; On =&gt; On<br />
</code></p>
<p>So now we know, from the command line anyway, PHP CLI is reporting it has APC installed.</p>
<p>Now here&#8217;s the interesting part&#8230; from Apache (e.g. trying to run any local PHP file http://localhost/info.php for example) I just get a white page of death.</p>
<p>If I comment that extension out and restart Apache, PHP files work again.</p>
<p>Hmm, lets look at the error.<code>tail -f error_log</code><br />
shows: <code>Fatal error: Unknown: apc_fcntl_unlock failed: in Unknown on line 0<br />
</code></p>
<p>I google that and find <a href="http://pecl.php.net/bugs/bug.php?id=22688">this bug report</a>, where it is stated that a patch is available for apc_lock.h.</p>
<p>I go back to the <a href="http://pecl.php.net/package/APC">PECL APC source site</a> and browse the sources in trunk, find the <a href="http://svn.php.net/viewvc/pecl/apc/trunk/apc_lock.h?view=log">apc_lock.h</a> file, download it, put it into my APC-3.1.9 source directory and run <code>phpize<br />
./configure<br />
make clean<br />
make install<br />
apachectl restart<br />
</code></p>
<p>Note that `make clean` is the magic bit there since we already installed APC from these sources, we need to make a new fresh install from these same sources.</p>
<p>Now everything is working happily again.</p>
<p>Good luck with yours!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.salientdigital.com/2011/08/11/how-to-install-php-apc-extension-on-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kohana 3.x in 10 Minutes</title>
		<link>http://blog.salientdigital.com/2011/06/11/kohana-3-in-10-minutes/</link>
		<comments>http://blog.salientdigital.com/2011/06/11/kohana-3-in-10-minutes/#comments</comments>
		<pubDate>Sun, 12 Jun 2011 06:18:32 +0000</pubDate>
		<dc:creator>phpguru</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[KO3]]></category>
		<category><![CDATA[kohana]]></category>

		<guid isPermaLink="false">http://blog.salientdigital.com/?p=920</guid>
		<description><![CDATA[Prerequisites: This guide assumes you have already completed: Apache, PHP &#38; MySQL in 10 Minutes So you have a LAMP/MAMP/XAMPP stack? Great! Now we&#8217;re ready to create our first Kohana project. Download the source from www.KohanaFramework.org Extract the zip file and move the directory it to your  web directory On Mac OS X: ~/Sites/* (subsequent [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Prerequisites: </strong></p>
<p><strong>This guide assumes you have already completed:</strong></p>
<ul>
<li><a title="Apache, PHP and MySQL in 10 Minutes" href="http://blog.salientdigital.com/2011/06/11/apache-php-and-mysql-in-10-minutes/">Apache, PHP &amp; MySQL in 10 Minutes</a></li>
</ul>
<p>So you have a LAMP/MAMP/XAMPP stack? Great!</p>
<p><strong>Now we&#8217;re ready to create our first Kohana project.</strong></p>
<ol>
<li>Download the source from <a href="http://www.kohanaframework.org">www.KohanaFramework.org</a></li>
<li>Extract the zip file and move the directory it to your  web directory
<ol>
<li>On Mac OS X: ~/Sites/* (subsequent references will use Mac notation)</li>
<li>On Windows (wamp): C:/wamp/www/*</li>
<li>On Linux (varies): /var/www/*</li>
</ol>
</li>
<li>Rename the directory to kohanasite.dev
<ol>
<li>Remember the full path to this now</li>
<li>something like /Users/yourname/Sites/kohanasite.dev</li>
</ol>
</li>
<li>Create an htdocs directory inside this directory
<ol>
<li>Your hdtocs will be at the same level as Kohana folders application, modules and system.</li>
<li>Remember the full path to this now</li>
<li>something like /Users/yourname/Sites/kohanasite.dev/htdocs</li>
</ol>
</li>
<li>Drag index.php into the htdocs directory</li>
<li>Edit 3 lines of index.php
<ol>
<li>where it says $application = &#8216;application&#8217;; change it to $application = &#8216;../application&#8217;;</li>
<li>where it says $modules = &#8216;modules&#8217;; change it to $modules = &#8216;../modules&#8217;;</li>
<li>where it says $system = &#8216;system&#8217;; change it to $system = &#8216;../system&#8217;;</li>
<li>save and close</li>
</ol>
</li>
<li>chmod or chown application/cache and application/logs to be writable by Apache
<ol>
<li>open terminal, and cd to your application directory<br />
<code>cd /Users/your-name/Sites/kohanasite.dev/htdocs</code></li>
<li>chmod the two directories<br />
<code>chmod 0777 cache &amp;&amp; chmod 0777 cache</code></li>
<li>or chown it to apache, wheel, www-data or whoever owns httpd process (ps aux | grep httpd)</li>
</ol>
</li>
<li>Create a VirtualHost entry in your Apache config.
<ol>
<li>Depending on your install, this might be in httpd.conf or&#8230;</li>
<li>on my Mac it&#8217;s at /private/etc/apache2/extra/httpd-vhosts.conf</li>
<li> E.g.<br />
<code>sudo vi /private/etc/apache2/extra/httpd-vhosts.conf<br />
NameVirtualHost *:80<br />
&lt;VirtualHost *:80&gt;<br />
ServerName kohanasite.dev<br />
DocumentRoot "/Users/your-username-here/Sites/kohanasite.dev/htdocs"<br />
&lt;/VirtualHost&gt;<br />
</code></li>
<li>save and quit (type :wq and hit enter)</li>
</ol>
</li>
<li>Edit your hosts file to point to this site locally
<ol>
<li>E.g.<br />
<code>sudo vi /etc/hosts<br />
127.0.0.1   kohanasite.dev<br />
</code></li>
<li>save and quit (:wq)</li>
</ol>
</li>
<li>Restart Apache
<ol>
<li><code>sudo apachectl restart</code></li>
</ol>
</li>
<li>Move example.htaccess to htdocs and rename it to .htaccess
<ol>
<li>Note, because it&#8217;s a &#8220;dot file&#8221; it will disappear on a Mac, so use terminal:<br />
<code>mv ../example.htaccess .htaccess</code></li>
</ol>
</li>
<li>Now test your site at <a href="http://kohanasite.dev/">http://kohanasite.dev</a>
<ol>
<li>It should say Hello World!</li>
</ol>
</li>
</ol>
<p>Congratulations! You now have Kohana 3.1 running locally.</p>
<p><strong>Finishing up&#8230;</strong></p>
<p>Let&#8217;s enable some of the modules that come with Kohana 3.x</p>
<ol>
<li>Open up application/bootstrap.php</li>
<li>Scroll down to the modules section</li>
<li>Enable the following modules by removing the double slash in front of the module name:
<ol>
<li>auth</li>
<li>cache</li>
<li>codebench</li>
<li>database</li>
<li>orm</li>
<li>userguide</li>
</ol>
</li>
<li>Save the bootstrap file and refresh your browser to make sure you still get hello world</li>
</ol>
<p>&nbsp;</p>
<p>Next up&#8230; How to build a simple CMS using Kohana.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.salientdigital.com/2011/06/11/kohana-3-in-10-minutes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache, PHP and MySQL in 10 Minutes</title>
		<link>http://blog.salientdigital.com/2011/06/11/apache-php-and-mysql-in-10-minutes/</link>
		<comments>http://blog.salientdigital.com/2011/06/11/apache-php-and-mysql-in-10-minutes/#comments</comments>
		<pubDate>Sat, 11 Jun 2011 22:52:01 +0000</pubDate>
		<dc:creator>phpguru</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.salientdigital.com/?p=935</guid>
		<description><![CDATA[Whether you want to start developing web applications for the first time, you&#8217;re wanting to make better use of your local computer or a virtual machine to streamline development, create a development or staging server, or just checking back as a reference for a new platform, welcome to&#8230; Apache, PHP and MySQL in 10 Minutes [...]]]></description>
			<content:encoded><![CDATA[<p>Whether you want to start developing web applications for the first time, you&#8217;re wanting to make better use of your local computer or a virtual machine to streamline development, create a development or staging server, or just checking back as a reference for a new platform, welcome to&#8230;</p>
<p><strong>Apache, PHP and MySQL in 10 Minutes</strong></p>
<p>In this guide you will find the resources needed to build a web development environment on the platform of your choice</p>
<ol>
<li>Choose Your Platform &#8211; Mac, Windows or Linux.
<ol>
<li>Mac OS X Instructions
<ol>
<li>Easy - <a title="Install MAMP and XDebug" href="http://netbeans.org/kb/docs/php/configure-php-environment-mac-os.html">Using MAMP</a></li>
<li>Intermediate - <a href="http://www.perfectline.ee/blog/how-to-setup-apache-and-php-on-mac-os-x-snow-leopard">Using built-in Apple Apache</a></li>
</ol>
</li>
<li>Windows Instructions
<ol>
<li>Install <a href="http://www.wampserver.com/en/">WampServer</a></li>
<li>Install <a href="http://keito.me/tutorials/xampp">XAMPP</a></li>
</ol>
</li>
<li>Linux Instructions
<ol>
<li><a href="http://www.howtoforge.com/quick-n-easy-lamp-server-centos-rhel">Install LAMP stack on CentOS/RHEL</a></li>
<li><a href="http://www.howtoforge.com/ubuntu_debian_lamp_server">Install LAMP stack on Debian/Ubuntu</a></li>
<li><a href="http://fedoraunity.org/solved/server-solutions/lamp-stack">Install LAMP stack on Fedora</a></li>
<li><a href="http://www.susegeek.com/internet-browser/install-configure-lamp-apachemysqlphp-in-opensuse-110/">Install LAMP stack on OpenSUSE</a></li>
<li><a href="https://wiki.archlinux.org/index.php/LAMP">Install LAMP stack on ArchLinux</a></li>
</ol>
</li>
<li>CPanel
<ol>
<li>CPanel comes with Apache &amp; PHP already installed, so here&#8217;s how to customize your install</li>
<li>Note &#8211; make sure your config comes with WHM (Web Host Manager)</li>
<li>Many ISPs call this a Reseller account</li>
<li><a href="http://docs.cpanel.net/twiki/bin/view/EasyApache3/WebHome">How to use the EasyApache script</a></li>
</ol>
</li>
<li>Plesk
<ol>
<li>Plesk comes with Apache &amp; PHP already installed, so here&#8217;s how to customize your configuration</li>
<li><a href="http://download1.parallels.com/Plesk/PP10/10.0.1/Doc/en-US/online/plesk-apache-configuration-guide/index.htm">Parallels Plesk Apache Configuration Guide</a></li>
</ol>
</li>
</ol>
</li>
<li>Install any PHP Extensions you might need
<ol>
<li>The one PHP extension that Kohana requires you that doesn&#8217;t come by default (See Kohana 3.1 in 5 minutes)  is mcrypt:</li>
</ol>
<ol>
<li><a href="http://michaelgracie.com/2009/09/23/plugging-mcrypt-into-php-on-mac-os-x-snow-leopard-10-6-1/">Pluging mcrypt into OS X</a></li>
<li><a href="http://www.wampserver.com/phorum/read.php?2,51348,52490">Enabling mcrypt under WampServer</a></li>
<li><a href="http://www.notesbit.com/index.php/web-mysql/web-scripts/how-to-install-mcrypt-in-linux-cent-os-and-recompile-php/">Install mcrypt for php under Linux</a></li>
<li><a href="http://forums.theplanet.com/index.php?showtopic=26527">Install mcrypt under CPanel</a></li>
</ol>
</li>
<li>How to create a VirtualHost
<ol>
<li>Find your Apache Config file</li>
<li>Find your Apache VirtualHost config file</li>
<li>Sample VirtualHost container</li>
<li><code>&lt;VirtualHost *:80&gt;<br />
ServerName website.dev<br />
DocumentRoot "/Users/username/Sites/website.com"<br />
&lt;/VirtualHost&gt;</code></li>
<li>More from the <a href="http://httpd.apache.org/docs/2.0/vhosts/">Apache VirtualHost documentation</a></li>
</ol>
</li>
<li>How to edit your hosts file
<ol>
<li><a href="http://en.wikipedia.org/wiki/Hosts_%28file%29">hosts file information</a></li>
</ol>
</li>
<li>Start Apache
<ol>
<li>Start Apache
<ol>
<li>Mac OS X:
<ol>
<li>Terminal
<ol>
<li><code>sudo apachectl start</code></li>
</ol>
</li>
<li>or start Web Sharing in System Preferences</li>
</ol>
</li>
<li>Windows
<ol>
<li>WampServer &#8211; start all services using the taskbar tray icon</li>
</ol>
</li>
<li>Linux
<ol>
<li>Debian/Ubuntu
<ol>
<li><code>sudo /etc/init.d/apache2 [start | stop | restart ]</code></li>
</ol>
</li>
<li>Fedora
<ol>
<li><code>service httpd [start | stop | restart]</code></li>
</ol>
</li>
<li>ArchLinux
<ol>
<li><code>/etc/rc.d/httpd restart</code></li>
</ol>
</li>
<li>OpenSUSE
<ol>
<li><code>apachectl [start | stop | restart]</code></li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
<li>Test your install
<ol>
<li>Go to <a href="http://localhost/">http://localhost</a> in your browser</li>
<li>Are you seeing the Apache start page?</li>
<li>If so, you are done. Congratulations! You just installed a web server.</li>
</ol>
</li>
<li>Install MySQL
<ol>
<li>Mac OS X
<ol>
<li><a href="http://dev.mysql.com/doc/refman/5.0/en/macosx-installation.html">Installing MySQL on OS X</a></li>
</ol>
</li>
<li>Windows
<ol>
<li><a href="http://dev.mysql.com/doc/refman/5.0/en/windows-installation.html">Installing MySQL on Windows</a></li>
</ol>
</li>
<li>Linux
<ol>
<li><a href="http://dev.mysql.com/doc/refman/5.0/en/binary-installation.html">Installing from a binary</a></li>
<li><a href="http://www.geeksww.com/tutorials/database_management_systems/mysql/installation/download_configure_compile_and_install_mysql_558_on_linux.php">Build MySQL 5.5 from source</a></li>
</ol>
</li>
</ol>
</li>
</ol>
<p>&nbsp;</p>
<p>Now that you have a development environment, why not install a fantastic web development framework, such as Kohana.</p>
<p>Ready for round two? <a title="Kohana 3.1 in 5 Minutes" href="http://blog.salientdigital.com/2011/06/11/kohana-3-in-10-minutes/">Kohana 3.1 in 10 Minutes</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.salientdigital.com/2011/06/11/apache-php-and-mysql-in-10-minutes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git Resources for Subversion Users</title>
		<link>http://blog.salientdigital.com/2011/06/11/git-resources-for-subversion-users/</link>
		<comments>http://blog.salientdigital.com/2011/06/11/git-resources-for-subversion-users/#comments</comments>
		<pubDate>Sat, 11 Jun 2011 22:17:40 +0000</pubDate>
		<dc:creator>phpguru</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology, Computers & Digital Lifestyle]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://blog.salientdigital.com/?p=910</guid>
		<description><![CDATA[I&#8217;ve been using Subversion for years, but lately I&#8217;ve been thinking it&#8217;s time to get into Git more. Plus, A lot of new GUI tools are out there and some of the older ones are still there, too, so maybe Git has matured enough for production use. Why would I want to use Git? Flavio [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using Subversion for years, but lately I&#8217;ve been thinking it&#8217;s time to get into Git more. Plus, A lot of new GUI tools are out there and some of the older ones are still there, too, so maybe Git has matured enough for production use. </p>
<p><strong>Why would I want to use Git? </strong><br />
<a href="http://flavio.castelli.name/howto_use_git_with_svn">Flavio</a> sums it up quite nicely:</p>
<blockquote><p><em>What’re the advantages?<br />
Since Git is a distributed revision control system (while svn is a centralized one) you can perform commits, branches, merges… on your local working directory without being connected to internet. Next time you’ll be online, you will be able to “push” your changes back to the central svn server.</em></p></blockquote>
<p>In a <a href="http://www.facebook.com/video/video.php?v=10100259101684977&#038;oid=9445547199&#038;comments">tech video from Facebook</a>, one of the things they mention is that their developers us Git on local workstations for managing changes, and Facebook overall uses Subversion for managing the source tree centrally.  I thought it was interesting that Facebook, one of the most advanced, largest and high-powered software applications on the planet, uses both Git and Subversion. Here&#8217;s an article about Using Git and Subversion Together.</p>
<p>I&#8217;ll be posting links to the resources I find here.</p>
<p><strong>Three Part Intro to Git Series</strong></p>
<p><em>1-2 hours</em> • First, take the <a href="http://git.or.cz/course/svn.html">Git Crash Course</a>.</p>
<p><em>2-4 hours</em> • Next, read <a href="http://www.ibm.com/developerworks/linux/library/l-git-subversion-1/">Git for Subversion Users, Part I</a> and <a href="http://www.ibm.com/developerworks/linux/library/l-git-subversion-2/index.html?ca=drs-">Git for Subversion Users, Part 2</a>. These two articles at IBM.com give you a really good overview of the main differences between Subversion and Git.</p>
<p><em>4-6 hours</em> • Finally, you should read <a href="http://progit.org/book/">Pro Git</a>. This is an awesome free online book about Git.</p>
<p>After you complete these you should be a total Git.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.salientdigital.com/2011/06/11/git-resources-for-subversion-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

