<?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>Web Development 2.0: Web Design, CakePHP, Javascript &#187; MySQL</title>
	<atom:link href="http://www.webdevelopment2.com/category/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webdevelopment2.com</link>
	<description>Quick and Dirty Web Development for Web 2.0: CakePHP, Prototype, JQuery, and lots more.</description>
	<lastBuildDate>Sat, 26 Dec 2009 07:11:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Comment Relish Plugin + High CPU Usage &#8211; Fixed The Right Way</title>
		<link>http://www.webdevelopment2.com/wordpress-comment-relish-and-high-cpu-usage/</link>
		<comments>http://www.webdevelopment2.com/wordpress-comment-relish-and-high-cpu-usage/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 12:00:25 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[comment]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.webdevelopment2.com/?p=461</guid>
		<description><![CDATA[How The Problem Started
Christmas Eve have just started at about 12:03 AM, when I logged on and saw that dreaded message:
Your Account Has Exceeded Its CPU Quota
So I did what all normal people do at first: I ignored it. Actually, I had a very good reason to at the time. Since it was 12:03 AM, [...]]]></description>
			<content:encoded><![CDATA[<h3>How The Problem Started</h3>
<p>Christmas Eve have just started at about 12:03 AM, when I logged on and saw that dreaded message:</p>
<blockquote><p>Your Account Has Exceeded Its CPU Quota</p></blockquote>
<p>So I did what all normal people do at first: I ignored it. Actually, I had a very good reason to at the time. Since it was 12:03 AM, I assumed that my nightly backup job (backup and compress files and databases) was causing the issue.</p>
<p>So after it happened the next day (a few times) I decided to do some investigation.</p>
<h3>The Culprit &#8211; Comment Relish</h3>
<p><a href="http://www.webdevelopment2.com/go/hostmonster/"  class="alinks_links" onclick="return alinks_click(this);" title="Hostmonster"  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">HostMonster</a> does a good job of providing some helpful information that you can use to figure out these issues. I went to the directory: <em>cpu_exceeded_logs</em> and sure enough there was a file with today&#8217;s (and yesterday&#8217;s) date in there. I opened it up and so a ton of referrences to comments on a <a href="http://www.wordpress.org"  class="alinks_links" onclick="return alinks_click(this);" title=""  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">Wordpress</a> Blog:</p>
<blockquote><p>
/ramdisk/bin/php5 /home1/user/public_html/domain.com/wp-comments-post.php
</p></blockquote>
<p>That narrowed things down a little bit. The other helpful directory was <em>mysql_slow_queries</em>. Here I found the following query over and over again:</p>
<pre class="brush: sql;">
SELECT c.*, p.*
  FROM wp__comments c
  INNER JOIN wp__posts p ON p.ID = c.comment_post_ID
  LEFT JOIN wp__cr_emailed e ON e.email = c.comment_author_email
  WHERE e.email IS NULL AND c.comment_approved = '1'
</pre>
<p>It didn&#8217;t take too long to figure out that <em>cr</em> stood for <a href="http://www.justinshattuck.com/comment-relish/">Comment Relish</a>. </p>
<p>A little bit of Googling showed me that in some circles, it&#8217;s <a href="http://www.siteguide.us/2007/07/05/3-reasons-why-comment-relish-is-not-good-for-your-blog/">not a very well liked plugin</a>. Some more searching revealed something a bit <a href="http://www.chrisg.com/when-good-plugins-go-bad-comment-relish-considered-dangerous/">more technically helpful</a>.</p>
<p>So there you have it, disable Comment Relish and all is well with the world again.</p>
<h3>Best of Both Worlds &#8211; Proper Fix Instead of Disabling</h3>
<p>Now partly because this was <strong>a blog I was hosting for someone else</strong> and partly because <strong>I&#8217;m the type of person who&#8217;s never satisfied unless they have the answer to everything</strong>, I found a middle ground: Good server performance while still maintaining the functionality of the plugin.</p>
<p>So the main problem isn&#8217;t the query. Well maybe it is, but I didn&#8217;t want to go redesign the entire plugin. Wordpress performs tons of these queries all the time and they don&#8217;t seem to cause issues. The problem is with table indexes (or lack thereof).</p>
<p>Pulling up PHPMyAdmin showed me that there&#8217;s <strong>no indexes on cr_emailed.email or comments.comment_author_email</strong>; both of which are used above. So that&#8217;s a simple fix right? Actually, no. Adding an index to the comments table was simple enough; although some people rather not mess with the Wordpress core tables.</p>
<p>The problem is with the table used for Comment Relish: you <strong>can&#8217;t apply an index on wp__cr_emailed.email because it&#8217;s tinytext</strong>. Go ahead, try and there&#8217;s an error. I guess the author decided on tinytext because it would be smaller than varchar? Not sure if there&#8217;s a way arond this or not, but I really wasn&#8217;t in the mood to investigate. I&#8217;ve used varchar all my life and it&#8217;s served me well. So we simply get rid of it, then add the index:</p>
<pre class="brush: sql;">
ALTER TABLE `cr_emailed` CHANGE `email` `email` varchar(255);
ALTER TABLE wp_cr_emailed ADD INDEX ( email )
</pre>
<p>And voila!</p>
<h3>Do I Need This With The New Version?</h3>
<p><strong>The short answer is yes!</strong><br />
Since this problem has arisen there has been a new version of the plugin put out the combats this problem; there are still many problems with this however: </p>
<ol>
<li>Since this isn&#8217;t part of the official Wordpress Plugins, you don&#8217;t get the upgrade notice. So I didn&#8217;t even know I was running an old version.</li>
<li>The author has decided to use to very same 1.0 version number with the new version, so you can&#8217;t even tell if you running the old version without examining the code.</li>
<li>Although there has been a database fix that uses varchar instead of tinytext and applies an index, this fix is only for <em>creation</em> of a new database. So you won&#8217;t get the benefit is your table has already been created with the old code.</li>
</ol>
<p>Hope this helps you folks who are as curious as I was or those who&#8217;ve disabled this plugin because of its issues but secretly miss what it does.</p>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/wordpress-25-upload-image-error-finally-fixed/" rel="bookmark" title="July 28, 2008">Wordpress 2.5+ Upload Image Error &#8211; Finally Fixed!</a></li>

<li><a href="http://www.webdevelopment2.com/yay-wordpress-25-perfect/" rel="bookmark" title="April 6, 2008">Yay! Wordpress 2.5. Almost Perfect</a></li>

<li><a href="http://www.webdevelopment2.com/wordpress-25-vista-blog-platforms/" rel="bookmark" title="April 14, 2008">Wordpress 2.5 &#8211; The Vista of Blog Platforms</a></li>

<li><a href="http://www.webdevelopment2.com/moving-wordpress-to-a-different-domain/" rel="bookmark" title="April 2, 2007">Moving Wordpress To A Different Domain</a></li>

<li><a href="http://www.webdevelopment2.com/reward-regular-readers-skip-ads/" rel="bookmark" title="September 20, 2007">Reward Your Regular Readers &#8211; Skip The Ads</a></li>
</ul><!-- Similar Posts took 3.016 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/wordpress-comment-relish-and-high-cpu-usage/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Finally We&#8217;ve Moved To DreamHost &#8211; Quality Web Hosting</title>
		<link>http://www.webdevelopment2.com/finally-moved-dreamhost-quality-web-hosting/</link>
		<comments>http://www.webdevelopment2.com/finally-moved-dreamhost-quality-web-hosting/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 12:02:19 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.webdevelopment2.com/finally-moved-dreamhost-quality-web-hosting/</guid>
		<description><![CDATA[This has been a long time in the making, but I&#8217;ve finally decided to move this blog (and a few other things I&#8217;m hosting) to DreamHost. Why DreamHost? Because they offer a great package, what can I say? I&#8217;ve been hosting at 1and1 for over a year, but after a few bad experiences, I&#8217;ve decided [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.webdevelopment2.com/wp-content/uploads/moving.jpg" alt="Moving" class="imageframe imgalignleft" height="171" width="200" />This has been a long time in the making, but I&#8217;ve finally decided to move this blog (and a few other things I&#8217;m hosting) to <a href="http://www.webdevelopment2.com/go/dreamhost/"  class="alinks_links" onclick="return alinks_click(this);" title="DreamHost - Quality Web Hosting"  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">DreamHost</a>. Why DreamHost? Because they offer a great package, what can I say? I&#8217;ve been hosting at <a href="http://www.WebDevelopment2.com/go/1and1"  class="alinks_links" onclick="return alinks_click(this);" title="1and1 Hosting"  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">1and1</a> for over a year, but after a few <a href="http://www.lifeofbaz.com/technology/does-1and1-suck/">bad experiences</a>, I&#8217;ve decided to move to something a bit more robust.</p>
<p>Although it&#8217;s not really fair to compare DreamHost to 1and1 Hosting, let&#8217;s give it a shot:</p>
<h3>Cron Jobs</h3>
<p>I use these for my MySQL backups. Download a nice PHP script and set up a cron job to run said script at a scheduled time. Without cron jobs, I have to go through the hoopla of running some PsuedoCron stuff, which basically runs a script if a user visits your website after the script has been scheduled to run. This is fine for small scripts, but didn&#8217;t really fly much for my database backups, since the poor sap that happened to trigger the script would have to sit and wait for it&#8217;s completion, as it would appear to be something the website was loading.</p>
<h3>Ruby On Rails</h3>
<p>After working so much with CakePHP, I can&#8217;t help but be curious. I really doubt that I&#8217;m going to jump ship, but it&#8217;s good to have an environment to play with.</p>
<h3>Space and Bandwidth</h3>
<p>You got 500 GB of disk space to play with, and 5.0 TB of monthly bandwidth. This is enough to host at least a few good sized sites under one account. The unlimited Domains makes this a breeze.</p>
<h3>FTP, MySQL, Customization</h3>
<p>One of the things I <strong>hated</strong> about 1and1 was their auto generated FTP users, database names, and database usernames; e.g. <em>u23029490</em> (come random set of numbers). Always having to look up something is never good. And of course with the base account, you could never add any users.</p>
<p>The also limited the number (go figure) and size of databases that you could have. 100 MB was the limit for size and I believe four (4) the number limit. This forced you to dump most of your work into one database and also use a lot of different prefixes. With applications such as <a href="http://www.wordpress.org"  class="alinks_links" onclick="return alinks_click(this);" title=""  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">Wordpress</a>, CakePHP, <a href="http://www.zenphoto.org">ZenPhoto</a>, etc. make things easier, because they allow a prefix configuration, but God help you if you were trying to import some legacy PHP application that you&#8217;d written back in the day.</p>
<h3>Shell Access; Lovely, Beautiful Shell Access</h3>
<p>Although I don&#8217;t really use it much, there are some times where it just comes it so handy. And with the advent of <a href="http://www.thinkingphp.org/2006/10/16/command-line-fun-in-cakephp-12/">CakePHP&#8217;s Bake</a> feature, it&#8217;s become damn near and essential tool. Prior to DreamHost I would have to Bake on my Windows environment, then upload to where I was really hosting.</p>
<h3>Speed and Reliablity</h3>
<p>Reliability, I&#8217;ve been told about, so I cannot speak on this for a year. Speed, I can attest to. DreamHost is way peppier than 1and1.</p>
<h3>Final Thoughts</h3>
<p>I should have done it sooner. If you&#8217;re still trying to make up your mind; if you&#8217;re still contemplating; let me help you out a big. Stop thinking, <a href="http://www.dreamhost.com/r.cgi?335654">click here</a>, and sign up for <a href="http://www.dreamhost.com/r.cgi?335654">DreamHost</a>.</p>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/automate-mysql-database-backup-webcron-cron-jobs-problem-part-2/" rel="bookmark" title="October 28, 2007">Automate MySQL Database Backup With WebCron &#8211; No Cron Jobs? No Problem &#8211; Part 2</a></li>

<li><a href="http://www.webdevelopment2.com/importing-large-mysql-databases-when-phpmyadmin-lets-you-down-get-bigdump/" rel="bookmark" title="April 1, 2007">Importing Large MySQL Databases &#8211; When phpMyAdmin Let&#8217;s You Down &#8211; Get BigDump</a></li>

<li><a href="http://www.webdevelopment2.com/gitting-started-git/" rel="bookmark" title="May 9, 2009">Gitting Started with Git &#8211; Quick and Dirty</a></li>

<li><a href="http://www.webdevelopment2.com/cakephp-bake-baking-models-controllers-views-cakephp-12/" rel="bookmark" title="November 21, 2007">CakePHP Bake &#8211; Baking Models, Controllers and Views the CakePHP 1.2 Way</a></li>

<li><a href="http://www.webdevelopment2.com/moving-wordpress-to-a-different-domain/" rel="bookmark" title="April 2, 2007">Moving Wordpress To A Different Domain</a></li>
</ul><!-- Similar Posts took 2.916 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/finally-moved-dreamhost-quality-web-hosting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Development 2.0 Carnival &#8211; September 8, 2007</title>
		<link>http://www.webdevelopment2.com/web-development-20-carnival-september-8-2007/</link>
		<comments>http://www.webdevelopment2.com/web-development-20-carnival-september-8-2007/#comments</comments>
		<pubDate>Sat, 08 Sep 2007 13:50:27 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[Carnival]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.WebDevelopment2.com/web-development-20-carnival-september-8-2007/</guid>
		<description><![CDATA[I am proud to present the first edition of Carnival of Web Development 2.0. This is my first time hosting one of these things, so enjoy:
General


 Doug Boude presents DEMYSTIFYING JSON posted at Doug Boude (rhymes with &#8216;loud&#8217;) 
 sylv3rblade presents Stages of Software Development posted at Atma Xplorer, saying, &#8220;My take on the process [...]]]></description>
			<content:encoded><![CDATA[<p>I am proud to present the first edition of <strong>Carnival of Web Development 2.0</strong>. This is my first time hosting one of these things, so enjoy:</p>
<h3>General</h3>
<p><!-- Carnival Submission --></p>
<ol>
<li> <strong>Doug Boude</strong> presents <a href="http://www.dougboude.com/blog/1/2007/07/DEMYSTIFYING-JSON-for-myself.cfm">DEMYSTIFYING JSON</a> posted at <a href="http://www.dougboude.com/blog">Doug Boude (rhymes with &#8216;loud&#8217;) </a></li>
<li> <strong>sylv3rblade</strong> presents <a href="http://atmaxplorer.com/stages-of-software-development/">Stages of Software Development</a> posted at <a href="http://atmaxplorer.com/">Atma Xplorer</a>, saying, &#8220;My take on the process of software development&#8221;</li>
<li> <strong>prakash</strong> presents <a href="http://jayaprakashkv.blogspot.com/2007/06/identify-color-code-of-image.html">A2Z  Informative-Technology, Software, Internet, Tips, Ideas</a> posted at <a href="http://jayaprakashkv.blogspot.com/">A2Z  Informative</a>, saying, &#8220;Identifying the color code of an image on the screen is not an easy task. Usually it involves a multi step process and is time consuming. But this tool is able to find out HTML, RGB or HEX color of any pixel on the screen with just a single mouse click. This little tool is very useful for webmasters.&#8221;</li>
<li> <strong>Thorsten Ott</strong> presents <a href="http://www.sourcebench.com/category/reviews/the-ultimate-list-of-freelancing-job-sites/">Sourcebench &#8211; freelancer sites reviews</a> posted at <a href="http://www.sourcebench.com/">Sourcebench &#8211; building a better web</a>.</li>
<li> <strong>Scott H</strong> presents <a href="http://www.collegeandfinance.com/15-web-sites-college-students-cant-live-without/">15 Web Sites College Students CanÃ¢â‚¬â„¢t Live Without</a> posted at <a href="http://www.collegeandfinance.com/">College and Finance</a>, saying, &#8220;Not specifically about design, but has a great list of web sites students love, including StumbleUpon which, in terms of developing a web site, can be quite useful.&#8221;</li>
<li> <strong>Raj Sheelvant</strong> presents <a href="http://itstrategyblog.com/attention-hr-young-workers-demand-web-20/">Attention HR: Young workers demand Web 2.0</a> posted at <a href="http://itstrategyblog.com/">IT Strategy</a>, saying, &#8220;Why Web 2.0 infrastructure in corporations important to attract young talent&#8221;</li>
<li> <strong>aquariphile</strong> presents <a href="http://www.ajaxbestiary.com/2007/08/13/choosing-between-yui-css-blueprint/">Choosing Between YUI CSS &amp; Blueprint Ã‚Â» By Don Albrecht Ã‚Â» article Ã‚Â» Ajax Bestiary</a> posted at <a href="http://www.ajaxbestiary.com/">Ajax Bestiary</a>, saying, &#8220;With all the recent hype surrounding the Blueprint CSS framework, The powerful YUI framework has been lost in the noise. Both frameworks are powerful, but, which framework is right for your project?&#8221;</li>
<li> <strong>edithyeung</strong> presents <a href="http://www.edithyeung.com/2007/09/04/want-more-web-traffic/">Want More Traffic? Find Out Here?</a> posted at <a href="http://www.edithyeung.com/">Edith Yeung.Com:  Dream.  Think.  Act.</a>.</li>
<li> <strong>Amanda Harris</strong> presents <a href="http://www.ibakesaleblog.com/?p=10">Creating A Website For Your Charity</a> posted at <a href="http://www.ibakesaleblog.com/">iBakeSale Blog</a>.</li>
</ol>
<p><!-- Carnival Submission -->   <!-- Carnival Submission -->   <!-- Carnival Submission -->   <!-- Carnival Submission -->   <!-- Carnival Submission -->   <!-- Carnival Submission -->   <!-- Carnival Submission -->   <!-- Carnival Submission -->   <!-- Carnival Submission --></p>
<h3>Javascript</h3>
<p><!-- Carnival Submission --></p>
<ol>
<li> <strong>Doug Boude</strong> presents <a href="http://www.dougboude.com/blog/1/2006/09/ClientSide-Interactivity-without-Ajax.cfm">Client-Side Interactivity without Ajax</a> posted at <a href="http://www.dougboude.com/blog">Doug Boude (rhymes with &#8216;loud&#8217;)</a>, saying, &#8220;this post has a Coldfusion approach to an Ajax alternative&#8230;&#8221;</li>
</ol>
<p><!-- EDIT THIS: the conclusion begins with this paragraph: -->That concludes this edition.  Submit your blog article to the next edition of <strong>Web Development 2.0</strong> using our <a href="http://blogcarnival.com/bc/submit_2377.html" target="_blank" title="Submit an entry to Ã¢â‚¬Å“web development 2.0Ã¢â‚¬Â">carnival submission form</a>. Past posts and future hosts can be found on our <a href="http://blogcarnival.com/bc/cprof_2377.html" target="_blank" title="Blog Carnival index for Ã¢â‚¬Å“web development 2.0Ã¢â‚¬Â"> blog carnival index page</a>.</p>
<p><small>Technorati tags:  <!-- add your technorati tags here! --> <a href="http://technorati.com/tag/web+development+2.0" rel="tag">Web Development 2.0</a>, <a href="http://technorati.com/tag/blog+carnival" rel="tag">blog carnival</a>.</small></p>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/web-development-20-carnival-september-24-2007/" rel="bookmark" title="September 24, 2007">Web Development 2.0 Carnival &#8211; September 24, 2007</a></li>

<li><a href="http://www.webdevelopment2.com/web-development-20-carnival/" rel="bookmark" title="November 21, 2008">Web Development 2.0 Carnival &#8211; November 21, 2008</a></li>

<li><a href="http://www.webdevelopment2.com/web-development-20-carnival-12-26-200/" rel="bookmark" title="January 10, 2009">Web Development 2.0 Carnival &#8211; December 26, 2008</a></li>

<li><a href="http://www.webdevelopment2.com/websites-on-wide-screen-how-the-other-half-lives/" rel="bookmark" title="March 28, 2007">Websites on Wide Screen &#8211; How The Other Half Lives</a></li>

<li><a href="http://www.webdevelopment2.com/another-what-is-ajax-introduction/" rel="bookmark" title="December 31, 2005">Another &#8220;What Is Ajax&#8221; Introduction</a></li>
</ul><!-- Similar Posts took 3.162 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/web-development-20-carnival-september-8-2007/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>XAMPP Lite on USB Disk &#8211; Benchmark PHP and MySQL by Slowing Down Your Server</title>
		<link>http://www.webdevelopment2.com/xampp-lite-on-usb-disk-benchmark-php-and-mysql-by-slowing-down-your-server/</link>
		<comments>http://www.webdevelopment2.com/xampp-lite-on-usb-disk-benchmark-php-and-mysql-by-slowing-down-your-server/#comments</comments>
		<pubDate>Wed, 29 Aug 2007 14:00:04 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.WebDevelopment2.com/xampp-lite-on-usb-disk-benchmark-php-and-mysql-by-slowing-down-your-server/</guid>
		<description><![CDATA[To develop PHP and MySQL on a Windows machine, I usually use WAMP. I had tried XAMPP before, but I found that it was a bit bloated, with the OpenSSL and FTP Server, etc. So WAMP it was. But lately, I decided to give XAMPP another try and I like what I&#8217;ve got so far.
For [...]]]></description>
			<content:encoded><![CDATA[<p>To develop PHP and MySQL on a Windows machine, I usually use <a href="http://www.wampserver.com/en/">WAMP</a>. I had tried <a href="http://www.apachefriends.org/en/xampp.html">XAMPP</a> before, but I found that it was a bit bloated, with the OpenSSL and FTP Server, etc. So WAMP it was. But lately, I decided to give XAMPP another try and I like what I&#8217;ve got so far.</p>
<p><a href="http://www.apachefriends.org/en/xampp.html" title="XAMPP Lite"><img src="http://www.webdevelopment2.com/wp-content/uploads/xampp-lite.gif" title="XAMPP is an easy to install Apache distribution containing MySQL, PHP and Perl. XAMPP is really very easy to install and to use - just download, extract and start." alt="XAMPP is an easy to install Apache distribution containing MySQL, PHP and Perl. XAMPP is really very easy to install and to use - just download, extract and start." align="left" border="0" /></a>For the past three weekends, I&#8217;ve been away from my personal computer. The only life line I&#8217;ve had is my stock of <a href="http://portableapps.com/apps">Portable Apps</a> on my 512MB USB disk. So I&#8217;ve been neglecting a few projects lately. But all of this has changed as of Friday. I&#8217;ve discovered XAMPP Lite. It&#8217;s just what it says it is, a Lite version of XAMPP. The beauty of this is that it can also run from a USB disk. There&#8217;s no install required. So partnered with XAMPP Lite, <a href="http://portableapps.com/apps/internet/firefox_portable">Mozilla Firefox, Portable Edition</a>, <a href="http://portableapps.com/apps/development/notepadpp_portable">NotePad++ Portable</a>, and, <a href="http://portableapps.com/apps/internet/filezilla_portable">FileZilla Portable</a> I can take my development on the road to anywhere I can stick in my USB disk.</p>
<h3>Added Bonus</h3>
<p>I don&#8217;t have to tell you that running an Apache web server, PHP 5.0 and MySQL from a USB disk is not a great idea for a production environment. Disk access to the USB disk is much slower than a hard drive. This has an unexpected benefit that I&#8217;ve noticed with CakePHP. Queries that used to take 3 milliseconds and 4 milliseconds now take 300 milliseconds and 400 milliseconds.</p>
<p>So why am I excited about stuff running so slowly? When you have a table with 20 fields, but only regularly use five (5), CakePHP makes it so easy write <em>$this-&gt;paginate() </em>or <em>$this-&gt;findAll(); </em>to retrieve results that we sometimes forget the all 20 fields are being returned every single time. You see the debug say that &#8220;<em>3 queries took 10 ms</em>&#8220;<em>.</em> You don&#8217;t really think much of it, but when the debug window says &#8220;<em>3 queries took 500 ms</em>&#8220;, you realize that you need to do some work. It makes you think about things that normalizing databases, and caching models, controllers, and views.</p>
<h3>Installing XAMPP</h3>
<p>There&#8217;s not really much to it. You <a href="http://www.apachefriends.org/en/xampp-windows.html#646">download XAMMP Lite</a>, dump it in a folder. That&#8217;s the first part. Now the configuration is where you have to be careful. There are two possible configurations:</p>
<ol>
<li>Root Directory Installation
<ul>
<li>Drop the XAMPPlite folder to the root of the USB Disk.</li>
<li>Modify your Apache and PHP configuration files as you normally would.</li>
</ul>
</li>
<li>Sub Directory Installation
<ul>
<li>Drop the XAMPPlite folder in a folder of your choice.</li>
<li>Run <em>setup_xampp.bat</em>. This will go through every configuration file and set the path based on the drive letter and installation directory. The problem with this installation is that you&#8217;ll have to do this every time you move to a system with a different drive setup (eg. At home my USB is G:, at work it&#8217;s F:)</li>
<li>Modify your Apache and PHP configuration files as you normally would.</li>
</ul>
</li>
</ol>
<p>Everything else you do is as normal. Happy developing. At 130 MB you can&#8217;t go wrong. At 130 MB a pop, you can&#8217;t go wrong.</p>
<p>Source: <a href="http://www.apachefriends.org/en/xampp-windows.html646">XAMPP 1.6.3a</a> [Apache Friends]</p>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/quick-multiple-local-roots-wamp/" rel="bookmark" title="November 16, 2007">Here&#8217;s a Quick Way to Use Multiple Local Roots With WAMP</a></li>

<li><a href="http://www.webdevelopment2.com/fast-cgi-installation/" rel="bookmark" title="November 18, 2005">Fast CGI Installation</a></li>

<li><a href="http://www.webdevelopment2.com/cakephp-installation-guide-just-add-water-and-2-medium-eggs/" rel="bookmark" title="August 27, 2007">CakePHP Installation Guide: Just Add Water and 2 Medium Eggs</a></li>

<li><a href="http://www.webdevelopment2.com/cross-browser-compatible-designs/" rel="bookmark" title="December 26, 2007">Browsers Have Multiple Personalities, Your Designs Should Too</a></li>

<li><a href="http://www.webdevelopment2.com/installing-a-lamp-web-server-system-with-fedora-core-6/" rel="bookmark" title="October 31, 2006">Installing A LAMP Web Server System With Fedora Core 6</a></li>
</ul><!-- Similar Posts took 3.007 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/xampp-lite-on-usb-disk-benchmark-php-and-mysql-by-slowing-down-your-server/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CakePHP Installation Guide: Just Add Water and 2 Medium Eggs</title>
		<link>http://www.webdevelopment2.com/cakephp-installation-guide-just-add-water-and-2-medium-eggs/</link>
		<comments>http://www.webdevelopment2.com/cakephp-installation-guide-just-add-water-and-2-medium-eggs/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 15:04:20 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.WebDevelopment2.com/cakephp-installation-guide-just-add-water-and-2-medium-eggs/</guid>
		<description><![CDATA[Introduction
As you guys know, I&#8217;ve recently discovered the marvels of rapid web development with CakePHP. This shall be the first in a long serious of CakePHP related material coming from me since I&#8217;ve now veered off on a slightly different focus.
After a short analysis, I&#8217;ve picked CakePHP as my framework of choice. I&#8217;ve been struggling [...]]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>
<p>As you guys know, I&#8217;ve recently discovered the marvels of rapid web development with CakePHP. This shall be the first in a long serious of CakePHP related material coming from me since I&#8217;ve now veered off on a <a title="New Domain and New Focus: Web Development 2.0, CakePHP" href="http://www.webdevelopment2.com/new-domain-webdevelopment2com-new-focus-frameworks-cakephp-javascript-web-20/">slightly different focus</a>.</p>
<p>After a <a href="http://www.webdevelopment2.com/enter-cakephp-rapid-development-framework-no-really/">short analysis</a>, I&#8217;ve picked <a href="http://www.cakephp.org/">CakePHP</a> as my framework of choice. I&#8217;ve been struggling through it for a few months now, but it&#8217;s by far better than the alternative of coding by hand (Yeah, I know I&#8217;m lazy). I&#8217;ve struggled through it so that you don&#8217;t have to.</p>
<h3>Downloading &#8211; Stable or Alpha Version</h3>
<p>Step one is <a href="http://cakeforge.org/projects/cakephp/">downloading CakePHP</a>. The first problem that you&#8217;ll run into is that there are two (2) versions to pick from: <strong>Stable 1.1 and Alpha 1.2</strong>. When I first started out, I needed to use CakePHP for a project instantly, so I decided to with the stable version because the word <em>alpha</em> scared me a little bit. I mean, it&#8217;s not even beta yet.</p>
<p>That was my big mistake. A lot of seasoned CakePHP developers will tell you that the alpha version is ready to go and can (and has been) used in production environments. There is of course the slim chance that some key function or component might change slightly, and you application may break on an upgrade for the alpha version, but that&#8217;s a chance that I&#8217;m willing to take. The <strong>alpha version has a lot more in place (emailing templates, authentication, pagination of results</strong>, etc), that it just makes everything worthwhile. Also, a lot of the newer tutorials you&#8217;ll find make specific reference to version 1.2. And let&#8217;s face it, version 1.2 is just way cooler.</p>
<p>If you&#8217;re just starting out, <strong>I still recommend the alpha version 1.2</strong>, because by the time you become well versed and need to crank out a web application or site version 1.2 may well be stable.</p>
<h3>Upload to Server</h3>
<p>One of the key things I was looking for with a PHP framework is compatibility with PHP 4.0. Some of my clients are on older servers and it&#8217;s harder to get someone who is already paying for a host to switch just because you said so. Here are the server requirements from the <a href="http://manual.cakephp.org/">CakePHP manual</a>:</p>
<blockquote>
<ul>
<li>An HTTP server (like Apache) with the following enabled:             sessions, mod_rewrite (not absolutely necessary but             preferred)</li>
<li>PHP 4.3.2 or greater. Yes, CakePHP works great in either PHP             4 or 5.</li>
<li>A database engine (right now, there is support for MySQL,             PostgreSQL and a wrapper for ADODB).</li>
</ul>
</blockquote>
<p>The manual recommends various methods of installation for development purposes and production environments. These recommendations are all well and good if you have your own server, but some things are simply not configurable with the shared hosts that most of us use these days.</p>
<p>I personally don&#8217;t see a problem with the development setup. The take the CakePHP folder and dump it the the www root of the site (if it&#8217;s the main site of course) or a subdirectory. The one tweak I would make, if your host allows, is to point your www root for that domain to the <em>app/webroot/</em> folder.</p>
<p>These are recommended for security purposes, but I haven&#8217;t seen a problem with any installation that I&#8217;ve had. As a matter of fact, this is one of the few times that I&#8217;ve heard someone recommend this type of setup. Even well established packages like <a href="http://www.wordpress.org"  class="alinks_links" onclick="return alinks_click(this);" title=""  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">Wordpress</a>, <a href="http://www.simplemachines.org/"  class="alinks_links" onclick="return alinks_click(this);" title=""  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">SMF</a>, Zen Photo, <a href="http://www.phpbb.com"  class="alinks_links" onclick="return alinks_click(this);" title=""  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">phpBB</a>, etc just need you to dump files in a folder.</p>
<p>There is something to be said about the recommended setup though. If you happen to run multiple installations of CakePHP and have different applications, in theory, all of them can share the same CakePHP base code and you&#8217;d have different application folders. But for right now, this is just a <em>get up and get started</em> guide. The only thing that you need to ensure is that the <em>app/tmp</em> directory and all subdirectories are writable.</p>
<h3>Configuration</h3>
<p>Everything you&#8217;ll need is in the app/config folder. The file <strong><em>core.php</em></strong> houses, well, core configuration settings. Here are a few of the main ones:</p>
<ol>
<li>
<pre class="brush: php;">define('DEBUG', 3);</pre>
<p>set&#8217;s the debug level. Use 0 for production</li>
<li>
<pre class="brush: php;">define('CAKE_ADMIN', 'admin');</pre>
<p>You&#8217;re almost always going to need this, so you might as well uncomment it now. This sets up admin routing so you can have urls like site.com/admin/events/</li>
<li>
<pre class="brush: php;">define('CAKE_SESSION_STRING', 'DYhG93guVoUubWwiR2G0FgaC9mi');</pre>
<p>A random string used for CakePHP sessions. You need to change this into something unique  or you might potentially leave holes in your app</li>
</ol>
<p>Then we have the <strong><em>database.php</em></strong> file. Modify the following to suite your database configuration:</p>
<pre class="brush: php;">var $default = array(
'driver' =&gt; 'mysql',
'persistent' =&gt; false,
'host' =&gt; 'localhost',
'login' =&gt; 'username',
'password' =&gt; 'passowrd',
'database' =&gt; 'database name',
'prefix' =&gt; ''
);</pre>
<p>I personally have a host that limits the number of MySQL databases that you&#8217;re allowed, so I&#8217;m forced to dump everything into one database. This makes the <em>prefix</em> option invaluable to me.</p>
<p>Lastly we have <strong><em>routes.php</em></strong>. This file is used to for URL routing. Consider the following:</p>
<pre class="brush: php;">Router::connect('/', array('controller' =&amp;gt; 'contents', 'action' =&amp;gt; 'view', 'home'));</pre>
<p>This is going to route the homepage site.com/ to my <em>contents</em> controller and run the <em>view</em> action and pass to this the parameter <em>home. </em>This is the same as going to: site.com/contents/view/home/. We can also do some other marvelous things with routing, but I&#8217;ll save those for later.</p>
<p>Depending on what your setup is and where you host, you might have to make modifications to the .htaccess file. I haven&#8217;t narrowed down  an explanation yet, but on various shared hosts, adding &#8220;<em>RewriteBase /</em>&#8221; solves a lot of problems, just keep that in mind.</p>
<p>Read more on the <a title="CakePHP configurations" href="http://manual.cakephp.org/chapter/configuration">CakePHP manual</a>.</p>
<h3>Launch</h3>
<p>Launch CakePHP and make sure your start up screen comes up. Then fire away are your Models, Views and Controllers.</p>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/the-secret-of-cakephp-advanced-routing-even-better-urls/" rel="bookmark" title="September 6, 2007">The Secret of CakePHP Advanced Routing &#8211; Even Better URLs</a></li>

<li><a href="http://www.webdevelopment2.com/quick-multiple-local-roots-wamp/" rel="bookmark" title="November 16, 2007">Here&#8217;s a Quick Way to Use Multiple Local Roots With WAMP</a></li>

<li><a href="http://www.webdevelopment2.com/xampp-lite-on-usb-disk-benchmark-php-and-mysql-by-slowing-down-your-server/" rel="bookmark" title="August 29, 2007">XAMPP Lite on USB Disk &#8211; Benchmark PHP and MySQL by Slowing Down Your Server</a></li>

<li><a href="http://www.webdevelopment2.com/why-my-wordpress-27-install-failed/" rel="bookmark" title="December 11, 2008">Why My Wordpress 2.7 Install &#8220;Failed&#8221;</a></li>

<li><a href="http://www.webdevelopment2.com/cakephp-bake-baking-models-controllers-views-cakephp-12/" rel="bookmark" title="November 21, 2007">CakePHP Bake &#8211; Baking Models, Controllers and Views the CakePHP 1.2 Way</a></li>
</ul><!-- Similar Posts took 3.202 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/cakephp-installation-guide-just-add-water-and-2-medium-eggs/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>New Domain: WebDevelopment2.com, New Focus: Frameworks, CakePHP, Javascript, Web 2.0</title>
		<link>http://www.webdevelopment2.com/new-domain-webdevelopment2com-new-focus-frameworks-cakephp-javascript-web-20/</link>
		<comments>http://www.webdevelopment2.com/new-domain-webdevelopment2com-new-focus-frameworks-cakephp-javascript-web-20/#comments</comments>
		<pubDate>Wed, 22 Aug 2007 15:00:40 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.webdevelopment2.com/blog/new-domain-webdevelopment2com-new-focus-frameworks-cakephp-javascript-web-20.htm</guid>
		<description><![CDATA[New Domain
I has finally occurred to me that I should have gotten my own domain name a long time ago. Really, I don&#8217;t know what I was waiting for, but it was about time. Since my focus is Web 2.0, WebDevelopment2.com was an obvious choice. I&#8217;ve already written about moving wordpress to a different domain, [...]]]></description>
			<content:encoded><![CDATA[<h3>New Domain</h3>
<p>I has finally occurred to me that I should have gotten my own domain name a long time ago. Really, I don&#8217;t know what I was waiting for, but it was about time. Since my focus is Web 2.0, WebDevelopment2.com was an obvious choice. I&#8217;ve already written about moving <a href="http://www.wordpress.org"  class="alinks_links" onclick="return alinks_click(this);" title=""  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">wordpress</a> to a different domain, so moving to this domain was walk in the park. I loaded up PhpMyAdmin and exported my database. Pulled up Notepad++ and did a search and replace for my old URL to the new one. Saved the file, zipped it back up, and uploaded it to the server. Since I usually deal with large databases, I didn&#8217;t even bother trying to load into PhpMyAdmin. Bigdump is now my favorite database importer for MySQL.</p>
<p>Finally, I loaded up the  .htaccess file on the old domain name and slapped in a RewriteRule with a 301 redirect to WebDevelopment2.com. And Viola,Ã‚  here we haveÃ‚  WordpressÃ‚  blog perfectly redirected, without losing a single inbound link. Sure, the Page Rank on the domain name is 0 (for now), but with a name like Web Development, it won&#8217;t be for long.</p>
<h3> New Focus</h3>
<p>I must admit, that when I started this blog I was only vaguely interested in web development and web design. My interests usually hop about like that. I started this blog when AJAX hit the scene. It was the next hottest thing and the birth of Web 2.0. However, coding AJAX, although not difficult, was tedious. And we all know, I don&#8217;t like tedium.</p>
<p>Lately, things have gotten a bit more serious, with respect to my interests in web development. But, I&#8217;m no less lazy. As a result, my focus (and hence the focus of this blog) is going to shift slightly. Many of you will not notice, but those of you who have been paying attention will see that something has changed. I&#8217;ve come to learn the beauty of web development frameworks, such as CakePHP for PHP (duh), Protoype and <a href="http://www.JQuery.com"  class="alinks_links" onclick="return alinks_click(this);" title=""  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">JQuery</a> for Javascript and AJAX, and even Blueprint for CSS. Don&#8217;t worry, if you haven&#8217;t heard of any of these, you soon will. Being as lazy as I am, the DRY (<strong>D</strong>o not <strong>R</strong>epeat <strong>Y</strong>ourself)Ã‚  principle naturally has you gravitating towards frameworks. If someone else; not just someone else, but an entire team of people, work on product for months and even years, I tend to think that they&#8217;ve done a better job than I ever code.</p>
<p>This is the new focus of my blog and I hope I don&#8217;t lose any of you guys and can bring greater quality and relevance to the things you read here.</p>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/moving-wordpress-to-a-different-domain/" rel="bookmark" title="April 2, 2007">Moving Wordpress To A Different Domain</a></li>

<li><a href="http://www.webdevelopment2.com/choice-web-development-framework-matter/" rel="bookmark" title="December 31, 2007">Your Choice of Web Development Framework Doesn&#8217;t Matter</a></li>

<li><a href="http://www.webdevelopment2.com/wordpress-comment-relish-and-high-cpu-usage/" rel="bookmark" title="December 29, 2008">Comment Relish Plugin + High CPU Usage &#8211; Fixed The Right Way</a></li>

<li><a href="http://www.webdevelopment2.com/understand-bias-means/" rel="bookmark" title="April 16, 2008">Do We Not Understand What Bias Means?</a></li>

<li><a href="http://www.webdevelopment2.com/quick-multiple-local-roots-wamp/" rel="bookmark" title="November 16, 2007">Here&#8217;s a Quick Way to Use Multiple Local Roots With WAMP</a></li>
</ul><!-- Similar Posts took 3.386 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/new-domain-webdevelopment2com-new-focus-frameworks-cakephp-javascript-web-20/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>FeedBurner + Google search cache =  Instant Blog Back Up</title>
		<link>http://www.webdevelopment2.com/feedburner-google-search-cache-instant-blog-back-up/</link>
		<comments>http://www.webdevelopment2.com/feedburner-google-search-cache-instant-blog-back-up/#comments</comments>
		<pubDate>Fri, 11 May 2007 02:55:56 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.webdevelopment2.com/blog/feedburner-google-search-cache-instant-blog-back-up.htm</guid>
		<description><![CDATA[Recently, I&#8217;ve had a problem with a blog that I manage. Due to a server issue, the database was totally screwed up. It was weird. The first thing I noticed is that the posts for the last five (5) or so days were gone. I thought that some absent minded tech had inadvertently restored a [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I&#8217;ve had a problem with a blog that I manage. Due to a server issue, the database was totally screwed up. It was weird. The first thing I noticed is that the posts for the last five (5) or so days were gone. I thought that some absent minded tech had inadvertently restored a previous backup.</p>
<p>Then I noticed that not only posts were gone, but some settings reverted back to their original values. Upon closer inspection, I realized that certain entries in certain tables in the database were deleted. Hmmph, who knows what the problem was. So I figure that it should be a simple enough task to get a backup from my web host. I was wrong about that, very wrong.</p>
<p>Now let me first state that I was also wrong in not maintaining my own database backups. There is absolutely no excuse for this, so I take full blame for my problem. If I had a database back up, I wouldn&#8217;t have been in the situation that I&#8217;m in right now. Anyway, moving on. After over 4 days of moving back and forth with tech support, they were able to supply me with their earliest backup, which was dated the day <strong>after</strong> my database meltdown. So I was screwed, or was I?</p>
<p>There were two tools which saved my butt. First, <a href="http://www.feedburner.com/">FeedBurner</a>. With <a href="http://wwww.feedburner.com/">FeedBurner</a>, I was able to recover the titles and content for all of my posts, but simply going back to my feed. To accomplish this, I used <a href="http://www.google.com/reader/">Google Reader</a>.</p>
<p>I had one other small problem: The links of my posts are not dependent on the date, by default, but on the category. This is where Google&#8217;s caching feature comes in handy. I used the post titles and searched for the web page in Google, by using the <em>site:</em> feature. This did two things: it gave me the link of my post, so I could see what was the main category. I could also view a cached version of the page to see any other relevant information.</p>
<p>So, something to note. FeedBurner + Google search cache =  Instant Blog Back Up.</p>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/how-to-make-payperpost-and-google-adsense-play-nice-mightyadsense-plugin-hack/" rel="bookmark" title="June 24, 2007">How To Make PayPerPost and Google Adsense Play Nice &#8211; MightyAdsense Plugin Hack</a></li>

<li><a href="http://www.webdevelopment2.com/javascript-only-links-why-someone-tell-me-why-please/" rel="bookmark" title="March 31, 2007">JavaScript Only Links, Why? Someone Tell Me Why, Please</a></li>

<li><a href="http://www.webdevelopment2.com/automate-mysql-database-backup-webcron-cron-jobs-problem-part-2/" rel="bookmark" title="October 28, 2007">Automate MySQL Database Backup With WebCron &#8211; No Cron Jobs? No Problem &#8211; Part 2</a></li>

<li><a href="http://www.webdevelopment2.com/why-my-wordpress-27-install-failed/" rel="bookmark" title="December 11, 2008">Why My Wordpress 2.7 Install &#8220;Failed&#8221;</a></li>

<li><a href="http://www.webdevelopment2.com/bloggerwave-get-paid-to-blog/" rel="bookmark" title="July 4, 2007">BloggerWave &#8211; Get Paid To Blog</a></li>
</ul><!-- Similar Posts took 2.924 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/feedburner-google-search-cache-instant-blog-back-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Moving Wordpress To A Different Domain</title>
		<link>http://www.webdevelopment2.com/moving-wordpress-to-a-different-domain/</link>
		<comments>http://www.webdevelopment2.com/moving-wordpress-to-a-different-domain/#comments</comments>
		<pubDate>Mon, 02 Apr 2007 14:30:11 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.webdevelopment2.com/2007/04/02/moving-wordpress-to-a-different-domain.htm</guid>
		<description><![CDATA[No, I&#8217;m not moving, not yet anyway. But Lava is. She scored a domain name which describes her blog so perfectly, that she couldn&#8217;t help but nab it up: HowISaveMoney.net. Now what are the odds that this domain would still be lying around?
Lava finally made the big step and &#8220;moved into her own place&#8220;. Moving [...]]]></description>
			<content:encoded><![CDATA[<p>No, I&#8217;m not moving, not yet anyway. But <a href="http://www.HowISaveMoney.net">Lava </a>is. She scored a domain name which describes her blog so perfectly, that she couldn&#8217;t help but nab it up: <a href="http://www.HowISaveMoney.net/" title="How I Save Money"><strong>HowISaveMoney.net</strong></a>. Now what are the odds that this domain would still be lying around?</p>
<p><a href="http://www.HowISaveMoney.net">Lava</a> finally made the big step and &#8220;<a href="http://www.howisavemoney.net/2007/04/01/im-getting-my-own-place/">moved into her own place</a>&#8220;. Moving domains is always such a hassle, but there are a few things that make the process a little bit easier. I was the Administrator during this move and I must say it was a little bit involved, but I think I got it done.</p>
<h4>The Domain</h4>
<p>The domain was purchase at <a href="http://www.1and1.com">1and1.com</a>. Why not <a href="http://www.networksolutions.com" title="Web Hosting, web site design and domains from Network Solutions">NetSolutions</a>, <a href="http://www.yahoo.com">Yahoo</a>, <a href="http://www.GoDaddy.com">GoDaddy</a>? Because they all have great promotional deals but then it&#8217;s upward of $8 to renew every year. <a href="http://www.WebDevelopment2.com/go/1and1"  class="alinks_links" onclick="return alinks_click(this);" title="1and1 Hosting"  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">1and1</a> has a nice flat rate of $5.99 every year.</p>
<p>The host remained the same, since this particular hosts allows up to 10 domains pointing to it. All the files are simply dumped in a different sub folder. I both love and hate the idea of one consolidated host. It&#8217;s easier to manage: one login one set of administration and maintenance, cheaper than several different hosts. But if one sight goes down, they all go down. If a hacker gets into one, he damn well gets into all of them. The load on all of the sites is still very small and way under the allotted bandwidth limit. Most of them are blogs using <a href="http://www.wordpress.org"  class="alinks_links" onclick="return alinks_click(this);" title=""  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">Wordpress</a> and we all know what a small physical footprint Wordpress leaves behind. If any one site seems to out grow things little family what it turns 18 or something, it will definitely be kicked out of the nest onto it&#8217;s on hosting package.</p>
<h4>Copy Files</h4>
<p>Now this should be the simple part. You copy <strong>everything</strong> into the folder that is going to house your new blog. There are a few minor changes that you might need to make. Depending on your previous setup you may need to edit the <em>.htaccess</em> file and change the <em>RewriteBase </em>option. But I do think that Wordpress will configure it for you when you set up your permalink stuff.</p>
<p>One change that is necessary is editing your <em>wp_config.php</em> file. If you&#8217;re changing databases, you need to make the changes here. If you&#8217;re not changing databases you still need to make the changes to the table prefix. I forgot to mention that we still need to keep the old database active (details to come later).</p>
<h4>Database Migration</h4>
<p>Moving the blog involved a little bit of work. There were two stages during this process. There was installing Wordpress and there was importing old data. Now frankly, I know I made some mistakes, but all in all, things went smoothly.</p>
<p>It&#8217;s funny how moving databases on the same host was actually more difficult. Well, I made it more difficult I guess. My limited shared host has a limit on the number of database you can have. So, to counter that I&#8217;ve decided to use a database to its fullest capacity before I create a new one. So different blogs will share the same database but use different table prefixes for identification. It&#8217;s a nice plan and it does work, but it makes imports a bit difficult.</p>
<p>Now because I still wanted the old blog up (reasons to come later) I couldn&#8217;t simply go into Wordpress and change the URL. Come on now, that would make things too easy. So I exported the database. I could not do a straight import because I needed to change the table names so that there would be two copies of each table with each having a different prefix. For example, I&#8217;m copying all the wp_ tables to wp2_. Sounds easy in theory, but it was a bit involved.</p>
<p>This is the process I ended up going through. I unzipped the exported DB file. Opened the file in a text editor. Now the uncompressed file was about 14 MB. I used Notepad++ to open it, and even with my new hardware it took a while. I then did a search and replace: wp_ to wp2_. This is so that when the script runs it will import into the newly specified table names. After the completed process I would have one bunch of tables wp_ and another wp2_ with the same structure and the same data. If anyone has a smoother method of doing this, I&#8217;m all ears. But I did a quick Google search for <em>Copy MySQL Table</em> and apart from console instructions (No shell access, cheap host) I came up short and it was 1:00 AM and I wanted to get to sleep.</p>
<p>So, the file was edited, I zipped it back up in <a href="http://en.wikipedia.org/wiki/Gzip" title="Gzip - Wikipedia, the free encyclopedia">GZip </a>format with <a href="http://www.7-zip.org/">7Zip </a>and went to the host&#8217;s phpMyAdmin site and tried to do an import. Only to realize they don&#8217;t have the file import field. This was a bit of a pain. I would have had to copy and paste the data into the little form so that it would run the SQL commands. There was one problem with that though, the uncompressed file was 14 MB and there was no way that the browser could handle that without locking up. So importing that large database was another story: <a href="http://www.webdevelopment2.com/php/importing-large-mysql-databases-when-phpmyadmin-lets-you-down-get-bigdump.htm">Importing Large MySQL Databases &#8211; When phpMyAdmin LetÃ¢â‚¬â„¢s You Down &#8211; Get BigDump</a>.</p>
<h4>Database Configuration</h4>
<p>No, we&#8217;re not installing a new version of Wordpress. You can do that later, after everything is settled, if a new version has come out and you want to upgrade. Or do it before, just not now. Now that your database has been imported properly, you need to make one minor change. Funny enough, this isn&#8217;t a change that I&#8217;ve seen documented anywhere else though. But it was necessary for me, who knows maybe I did something wrong. I needed to edit the database <em>wp_options</em> table and edit the <em>option_value</em> for the entries where the <em>option_name</em> is <em>siteurl </em>and <em>host</em>. I needed to change these to match the new domain. The first time I left out this step, every time I tried to do anything it just forwarded me back to the old blog. That&#8217;s it. I tried editing them from within Wordpress, but that didn&#8217;t seem to work either.</p>
<p>After that you&#8217;re good for the new database. You might need to update some links within your posts, but the next step will simply make this a preference. The only problem we have is that your ranking is going to suffer because you&#8217;re starting from scratch. If you have a good relationship with the people that have given you links, you may beg them to update some links or their blogroll. This would help you dramatically in rankings, but again it&#8217;s not a necessity.</p>
<h4>Preserving Old Links</h4>
<p>This is where the magic happens. People hate switching domains because, it&#8217;s a hassle, you lose your rankings for search engines and Technorati, etc, and most of all you lose all your inbound links and your visitors are left in the dark. Well, I can&#8217;t help you with the first parts, but that last part is a breeze.</p>
<p>There are two methods. The easy one and the easier one. The only thing is that your permalink structure needs to be identical, so don&#8217;t try to get fancy and switch them up just because it&#8217;s a new domain name.</p>
<p>For the easy one, we edit the <em>.htaccess</em> file and one line:</p>
<p>RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]</p>
<p>You add this somewhere after the line:  RewriteEngine On</p>
<p>That&#8217;s about it really. What this does is that, whenever someone tries to access a link from the old site, it will forward them to the same URL on the new site. The excellent thing is that it will also forward search engines. It&#8217;s that great? That&#8217;s what the code 301 means. Eventually, they will actually update their database to reflect your new URL. This also keeps your from getting penalized for duplicate content by the search engines. There is only one minor issue with this and it&#8217;s just a cosmetic one: the old URL is still left in the browser window. Who cares right? Well I do. There is a workaround, which involves some template changes in your new blog. Basically it says if you have been forwarded by from the old URL, then reload the URL with that of the new one. Pay attention now, this isn&#8217;t the same thing. This is done in the browser and refreshes the screen. It&#8217;s not really a refresh since it is done before anything else is sent. This, to me is a bit clunky.</p>
<p>The easier one: This is the simplest method that I&#8217;ve seen. You can&#8217;t really get simpler than this. But it involves leave the old blog active, sort of. Funny enough, it&#8217;s called the <a href="http://rmarsh.com/2006/09/23/moving-your-blog/">Moving Your Blog</a> Plugin. You install this on your OLD blog, activate it, go to the options, and enter the URL of the NEW blog (no trailing slashes) and that&#8217;s it dude.</p>
<p>Now if you&#8217;re like me and you&#8217;re on a host with limited database space, then you might want to do a little bit of house keeping. What I&#8217;ve done is deactivated all the old plugins, delete all posts and comments, and all files that I&#8217;ve ever uploaded (including unused themes &#8211; I went back to the classic). Now you&#8217;re saying that I&#8217;m defeating the purpose by deleting the posts, but actually the plugin doesn&#8217;t need the posts. I&#8217;m not sure exactly what it needs, but deleting posts and comments didn&#8217;t seem to harm it. That&#8217;s where most of the space is taken up anyway. I also went through the database and DROPped tables that were created for plugins that I&#8217;ve deactivated.</p>
<p>After that, you should have everything working perfectly.</p>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/new-domain-webdevelopment2com-new-focus-frameworks-cakephp-javascript-web-20/" rel="bookmark" title="August 22, 2007">New Domain: WebDevelopment2.com, New Focus: Frameworks, CakePHP, Javascript, Web 2.0</a></li>

<li><a href="http://www.webdevelopment2.com/feedburner-google-search-cache-instant-blog-back-up/" rel="bookmark" title="May 10, 2007">FeedBurner + Google search cache =  Instant Blog Back Up</a></li>

<li><a href="http://www.webdevelopment2.com/wordpress-25-upload-image-error-finally-fixed/" rel="bookmark" title="July 28, 2008">Wordpress 2.5+ Upload Image Error &#8211; Finally Fixed!</a></li>

<li><a href="http://www.webdevelopment2.com/quick-multiple-local-roots-wamp/" rel="bookmark" title="November 16, 2007">Here&#8217;s a Quick Way to Use Multiple Local Roots With WAMP</a></li>

<li><a href="http://www.webdevelopment2.com/wordpress-comment-relish-and-high-cpu-usage/" rel="bookmark" title="December 29, 2008">Comment Relish Plugin + High CPU Usage &#8211; Fixed The Right Way</a></li>
</ul><!-- Similar Posts took 3.427 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/moving-wordpress-to-a-different-domain/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Importing Large MySQL Databases &#8211; When phpMyAdmin Let&#8217;s You Down &#8211; Get BigDump</title>
		<link>http://www.webdevelopment2.com/importing-large-mysql-databases-when-phpmyadmin-lets-you-down-get-bigdump/</link>
		<comments>http://www.webdevelopment2.com/importing-large-mysql-databases-when-phpmyadmin-lets-you-down-get-bigdump/#comments</comments>
		<pubDate>Sun, 01 Apr 2007 19:51:07 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.webdevelopment2.com/2007/04/01/importing-large-mysql-databases-when-phpmyadmin-lets-you-down-get-bigdump.htm</guid>
		<description><![CDATA[phpMyAdmin
phpMyAdmin is a beautiful tool. It let&#8217;s you administer a MySQL Database without all the messy commands. Also, some host don&#8217;t even allow you access to those messy commands. So, once again, it&#8217;s a beautiful tool. You can pull up a window and run individual SQL commands on the database or you can run an [...]]]></description>
			<content:encoded><![CDATA[<h4>phpMyAdmin</h4>
<p>phpMyAdmin is a beautiful tool. It let&#8217;s you administer a MySQL Database without all the messy commands. Also, some host don&#8217;t even allow you access to those messy commands. So, once again, it&#8217;s a beautiful tool. You can pull up a window and run individual SQL commands on the database or you can run an entire SQL script. It&#8217;s really great. There is a wonderful export tool that allows you to back up your Database as plain text SQL file or a file in GZip format. I have seen exported files get up to 10 MB compressed, which is over 100 MB decompressed, given that it&#8217;s just a plain text file.</p>
<h4>Importing MySQL Database</h4>
<p>But one thing that is lacking is a proper import procedure. Currently, you can import a database by pasting the SQL statements in a form and clicking submit, or by uploading an SQL file through your browser. Now that&#8217;s all well and good, but there are some problems with this method. The main problem is with timeouts. Of these there are two kinds, there are browser timeouts and server timeouts. The second problem is file size. Another limit, which you don&#8217;t often read about, is the phpMyAdmin configuration limit.</p>
<h4>Browser TimeOuts</h4>
<p>Browsers have a limited time that they can be busy waiting for response from the server and when doing a database import this is exactly what is happening. Your browser does a little work of uploading the file. After that it&#8217;s up to the server. So while your browser says it&#8217;s <em>busy</em> it really isn&#8217;t. It&#8217;s just waiting for the PHP script (phpMyAdmin) to get back to it and say it&#8217;s done. With large databases, this can take a time.</p>
<p>There are a couple ways to get around this. In Firefox you can go to <em>about:config</em> and look for the setting that deals with the browser timeouts. Honestly, I even forget what the exact property is. If you use Internet Explorer (well maybe you need to be punished) you&#8217;re out of luck, because as far as I know (which is not much about IE) I think you need to go into registry to do this. If you&#8217;re browser times out, it simply stops and kills the connection. With no active connection there script on the server comes to a halt.</p>
<h4>Server PHP Script TimeOuts</h4>
<p>Now let&#8217;s say you&#8217;ve gotten over the problem of the browser timeout. Good for you. Now you&#8217;re hit with something you may not have control over. A lot of shared hosts don&#8217;t allow you to modify their PHP configuration settings, for good reason. And a lot of servers have very fixed limits on the length of time that a script can run for. If this is less than what you&#8217;re file needs to run, then you&#8217;re once again out of luck. There is no work around for this though, sorry.</p>
<p>File Size Limit</p>
<p>Servers have a fixed limit with respect of the size of file that can be uploaded through the browser. Back in the day, it was stuck at 2 MB. Right now, I&#8217;ve seen them maxing out at about 8 MB on average. So what do you do if your export file is 10.5 MB? You&#8217;re out of luck, that&#8217;s what. Now why don&#8217;t they modify their export utility to break files up into multiple sizes that can be handled through import? well, it&#8217;s too much work. It&#8217;s not their problem, get a better server I guess. Once again, you&#8217;re out of luck.</p>
<h4>phpMyAdmin Limit</h4>
<p>phpMyAdmin has a limit in their configuration file that limits the actual number of SQL commands that can be executed. It&#8217;s that simply. If your database goes beyond this, then once again, you&#8217;re out of luck.</p>
<p>Well not really. You could install your own version of phpMyAdmin on the server and configure it as you like. If this works for you, great. But if your problem is also one of those mentioned above, then again, you&#8217;re out of luck.</p>
<h4>What Are Your Options?</h4>
<p>Well, you could get off your cheap but and shell out some more money for a better server. A better server would give you access to shell commands. Then you could perform your mySQL queries on the command prompt. How do you go about importing a GZipped or even a plain database using this method? You got me. I was never a big fan of prompts if I could avoid them.</p>
<p>You could zip up your file and email it to support and have them import it for you. That&#8217;s actually the first option I came across when I had that problem. I called support, mad as hell, because I couldn&#8217;t import my database, which phpMyAdmin so willingly exported for me. They told me that I could email them the file or place it in a folder somewhere on the server by FTP and tell them where it is so that they have access to it. Now, that&#8217;s all well and good, but I go to support when something is broken. I don&#8217;t see why I need to contact them for something as trivial as importing a database? And in all honesty, I don&#8217;t like the idea of waiting.</p>
<p>Option number three: host your own server, where you can control everything. Enough said! So what do the rest of us do?</p>
<h4><a href="http://www.ozerov.de/bigdump.php">BigDump</a>: Staggered MySQL Dump Importer</h4>
<p><a href="http://www.ozerov.de/bigdump.php">BigDump</a> is the exact tool you need for the job. It solves ALL of the above problems.</p>
<blockquote><p>Staggered import of large and very large MySQL Dumps (like phpMyAdmin 2.x Dumps) even through the web-servers with hard runtime limit and those in safe mode. The script executes only a small part of the huge dump and restarts itself. The next session starts where the last was stopped.</p></blockquote>
<p>It&#8217;s a simple PHP script. You open it up, edit some variables to point to the database and some other stuff, close it, save it, upload it, upload your database file to the same directory and run the bloody thing from the browser. What does, is it basically it divides your file into sections specified by one of the options. And it runs these sections independently until it&#8217;s done.</p>
<p>The options involve:</p>
<ul>
<li>Database Server</li>
<li>Database Name</li>
<li>Database Username</li>
<li>Number of lines you want to execute per session
<ul>
<li>You can make an educated guess, or you can just leave it at the default. If that doesn&#8217;t work, lower it and try again.</li>
</ul>
</li>
<li>How long to delay each session</li>
</ul>
<p>It solves every single one of our problems. There is no file size issue because you&#8217;re uploaded the file via FTP. There is no server timeout because it imports in sections. None of these individual sections is going to timeout because they are so small. Now you&#8217;re thinking how about the browser timeout, there is no way to get around this right? Well, it&#8217;s not that hard. After the script runs on a session, it refreshes the browser window with a new URL. The URL is to the same file, except that it passes variables back to itself with the line it left off at, so it knows where to start again for the next session. It continues with this until it&#8217;s done. The new URL registers as a new session so the timeout is reset.</p>
<p>There is an option for the number of seconds to delay after each session. Some servers may frown on running all these commands right after the other. Give them a couple seconds to breathe and they&#8217;ll be fine.</p>
<p>Obviously, I don&#8217;t need to tell you guys that you don&#8217;t close the browser window. So BigDump saves us from the inadequacies of phpMyAdmin, although it is still a great tool.</p>
<p>Read what others have to day about BigDump:</p>
<ul>
<li><small><a href="http://www.michaelphipps.com/2007-03-12/php-mysql-sql-file-import-with-bigdump.html">PHP MySQL SQL File Import with BigDump</a></small></li>
<li><small><a href="http://www.web-seo.co.uk/?p=272">BigDump: Staggered MySQL Dump Importer</a></small></li>
<li><small><a href="http://www.masetek.com.au/2007/01/28/how-to-move-a-large-database/">How To Move a Large Database</a></small></li>
</ul>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/moving-wordpress-to-a-different-domain/" rel="bookmark" title="April 2, 2007">Moving Wordpress To A Different Domain</a></li>

<li><a href="http://www.webdevelopment2.com/automate-mysql-database-backup-webcron-cron-jobs-problem-part-2/" rel="bookmark" title="October 28, 2007">Automate MySQL Database Backup With WebCron &#8211; No Cron Jobs? No Problem &#8211; Part 2</a></li>

<li><a href="http://www.webdevelopment2.com/finally-moved-dreamhost-quality-web-hosting/" rel="bookmark" title="October 4, 2007">Finally We&#8217;ve Moved To DreamHost &#8211; Quality Web Hosting</a></li>

<li><a href="http://www.webdevelopment2.com/new-domain-webdevelopment2com-new-focus-frameworks-cakephp-javascript-web-20/" rel="bookmark" title="August 22, 2007">New Domain: WebDevelopment2.com, New Focus: Frameworks, CakePHP, Javascript, Web 2.0</a></li>

<li><a href="http://www.webdevelopment2.com/ajax-coding-challenge-at-aboutcom/" rel="bookmark" title="October 24, 2006">Ajax Coding Challenge at About.com</a></li>
</ul><!-- Similar Posts took 3.619 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/importing-large-mysql-databases-when-phpmyadmin-lets-you-down-get-bigdump/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Content Management Systems</title>
		<link>http://www.webdevelopment2.com/content-management-systems/</link>
		<comments>http://www.webdevelopment2.com/content-management-systems/#comments</comments>
		<pubDate>Thu, 02 Nov 2006 15:00:26 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.webdevelopment2.com/2006/11/02/content-management-systems.htm</guid>
		<description><![CDATA[What is a Content Management System? Here&#8217;s a little background. Lots of websites have dynamic content. Meaning, the content is located in a database, usually MySQL, and they are simply dumped into a web template when the page is viewed. That way, if you decide to change the structure or template of your website, the [...]]]></description>
			<content:encoded><![CDATA[<p><!--adsense-->What is a <a href="http://en.wikipedia.org/wiki/Content_management_system">Content Management System</a>? Here&#8217;s a little background. Lots of websites have dynamic content. Meaning, the content is located in a database, usually MySQL, and they are simply dumped into a web template when the page is viewed. That way, if you decide to change the structure or template of your website, the content need not be changed. You wouldn&#8217;t really have to mess with anything. Since you have one main template, a change in the template is propagated throughout all the pages because all the pages are created dynamically and use the same template.</p>
<p>A content management system or CMS allows a user to manage this content. Excellent description, I know. Basically the user simply edits the content of the web site and not the actual pages. They don&#8217;t need to know any HTML, they don&#8217;t need to deal with the structure of the website they simply edit content.</p>
<p><a href="http://www.xpert.com.au/blog/what-is-a-content-management-system/">Xpert.com.au</a> has a nice write up on CMS.</p>
<p>Advantages of a Content Management System:</p>
<blockquote>
<ul>
<li>Decentralized maintenance.</li>
<li>Designed with non-technical content editors in mind.</li>
<li>Configurable access restrictions.</li>
<li>Consistency of design is preserved.</li>
<li>Navigation is automatically generated.</li>
<li>Content is stored in a database.</li>
<li>Dynamic content.</li>
<li>Daily updates.</li>
<li>Cooperation.</li>
<li>Content scheduling.</li>
</ul>
</blockquote>
<p>As a web developer you have a decision to make. Do you go with an already existing CMS like <a href="http://joomla.org">Joomla</a> or <a href="http://drupal.org/">Drupal</a> or do you design your own? Well, that depends on couple of things. How much content needs to be edited, what the user wants to do, what kind of system you have already established, etc.</p>
<p>Personally, I like Joomla. The problem with Joomla is that it lets you a LOT. Sometimes you don&#8217;t want the user to have all this functionality, it&#8217;s sometimes a bit of overkill. If the page is more or less static and the user may need to make simple changes from time to time, writing your own CMS makes sense. If the user wants a blog, I say go with <a href="http://www.wordpress.org">Wordpress</a>. I&#8217;m a huge advocate of not reinventing the wheel. They guys at <a href="http://www.wordpress.org"  class="alinks_links" onclick="return alinks_click(this);" title=""  style="padding-right: 13px; background: url(http://www.webdevelopment2.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">Wordpress</a> have been doing this for years now; they should know what they&#8217;re doing.</p>
<p>Basically folks, you need to analyze the task at hand and make an informed decision. <a href="http://www.opensourcecms.com">OpenSourceCMS</a> has a huge list of CMS programs that you can even test out on the website. When writing your own, you have to consider how long it&#8217;s going to take, whether you can do it effectively and efficiently. Prepackaged tools usually have all the fixings: file uploads, image stuff, etc. Simply decide what you need and what makes sense.</p>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/from-mambo-joomla-10/" rel="bookmark" title="September 15, 2005">From Mambo &#8211; Joomla! 1.0</a></li>

<li><a href="http://www.webdevelopment2.com/dclick-ads-another-quick-start-up-advertising-site/" rel="bookmark" title="December 24, 2006">Dclick Ads &#8211; Another Quick Start Up Advertising Site</a></li>

<li><a href="http://www.webdevelopment2.com/picking-a-cms-part-1/" rel="bookmark" title="May 20, 2009">Reader Input: Picking A CMS &#8211; Part 1</a></li>

<li><a href="http://www.webdevelopment2.com/qa-with-joomla-development-leader/" rel="bookmark" title="November 1, 2005">Q&#038;A With Joomla Development Leader</a></li>

<li><a href="http://www.webdevelopment2.com/bad-first-impression-for-joomla/" rel="bookmark" title="December 6, 2005">Bad First Impression for Joomla</a></li>
</ul><!-- Similar Posts took 2.897 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/content-management-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple MySQL Database Backup</title>
		<link>http://www.webdevelopment2.com/simple-mysql-database-backup/</link>
		<comments>http://www.webdevelopment2.com/simple-mysql-database-backup/#comments</comments>
		<pubDate>Wed, 01 Nov 2006 00:53:36 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.webdevelopment2.com/2006/10/31/simple-mysql-database-backup.htm</guid>
		<description><![CDATA[First off, this is for those of us with our own servers. Not those of us on shared hosts, because we&#8217;re going to need access to the command prompt and MySQL commands, etc. Some shared hosts may allow some of these things, but most don&#8217;t.
Matt Wade Writes:
Just a quick note to recommend AutoMySQLBackup for your [...]]]></description>
			<content:encoded><![CDATA[<p>First off, this is for those of us with our own servers. Not those of us on shared hosts, because we&#8217;re going to need access to the command prompt and MySQL commands, etc. Some shared hosts <em>may</em> allow some of these things, but most don&#8217;t.<br />
<a href="http://opensource.apress.com/article/179/quick-and-easy-mysql-backups?commented=1#c000234">Matt Wade</a> Writes:</p>
<blockquote><p>Just a quick note to recommend <a href="http://sourceforge.net/projects/automysqlbackup/">AutoMySQLBackup</a> for your MySQL backup needs. This little gem does daily, weekly, and monthly backups. It handles all the backup rotations for you. It compresses the files, can backup to remote servers, email you logs, and much more.</p></blockquote>
<p align="left">Now if you&#8217;re like me and you&#8217;re on a shared host, here is an option for you. There is <a href="http://www.silisoftware.com/scripts/index.php?scriptname=backupDB">backupDB</a>. I haven&#8217;t found something better than that thus far. One problem though, you have to have your own cron job to call it so that it&#8217;s automated.</p>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/automate-mysql-database-backup-webcron-cron-jobs-problem-part-2/" rel="bookmark" title="October 28, 2007">Automate MySQL Database Backup With WebCron &#8211; No Cron Jobs? No Problem &#8211; Part 2</a></li>

<li><a href="http://www.webdevelopment2.com/automate-database-backup-webcron-cron-jobs-problem/" rel="bookmark" title="October 13, 2007">Automate MySQL Database Backup With WebCron &#8211; No Cron Jobs? No Problem &#8211; Part 1</a></li>

<li><a href="http://www.webdevelopment2.com/wordpress-comment-relish-and-high-cpu-usage/" rel="bookmark" title="December 29, 2008">Comment Relish Plugin + High CPU Usage &#8211; Fixed The Right Way</a></li>

<li><a href="http://www.webdevelopment2.com/importing-large-mysql-databases-when-phpmyadmin-lets-you-down-get-bigdump/" rel="bookmark" title="April 1, 2007">Importing Large MySQL Databases &#8211; When phpMyAdmin Let&#8217;s You Down &#8211; Get BigDump</a></li>

<li><a href="http://www.webdevelopment2.com/gitting-started-git/" rel="bookmark" title="May 9, 2009">Gitting Started with Git &#8211; Quick and Dirty</a></li>
</ul><!-- Similar Posts took 2.720 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/simple-mysql-database-backup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing A LAMP Web Server System With Fedora Core 6</title>
		<link>http://www.webdevelopment2.com/installing-a-lamp-web-server-system-with-fedora-core-6/</link>
		<comments>http://www.webdevelopment2.com/installing-a-lamp-web-server-system-with-fedora-core-6/#comments</comments>
		<pubDate>Tue, 31 Oct 2006 18:59:23 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.webdevelopment2.com/2006/10/31/installing-a-lamp-web-server-system-with-fedora-core-6.htm</guid>
		<description><![CDATA[LAMP &#8211; Linux, Apache, MySQL, and PHP. These are the elements you will need to start a very robust and reliable web server from the ground up.  HowToForge has a brilliant tutorial on how to start everything. Now take note, this is a VERY detailed tutorial. You can&#8217;t really go wrong with this tutorial. [...]]]></description>
			<content:encoded><![CDATA[<p>LAMP &#8211; Linux, Apache, MySQL, and PHP. These are the elements you will need to start a very robust and reliable web server from the ground up.  <a href="http://www.howtoforge.com/installing_a_lamp_system_with_fedora_core_6">HowToForge</a> has a brilliant tutorial on how to start everything. Now take note, this is a VERY detailed <a href="http://www.howtoforge.com/installing_a_lamp_system_with_fedora_core_6">tutorial</a>. You can&#8217;t really go wrong with this tutorial. We got step by step instructions, we go screen shots, we got it all.</p>
<p>The Linux platform used is Fedora Core 6. Some may claim that other distributions are better, they are more user friendly, etc. etc. And they would be right, however, In my opinion, as a production environment, you can&#8217;t beat Fedora Core 6. It is very stable and reliable and perfect for a stand alone web server. There are even instructions at the end to install a free web hosting control panel if you decide to resell hosting services.</p>
<p>They start out with downloading Fedora:</p>
<blockquote><p>To install such a system you will need the following:</p>
<ul>
<li>Download the Fedora Core 6 DVD iso image or the 5 CD iso images from a mirror near you (the list of mirrors can be found here: <a target="_blank" href="http://fedora.redhat.com/download/mirrors.html">http://fedora.redhat.com/download/mirrors.html</a>), e.g. <a target="_blank" href="ftp://ftp.tu-chemnitz.de/pub/linux/fedora-core/6/i386/iso/FC-6-i386-DVD.iso">ftp://ftp.tu-chemnitz.de/pub/linux/fedora-core/6/i386/iso/FC-6-i386-DVD.iso</a></li>
<li>an internet connection&#8230;</li>
</ul>
</blockquote>
<p>Then the installation process complete with a LOT of screen shots and detailed instructions of even how to set up IP addresses, firewalls, hosts, etc.</p>
<p>Then we install the components, MySQL 5.0, Postfix With SMTP-AUTH And TLS,  Maildir, Apache2 With PHP5, ProFTPd, Webalizer, Perl Module, etc.</p>
<p>Whoa. You still with me? OK. In between all these installations there are details on the best configuration most of these components if they are not configured properly out of the box.</p>
<p>I ran through it (minus the Fedora Installation &#8211; which takes a while, trust me) and it took about an hour and a half.</p>
<p>This tutorial is incredible. I&#8217;ve never seen anyone go into such detail, except of course when we look up these instructions as seperate entities. The tutorial is detailed and easy to follow.</p>
<p>The good thing about this system is that you won&#8217;t need to touch it except to updates, which are just as easy as Windows updates. If you&#8217;re going to have a dedicated web server, I highly recommend taking a good hard look at this <a href="http://www.howtoforge.com/installing_a_lamp_system_with_fedora_core_6">tutorial</a>.</p>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/fast-cgi-installation/" rel="bookmark" title="November 18, 2005">Fast CGI Installation</a></li>

<li><a href="http://www.webdevelopment2.com/gitting-started-git/" rel="bookmark" title="May 9, 2009">Gitting Started with Git &#8211; Quick and Dirty</a></li>

<li><a href="http://www.webdevelopment2.com/ajax-client-engine-ace-problems/" rel="bookmark" title="December 12, 2005">AJAX Client Engine (ACE) &#8211; Problems</a></li>

<li><a href="http://www.webdevelopment2.com/give-15-minutes-jquery-expert/" rel="bookmark" title="September 18, 2007">Give Me 15 Minutes and I&#8217;ll Make You A jQuery Expert</a></li>

<li><a href="http://www.webdevelopment2.com/start-the-year-off-right-developing-web-applications-with-ajax/" rel="bookmark" title="January 1, 2007">Start The Year Off Right &#8211; Developing Web Applications with AJAX</a></li>
</ul><!-- Similar Posts took 2.729 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/installing-a-lamp-web-server-system-with-fedora-core-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arrays to MySQL Dates and Back</title>
		<link>http://www.webdevelopment2.com/arrays-to-mysql-dates-and-back/</link>
		<comments>http://www.webdevelopment2.com/arrays-to-mysql-dates-and-back/#comments</comments>
		<pubDate>Fri, 27 Oct 2006 02:06:53 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.webdevelopment2.com/2006/10/26/arrays-to-mysql-dates-and-back.htm</guid>
		<description><![CDATA[Just in case you ever need to do this
Arrays to MySQL dates and back.
Simple conversion functions to change MySQL dates to arrays, arrays to MySQL dates.
Similar Posts:Stop Hating On PHP And Learn To Code Better

MySQL &#038; SQL Server Performance

Zamzar &#8211; Free Online File Conversion

JavaScript, XMLHttpRequest (Ajax) Cheat Sheet

WYBISYG &#8211; What You Bake Is What You [...]]]></description>
			<content:encoded><![CDATA[<p>Just in case you ever need to do this</p>
<p><a href="http://www.weberdev.com/get_example-4516.html">Arrays to MySQL dates and back.</a></p>
<blockquote><p>Simple conversion functions to change MySQL dates to arrays, arrays to MySQL dates.</p></blockquote>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/php-sucks-boy-am-i-tired-of-hearing-this/" rel="bookmark" title="May 28, 2008">Stop Hating On PHP And Learn To Code Better</a></li>

<li><a href="http://www.webdevelopment2.com/mysql-sql-server-performance/" rel="bookmark" title="October 25, 2006">MySQL &#038; SQL Server Performance</a></li>

<li><a href="http://www.webdevelopment2.com/zamzar-free-online-file-conversion/" rel="bookmark" title="November 27, 2006">Zamzar &#8211; Free Online File Conversion</a></li>

<li><a href="http://www.webdevelopment2.com/javascript-xmlhttprequest-ajax-cheat-sheet/" rel="bookmark" title="November 21, 2005">JavaScript, XMLHttpRequest (Ajax) Cheat Sheet</a></li>

<li><a href="http://www.webdevelopment2.com/cakephp-fckeditor/" rel="bookmark" title="November 23, 2007">WYBISYG &#8211; What You Bake Is What You Get &#8211; CakePHP + FCKEditor</a></li>
</ul><!-- Similar Posts took 2.569 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/arrays-to-mysql-dates-and-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Foundation for an Extensible Website Engine with PHP 5</title>
		<link>http://www.webdevelopment2.com/foundation-for-an-extensible-website-engine-with-php-5/</link>
		<comments>http://www.webdevelopment2.com/foundation-for-an-extensible-website-engine-with-php-5/#comments</comments>
		<pubDate>Wed, 25 Oct 2006 12:21:17 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.webdevelopment2.com/2006/10/25/foundation-for-an-extensible-website-engine-with-php-5.htm</guid>
		<description><![CDATA[When developing production sites for clients with little/no HTML experience this is a must. If your web contract does not include maintenance fees, then this is something that you simply must do in order to have your users freely update their websites. It&#8217;s a structure which is simple enough to develop and implement.
Alejandro Gervasio at [...]]]></description>
			<content:encoded><![CDATA[<p>When developing production sites for clients with little/no HTML experience this is a must. If your web contract does not include maintenance fees, then this is something that you simply must do in order to have your users freely update their websites. It&#8217;s a structure which is simple enough to develop and implement.</p>
<p><span class="content_rating"><a rel="nofollow" href="http://www.devshed.com/cp/bio/Alejandro-Gervasio/">Alejandro Gervasio</a> at DevShed writes:</span></p>
<blockquote><p><a href="http://www.devshed.com/c/a/PHP/Setting-up-the-Foundation-for-an-Extensible-Website-Engine-with-PHP-5/">Setting up the Foundation for an Extensible Website Engine with PHP 5</a><br />
Building a dynamic website with a database backend is something that nearly every PHP programmer will need to do, usually sooner rather than later. If you haven&#8217;t done it yet (or even if you have), this two-part article series will show you how to develop a website engine that can generate pages on the fly from a simple database structure.</p></blockquote>
<p>Since this is a two part series, I&#8217;m assuming that the portion on editing the database will some in the second part. But just to precede them for a minute, it can be seen that a simple backend could be designed. I would go one step further and insert HTML text into the database rather than simply text. In the backend it would be quite simple to incorporate a WYSIWYG editor such as FCKEditor of HTMLArea to allow users to edit the website easily.</p>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/cakephp-fckeditor/" rel="bookmark" title="November 23, 2007">WYBISYG &#8211; What You Bake Is What You Get &#8211; CakePHP + FCKEditor</a></li>

<li><a href="http://www.webdevelopment2.com/the-secret-of-cakephp-advanced-routing-even-better-urls/" rel="bookmark" title="September 6, 2007">The Secret of CakePHP Advanced Routing &#8211; Even Better URLs</a></li>

<li><a href="http://www.webdevelopment2.com/picking-a-cms-part-1/" rel="bookmark" title="May 20, 2009">Reader Input: Picking A CMS &#8211; Part 1</a></li>

<li><a href="http://www.webdevelopment2.com/top-5-basic-seo-tips/" rel="bookmark" title="December 27, 2007">Top 5 Basic SEO Tips &#8211; You Can Do These Yourself</a></li>

<li><a href="http://www.webdevelopment2.com/content-management-systems/" rel="bookmark" title="November 2, 2006">Content Management Systems</a></li>
</ul><!-- Similar Posts took 2.755 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/foundation-for-an-extensible-website-engine-with-php-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL &amp; SQL Server Performance</title>
		<link>http://www.webdevelopment2.com/mysql-sql-server-performance/</link>
		<comments>http://www.webdevelopment2.com/mysql-sql-server-performance/#comments</comments>
		<pubDate>Wed, 25 Oct 2006 10:34:16 +0000</pubDate>
		<dc:creator>Kevin Lloyd</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.webdevelopment2.com/2006/10/25/mysql-sql-server-performance.htm</guid>
		<description><![CDATA[I&#8217;ve actually been meaning to try this myself, well a variation of it.  I would , however be comparing  these speeds  from a C# Application performing data access to the SQL Sever 2005 or MySQL backend. Based on these tests it seems that I&#8217;d be better off  with an ASP.NET connection, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve actually been meaning to try this myself, well a variation of it.  I would , however be comparing  these speeds  from a C# Application performing data access to the SQL Sever 2005 or MySQL backend. Based on these tests it seems that I&#8217;d be better off  with an ASP.NET connection, since this will be running on a windows environment.</p>
<p>I will definitely take Karl&#8217;s tests into consideration as I perform my own.</p>
<p>Karl Write:</p>
<blockquote><p><a href="http://codebetter.com/blogs/karlseguin/archive/2006/10/24/Sidetracked-with-MySQL-_2600_-SQL-Server-Performance.aspx">Sidetracked with MySQL &#038; SQL Server Performance</a><br />
Here&#8217;s the short version:</p>
<p>1. This is only for inserting 500 rows into a 3 column table<br />
2. InnoDB  really seems screwed on Windows platforms running 5.x &#8211; Certainly don&#8217;t have anything conclusive, but I&#8217;d watch out<br />
3. For my very simple test, MySQL on Linux blew SQL Server 2005 on windows out of the water.<br />
4. On windows, ASP.NET&#8217;s connection to MySQL seems as fast as PHP&#8217;s</p></blockquote>
Similar Posts:<ul><li><a href="http://www.webdevelopment2.com/joomla-template-tip-optional-modules/" rel="bookmark" title="December 1, 2005">Joomla Template Tip: Optional Modules</a></li>

<li><a href="http://www.webdevelopment2.com/xampp-lite-on-usb-disk-benchmark-php-and-mysql-by-slowing-down-your-server/" rel="bookmark" title="August 29, 2007">XAMPP Lite on USB Disk &#8211; Benchmark PHP and MySQL by Slowing Down Your Server</a></li>

<li><a href="http://www.webdevelopment2.com/wordpress-comment-relish-and-high-cpu-usage/" rel="bookmark" title="December 29, 2008">Comment Relish Plugin + High CPU Usage &#8211; Fixed The Right Way</a></li>

<li><a href="http://www.webdevelopment2.com/cross-browser-compatible-designs/" rel="bookmark" title="December 26, 2007">Browsers Have Multiple Personalities, Your Designs Should Too</a></li>

<li><a href="http://www.webdevelopment2.com/automate-mysql-database-backup-webcron-cron-jobs-problem-part-2/" rel="bookmark" title="October 28, 2007">Automate MySQL Database Backup With WebCron &#8211; No Cron Jobs? No Problem &#8211; Part 2</a></li>
</ul><!-- Similar Posts took 2.765 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.webdevelopment2.com/mysql-sql-server-performance/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
