<?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"
	>

<channel>
	<title>damontimm.com</title>
	<atom:link href="http://blog.damontimm.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.damontimm.com</link>
	<description></description>
	<pubDate>Sat, 15 Nov 2008 01:34:55 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>How to: Retreive Custom Field Data in a Wordpress Post</title>
		<link>http://blog.damontimm.com/how-to-retreive-custom-field-data-in-a-wordpress-post/</link>
		<comments>http://blog.damontimm.com/how-to-retreive-custom-field-data-in-a-wordpress-post/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 22:00:39 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[how to]]></category>

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

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

		<guid isPermaLink="false">http://www.damontimm.com/blog/?p=72</guid>
		<description><![CDATA[Purpose: use Wordpress&#8217;s &#8220;Custom Field&#8221; key/data pairs to store and retrieve specific post information and display it in your own custom templates.

how this works
I like to store post information in the form of key/data pairs utilizing Wordpress&#8217;s &#8220;Custom Fields&#8221; for posts.  You can make up any particular key/data pair you desire &#8212; I choose, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Purpose:</strong> use Wordpress&#8217;s &#8220;Custom Field&#8221; key/data pairs to store and retrieve specific post information and display it in your own custom templates.</p>
<p><span id="more-72"></span></p>
<h3>how this works</h3>
<p>I like to store post information in the form of key/data pairs utilizing Wordpress&#8217;s &#8220;Custom Fields&#8221; for posts.  You can make up any particular key/data pair you desire &#8212; I choose, in this instance, to use key/data pairs to supplement some event information in some of my posts.  You can see an example of this at <a href="http://www.rosaleeshow.com/2008/10/12/indianapolis-in-2/">rosaleeshow.com</a>.</p>
<p>(To implement this, you will need some familiarity with customizing a wordpress theme.)</p>
<p>First, I created a function that takes an array of keys as an argument; these are the key values the function will search for in the post meta data looking for custom field information.  If a matching key is found, it will display that value in a definition list.  </p>
<p>I used this function called <code>eventmetadl()</code>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
</pre></td><td class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #666666; font-style: italic;">//first argument: current post; </span>
      <span style="color: #666666; font-style: italic;">//second argument, array of keys to search through</span>
<span style="color: #000000; font-weight: bold;">function</span> eventmetadl<span style="color: #009900;">&#40;</span><span style="color: #000088;">$postID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$metaArray</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
&nbsp;
  <span style="color: #666666; font-style: italic;">//this array will hold the key/data if matches are found</span>
  <span style="color: #000088;">$metaList</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
  <span style="color: #666666; font-style: italic;">//search through each item passed to the function </span>
  <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$metaArray</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$meta</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">//for each key, get the data</span>
    <span style="color: #000088;">$metadata</span> <span style="color: #339933;">=</span> get_post_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$postID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$meta</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>; 
&nbsp;
    <span style="color: #666666; font-style: italic;">//if there is data then add that key/data to the list</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$metadata</span> <span style="color: #339933;">!=</span> <span style="color: #000000; font-weight: bold;">NULL</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
      <span style="color: #000088;">$metaList</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;$meta&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$metadata</span>; 
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">//if there is a list of meta data then:</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$metaList</span> <span style="color: #339933;">!=</span> <span style="color: #000000; font-weight: bold;">NULL</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
    <span style="color: #990000;">echo</span> <span style="color: #0000ff;">&quot;&lt;dl&gt;&quot;</span>; <span style="color: #666666; font-style: italic;">//open the definition list, etc</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">//go through each item and print title/defition</span>
    <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$metaList</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$dt</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$dd</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
      <span style="color: #990000;">echo</span> <span style="color: #0000ff;">&quot;&lt;dt&gt;&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$dt</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;:&lt;/dt&gt;&lt;dd&gt;&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$dd</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;/dd&gt;&quot;</span>;
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #990000;">echo</span> <span style="color: #0000ff;">&quot;&lt;/dl&gt;&quot;</span>; <span style="color: #666666; font-style: italic;">// close the definition list</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Then, inside my <code>sidebar.php</code> file in my theme, I create an array of the keys I am looking for and call my function to create the definition list.  If no keys are found to match, no list is created.</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #666666; font-style: italic;">// in my sidebar.php file - could be in any template</span>
  <span style="color: #000088;">$metatags</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Location&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Ticket Price&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Contact&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Website&quot;</span><span style="color: #009900;">&#41;</span>;
  eventmetadl<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$metatags</span><span style="color: #009900;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>I have used this technique with considerable success &#8212; however, I am sure I stole the idea from someone else.  Thanks to that person, wherever they may be.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.damontimm.com/how-to-retreive-custom-field-data-in-a-wordpress-post/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How To: Install MacPorts on OS X Leopard (10.5)</title>
		<link>http://blog.damontimm.com/how-to-install-macports-on-os-x-leopard-105/</link>
		<comments>http://blog.damontimm.com/how-to-install-macports-on-os-x-leopard-105/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 12:58:56 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[how to]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.damontimm.com/blog/?p=43</guid>
		<description><![CDATA[Purpose: install MacPorts on OS X Leopard (10.5) to gain access to a host of open source applications and tools that make working on the Mac as cool as can be.  Using MacPorts makes it easy to install applications you would otherwise have to build from source &#8212; which can be difficult for folks [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Purpose:</strong> install <a href="http://macports.org">MacPorts</a> on OS X Leopard (10.5) to gain access to a host of open source applications and tools that make working on the Mac as cool as can be.  Using MacPorts makes it easy to install applications you would otherwise have to build from source &#8212; which can be difficult for folks like me, who don&#8217;t understand what the hell they are doing in the first place.</p>
<p><span id="more-43"></span></p>
<h3>Install MacPorts</h3>
<p>First, we&#8217;ll need to make sure you have &#8220;XCode Tools&#8221; installed on your Mac &#8212; XCode Tools install all the programs needed to build applications from source.  It comes standard with all Macs, however, it isn&#8217;t installed by default, so you&#8217;ll need your installation DVD (or you can <a href="http://developer.apple.com/technology/xcode.html">download them</a>).  From the DVD, go to the &#8220;Optional Install&#8221; folder and then &#8220;XCode Tools&#8221; and run the installer package.</p>
<p>Second, we&#8217;ll have to download and install the MacPorts from: <a href="http://macports.org/install.php">http://macports.org/install.php</a>.  Choose a .dmg disk image for whichever version of OS X you are using. </p>
<p>Third, after MacPorts has been installed, we&#8217;ll need to update our <code>PATH</code> variable in the Terminal to be able to find the MacPorts program (which is called <code>port</code>).  If you have your own way of doing this, go for it &#8212; however, I created a <code>~/.bash_profile</code> file to accomplish this task.  If you don&#8217;t already have a profile file, you can do this by entering the following in the terminal (I also added two other common places programs get installed on the command line that save me trouble down the road):</p>
<ul class="terminal">
<li><code>$ echo "export PATH=/usr/local/bin/:/usr/local/sbin/:/opt/local/bin/:/opt/local/sbin/:$PATH" >> ~/.bash_profile</code></li>
</ul>
<p>Restart the Terminal program for these changes to take effect.  If this has been accomplished successfully, then you should be able to run (again in the Terminal) the following for a self-update and it should work:</p>
<ul class="terminal">
<li><code>$ sudo port -v selfupdate</code></li>
</ul>
<p>If nothing happens and, instead, you get an error that says: <code>-bash: port: command not found</code>, that means your <code>PATH</code> variable wasn&#8217;t set correctly.  If this is the first time you are running a command using <code>sudo</code> you&#8217;ll get a warning saying something to the effect of: if you don&#8217;t know what you are doing, turn back now.  Ignore this warning.</p>
<h3>What&#8217;s Next</h3>
<p>With MacPorts installed by itself, nothing much is going to change.  But you&#8217;ll be able to use it to install open source applications that are very exciting (like lame, flac, ffmpeg, gimp, etc).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.damontimm.com/how-to-install-macports-on-os-x-leopard-105/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How To: Network Trash on Ubuntu File Server (NAS) with SFTP (SSH + Fuse) and AFP (netatalk)</title>
		<link>http://blog.damontimm.com/network-trash-ubuntu-file-server-nas-sftp-ssh-fuse-afp-netatalk/</link>
		<comments>http://blog.damontimm.com/network-trash-ubuntu-file-server-nas-sftp-ssh-fuse-afp-netatalk/#comments</comments>
		<pubDate>Sun, 22 Apr 2007 13:13:50 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[how to]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://www.damontimm.com/blog/network-trash-ubuntu-file-server-nas-sftp-ssh-fuse-afp-netatalk/</guid>
		<description><![CDATA[Purpose: create a Network Trash System for a Ubuntu Linux file server (NAS).  Reason being: by default, files deleted on file server go away permanently (as they do when you run rm from the command line).  On my Mac (OS 10.4) and on Ubuntu (7.04) if I connect either via AFP (through netatalk) [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Purpose:</strong> create a Network Trash System for a Ubuntu Linux file server (NAS).  Reason being: by default, files deleted on file server go away permanently (as they do when you run <code>rm</code> from the command line).  On my Mac (OS 10.4) and on Ubuntu (7.04) if I connect either via AFP (through <a href="http://www.damontimm.com/blog/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/">netatalk</a>) or SSH (SFTP through Fuse) and delete a file, that file is gone forever!  This is a problem, because often I find I want them back.  Enter: <a href="http://pages.stern.nyu.edu/~marriaga/software/libtrash/">libtrash</a>!</p>
<p><span id="more-37"></span></p>
<p>Tested on: Ubuntu 6.06.1 and 6.10.</p>
<h3>install libtrash and test it out</h3>
<p>First step is to install libtrash from aptitude:</p>
<ul class="terminal">
<li><code>$ sudo aptitude update &#038;&#038; sudo aptitude install libtrash</code></li>
</ul>
<p>Unlike a lot of software on linux, installing it isn&#8217;t quite enough to get it running.  I think this is because it is a lib package and not an actual program &#8212; it seems to be meant to be used by other programs in the background and not directly interact with the user (in the way that I want it to).</p>
<p>To test it out briefly, run the following to start the libtrash engine in your terminal prompt:</p>
<ul class="terminal">
<li><code>$ export LD_PRELOAD=/usr/lib/libtrash/libtrash.so.2.4</code></li>
</ul>
<p>You&#8217;ll notice the <code>.2.4</code> at the end of the first line &#8212; that may change, I would imagine, if libtrash is upgraded.  I recommend when you type in this line to hit the TAB key at or around <code>.so</code> to have it automatically fill in the rest.  (And remember what it is, because you will need to use it later.)  After the above command has run, you can do a little test (the touch command doesn&#8217;t seem to work, so create a real file).  Once you&#8217;ve created the file, delete it, and it should be in your <code>~/Trash</code> folder.</p>
<p>If it isn&#8217;t working at this point, check out the documentation at: <code>/usr/share/doc/libtrash/</code></p>
<p>To make sure libtrash is running every time you login via the terminal (command prompt) be sure to edit in the following line:</p>
<ul class="terminal">
<li><code>$ sudo nano /etc/profile</code></li>
</ul>
<ol class="code">
<li><code>#/etc/profile: system-wide .profile file for the Bourne shell (sh(1))
<li><code># and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).</code></li>
<li></li>
<li><code><strong>export LD_PRELOAD=/usr/lib/libtrash/libtrash.so.2.4</strong></code></li>
<li></li>
<li><code>[ ... ]</code></li>
</ol>
<p>Now you are all set in the terminal.</p>
<p>There are a few more steps that need to be taken in order to begin utilizing Trash folders for the users on your system.  For each method of connecting/utilizing the files on the server (through the command line, through <a href="#ssh">sshFS</a>, or <a href="#afp">AFP</a>), the LD_PRELOAD option needs to be called for libtrash.  Also, I recommend you use one of the Trash cleaning scripts (<a href="#cron">outlined below</a>).</p>
<h3 id="ssh">using libtrash with SFTP (sshFS)</h3>
<p>I like to mount my home server remotely using sshFS (which utilizes FUSE).  sshFS  can be used on the Mac through the MacFUSE project or on Ubuntu through Places/Go to Server Menu on 7.04).  To initialize libtrash, we need to modify which script is called when the file system is first mounted to ensure that libtrash is started prior to mounting.</p>
<p>NOTE: this assumes you are using openssh-server.</p>
<p>Create a script in nano with the following text in the following location:</p>
<ul class="terminal">
<li><code>$ sudo nano /usr/lib/openssh/libtrash-sftp-server</code></li>
</ul>
<p>In nano, enter the following code and then save the file:</p>
<ol class="code">
<li><code>#!/bin/bash</code></li>
<li><code>export LD_PRELOAD=/usr/lib/libtrash/libtrash.so.2.4</code></li>
<li><code>/usr/lib/openssh/sftp-server</code></li>
</ol>
<p>Change permissions to make it executable:</p>
<ul class="terminal">
<li><code>sudo chmod +x /usr/lib/openssh/libtrash-sftp-server</code></li>
</ul>
<p>Then open the configuration file for ssh and make the following change near the very end of the file (comment out the original and add your own):</p>
<ul class="terminal">
<li><code>$ sudo nano /etc/ssh/sshd_config </code></li>
</ul>
<ol class="code" start="73">
<li><code>[ ... ]</code></li>
<li></li>
<li><code><strong>#Subsystem sftp /usr/lib/openssh/sftp-server</strong></code></li>
<li><code><strong>Subsystem sftp /usr/lib/openssh/libtrash-sftp-server</strong></code></li>
<li></li>
<li><code>UsePAM yes</code></li>
</ol>
<p>Restart your ssh server and then, when you connect via sshFS (in Ubuntu go to Places < Connect to Server and choose a SFTP (SSH) server; on the Mac, you will need MacFuse and SSHFS) you'll be using your ~/Trash folder.</p>
<ul class="terminal">
<li><code>$ sudo /etc/init.d/ssh restart</code></li>
</ul>
<h3 id="afp">using libtrash with AFP (netatalk)</h3>
<p>We need to edit one file in a really strange place in order for this to work.  You probably could make a backup copy, if you are afraid of messing something up.</p>
<ul class="terminal">
<li><code>$ sudo nano /etc/init.d/netatalk</code></li>
</ul>
<p>In the middle of this file, you should find this patch of code; insert the highlighted text where it lies:</p>
<ol class="code" start="62">
<li><code>case "$1" in</code></li>
<li><code>&nbsp;&nbsp;start)</code></li>
<li><code>&nbsp;&nbsp;&nbsp;&nbsp;<strong>export LD_PRELOAD=/usr/lib/libtrash/libtrash.so.2.4</strong></code></li>
<li><code>&nbsp;&nbsp;&nbsp;&nbsp;if test "x${ATALK_BGROUND}" = "xyes"; then</code></li>
<li><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "Starting AppleTalk services in the background."</code></li>
<li><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;atalk_startup >/dev/null &#038;</code></li>
<li><code>&nbsp;&nbsp;&nbsp;&nbsp;else</code></li>
<li><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo -n "Starting AppleTalk services (this will take a while): "</code></li>
<li><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;atalk_startup</code></li>
<li><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "."</code></li>
<li><code>&nbsp;&nbsp;&nbsp;&nbsp;fi</code></li>
<li><code>&nbsp;&nbsp;;;</code></li>
</ol>
<p>After, simply restart netatalk.  You may always want to look at how to <a href="http://www.damontimm.com/blog/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/">securely authenticate your user&#8217;s login with netatalk</a> as well.</p>
<ul class="terminal">
<li><code>$ sudo /etc/init.d/netatalk restart</code></li>
</ul>
<h3 id="cron">how to empty the trash automatically</h3>
<p>If you look in <code>/usr/share/doc/libtrash</code> you will find a lot of interesting information as well as some examples.  In the examples directory there are scripts for cleaning your trash can (<code>/usr/share/doc/libtrash/examples/cleanTrash/</code>).  I like strash the best.  If you do this, you can extract the script, install it to a usable path, and setup the man file (so you can read about its cleverness).</p>
<ul class="terminal">
<li><code>$ mkdir -p ~/src</code></li>
<li><code>$ cd ~/src</code></li>
<li><code>$ cp /usr/share/doc/libtrash/examples/cleanTrash/strash-0.9.tar.gz ~/src/strash.tar.gz</code></li>
<li><code>$ tar -xvf strash.tar.gz</code></li>
<li><code>$ sudo cp ~/src/strash-0.9/strash /usr/sbin/strash</code></li>
<li><code>$ sudo cp ~/src/strash-0.9/strash.8 /usr/share/man/man8/strash.8</code></li>
</ul>
<p>You can read the man page for strash now, which will show you all the nifty options.  I added a line to my root crontab (by running: <code>sudo crontab -e</code>) that deletes all files over one month old and will remove files (oldest first) when the total size of the ~/Trash folder is greater than 5GB:</p>
<ol class="code">
<li><code># m h  dom mon dow   command</code></li>
<li><code><strong>30 01 * * * /usr/sbin/strash &#8211;age 1M &#8211;size 5G</strong></code></li>
</ol>
<p>Seems to work well.  Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.damontimm.com/network-trash-ubuntu-file-server-nas-sftp-ssh-fuse-afp-netatalk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to: Install Netatalk (AFP) on Ubuntu with Encrypted Authentication</title>
		<link>http://blog.damontimm.com/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/</link>
		<comments>http://blog.damontimm.com/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/#comments</comments>
		<pubDate>Sun, 08 Apr 2007 20:42:02 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[how to]]></category>

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.damontimm.com/blog/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/</guid>
		<description><![CDATA[Purpose: Install Netatalk (AFP) on Ubuntu with encrypted authentication (using OpenSSL), which is not enabled by default with the Ubuntu netatalk package.  By default, the package installed from the Ubuntu universal repositories will transmit your password via clear text (you&#8217;ll know this because Mac OS X Tiger will throw a warning and Leopard won&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Purpose:</strong> Install <a href="http://netatalk.sourceforge.net">Netatalk</a> (AFP) on Ubuntu with encrypted authentication (using OpenSSL), which is not enabled by default with the Ubuntu netatalk package.  By default, the package installed from the Ubuntu universal repositories will transmit your password via clear text (you&#8217;ll know this because Mac OS X Tiger will throw a warning and Leopard won&#8217;t do anything useful at all).  </p>
<p><span id="more-36"></span></p>
<p>This is because, apparently, <a href="http://it.slashdot.org/comments.pl?sid=180016&#038;cid=14905489">OpenSSL has a license that is incompatible with Debian&#8217;s GPL</a>.  Regardless: clear text is bad; encryption is good.  And since Ubuntu doesn&#8217;t package netatalk with the appropriate encryption support, one must do it oneself.  </p>
<p><em>Updated 11.10.08: Added new set of instructions for Intrepid Ibex (8.10); original set should still be compatible with 6.06, 7.04, 7.10, and 8.06.</em></p>
<h3>about this guide</h3>
<p>When I first found that Ubuntu&#8217;s netatalk package didn&#8217;t support encrypted authentication, I tried to compile netatalk from the source.  I didn&#8217;t get very far.  Throwing up my hands in frustration, I spent some more time on google and <a href="http://ubuntuforums.org/showthread.php?t=101823&#038;page=2">found some ideas at the Ubuntu Forums</a>.  Pulling it all together, with ideas and fixes from comments (below), this is what I came up with (which I think is a lot easier than building from source).  </p>
<h3>steps to follow</h3>
<p><em>NOTE FOR 08.10 USERS (Nov 11, 2008)</em>: I had to modify these steps to get this to work in Ibex (8.10).  The original version follows with the part that had to be changed in <strong style="color: red;">red</strong> &#8212; so follow all the steps up to where you see red, then jump to the specific steps outlined after for 8.10.  For folks using an older version of Ubuntu, ignore the red!</p>
<ul class="terminal">
<li><code>$ mkdir -p ~/src/netatalk</code></li>
<li><code>$ cd ~/src/netatalk</code></li>
<li><code>$ sudo aptitude install devscripts cracklib2-dev dpkg-dev libssl-dev</code></li>
<li><code>$ apt-get source netatalk</code></li>
<li><code>$ sudo apt-get build-dep netatalk</code></li>
<li><code>$ cd netatalk-2.0.3</code></li>
<li><code><strong style="color: red;">$ sudo su</strong></code></li>
<li><code><strong style="color: red;"># DEB_BUILD_OPTIONS=ssl sudo dpkg-buildpackage -us -uc</strong></code></li>
<li><code><strong style="color: red;"># debi</strong></code></li>
<li><code><strong style="color: red;"># exit</strong></code></li>
<li><code>$ echo "netatalk hold" | sudo dpkg --set-selections</code></li>
</ul>
<p>The basic trend of this set of operations is to: create a directory where all the messy files can be stored, download necessary packages, get the netatalk source, compile the source with the ssl option, install the package, then tell Ubuntu never to update the package (because if it did, it would break).  </p>
<p>Settings for the netatalk service can be found on your Ubuntu machine at <code>/etc/netatalk/</code>.  There are a couple configuration files in there with instructions.  Good luck.</p>
<h3>replacement steps for 8.10</h3>
<p>If you are using 8.10, you&#8217;ll need to do everything listed above up until the <strong class="codehighlight">red portion</strong> and then, in lieu of that, do the following (explanation follows):</p>
<ul class="terminal">
<li><code>$ wget http://blog.damontimm.com/wp-content/uploads/2008/11/debianrules.patch</code></li>
<li><code>$ patch -R -b debian/rules debianrules.patch </code></li>
<li><code>$ sudo dpkg-buildpackage -us -uc</code></li>
<li><code>$ sudo debi</code></li>
</ul>
<p>In 8.10, it seems that passing the <code>DEB_BUILD_OPTIONS</code> variable isn&#8217;t enough; it was <a href="http://blog.damontimm.com/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/#comment-2892">suggested</a> in a <a href="http://blog.damontimm.com/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/#comment-3691">couple</a> of <a href="http://blog.damontimm.com/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/#comment-3692">comments</a> that by manually altering the <code>debian/rules</code> file one could circumvent this annoyance and have it compile correctly.</p>
<p>What you are doing above is downloading the patch file I created of my <code>debian/rules</code> file (to prevent any errors in typing it out yourself &#8212; it is fussy), patching your file, and then building the package after this.  This works fine for me.  Here is the <a href="http://blog.damontimm.com/wp-content/uploads/2008/11/debianrules.patch">patch</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="patch" style="font-family:monospace;">--- /home/damon/src/netatalk/netatalk-2.0.3/debian/rules	2008-11-10 16:02:41.000000000 -0500
+++ /home/damon/src/netatalk/netatalk-2.0.3/debian/rules-original	2008-11-10 15:52:41.000000000 -0500
@@ -49,14 +49,19 @@
 DEB_CONFIGURE_EXTRA_FLAGS += --disable-slp --disable-zeroconf
 endif
&nbsp;
-#modified portion begins
-DEB_CONFIGURE_EXTRA_FLAGS += --with-ssl-dir=/usr/include/openssl	\
-	--with-cracklib=/var/cache/cracklib/cracklib_dict		\
+# Conditionally avoid or include ssl-related options
+ifneq (,$(findstring ssl,$(DEB_BUILD_OPTIONS)))
+DEB_CONFIGURE_EXTRA_FLAGS += --with-ssl-dir			\
+	--with-cracklib=/var/cache/cracklib/cracklib_dict	\
 	--enable-pgp-uam
 DEB_DH_GENCONTROL_ARGS := -- -Vssl:Recommends=&quot;, cracklib-runtime, libpam-cracklib&quot;
 uamlist = uams_dhx.so,uams_clrtxt.so,uams_randnum.so
 pamfile = netatalk.pam-ssl
-#modified portion ends
+else
+DEB_CONFIGURE_EXTRA_FLAGS += --without-ssl-dir
+uamlist = uams_clrtxt.so,uams_randnum.so
+pamfile = netatalk.pam
+endif
&nbsp;
 # Cheat autotools (as CDBS lack support for autotools options)
 post-patches::</pre></div></div>

<p>Changing <code>debian/rules</code> ensures that Netatalk is built with SSL support &#8212; hopefully this works well with your system!  Leave a comment if it does &#8212; I&#8217;ve only tested it a couple times.  Am curious if the patch will work with a 64-bit version&#8230;</p>
<h3>other tips and tricks</h3>
<p>Here are a couple other thoughts and pointers that I&#8217;ve picked up over the years &#8230;</p>
<h4>multiple afp servers running on the same network</h4>
<p>I never thought much of it, but I did notice: if you have two different servers on your network running netatalk, you are unable to login to both of them at the same time.  <strong>JET</strong> <a href="http://blog.damontimm.com/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/#comment-3718">posted a solution</a> to this and it works flawlessly.  It has changed my life.</p>
<h4>multiple network interfaces causing errors</h4>
<p><strong>Update (9/24/07 &amp; 10/22/07):</strong> I&#8217;ve noticed <a href="http://www.damontimm.com/blog/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/#comment-748">a few people mentioning </a>they get an error when compiling and/or starting netatalk (from <a href="http://ubuntuforums.org/showpost.php?p=1273565&#038;postcount=21">ubuntuforums.org</a> as well).  Folks with more than one available network adapter (like <code>eth1</code> and <code>eth2</code>, or virtual adapters created by vmware) seem to run an error when they compile and during runtime .  During compile time you might have have an error that ends in:</p>
<ul class="terminal">
<li><code>dpkg: error processing netatalk (--install):</code></li>
<li><code>subprocess post-installation script returned error exit status 1</code></li>
<li><code>Errors were encountered while processing:</code></li>
<li><code>netatalk</code></li>
<li><code>debi: debpkg -i failed</code></li>
</ul>
<p>After this, you would probably get an error at runtime that looked like:</p>
<ul class="terminal">
<li><code>Starting Netatalk services (this will take a while): nbp_rgstr: Connection timed out</code></li>
</ul>
<p><strong>Tim Pope</strong> wrote a <a href="http://www.damontimm.com/blog/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/#comment-911">suggested fix</a> in the comments below that should eliminate the conflict between the multiple adapters.  I only have one adapter myself (and don&#8217;t use vmware) so I haven&#8217;t had a chance to try it yet myself.  Let me know if this works for you as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.damontimm.com/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to: Mount a SFTP Folder (SSH + FTP) on Ubuntu Linux using SSHFS &#38; Fuse</title>
		<link>http://blog.damontimm.com/how-to-mount-a-sftp-folder-ssh-ftp-on-ubuntu-linux-using-sshfs-fuse/</link>
		<comments>http://blog.damontimm.com/how-to-mount-a-sftp-folder-ssh-ftp-on-ubuntu-linux-using-sshfs-fuse/#comments</comments>
		<pubDate>Sun, 29 Oct 2006 17:58:17 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[how to]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://www.damontimm.com/blog/how-to-mount-a-sftp-folder-ssh-ftp-on-ubuntu-linux-using-sshfs-fuse/</guid>
		<description><![CDATA[Purpose: to mount a remote directory on my local Ubuntu Linux Desktop system using SFTP (which is SSH in an FTP-like fashion).  The goal is to easily gain access to a remote system&#8217;s files through another folder on my desktop.  I used sshfs to accomplish this.

Note: This post refers to version 6.10 of [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Purpose:</strong> to mount a remote directory on my local Ubuntu Linux Desktop system using SFTP (which is SSH in an FTP-like fashion).  The goal is to easily gain access to a remote system&#8217;s files through another folder on my desktop.  I used <a href="http://fuse.sourceforge.net/sshfs.html">sshfs</a> to accomplish this.</p>
<p><span id="more-33"></span></p>
<p><strong>Note</strong>: This post refers to version 6.10 of of Ubuntu &#8212; with later versions (e.g., Fiesty 7.10) you don&#8217;t need to take these steps.  You can connect to SSHFS via the PLACES &#8211;> CONNECT TO SERVER menu option.  </p>
<p><strong>Special Thanks</strong>: goes to user llamakc from ubuntuforums.org for helping me with this one night <a href="http://ubuntuforums.org/showthread.php?t=270806">in this thread</a>; also, can find <a href="https://help.ubuntu.com/community/SSHFS">Ubuntu&#8217;s SSHFS documentation here</a>.)</p>
<h3>install the sshfs software and mount</h3>
<p>After some trial and error on my part, I found that only a few simple steps are needed to get everything up and running:</p>
<p>First, get the <a href="http://fuse.sourceforge.net/sshfs.html">sshfs</a> software (which is based on <a href="http://fuse.sourceforge.net">FUSE</a>); if you have Ubuntu, this is easy because it is an included package available for easy install.  After the package is installed, you need to add your username to the <code>fuse</code> group.  On Ubuntu, you would open a terminal window and perform the following:</p>
<ul class="terminal">
<li><code>$ sudo aptitude update</code></li>
<li><code>$ sudo apititude install sshfs</code></li>
<li><code>$ sudo adduser <strong>yourusername</strong> fuse</code></li>
</ul>
<p>After, restart your machine.  (I have tried just logging in and logging out, but I kept getting permissions errors &#8212; all of which disappeared after a restart.)</p>
<p>The next step it so to create an empty directory that will serve as the &#8220;window&#8221; into the SFTP server.  I created a folder on my desktop called <code>sftp</code>.  Once the folder has been created, simply run <code>sshf </code> using the appropriate login information (host username and IP), the host and local directories, and the SFTP connection is mounted on a folder on my desktop.</p>
<ul class="terminal">
<li><code>$ mkdir ~/Desktop/sftp</code></li>
<li><code>$ sshfs HOSTuser@remote.host.or.ip:/host/dir/to/mount ~/Desktop/sftp</code></li>
</ul>
<p>This folder will work like any other folder on your system; when you restart your computer (or logout and log back in) you will have to go through the last step of the process again (calling the <code>sshfs</code> program) to enable the folder on your desktop (save time by <a href="#bash">creating a bash alias</a>).</p>
<h3>possible errors and workarounds</h3>
<p>When I restarted my system the first time (using Ubuntu 6.06), after having so cleverly got <code>sshfs</code> to work, and tried to run my <code>sshfs</code> command I got an error:</p>
<ul class="terminal">
<li><code>$ sshfs HOSTuser@remote.host.or.ip:/host/dir/to/mount ~/Desktop/sftp</code></li>
<li><code><strong>fusermount: failed to open /dev/fuse: No such file or directory</strong><br />
</code></li>
</ul>
<p>A quick search on google brought me to the <a href="http://fuse.sourceforge.net/wiki/index.php/SshfsFaq">sourceforge FAQ</a> for sshfs and there, lo and behold, the following was suggested to rectify the situation:</p>
<ul class="terminal">
<li><code>$ sudo mknod -m 666 /dev/fuse c 10 229<br />
</code></li>
</ul>
<p>After running this command, I was able to mount my SFTP directory.  I never received this error using Ubuntu 6.10.</p>
<p>If you get any permission denied warnings, be sure you have added your username to the <code>fuse</code> group and also restarted your system. </p>
<h3 id="bash">create a bash alias to save time and typing</h3>
<p>To save time, I created a bash alias that would remember all the details for me.  </p>
<p>First, make make sure my system reads from the <code>~/.bash_aliases</code> file (it may not be default).  Open <code>~/.bashrc</code> and ensure the following lines are uncommented:</p>
<ul class="code">
<li><code># Alias definitions.</code></li>
<li><code># You may want to put all your additions into a separate file like</code></li>
<li><code># ~/.bash_aliases, instead of adding them here directly.</code></li>
<li><code># See /usr/share/doc/bash-doc/examples in the bash-doc package.</code></li>
<li><code></code></li>
<li class="modified"><code>if [ -f ~/.bash_aliases ]; then</code></li>
<li class="modified"><code>    . ~/.bash_aliases</code></li>
<li class="modified"><code>fi</code></li>
</ul>
<p>Next, create (or modify if you already have one) your <code>~/.bash_aliases</code> file.  </p>
<ul class="terminal">
<li><code>$ nano ~/.bash_aliases</code></li>
</ul>
<p>I added the following single line of code to the document (first call the mknod, if you are getting the error, then the sshfs):</p>
<ul class="code">
<li><code>alias sftp='sudo mknod -m 666 /dev/fuse c 10 229; sshfs HOSTuser@remote.host.or.ip:/host/dir/to/mount ~/Desktop/sftp'<br />
</code></li>
</ul>
<p>Now, when I open the terminal, I just type:</p>
<ul class="terminal">
<li><code>$ sftp</code></li>
</ul>
<p>And everything loads correctly.  Is very fast and very nice.  I like it.  </p>
<h3>finally:</h3>
<p>Changes to your <code>~/.bash_aliases</code> file will only take effect after you have reopened the terminal or called:</p>
<ul class="terminal">
<li><code>$ . ~/.bash_aliases</code></li>
</ul>
<p>If you ever want to unmount the directory without logging out or restarting, use the following:</p>
<ul class="terminal">
<li><code>$ fusermount -u ~/Desktop/sftp</code></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.damontimm.com/how-to-mount-a-sftp-folder-ssh-ftp-on-ubuntu-linux-using-sshfs-fuse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to: Redirect Apache&#8217;s Default www or public_html Folder to a Directory in Your Home Folder</title>
		<link>http://blog.damontimm.com/how-to-redirect-apaches-default-www-or-public_html-folder-to-a-directory-in-your-home-folder/</link>
		<comments>http://blog.damontimm.com/how-to-redirect-apaches-default-www-or-public_html-folder-to-a-directory-in-your-home-folder/#comments</comments>
		<pubDate>Fri, 13 Oct 2006 19:39:53 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[how to]]></category>

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

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

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

		<guid isPermaLink="false">http://www.damontimm.com/blog/how-to-redirect-apaches-default-www-or-public_html-folder-to-a-directory-in-your-home-folder/</guid>
		<description><![CDATA[Purpose: The default installation of Apache (from a Ubuntu-Server installation) sets the base directory for the web documents as /var/www (on Ubuntu&#8217;s installation &#8212; this may be different if you are running Apache on another machine); this may not be where you want it, in the end, and certainly isn&#8217;t as easily accessible from a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Purpose:</strong> The default installation of Apache (from a <a href="http://www.damontimm.com/blog/how-to-install-a-lamp-server-linux-apache-mysql-php-on-older-laptop-with-ubuntu/">Ubuntu-Server installation</a>) sets the base directory for the web documents as <code>/var/www</code> (on Ubuntu&#8217;s installation &#8212; this may be different if you are running Apache on another machine); this may not be where you want it, in the end, and certainly isn&#8217;t as easily accessible from a remote machine.  One option is to change where it is Apache searches for its web documents folder in Apache&#8217;s configuration file; another way, which I chose, is to create a symbolic link in the default location&#8217;s place and have it point to a directory in my user&#8217;s home folder.</p>
<p><span id="more-29"></span></p>
<p><strong>Benefit:</strong> I can login remotely with my user name (<code>henry</code>) and have direct access to the web documents root folder.  This makes it easy to use FTP or SSH or AFP to move files around and I don&#8217;t have to fool with user groups or permissions.</p>
<p>If you want to do this, login as the user you want to host the web pages and run the following from the terminal:</p>
<ul class="terminal">
<li><code>$ mkdir ~/www</code></li>
<li><code>$ sudo mv /var/www /var/www-backup</code></li>
<li><code>$ sudo ln -s /home/henry/www /var/www</code></li>
</ul>
<p>This will create a <code>www</code> folder in your user&#8217;s home directory, change the name of Apache&#8217;s default <code>www</code> directory, and create a symbolic link in its place that points to the directory you recently created.</p>
<p>Drop a <code>index.html</code> file in your new <code>~/www</code> directory and you are good to go!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.damontimm.com/how-to-redirect-apaches-default-www-or-public_html-folder-to-a-directory-in-your-home-folder/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How To: Install a LAMP Server (Linux, Apache, Mysql, PHP) on Older Laptop with Ubuntu</title>
		<link>http://blog.damontimm.com/how-to-install-a-lamp-server-linux-apache-mysql-php-on-older-laptop-with-ubuntu/</link>
		<comments>http://blog.damontimm.com/how-to-install-a-lamp-server-linux-apache-mysql-php-on-older-laptop-with-ubuntu/#comments</comments>
		<pubDate>Mon, 09 Oct 2006 23:57:17 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[how to]]></category>

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.damontimm.com/blog/how-to-install-a-lamp-server-linux-apache-mysql-php-on-older-laptop-with-ubuntu/</guid>
		<description><![CDATA[The Purpose: Install a LAMP server (Linux, Apache, Mysql, PHP) on an older laptop to be accessed and maintained remotely (becasue the laptop has a broken monitor and unreliable video-output connections).  Then, transfer web projects from the server on my PowerMac to the new linux server and free up my beast!


Download Ubuntu Linux Server [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The Purpose:</strong> Install a LAMP server (Linux, Apache, Mysql, PHP) on an older laptop to be accessed and maintained remotely (becasue the laptop has a broken monitor and unreliable video-output connections).  Then, transfer web projects from the server on my PowerMac to the new linux server and free up my beast!</p>
<p><span id="more-6"></span></p>
<ol>
<li>Download Ubuntu Linux Server Package and Burn to CD</li>
<li>Install basic LAMP package</li>
<li>Next steps with the new server</li>
</ol>
<h3>Download Ubuntu Server &amp; Burn Disk Image</h3>
<p>First step is to visit <a href="http://www.ubuntu.com/download">http://www.ubuntu.com/download</a>, choose a download site, and download the <a class="imagelink" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/server-install-cd.png" title="server-install-cd.png" rel="lightbox">Server Install CD</a> disk image (.iso file).  Unless you know otherwise, you will probably need the i386 version (for Intel processors).  If you have an AMD processor or a Macintosh, choose the appropriate version.</p>
<p>After the file has downloaded, you should verify the checksum data to ensure that the file you downloaded is actually the file that Ubuntu is trying to give you (in case you get a bogus mirror or something went screwy during the transmission).</p>
<p>If you scroll down the webpage of the mirror you chose above, you will see <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/md5sums.png" title="md5sums.png">the entire list of available files for download</a>; if you follow the link at the top of this list you can locate the checksum value for your download.  A checksum will look like this:</p>
<ul class="code">
<li><code>5ad76d8b380ab5be713e5daa9ea84475</code></li>
</ul>
<p>To compare it to the checksum of the file you downloaded, you can do the following (supposing you are on a MacIntosh or another Linux/Unix based system).  Open your terminal application (assuming you downloaded the disk image to your desktop):</p>
<ul class="terminal">
<li><code>$ openssl md5 ~/Desktop/ubuntu-6.01.1-server-i386.iso</code></li>
<li><code>MD5(ubuntu-6.06.1-server-i386.iso) = 5ad76d8b380ab5be713e5daa9ea84475</code></li>
</ul>
<p>Hopefully the two numbers will match (as they do above); if not, then you ought to try another download mirror.  Once you have a valid copy of the disk image, open your Disk Utility program, drag the disk image from the desktop <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/disk-utility.png" title="disk-utility.png">to the left-hand column</a>, select it once it is there, and click &#8220;Burn.&#8221;</p>
<p>If the disk burns successfully and verifies you&#8217;ve done it!  On to the next step!</p>
<h3>Install Ubuntu LAMP Server</h3>
<p>Put the freshly burned CD in your CD-ROM drive and have your system boot from the CD.  (How to do this will vary from system to system &#8212; some do it automatically, some you will have to hit F12, or DEL, or some other key; if your system doesn&#8217;t make it obvious by telling you in the first few seconds of the startup, try searching around online for the answer.)</p>
<p>At the <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0694.JPG" title="welcome-screen">Ubuntu welcome screen</a> choose <strong>Check CD for defects</strong>.  When the <a class="imagelink" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0695.JPG" title="check-cd" rel="lightbox">CD check</a> has been run and <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0696.JPG" title="cd-pass">passes successfully</a>, press SPACEBAR to go back to the welcome screen.  (On a side note: my CD check actually <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0697.JPG" title="cd-check-errors">drew error messages at least once</a>, so it may be good to run it again; in my case, I didn&#8217;t care if the installation failed so much because my system was already inoperable to begin with.)  </p>
<p>Next, select <strong>Install LAMP Server</strong>.  </p>
<p><a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0699.JPG" title="language">Choose a Language</a> and <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0700.JPG" title="keyboard">keyboard layout</a>.  Next, it will do some <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0701.JPG" title="hardware detection">hardware detection</a> and then ask you to <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0702.JPG" title="hostname">choose a hostname for your server</a>.  I chose: <em>ubuntu-server</em>.  Creative, I know.</p>
<p>Next, the big ne&#8217;er do return step: <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0703.JPG" title="partition">partition your hard disk</a>.  In my case, and probably yours if you are installing a server (since a server is usually meant to be running at all times), I wanted to completely erase and use my entire disk (second option).  It will give <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0705.JPG" title="partition-warning">a warning</a>: showing you what will be happening and giving you a final chance to go back.  Seeing that my IDE1 Master will be partitioned to include on ext3 partition (Linux preferred format, I believe) and one swap partition (unique to Linux, sort of like RAM &#8212; if I understand it correctly), you can go ahead with the format.</p>
<p>Afterwards, all that is left is to <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0706.JPG" title="time-zone">select a time zone</a>, <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0707.JPG" title="configure-clock">configure the clock</a> (I chose to set it to UTC &#8212; I don&#8217;t see why you wouldn&#8217;t either), and then setup your first user.  First, you will <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0708.JPG" title="setup-user">enter the user&#8217;s full (real or made up) name</a> &#8212; this can include spaces.  Then, you will <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0709.JPG" title="short-name">choose the user&#8217;s username</a> (which is what you will enter when you login).  <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0710.JPG" title="password">Choose a good password</a>.</p>
<p>At this point, <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0711.JPG" title="install">the software should begin to install</a>.  Sit back and enjoy!  After a while, if all goes well, your <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0712.JPG" title="complete">installation should complete</a> and you will restart to your new linux server.  Congratulations.</p>
<p>When the restart has finished all you be faced with is <a class="imagelink" rel="lightbox" href="http://www.damontimm.com/blog/wp-content/uploads/2006/10/img_0713.JPG" title="login">a text-based command prompt</a> asking you to login:</p>
<ul class="terminal">
<li><code>ubuntu-server login: henry</code></li>
<li><code>password:</code></li>
<li><code>henry@ubuntu-server ~$</code></li>
</ul>
<h3>next steps: test the server &amp; enable the software repositories</h3>
<p>Now your server is up and running and PHP, Mysql, and Apache should all be configured and active by default.  To quickly test your server, load its IP address into a web browser on another machine on the same local network: if it works, you will be served an Apache web page saying something to the effect of: &#8220;<em>Seeing this instead of the website you expected?</em>&#8221;  The Apache logo should be on the bottom.  Things are working!</p>
<p>There&#8217;s not so much you can do easily, however, with the command prompt in front of you.  In order to make your web page deployment simpler, consider taking some of the following steps (as I did):</p>
<ol>
<li>Enable all the available software repositories (universal)</li>
<li>Set a static IP address for the server</li>
<li><a href="http://www.damontimm.com/blog/how-to-redirect-apaches-default-www-or-public_html-folder-to-a-directory-in-your-home-folder/">Redirect and use <code>www</code> folder from your home directory</a></li>
<li>Install SSH - for secure remote access</li>
<li>Install FTP Server - for remote access</li>
<li>Install AFP - to share files locally with your Apple computer</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.damontimm.com/how-to-install-a-lamp-server-linux-apache-mysql-php-on-older-laptop-with-ubuntu/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Welcome to the blog</title>
		<link>http://blog.damontimm.com/welcome-to-the-blog/</link>
		<comments>http://blog.damontimm.com/welcome-to-the-blog/#comments</comments>
		<pubDate>Mon, 09 Oct 2006 22:35:34 +0000</pubDate>
		<dc:creator>Damon</dc:creator>
		
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://www.damontimm.com/blog/2006/welcome-to-the-blog/</guid>
		<description><![CDATA[Hello and welcome to the blog at damontimm.com.  
If you have been paying close attention, you will surely have noticed that this is my second blog (in celebration of my two readers).  Though much has changed in the year since I first stepped off the boat with damonjustisntfunny.com, one matter has not: I [...]]]></description>
			<content:encoded><![CDATA[<p>Hello and welcome to the blog at <a href="http://www.damontimm.com">damontimm.com</a>.  </p>
<p>If you have been paying close attention, you will surely have noticed that this is my second blog (in celebration of my two readers).  Though much has changed in the year since I first stepped off the boat with <a href="http://www.damonjustisntfunny.com">damonjustisntfunny.com</a>, one matter has not: I still <a href="http://www.damonjustisntfunny.com/blog/first-post-fears/">fear for my first post</a> &#8212; such that it is &#8212; and what it all will represent many years from now and how it will, certainly, be a poor attempt at anything. </p>
<p>What to say?  How to say it?  How to explain in so few words what fewer people will ever read?</p>
<p>This blog serves a distinct purpose (unlike the witticisms and clever prose from my first one): a place for me to document all the little things I learn in front of the computer and then immediately forget and have to re-learn again.  Posting my wanderings here, I hope, will shorten the re-learning process.</p>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.damontimm.com/welcome-to-the-blog/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
