<?xml version="1.0" encoding="utf-8"?>
<!-- generator="wordpress/2.1.3" -->
<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/"
	>

<channel>
	<title>Signified</title>
	<link>http://signified.com.au</link>
	<description>Web Design and Development. The personal &#038; professional website of Robert Love</description>
	<pubDate>Mon, 03 Mar 2008 00:06:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.3</generator>
	<language>en</language>
			<item>
		<title>Signified files complaint - an open letter to the Web community</title>
		<link>http://signified.com.au/signified-files-complaint-an-open-letter-to-the-web-community/</link>
		<comments>http://signified.com.au/signified-files-complaint-an-open-letter-to-the-web-community/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 11:29:55 +0000</pubDate>
		<dc:creator>Robert Love</dc:creator>
		
		<category><![CDATA[Articles]]></category>

		<category><![CDATA[HTML]]></category>

		<category><![CDATA[XHTML]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://signified.net/signified-files-complaint-an-open-letter-to-the-web-community/</guid>
		<description><![CDATA[Yesterday, Håkon Wium Lie, Chief Technology Officer for Opera Software released his open letter to the Web community in which he states:

Today we have taken a stand. Opera has filed a formal complaint with the European Commission to force Microsoft to support open Web standards in its Web browser, Internet Explorer. We believe that Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, <a href="http://en.wikipedia.org/wiki/H%C3%A5kon_Wium_Lie">Håkon Wium Lie</a>, Chief Technology Officer for <a href="http://www.opera.com/">Opera Software</a> released his <a href="http://people.opera.com/howcome/2007/msft/">open letter to the Web community</a> in which he states:</p>
<blockquote>
<p>Today we have taken a stand. Opera has <a href="http://www.opera.com/pressreleases/en/2007/12/13/">filed a formal complaint</a> with the European Commission to force Microsoft to support open Web standards in its Web browser, Internet Explorer. We believe that Microsoft has harmed Web standards by refusing to support them; Microsoft often participates in creating Web standards, promoting them, and even promising to implement them. Despite their talent, however, they refuse to support Web standards correctly. For example, Internet Explorer is the only modern Web browser that <a href="http://en.wikipedia.org/wiki/Acid2">does not</a> support <a href="http://www.webstandards.org/acid2">Acid2</a>.</p>
</blockquote>
<p>Now, unlike <a href="http://blogs.msdn.com/cwilso/">Chris Wilson</a>, I&#8217;m not employed as a Microsoft apologist. Yes, Internet Explorer is rubbish, if you don&#8217;t like it, don&#8217;t use it, move on! However, I have to take issue with Håkon when he asserts <q>Internet Explorer is the only modern Web browser that <a href="http://en.wikipedia.org/wiki/Acid2">does not</a> support <a href="http://www.webstandards.org/acid2">Acid2</a>.</q></p>
<p>I&#8217;m writing this post using Firefox version 2.0.0.11 - A &#8220;modern Web browser&#8221; I would think (It is the latest version!). I also have both Internet Explorer 6 and Opera 9 living in Program Files for just such an occasion.</p>
<p>Let&#8217;s see if the statement holds water. OK Opera 9, put your money where Håkon&#8217;s mouth is:</p>
<p><img src="http://signified.net/wp-content/uploads/2008/01/acid2-opera9.png" alt="Acid2 in Opera 9" /></p>
<p>Impressive! Just like the <a href="http://www.webstandards.org/files/acid2/reference.html">Acid2 reference rendering</a>.</p>
<p>Next, Let&#8217;s see if Håkon is on the money when it comes to Internet Explorer 6:</p>
<p><img src="http://signified.net/wp-content/uploads/2008/01/acid2-ie6.png" alt="Acid2 in Internet Explorer 6" /></p>
<p>Ouch! It&#8217;s like a train wreck. It&#8217;s horrible but I can&#8217;t look away.</p>
<p>I must say, Håkon has certainly earned his money so far. I suppose it&#8217;s just a formality that we get the Firefox 2 rendering out of the way, I mean, It is an ultra-modern standards-compliant web browser and, like Håkon said, <q>Internet Explorer is the only modern Web browser that <a href="http://en.wikipedia.org/wiki/Acid2">does not</a> support <a href="http://www.webstandards.org/acid2">Acid2</a>.</q> Firefox 2 is gonna shit this in!</p>
<p><img src='http://signified.net/wp-content/uploads/2008/01/acid2-ff2.png' alt='Acid2 in Firefox 2.0.0.11' /></p>
<p><em>Oops!</em></p>
<p>Look out <a href="http://www.mozilla.com/">Mozilla</a>, you&#8217;re about to get hit with an antitrust. The folk at Opera don&#8217;t take kindly to browser manufacturers fucking up their Internet, and I&#8217;m certainly not going to continue my relationship with you if your browser can&#8217;t even display a smiley face properly.</p>
<p>Yes, yes, I know. Acid2 contains an invalid doctype, multiple empty elements and <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fwww.webstandards.org%2Ffiles%2Facid2%2Ftest.html%23top&#038;charset=%28detect+automatically%29&#038;doctype=Inline&#038;group=0">validates</a> only <em>tentatively</em> as HTML 4.01 Strict. Go tell someone who cares.</p>
<p>My point is; Acid2 is not a modern web page and hence should not be used as a benchmark for &#8220;modern web browsers&#8221; - the likes of which I would not consider Internet Explorer 6 to be a member (if you think a dog year is short, you should live a year in a browser&#8217;s shoes!).</p>
<p>Dobbers wear nappies Opera. We don&#8217;t need you to look after our rights on the web - especially when it comes to whining about a competitor and leaving you with as much credibility as a Big Brother contestant. How much (anti)trust do you think that stirs up?</p>
]]></content:encoded>
			<wfw:commentRss>http://signified.com.au/signified-files-complaint-an-open-letter-to-the-web-community/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Poem Element for HTML5</title>
		<link>http://signified.com.au/a-poem-element-for-html5/</link>
		<comments>http://signified.com.au/a-poem-element-for-html5/#comments</comments>
		<pubDate>Sun, 07 Oct 2007 13:30:46 +0000</pubDate>
		<dc:creator>Robert Love</dc:creator>
		
		<category><![CDATA[HTML]]></category>

		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://signified.net/a-poem-element-for-html5/</guid>
		<description><![CDATA[A recent post to the HTML WG list by Dr Olaf Hoffmann entitled 'HTML 5' and some poem markup? has got me (and some WG members) all in a huff. Is there hope for the poem online? It appears not. So all you budding web poets better stick to the plain old prose from here on in.]]></description>
			<content:encoded><![CDATA[<p>A recent post to the HTML WG list entitled <cite><a href="http://lists.w3.org/Archives/Public/public-html/2007Oct/0048.html">&#8216;HTML 5&#8242; and some poem markup?</a></cite> has got me all in a huff. It was an innocent request by Dr Olaf Hoffmann which started like this:</p>
<blockquote>
<p>What I missed so many years in (X)HTML is some useful markup for poems. The result we can see in the &#8216;real web life&#8217; - a lot of meaningless tag soup around, disoriented authors lost between silence and semantically meaningless markup&#8230; Obviously poem markup is still not available in &#8216;HTML 5&#8242;. Why not? Can this be added to the &#8216;HTML 5&#8242; draft?</p>
</blockquote>
<p>Dr Hoffmann then goes on to plead his case and suggest such semantic elements as <code>&lt;poem&gt;</code>, <code>&lt;stanza&gt;</code>, and <code>&lt;line&gt;</code>.</p>
<p>There were some  interesting responses:</p>
<ul>
<li>There&#8217;s <code>&lt;p&gt;</code> for each stanza and <code>&lt;br&gt;</code> for separating lines.</li>
<li>Are there use case where software that consumes markup would benefit from poem-specific semantics?</li>
<li>How would they [search engines] be helped by poem-specific semantics?</li>
<li>Do I understand you correctly that you want to include markup for a specific domain (poetry) in HTML5?</li>
<li>A markup language should probably include as little as possible from specific domains and focus on the general things instead. Domain specifics should be handled via an extension mechanism that allows for unambiguous interpretation of the expressed information</li>
<li>HTML5 actually defines how to mark up poems in HTML (the word &quot;poem&quot; is in the spec half a dozen times, in fact!). Specifically: the stanzas of poems written in the classical form are given by <code>&lt;p&gt;</code> elements, with line breaks indicated by <code>&lt;br&gt;</code> elements (one of the few allowed uses of <code>&lt;br&gt;</code>).</li>
<li>the stanzas of freeform poems are given by <code>&lt;pre&gt;</code> elements.</li>
</ul>
<p>The gist of the thread was this; There is no &lt;poem&gt; element and there never will be. If you want to mark up a poem semantically then you have one of three options available to you:</p>
<ol>
<li>Use a <code>&lt;p&gt;</code> element which is as much a poem as <code>&lt;b&gt;</code> or <code>&lt;strong&gt;</code> is a heading</li>
<li>Create your own &quot;proprietary&quot; markup (<code>&lt;poem&gt;</code>, <code>&lt;stanza&gt;</code>, and <code>&lt;line&gt;</code>) so you can join the same exclusive club as <code>&lt;blink&gt;</code> and <code>&lt;marquee&gt;</code></li>
<li>Stop reading poetry</li>
</ol>
<p>The simple and unfortunate fact is this: you cannot mark up a poem (and a great many other pieces of information) in (X)HTML. You can make a piece of text &quot;look&quot; like a poem with a few <code>&lt;p&gt;</code> and <code>&lt;br&gt;</code> elements (just as you can make a piece of text &quot;look&quot; like a heading with a <code>&lt;strong&gt;</code> element), but it <strong>IS NOT</strong> and <strong>WILL NEVER BE</strong> a poem.</p>
<p>Sorry Dr Hoffmann. Maybe we should all stick to prose.</p>
]]></content:encoded>
			<wfw:commentRss>http://signified.com.au/a-poem-element-for-html5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to Become a Web Developer and Make Lots of Money</title>
		<link>http://signified.com.au/how-to-become-a-web-developer-and-make-lots-of-money/</link>
		<comments>http://signified.com.au/how-to-become-a-web-developer-and-make-lots-of-money/#comments</comments>
		<pubDate>Wed, 01 Aug 2007 08:16:00 +0000</pubDate>
		<dc:creator>Robert Love</dc:creator>
		
		<category><![CDATA[Articles]]></category>

		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://signified.net/how-to-become-a-web-developer-and-make-lots-of-money/</guid>
		<description><![CDATA[Over the recent days I've been asked to speak with a few new starters where I work. As budding (and not-so-budding) web developers, they're eager to latch onto the next big thing and blog about it in order to appear cool (oops!). So, in order to stop repeating myself and free up more time for shameless self-promotion, read on if you want to become a web developer and make lots of money.]]></description>
			<content:encoded><![CDATA[<p>Over the recent days I&#8217;ve been asked to speak with a few new starters where I work. As budding (and not-so-budding) web developers, they&#8217;re eager to latch onto the next big thing and blog about it in order to appear cool (oops!). So, in order to stop repeating myself and free up more time for shameless self-promotion, read on if you want to become a web developer and make lots of money.</p>
<p>The hot topics are:</p>
<ul>
<li><a href="#training">Training</a></li>
<li><a href="#xhtml-and-css"><acronym title="eXtensible Hypertext Markup Language">XHTML</acronym> and <acronym title="Cascading Style Sheets">CSS</acronym></a></li>
<li><a href="#javaScript-and-the-dom">JavaScript and the <acronym title="Document Object Model">DOM</acronym></a></li>
<li><a href="#web-standards">Web Standards</a></li>
<li><a href="#open-apis">Open <acronym title="Application Programming Interface">API</acronym>s</a></li>
<li><a href="#google-maps">Google Maps</a></li>
<li><a href="#content-management-systems">Content Management Systems (<acronym title="Content Management System">CMS</acronym>)</a></li>
<li><a href="#search-engine-optimisation">Search Engine Optimisation (<acronym title="Search Engine Optimisation">SEO</acronym>)</a></li>
<li><a href="#development-environments">Development Environments</a></li>
<li><a href="#development-frameworks">Development Frameworks</a></li>
<li><a href="#coding-standards">Coding Standards</a></li>
<li><a href="#version-control">Version Control</a></li>
<li><a href="#documentation">Documentation</a></li>
</ul>
<h2 id="training">Training</h2>
<p>First, you&#8217;ll need some top-quality, number 1 training. And for this, you need look no further than Signified. Signified offers training courses in web technologies offered through <a href="http://www.learn4life.unsw.edu.au/" rel="nofollow">Learn4Life</a> at <a href="http://www.unsw.edu.au/"  rel="nofollow">The University of New South Wales</a>, Sydney, Australia. All Signified training courses are delivered by <a href="/author/robert-love/">Robert Love</a>, a highly experienced trainer and founder of Signified. All Signified training courses are held in fully-equipped, state-of-the-art, computer labs at <a href="http://www.unsw.edu.au/" rel="nofollow">The University of New South Wales</a>.</p>
<h2 id="xhtml-and-css"><acronym title="eXtensible Hypertext Markup Language">XHTML</acronym> and <acronym title="Cascading Style Sheets">CSS</acronym></h2>
<p>You&#8217;ve completed the <a href="http://signified.net/training/building-websites-using-xhtml-and-css/">course</a> and you&#8217;ve read both the <a rel="nofollow" href="http://xhtml.com/en/xhtml/reference/"><acronym title="eXtensible Hypertext Markup Language">XHTML</acronym> reference</a> and the <a rel="nofollow" href="http://xhtml.com/en/css/reference/"><acronym title="Cascading Style Sheets">CSS</acronym> reference</a> from cover to cover, now you really want to see what is possible when <acronym title="eXtensible Hypertext Markup Language">XHTML</acronym> meets <acronym title="Cascading Style Sheets">CSS</acronym>. It&#8217;s an oldy but a goldy - the one-and-only:</p>
<p><a rel="nofollow" href="http://www.csszengarden.com/">css Zen Garden: The Beauty in <acronym title="Cascading Style Sheets">CSS</acronym> Design</a></p>
<h2 id="javaScript-and-the-dom">JavaScript and the <acronym title="Document Object Model">DOM</acronym></h2>
<p>You&#8217;ve completed the <a href="http://signified.net/training/web-design-with-javascript-and-the-dom/">course</a> and read the <a rel="nofollow" href="http://developer.mozilla.org/en/docs/JavaScript">JavaScript reference</a>, you&#8217;re following the zen path of <a rel="nofollow" href="http://onlinetools.org/articles/unobtrusivejavascript/">unobtrusiveness</a>, now you&#8217;re ready to forget everything you learned and start using someone else&#8217;s JavaScript framework:</p>
<ul>
<li><a rel="nofollow" href="http://dojotoolkit.org/">The Dojo Toolkit</a></li>
<li><a rel="nofollow" href="http://www.robertnyman.com/domassistant/">DOM Assistant</a></li>
<li><a rel="nofollow" href="http://jquery.com/">jQuery</a></li>
<li><a rel="nofollow" href="http://mootools.net/">mootools</a></li>
<li><a rel="nofollow" href="http://www.prototypejs.org/">Prototype JavaScript framework</a></li>
<li><a rel="nofollow" href="http://openrico.org/">Rico</a></li>
<li><a rel="nofollow" href="http://script.aculo.us/">script.aculo.us</a></li>
<li><a rel="nofollow" href="http://developer.yahoo.com/yui/">The Yahoo! User Interface Library (YUI)</a></li>
</ul>
<h2 id="web-standards">Web Standards</h2>
<ul>
<li>Read the hype:<br /><a rel="nofollow" href="http://www.webstandards.org/">Web Standards Project</a></li>
<li>Join the club:<br /><a rel="nofollow" href="http://webstandardsgroup.org/">Web Standards Group</a></li>
</ul>
<h2 id="open-apis">Open <acronym title="Application Programming Interface">API</acronym>s</h2>
<p>It&#8217;s cool to use the acronym &#8220;<acronym title="Application Programming Interface">API</acronym>&#8221; in a sentence. In much the same way as it used to be cool to say &#8220;web services&#8221; every time you opened your mouth. Of course, acronyms are far cooler than actual words - even if the acronym is a word (<acronym title="Representational State Transfer">REST</acronym>, <acronym title="Simple Object Access Protocol">SOAP</acronym>), a cleaning product (<acronym title="Asynchronous Javascript and XML">AJAX</acronym>) or a mispelled boys name (<acronym title="JavaScript Object Notation">JSON</acronym>).</p>
<ul>
<li><a rel="nofollow" href="http://www.flickr.com/services/">Flickr Services</a><br />Flickr has an open <a rel="nofollow" href="http://en.wikipedia.org/wiki/API">Application Programming Interface</a> (<acronym title="Application Programming Interface">API</acronym> for short). This means that <em>anyone</em> can write their own program to present public Flickr data (like photos, tags, profiles or groups) in new and different ways. There&#8217;s a long list of <a rel="nofollow" href="http://www.flickr.com/services/api/"><acronym title="Application Programming Interface">API</acronym> methods available to you to work with</a>, and we love it when this happens, so&#8230; <strong>go forth and play!</strong></li>
<li><a rel="nofollow" href="http://code.google.com/">Google <acronym title="Application Programming Interface">API</acronym>s</a></li>
<li><a rel="nofollow" href="http://www.youtube.com/dev">YouTube Developer Area</a><br />YouTube offers open access to key parts of the YouTube video repository and user community, via an open <acronym title="Application Programming Interface">API</acronym> interface and RSS feeds. Using our <acronym title="Application Programming Interface">API</acronym>s, you can easily integrate online videos from YouTube&#8217;s rapidly growing repository of videos into your application. After you&#8217;ve created a developer profile, you&#8217;ll be ready to tap into the power of YouTube.</li>
</ul>
<h2 id="google-maps">Google Maps</h2>
<p>If you&#8217;re not using maps - you&#8217;re nowhere man! Get started with the Google Maps <acronym title="Application Programming Interface">API</acronym> (and other useful mappy stuff) here:</p>
<ul>
<li><a rel="nofollow" href="http://www.google.com/apis/maps/">Google Maps <acronym title="Application Programming Interface">API</acronym></a></li>
<li><a rel="nofollow" href="http://www.google.com/apis/maps/documentation/">Google Maps <acronym title="Application Programming Interface">API</acronym> Concepts</a></li>
<li><a rel="nofollow" href="http://www.econym.demon.co.uk/googlemaps/">Google Maps <acronym title="Application Programming Interface">API</acronym> Tutorial</a></li>
<li><a rel="nofollow" href="http://www.travelgis.com/geocode/">Free Geocoding</a></li>
</ul>
<h2 id="content-management-systems">Content Management Systems (<acronym title="Content Management System">CMS</acronym>)</h2>
<p>If God had wanted us to pay for content management, he wouldn&#8217;t have started <a rel="nofollow" href="http://www.opensourcecms.com/">Open Source CMS</a> (Try before you install!). Here&#8217;s a few of some note:</p>
<ul>
<li><a rel="nofollow" href="http://drupal.org/">Drupal</a></li>
<li><a rel="nofollow" href="http://ez.no/">eZ Publish</a></li>
<li><a rel="nofollow" href="http://www.joomla.org/">Joomla!</a></li>
<li><a rel="nofollow" href="http://www.mamboserver.com/">Mambo</a></li>
<li><a rel="nofollow" href="http://wordpress.org/">WordPress</a></li>
</ul>
<h2 id="search-engine-optimisation">Search Engine Optimisation (<acronym title="Search Engine Optimisation">SEO</acronym>)</h2>
<p>Smoke and mirrors! Don&#8217;t blow your allowance on an <acronym title="Search Engine Optimisation">SEO</acronym> &#8220;expert.&#8221; If you have this:</p>
<p><code>http://www.example.com/products.php?cat_id=5&amp;prod_id=72</code></p>
<p>Use Apache Mod Rewrite to change it to this:</p>
<p><code>http://www.example.com/products/widgets/noodle+spranger/</code></p>
<h2 id="development-environments">Development Environments</h2>
<p>Now you have the know-how, it&#8217;s time to put it all into practice. To start, you&#8217;ll need a local development environment. I&#8217;m an open-source advocate (except for my laptop which is provided to me by work - so don&#8217;t give me shit about using Windows!). So, to set up a local Windows/Apache/<a rel="nofollow" href="http://www.mysql.com/">MySQL</a>/<acronym title="Hypertext Preprocessor"><a rel="nofollow" href="http://www.php.net/">PHP</a></acronym> (<acronym title="Windows, Apache, MySQL, Perl, Python, PHP, etc...">WAMP</acronym>) development environment, check out <a href="http://signified.net/installing-apache-mysql-and-php-on-windows/">Installing Apache, MySQL and PHP on Windows</a>.</p>
<h2 id="development-frameworks">Development Frameworks</h2>
<p>If we&#8217;re talking <acronym title="Hypertext Preprocessor"><a rel="nofollow" href="http://www.php.net/">PHP</a></acronym> - we&#8217;re eating <a rel="nofollow" href="http://www.cakephp.org/">Cake</a>.</p>
<h2 id="coding-standards">Coding Standards</h2>
<p>If we&#8217;re talking <acronym title="Hypertext Preprocessor"><a rel="nofollow" href="http://www.php.net/">PHP</a></acronym> - we&#8217;re eating <a rel="nofollow" href="http://www.go-pear.org/manual/en/standards.php">PEAR</a>.</p>
<h2 id="version-control">Version Control</h2>
<p>Make sure you&#8217;re working on the right <a rel="nofollow" href="http://subversion.tigris.org/">Subversion</a>.</p>
<h2 id="documentation">Documentation</h2>
<p><a rel="nofollow" href="http://www.phpdoc.org/">phpDocumentor</a>: The complete documentation solution for <acronym title="Hypertext Preprocessor"><a rel="nofollow" href="http://www.php.net/">PHP</a></acronym></p>
]]></content:encoded>
			<wfw:commentRss>http://signified.com.au/how-to-become-a-web-developer-and-make-lots-of-money/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Running Multiple Websites on Apache</title>
		<link>http://signified.com.au/running-multiple-websites-on-apache/</link>
		<comments>http://signified.com.au/running-multiple-websites-on-apache/#comments</comments>
		<pubDate>Sun, 01 Jul 2007 08:16:00 +0000</pubDate>
		<dc:creator>Robert Love</dc:creator>
		
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://signified.net/running-multiple-websites-on-apache/</guid>
		<description><![CDATA[You've been creating websites on your Apache installation on Windows - making a sub-directory for each site you want to design/develop. But wouldn't it be good if you could run multiple websites on a single Apache installation - changing http://localhost/mynewsite1/, http://localhost/mynewsite2/, etc. to http://mynewsite1/, http://mynewsite2/, etc. Well you can! - with Apache Virtual Hosts. This article will show you how to run as many websites (or Virtual Hosts) as you like on your Apache installation on Windows by making a few simple additions to your Apache configuration file and your Windows hosts file.]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve been creating websites on your Apache installation on Windows - making a sub-directory for each site you want to design/develop. But wouldn&#8217;t it be good if you could run multiple websites on a single Apache installation - changing http://localhost/mynewsite1/, http://localhost/mynewsite2/, etc. to http://mynewsite1/, http://mynewsite2/, etc. Well you can! - with Apache Virtual Hosts. This article will show you how to run as many websites (or Virtual Hosts) as you like on your Apache installation on Windows by making a few simple additions to your Apache configuration file and your Windows hosts file.</p>
<h2>What We&#8217;ll Assume</h2>
<ul>
<li>You have a working installation of Apache 2.2.4 on Windows (if not, take a look at <a href="/installing-apache-mysql-and-php-on-windows/" rel="nofollow">Installing Apache, MySQL and PHP on Windows</a>).</li>
<li>Your Apache DocumentRoot - where your local website files are - is in the default location of C:\Program Files\Apache Software Foundation\Apache2.2\htdocs (if not, simply replace all occurrences of C:/Program Files/Apache Software Foundation/Apache2.2/htdocs with whatever your DocumentRoot is - e.g. C:\www). </li>
</ul>
<h2>Let&#8217;s Get On With It</h2>
<ol>
<li>
<p>Create a new folder C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mynewsite</p>
</li>
<li>
<p>Go to Start &gt; Programs &gt; Apache HTTP Server 2.2.4 &gt; Configure Apache Server &gt; Edit the Apache httpd.conf Configuration File</p>
<p>The Apache configuration file opens (httpd.conf)</p>
</li>
<li>
<p>Add this line at the very bottom of the file:</p>
<pre>NameVirtualHost localhost</pre>
<p>Apache will now allow multiple Virtual Hosts to run under <a href="http://localhost/" rel="nofollow">localhost</a></p>
</li>
<li>
<p>Directly under the last line you added in httpd.conf, add the following VirtualHost directive:</p>
<pre>&lt;VirtualHost localhost&gt;
    DocumentRoot &quot;C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/mynewsite&quot;
    ServerName mynewsite
&lt;/VirtualHost&gt;</pre>
</li>
<li>
<p>Save and close httpd.conf</p>
</li>
<li>
<p>Open C:\WINDOWS\system32\drivers\etc\hosts in Notepad</p>
<p>Your Windows hosts file opens</p>
</li>
<li>
<p>You should see this line somewhere in the file:</p>
<pre>127.0.0.1	localhost</pre>
</li>
<li>
<p>Directly below this line, add the following:</p>
<pre>127.0.0.1	mynewsite</pre>
</li>
<li>Save and close hosts</li>
<li>Go to Start &gt; Programs &gt; Apache HTTP Server 2.2.4 &gt; Control Apache Server &gt; Restart</li>
<li>Open mynewsite in your web browser (<a href="http://mynewsite/" rel="nofollow">http://mynewsite/</a>)</li>
<li>If all went well, your browser will show a page with <strong>Index of /</strong></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://signified.com.au/running-multiple-websites-on-apache/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Installing Apache, MySQL and PHP on Windows</title>
		<link>http://signified.com.au/installing-apache-mysql-and-php-on-windows/</link>
		<comments>http://signified.com.au/installing-apache-mysql-and-php-on-windows/#comments</comments>
		<pubDate>Fri, 01 Jun 2007 08:16:00 +0000</pubDate>
		<dc:creator>Robert Love</dc:creator>
		
		<category><![CDATA[Apache]]></category>

		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[This is it! The definitive guide to installing and configuring Apache 2.2.4, MySQL 5.0.27 and PHP 5.2.1 on Microsoft Windows XP (SP2) with support for both MySQL and MySQLi PHP extensions. And, yes, if you follow these instructions to the letter, the software will actually work!]]></description>
			<content:encoded><![CDATA[<p>This is it! The definitive guide to installing and configuring Apache 2.2.4, MySQL 5.0.27 and PHP 5.2.1 on Microsoft Windows XP (SP2) with support for both MySQL and MySQLi PHP extensions.</p>
<p>And, yes, if you follow these instructions to the letter, the software will actually work!</p>
<p>Before getting started with the installations, you&#8217;ll need to download the required software packages - all of which are conveniently listed in the following table.</p>
<table>
<tr>
<th>Where</th>
<th>What</th>
<th>What Exactly</th>
</tr>
<tr>
<td><a rel="nofollow" href="http://httpd.apache.org/download.cgi">Apache 2.2.4</a></td>
<td>Win32 Binary (MSI Installer)</td>
<td>apache_2.2.4-win32-x86-no_ssl.msi</td>
</tr>
<tr>
<td><a rel="nofollow" href="http://dev.mysql.com/downloads/mysql/5.0.html">MySQL 5.0.27</a></td>
<td>Windows Essentials (x86)</td>
<td>mysql-essential-5.0.27-win32.msi</td>
</tr>
<tr>
<td><a rel="nofollow" href="http://www.php.net/downloads.php">PHP 5.2.1</a></td>
<td>PHP 5.2.1 zip package</td>
<td>php-5.2.1-Win32.zip</td>
</tr>
</table>
<h2>Installing Apache</h2>
<ol>
<li>
<p>Double-click <strong>apache_2.2.4-win32-x86-no_ssl.msi</strong></p>
<p>The <strong>Apache HTTP Server 2.2 - Installation Wizard</strong> appears with <strong>Welcome to the Installation Wizard for Apache HTTP Server 2.2.4</strong></p>
<p><a href="http://signified.net/wp-content/uploads/apache224-install-1.png" title="Welcome to the Installation Wizard for Apache HTTP Server 2.2.4" rel="lightbox"><img src="http://signified.net/wp-content/uploads/apache224-install-1.thumbnail.png" alt="Welcome to the Installation Wizard for Apache HTTP Server 2.2.4" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>License Agreement</strong></p>
<p>Ensure &#8220;I accept the terms in the license agreement&#8221; is selected</p>
<p><a href="http://signified.net/wp-content/uploads/apache224-install-2.png" title="License Agreement" rel="lightbox"><img src="http://signified.net/wp-content/uploads/apache224-install-2.thumbnail.png" alt="License Agreement" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Read This First</strong></p>
<p><a href="http://signified.net/wp-content/uploads/apache224-install-3.png" title="Read This First" rel="lightbox"><img src="http://signified.net/wp-content/uploads/apache224-install-3.thumbnail.png" alt="Read This First" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Server Information</strong></p>
<p>Enter the following details:</p>
<p>Network Domain: localhost</p>
<p>Server Domain: localhost</p>
<p>Administrators Email Address: admin@localhost</p>
<p>Ensure &#8220;for All Users, on Port 80, as a Service &#8212; Recommended&#8221; is selected</p>
<p><a href="http://signified.net/wp-content/uploads/apache224-install-4.png" title="Server Information" rel="lightbox"><img src="http://signified.net/wp-content/uploads/apache224-install-4.thumbnail.png" alt="Server Information" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Setup Type</strong></p>
<p>Ensure &#8220;Typical&#8221; is selected</p>
<p><a href="http://signified.net/wp-content/uploads/apache224-install-5.png" title="Setup Type" rel="lightbox"><img src="http://signified.net/wp-content/uploads/apache224-install-5.thumbnail.png" alt="Setup Type" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Destination Folder</strong></p>
<p>Accept the default destination folder (C:\Program Files\Apache Software Foundation\Apache2.2\)</p>
<p><a href="http://signified.net/wp-content/uploads/apache224-install-6.png" title="Destination Folder" rel="lightbox"><img src="http://signified.net/wp-content/uploads/apache224-install-6.thumbnail.png" alt="Destination Folder" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Ready to Install the Program</strong></p>
<p><a href="http://signified.net/wp-content/uploads/apache224-install-7.png" title="Ready to Install the Program" rel="lightbox"><img src="http://signified.net/wp-content/uploads/apache224-install-7.thumbnail.png" alt="Ready to Install the Program" /></a></p>
<p>Click Install</p>
</li>
<li>
<p><strong>Installing Apache HTTP Server 2.2.4</strong></p>
<p><a href="http://signified.net/wp-content/uploads/apache224-install-8.png" title="Installing Apache HTTP Server 2.2.4" rel="lightbox"><img src="http://signified.net/wp-content/uploads/apache224-install-8.thumbnail.png" alt="Installing Apache HTTP Server 2.2.4" /></a></p>
<p>Wait while the Installation Wizard installs Apache</p>
</li>
<li>
<p><strong>Installation Wizard Completed</strong></p>
<p><a href="http://signified.net/wp-content/uploads/apache224-install-9.png" title="Installation Wizard Completed" rel="lightbox"><img src="http://signified.net/wp-content/uploads/apache224-install-9.thumbnail.png" alt="Installation Wizard Completed" /></a></p>
<p>Click Finish</p>
</li>
</ol>
<h2>Testing Your Apache Installation</h2>
<p>In your web browser, go to <a rel="nofollow" href="http://localhost/">http://localhost/</a>. If Apache has been installed successfully, you will see the words <strong>&#8220;It works!&#8221;</strong></p>
<p><a href="http://signified.net/wp-content/uploads/apache224-install-10.png" title="It works!" rel="lightbox"><img src="http://signified.net/wp-content/uploads/apache224-install-10.thumbnail.png" alt="It works!" /></a></p>
<p>The &#8220;It works!&#8221; web page - index.html - is located in the root directory of your Apache installation. The root directory can be found here:</p>
<p>C:\Program Files\Apache Software Foundation\Apache2.2\htdocs</p>
<p><a href="http://signified.net/wp-content/uploads/apache224-install-11.png" title="Root directory of your Apache installation" rel="lightbox"><img src="http://signified.net/wp-content/uploads/apache224-install-11.thumbnail.png" alt="Root directory of your Apache installation" /></a></p>
<h2>Installing MySQL</h2>
<ol>
<li>
<p>Double-click mysql-essential-5.0.27-win32.msi</p>
<p>The <strong>MySQL Server 5.0 - Setup Wizard</strong> appears with <strong>Welcome to the Setup Wizard for MySQL Server 5.0</strong></p>
<p><a href="http://signified.net/wp-content/uploads/mysql5027-install-1.png" title="Welcome to the Setup Wizard for MySQL Server 5.0" rel="lightbox"><img src="http://signified.net/wp-content/uploads/mysql5027-install-1.thumbnail.png" alt="Welcome to the Setup Wizard for MySQL Server 5.0" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Setup Type</strong></p>
<p>Ensure &#8220;Typical&#8221; is selected</p>
<p><a href="http://signified.net/wp-content/uploads/mysql5027-install-2.png" title="Setup Type" rel="lightbox"><img src="http://signified.net/wp-content/uploads/mysql5027-install-2.thumbnail.png" alt="Setup Type" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Ready to Install the Program</strong></p>
<p><a href="http://signified.net/wp-content/uploads/mysql5027-install-3.png" title="Ready to Install the Program" rel="lightbox"><img src="http://signified.net/wp-content/uploads/mysql5027-install-3.thumbnail.png" alt="Ready to Install the Program" /></a></p>
<p>Click Install</p>
</li>
<li>
<p><strong>Installing MySQL Server 5.0</strong></p>
<p><a href="http://signified.net/wp-content/uploads/mysql5027-install-4.png" title="Installing MySQL Server 5.0" rel="lightbox"><img src="http://signified.net/wp-content/uploads/mysql5027-install-4.thumbnail.png" alt="Installing MySQL Server 5.0" /></a></p>
<p>Wait while the Setup Wizard installs MySQL</p>
</li>
<li>
<p><strong>MySQL.com Sign-Up</strong></p>
<p>Ensure &#8220;Skip Sign-Up&#8221; is selected</p>
<p><a href="http://signified.net/wp-content/uploads/mysql5027-install-5.png" title="MySQL.com Sign-Up" rel="lightbox"><img src="http://signified.net/wp-content/uploads/mysql5027-install-5.thumbnail.png" alt="MySQL.com Sign-Up" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Wizard Completed</strong></p>
<p>Ensure &#8220;Configure the MySQL Server now&#8221; is checked</p>
<p><a href="http://signified.net/wp-content/uploads/mysql5027-install-6.png" title="Wizard Completed" rel="lightbox"><img src="http://signified.net/wp-content/uploads/mysql5027-install-6.thumbnail.png" alt="Wizard Completed" /></a></p>
<p>Click Finish</p>
</li>
<li>
<p>The <strong>MySQL Server Instance Configuration Wizard</strong> appears with <strong>Welcome to the MySQL Server Instance Configuration Wizard 1.0.8</strong></p>
<p><a href="http://signified.net/wp-content/uploads/mysql5027-config-1.png" title="Welcome to the MySQL Server Instance Configuration Wizard 1.0.8" rel="lightbox"><img src="http://signified.net/wp-content/uploads/mysql5027-config-1.thumbnail.png" alt="Welcome to the MySQL Server Instance Configuration Wizard 1.0.8" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Please select a configuration type</strong></p>
<p>Ensure &#8220;Standard Configuration&#8221; is selected</p>
<p><a href="http://signified.net/wp-content/uploads/mysql5027-config-2.png" title="Please select a configuration type" rel="lightbox"><img src="http://signified.net/wp-content/uploads/mysql5027-config-2.thumbnail.png" alt="Please select a configuration type" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Please set the Windows options</strong></p>
<p>Ensure &#8220;Install as a Windows Service&#8221; is checked</p>
<p>Ensure &#8220;MySQL&#8221; is selected for Service Name</p>
<p>Ensure &#8220;Launch the MySQL Server automatically&#8221; is checked</p>
<p>Ensure &#8220;Include Bin Directory in Windows PATH&#8221; is checked</p>
<p><a href="http://signified.net/wp-content/uploads/mysql5027-config-3.png" title="Please set the Windows options" rel="lightbox"><img src="http://signified.net/wp-content/uploads/mysql5027-config-3.thumbnail.png" alt="Please set the Windows options" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Please set the security options</strong></p>
<p>Enter and Confirm (retype) your password</p>
<p><a href="http://signified.net/wp-content/uploads/mysql5027-config-4.png" title="Please set the security options" rel="lightbox"><img src="http://signified.net/wp-content/uploads/mysql5027-config-4.thumbnail.png" alt="Please set the security options" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Ready to execute &#8230;</strong></p>
<p><a href="http://signified.net/wp-content/uploads/mysql5027-config-5.png" title="Ready to execute" rel="lightbox"><img src="http://signified.net/wp-content/uploads/mysql5027-config-5.thumbnail.png" alt="Ready to execute" /></a></p>
<p>Click Execute</p>
</li>
<li>
<p><strong>Processing configuration &#8230;</strong></p>
<p><a href="http://signified.net/wp-content/uploads/mysql5027-config-6.png" title="Processing configuration" rel="lightbox"><img src="http://signified.net/wp-content/uploads/mysql5027-config-6.thumbnail.png" alt="Processing configuration" /></a></p>
<p>Wait while the Server Instance Configuration Wizard configures MySQL</p>
<p>Click Finish</p>
</li>
</ol>
<h3>Connection Error</h3>
<p>In some cases (usually when MySQL is being installed over a previous version), the MySQL Server Instance Configuration Wizard will give a <strong>Connection Error</strong> that looks something like this:</p>
<p><a href="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-7.png" title="Connection Error" rel="lightbox"><img src="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-7.thumbnail.png" alt="Connection Error" /></a></p>
<p>If this happens to you:</p>
<ol>
<li>
<p>Go to Start &gt; Programs &gt; MySQL &gt; MySQL Server 5.0 &gt; MySQL Server Instance Config Wizard</p>
<p>The MySQL Server Instance Configuration Wizard appears</p>
<p><a href="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-8.png" title="MySQL Server Instance Configuration Wizard" rel="lightbox"><img src="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-8.thumbnail.png" alt="MySQL Server Instance Configuration Wizard" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Please choose a maintenance option</strong></p>
<p>Ensure &#8220;Reconfigure Instance&#8221; is selected</p>
<p><a href="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-9.png" title="Please choose a maintenance option" rel="lightbox"><img src="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-9.thumbnail.png" alt="Please choose a maintenance option" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Please select a configuration type</strong></p>
<p>Ensure &#8220;Standard Configuration&#8221; is selected</p>
<p><a href="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-10.png" title="Please select a configuration type" rel="lightbox"><img src="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-10.thumbnail.png" alt="Please select a configuration type" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Please set the Windows options</strong></p>
<p>Ensure &#8220;Include Bin Directory in Windows PATH&#8221; is selected</p>
<p><a href="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-11.png" title="Please set the Windows options" rel="lightbox"><img src="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-11.thumbnail.png" alt="Please set the Windows options" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Please set the security options</strong></p>
<p>Ensure &#8220;Modify Security Settings&#8221; is checked</p>
<p>Enter and Confirm (retype) your password</p>
<p><a href="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-12.png" title="Please set the security options" rel="lightbox"><img src="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-12.thumbnail.png" alt="Please set the security options" /></a></p>
<p>Click Next</p>
</li>
<li>
<p><strong>Ready to execute</strong></p>
<p><a href="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-13.png" title="Ready to execute" rel="lightbox"><img src="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-13.thumbnail.png" alt="Ready to execute" /></a></p>
<p>Click Execute</p>
</li>
<li>
<p><strong>Processing configuration &#8230;</strong></p>
<p><a href="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-14.png" title="Processing configuration ..." rel="lightbox"><img src="http://signified.net/wp-content/uploads/2007/04/mysql5027-install-14.thumbnail.png" alt="Processing configuration ..." /></a></p>
<p>Wait while the MySQL Server Instance Configuration Wizard reconfigures MySQL</p>
<p>Click Finish</p>
</li>
</ol>
<h2>Testing Your MySQL Installation</h2>
<ol>
<li>
<p>Go to Start &gt; Programs &gt; MySQL &gt; MySQL Server 5.0 &gt; MySQL Command Line Client</p>
<p>The MySQL Command Line Client appears with a prompt to Enter Password</p>
</li>
<li>
<p>Enter the password you specified during the installation</p>
<p>Press Enter</p>
</li>
<li>
<p>The MySQL Command Line Client will connect to the MySQL Server and produce the following welcome message and mysql prompt:</p>
<pre>Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 3 to server version: 5.0.27-community-nt

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql&gt;</pre>
</li>
</ol>
<h2>Installing PHP</h2>
<ol>
<li>Create a new folder C:\php</li>
<li>Copy the contents of php-5.2.1-Win32.zip to C:\php</li>
<li>On your desktop, right-click My Computer and select Properties</li>
<li>
<p>In the System Properties dialogue box select the Advanced tab</p>
<p><a href="http://signified.net/wp-content/uploads/php521-install-1.png" title="System Properties dialogue box" rel="lightbox"><img src="http://signified.net/wp-content/uploads/php521-install-1.thumbnail.png" alt="System Properties dialogue box" /></a></p>
</li>
<li>Click the Environment Variables button</li>
<li>
<p>In the Environment Variables dialogue box under System variables select Path</p>
<p><a href="http://signified.net/wp-content/uploads/php521-install-2.png" title="Environment Variables dialogue box" rel="lightbox"><img src="http://signified.net/wp-content/uploads/php521-install-2.thumbnail.png" alt="Environment Variables dialogue box" /></a></p>
</li>
<li>Click the Edit button</li>
<li>
<p>In the Edit System Variable dialogue box add C:\php to the Variable value field</p>
<p><a href="http://signified.net/wp-content/uploads/php521-install-3.png" title="Edit System Variable dialogue box" rel="lightbox"><img src="http://signified.net/wp-content/uploads/php521-install-3.thumbnail.png" alt="Edit System Variable dialogue box" /></a></p>
</li>
<li>Click the OK button for all open dialogue boxes</li>
</ol>
<h2>Configuring PHP</h2>
<ol>
<li>In C:\php, copy the file <strong>php.ini-recommended</strong></li>
<li>Rename the <strong>Copy of php.ini-recommended</strong> to <strong>php.ini</strong></li>
<li>Open php.ini in Notepad</li>
<li>
<p>In php.ini, find this line:</p>
<pre>display_errors = Off</pre>
<p>and enable the display of errors by changing the value to &#8220;On&#8221;:</p>
<pre>display_errors = On</pre>
<p><strong>Note:</strong> You wouldn&#8217;t do this in a production environment - this is just for testing and development!</p>
</li>
<li>
<p>In php.ini, find this line:</p>
<pre>extension_dir = "./"</pre>
<p>and specify the directory in which the loadable extensions (modules) reside by changing the value to &#8220;ext&#8221;:</p>
<pre>extension_dir = "ext"</pre>
</li>
<li>
<p>In php.ini, find these lines:</p>
<pre>;extension=php_mysql.dll
;extension=php_mysqli.dll</pre>
<p>and enable both the MySQL and MySQLi extensions by uncommenting the lines:</p>
<pre>extension=php_mysql.dll
extension=php_mysqli.dll</pre>
</li>
<li>
<p>In Windows Explorer, copy the following dll files:</p>
<p><strong>C:\php\libmysql.dll</strong></p>
<p><strong>C:\php\ext\php_mysql.dll</strong></p>
<p><strong>C:\php\ext\php_mysqli.dll</strong></p>
</li>
<li>
<p>Paste the dll files to <strong>C:\WINDOWS\system32</strong></p>
<p><strong>Note:</strong> Most installations don&#8217;t require you to copy libmysql.dll to system32, but some do. So it&#8217;s better to be safe than sorry!</p>
</li>
<li>
<p>Go to Start &gt; Programs &gt; Apache HTTP Server 2.2.4 &gt; Configure Apache Server &gt; Edit the Apache httpd.conf Configuration File</p>
<p>The Apache configuration file opens (httpd.conf)</p>
</li>
<li>
<p>Add the following three lines at the end of the file:</p>
<pre>LoadModule php5_module "C:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php"</pre>
</li>
<li>
<p>In httpd.conf, find this directive:</p>
<pre>&lt;IfModule dir_module&gt;
    DirectoryIndex index.html
&lt;/IfModule&gt;</pre>
<p>Add index.php as a directory index:</p>
<pre>&lt;IfModule dir_module&gt;
    DirectoryIndex index.php index.html
&lt;/IfModule&gt;</pre>
</li>
<li>Save and close httpd.conf</li>
<li>
<p>Go to Start &gt; Programs &gt; Apache HTTP Server 2.2.4 &gt; Control Apache Server &gt; Restart</p>
<p><strong>Note:</strong> You need to restart Apache any time you make changes to the php.ini and/or httpd.conf files</p>
</li>
</ol>
<h2>Testing PHP</h2>
<ol>
<li>Open Notepad and type the following: <code>&lt;?php phpinfo(); ?&gt;</code></li>
<li>Save the file as <strong>info.php</strong> in your web root directory (C:\Program Files\Apache Software Foundation\Apache2.2\htdocs)</li>
<li>Close info.php</li>
<li>
<p>Open info.php in your web browser (<a rel="nofollow" href="http://localhost/info.php">http://localhost/info.php</a>)</p>
<p>If PHP is installed correctly, you will see a table of information pertaining to your PHP installation environment</p>
<p><a href="http://signified.net/wp-content/uploads/php521-info.png" title="phpinfo" rel="lightbox"><img src="http://signified.net/wp-content/uploads/php521-info.thumbnail.png" alt="phpinfo" /></a></p>
</li>
<li>
<p>Open Notepad and type the following:</p>
<pre><code>&lt;?php
$mysqli = new mysqli('localhost', 'root', 'yourpassword', 'test');
if (mysqli_connect_errno()) {
    printf('Connect failed: %s', mysqli_connect_error());
    exit();
}
printf('Host information: %s', $mysqli->host_info);
$mysqli->close();
?&gt;</code></pre>
</li>
<li>Save the file as <strong>mysqli.php</strong> in your web root directory (C:\Program Files\Apache Software Foundation\Apache2.2\htdocs)</li>
<li>Close mysqli.php</li>
<li>
<p>Open mysqli.php in your web browser (<a rel="nofollow" href="http://localhost/mysqli.php">http://localhost/mysqli.php</a>)</p>
<p>If MySQL is enabled, you will see the following output:</p>
<p>&#8220;Host information: localhost via TCP/IP&#8221;</p>
<p><a href="http://signified.net/wp-content/uploads/php521-mysqli.png" title="PHP MySQLi Test" rel="lightbox"><img src="http://signified.net/wp-content/uploads/php521-mysqli.thumbnail.png" alt="PHP MySQLi Test" /></a></p>
</li>
</ol>
<h2>Finished!</h2>
<p>That&#8217;s it, you&#8217;re done. Hopefully it all came together without any major dramas. If not, you have my deepest sympathies. And if that&#8217;s not enough, please leave a comment specifying exactly where it all went pear-shaped for you and I&#8217;ll do my best to get to the bottom of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://signified.com.au/installing-apache-mysql-and-php-on-windows/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lightbox JS WordPress Plugin</title>
		<link>http://signified.com.au/lightbox-js-wordpress-plugin/</link>
		<comments>http://signified.com.au/lightbox-js-wordpress-plugin/#comments</comments>
		<pubDate>Tue, 01 May 2007 08:16:00 +0000</pubDate>
		<dc:creator>Robert Love</dc:creator>
		
		<category><![CDATA[WordPress Plugins]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://signified.net/lightbox-js-wordpress-plugin/</guid>
		<description><![CDATA[The Lightbox JS WordPress Plugin enables your website with Lightbox JS - a simple, unobtrusive script used to overlay images on the current page.]]></description>
			<content:encoded><![CDATA[<p>The Lightbox JS WordPress Plugin enables your website with <a rel="nofollow" href="http://www.huddletogether.com/projects/lightbox2/">Lightbox JS</a> - a simple, unobtrusive script used to overlay images on the current page.</p>
<h2>Example</h2>
<p><a rel="lightbox[aidan]" href="http://farm1.static.flickr.com/153/377867646_8f157f111b.jpg" title="Aidan Ready to Roll"><img src="http://farm1.static.flickr.com/153/377867646_8f157f111b_t.jpg" width="100" height="75" alt="Aidan Ready to Roll" /></a><a rel="lightbox[aidan]" href="http://farm1.static.flickr.com/148/401554163_c07a64f25b.jpg" title="Aidan Plays on the Grass at the McGintys"><img src="http://farm1.static.flickr.com/148/401554163_c07a64f25b_t.jpg" width="100" height="75" alt="Aidan Plays on the Grass at the McGintys" /></a><a rel="lightbox[aidan]" href="http://farm1.static.flickr.com/123/411106301_cfdfbd1c48.jpg" title="Tummy-Time"><img src="http://farm1.static.flickr.com/123/411106301_cfdfbd1c48_t.jpg" width="100" height="75" alt="Tummy-Time" /></a></p>
<h2>Download</h2>
<p><a href="http://signified.net/wp-content/uploads/2007/04/sd-lightbox-js-2_02.zip" title="Lightbox JS WordPress Plugin 2.02">sd-lightbox-js-2_02.zip</a> (16Kb)</p>
<h2>Requirements</h2>
<ol>
<li><a href="http://signified.net/prototype-wordpress-plugin/">Prototype WordPress Plugin</a></li>
<li><a href="http://signified.net/scriptaculous-wordpress-plugin/">script.aculo.us WordPress Plugin</a></li>
</ol>
<h2>Features</h2>
<ul>
<li>Fully customisable JavaScript, CSS and Images via Options interface</li>
<li>Full separation of the Prototype JavaScript Framework and the script.aculo.us JavaScript Library from the Lightbox JS script</li>
</ul>
<h2>Installation</h2>
<ol>
<li>Upload the plugin to the &#8216;wp-content/plugins&#8217; folder in your WordPress directory</li>
<li>Activate the plugin via the &#8216;Plugins&#8217; admin panel</li>
<li>Go to Options > Lightbox JS</li>
<li>Under the heading &#8216;Edit JavaScript (lightbox.js)&#8217; find the &#8216;Configuration&#8217; section and update the following two lines:
<ol>
<li><code>var fileLoadingImage = "images/loading.gif";</code></li>
<li><code>var fileBottomNavCloseImage = "images/closelabel.gif";</code></li>
</ol>
<p>The above two lines need to point to the Lightbox JS images directory for your website. For example:</p>
<ol>
<li><code>var fileLoadingImage = "http://yoursite.net/wp-content/plugins/sd-lightbox-js/images/loading.gif";</code></li>
<li><code>var fileBottomNavCloseImage = "http://yoursite.net/wp-content/plugins/sd-lightbox-js/images/closelabel.gif";</code></li>
</ol>
</li>
</ol>
<p><strong>Note:</strong> After downloading the Lightbox JS WordPress Plugin, extract the ZIP package and open the readme.txt file. The readme file contains full instructions.</p>
]]></content:encoded>
			<wfw:commentRss>http://signified.com.au/lightbox-js-wordpress-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>script.aculo.us WordPress Plugin</title>
		<link>http://signified.com.au/scriptaculous-wordpress-plugin/</link>
		<comments>http://signified.com.au/scriptaculous-wordpress-plugin/#comments</comments>
		<pubDate>Sun, 01 Apr 2007 08:16:00 +0000</pubDate>
		<dc:creator>Robert Love</dc:creator>
		
		<category><![CDATA[WordPress Plugins]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://signified.net/scriptaculous-wordpress-plugin/</guid>
		<description><![CDATA[The script.aculo.us is a plugin that enables your website with the script.aculo.us JavaScript Library. script.aculo.us provides you with easy-to-use, cross-browser user interface JavaScript libraries to make your web sites and web applications fly.]]></description>
			<content:encoded><![CDATA[<p>The script.aculo.us WordPress Plugin enables your website with the <a rel="nofollow" href="http://script.aculo.us/">script.aculo.us</a> JavaScript Library. script.aculo.us provides you with easy-to-use, cross-browser user interface JavaScript libraries to make your web sites and web applications fly.</p>
<h2>Download</h2>
<p><a href="http://signified.net/wp-content/uploads/2007/04/sd-scriptaculous-1_7_0.zip" title="script.aculo.us WordPress Plugin 1.7.0">sd-scriptaculous-1_7_0.zip</a> (37Kb)</p>
<h2>Requirements</h2>
<p>This plugin requires the <a href="http://signified.net/prototype-wordpress-plugin/">Prototype WordPress Plugin</a>.</p>
<h2>Features</h2>
<ul>
<li>Ability to load only the scripts you require</li>
<li>Full separation of the Prototype JavaScript Framework from the script.aculo.us JavaScript Library</li>
</ul>
<h2>Installation</h2>
<ol>
<li>Upload the plugin to the &#8216;wp-content/plugins&#8217; folder in your WordPress directory</li>
<li>Activate the plugin via the &#8216;Plugins&#8217; admin panel</li>
<li>Go to Options > script.aculo.us and check the scripts you want to load (optional)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://signified.com.au/scriptaculous-wordpress-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Prototype WordPress Plugin</title>
		<link>http://signified.com.au/prototype-wordpress-plugin/</link>
		<comments>http://signified.com.au/prototype-wordpress-plugin/#comments</comments>
		<pubDate>Thu, 01 Mar 2007 08:16:00 +0000</pubDate>
		<dc:creator>Robert Love</dc:creator>
		
		<category><![CDATA[WordPress Plugins]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://signified.net/prototype-wordpress-plugin/</guid>
		<description><![CDATA[The Prototype WordPress Plugin enables your website with the Prototype JavaScript Framework. Prototype is a JavaScript Framework that aims to ease development of dynamic web applications. Featuring a unique, easy-to-use toolkit for class-driven development and the nicest Ajax library around, Prototype is quickly becoming the codebase of choice for web application developers everywhere.]]></description>
			<content:encoded><![CDATA[<p>The Prototype WordPress Plugin enables your website with the <a rel="nofollow" href="http://prototypejs.org/">Prototype</a> JavaScript Framework. Prototype is a JavaScript Framework that aims to ease development of dynamic web applications. Featuring a unique, easy-to-use toolkit for class-driven development and the nicest Ajax library around, Prototype is quickly becoming the codebase of choice for web application developers everywhere.</p>
<h2>Download</h2>
<p><a href="/wp-content/uploads/2008/02/sd-prototype-1_6_0_2.zip" title="Prototype WordPress Plugin 1.6.0.2">Download Prototype WordPress Plugin 1.6.0.2</a> (31 Kb)</p>
<h2>Installation</h2>
<ol>
<li>Upload the plugin to the &#8216;wp-content/plugins&#8217; folder in your WordPress directory</li>
<li>Activate the plugin via the &#8216;Plugins&#8217; admin panel</li>
</ol>
<h2>Archives</h2>
<h3>1.5</h3>
<p><a href="http://signified.net/wp-content/uploads/2007/04/sd-prototype-1_5_0.zip" title="Prototype WordPress Plugin 1.5.0">Download Prototype WordPress Plugin 1.5.0</a> (18 Kb)</p>
]]></content:encoded>
			<wfw:commentRss>http://signified.com.au/prototype-wordpress-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Analytics WordPress Plugin</title>
		<link>http://signified.com.au/google-analytics-wordpress-plugin/</link>
		<comments>http://signified.com.au/google-analytics-wordpress-plugin/#comments</comments>
		<pubDate>Thu, 01 Feb 2007 08:16:00 +0000</pubDate>
		<dc:creator>Robert Love</dc:creator>
		
		<category><![CDATA[WordPress Plugins]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://signified.net/google-analytics-wordpress-plugin/</guid>
		<description><![CDATA[The Google Analytics WordPress Plugin adds your Google Analytics tracking code to your WordPress website without having to modify your theme. Simply install the Google Analytics WordPress Plugin, enter your account code in the Google Analytics Options page, and your tracking code will be automatically inserted into every page on your website.]]></description>
			<content:encoded><![CDATA[<p>The Google Analytics WordPress Plugin adds your Google Analytics tracking code to your WordPress website without having to modify your theme. Simply install the Google Analytics WordPress Plugin, enter your account code in the Google Analytics Options page, and your tracking code will be automatically inserted into every page on your website.</p>
<h2>Download</h2>
<p><a href="http://signified.net/wp-content/uploads/sd-google-analytics-1_0.zip" title="Google Analytics WordPress Plugin">sd-google-analytics-1_0.zip</a> (3Kb)</p>
<h2>Installation</h2>
<ol>
<li>Upload the plugin to the &#8216;wp-content/plugins&#8217; folder in your WordPress directory</li>
<li>Activate the plugin via the &#8216;Plugins&#8217; admin panel</li>
<li>Go to Options &gt; Google Analytics and enter your Google Analytics user account code (_uacct)</li>
</ol>
<p><strong>Note:</strong> After downloading the Google Analytics WordPress Plugin, extract the ZIP package and open the readme.txt file. The readme file contains full instructions and an FAQ.</p>
<h2>Where can I find my user account code?</h2>
<p>Your user account code takes the form <code>UA-xxxx-x</code>. To access your user account code:</p>
<ol>
<li>Sign in to <a rel="nofollow" href="http://www.google.com/analytics/">Google Analytics</a></li>
<li>From the Analytics Settings page, find the profile for which you would like to retrieve the user account code. Please note that your user account code is profile-specific.</li>
<li>From that profile&#8217;s Settings column, click Edit</li>
<li>At the top right of the Main Website Profile Information box, click Check Status</li>
<li>Your user account code can be copied and pasted from the text box containing your tracking code in the Instructions for adding tracking section</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://signified.com.au/google-analytics-wordpress-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blueprint WordPress Theme</title>
		<link>http://signified.com.au/blueprint-wordpress-theme/</link>
		<comments>http://signified.com.au/blueprint-wordpress-theme/#comments</comments>
		<pubDate>Mon, 01 Jan 2007 08:16:00 +0000</pubDate>
		<dc:creator>Robert Love</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[WordPress Themes]]></category>

		<guid isPermaLink="false">http://signified.net/blueprint-wordpress-theme/</guid>
		<description><![CDATA[Blueprint is a WordPress Theme for the discerning. With such features as 100% valid and web standards compliant markup and style, semantic markup (the <code>&#60;h1&#62;</code> element is used for post and page titles - not the site name), cross-linking of all content for enhanced usability and ethical search engine optimisation (SEO), more informative and usable search results, Dublin Core metadata, widget-readiness and more, Blueprint is for those that demand only the best.]]></description>
			<content:encoded><![CDATA[<p>Blueprint is a WordPress Theme for the discerning.</p>
<ul>
<li><a href="http://themes.wordpress.net/download.php?theme=2498" title="Download Blueprint WordPress Theme">Download</a></li>
<li><a href="http://themes.wordpress.net/testrun/?wptheme=2498" title="Test run Blueprint WordPress Theme">Test run</a></li>
</ul>
<h2>Features</h2>
<ul>
<li>100% valid and web standards compliant markup and style</li>
<li>Semantic markup (the <code>&lt;h1&gt;</code> element is used for post and page titles - not the site name)</li>
<li>Cross-linking of all content for enhanced usability and ethical search engine optimisation (SEO)</li>
<li>Informative and usable search results</li>
<li>Dublin Core metadata</li>
<li>Widget-readiness</li>
<li>and more&#8230;</li>
</ul>
<h2>Installation</h2>
<ol>
<li>Upload `blueprint` to the `/wp-content/themes/` directory</li>
<li>Activate the theme through the &#8216;Presentation&#8217; menu in WordPress</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://signified.com.au/blueprint-wordpress-theme/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
