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

<channel>
	<title>Institutional Knowledge &#187; HOWTO</title>
	<atom:link href="http://blogs.csuchico.edu/ik/category/howto/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.csuchico.edu/ik</link>
	<description>Wherein we write down some stuff that we know.</description>
	<lastBuildDate>Mon, 24 Aug 2009 16:28:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-rare</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fedora EPEL and RHEL</title>
		<link>http://blogs.csuchico.edu/ik/2009/05/11/epel-and-rhel/</link>
		<comments>http://blogs.csuchico.edu/ik/2009/05/11/epel-and-rhel/#comments</comments>
		<pubDate>Mon, 11 May 2009 16:41:32 +0000</pubDate>
		<dc:creator>pberry</dc:creator>
				<category><![CDATA[HOWTO]]></category>

		<guid isPermaLink="false">http://blogs.csuchico.edu/ik/?p=439</guid>
		<description><![CDATA[Using RedHat Enterprise Linux (RHEL) has many advantages, which nobody really cares about.  What people want is a system where they can install the most common, yet &#8220;unsupported&#8221; packages.  Fedora Extra Packages for Enterprise Linux (EPEL) does just this very thing.

If you&#8217;re using RHEL you probably work in an environment where you don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Using <a href="http://www.redhat.com/rhel/">RedHat Enterprise Linux</a> (RHEL) has many advantages, which nobody really cares about.  What people want is a system where they can install the most common, yet &#8220;unsupported&#8221; packages.  <a href="http://fedoraproject.org/wiki/EPEL">Fedora Extra Packages for Enterprise Linux</a> (EPEL) does just this very thing.</p>

<p>If you&#8217;re using <span class="caps">RHEL </span>you probably work in an environment where you don&#8217;t have root and the sysadmin will not just let you install random stuff you compiled, assuming gcc is installed at all.  Even if you do have an area to install something from source, you&#8217;re now stuck with maintaining it.  Enter <span class="caps">EPEL, </span>a community effort to take Fedora packages and make them available for <span class="caps">RHEL</span> 4 and 5.  The list of packages is quite impressive, including painful things like php-mssql (for connecting <span class="caps">PHP </span>to Microsoft <span class="caps">SQLS</span>erver).</p>

<p>Apart from providing packages, what it really provides is a sustainable way for your sysadmin to install and maintain packages that RedHat Network doesn&#8217;t provide.  The basic setup is that your sysadmin <a href="http://fedoraproject.org/wiki/EPEL/FAQ#How_can_I_install_the_packages_from_the_EPEL_software_repository.3F">installs a configuration <span class="caps">RPM</span></a>, which drops in the yum repository file and the <span class="caps">GPG </span>key used to verify the packages, and then just use yum like they normally would.</p>

<p>So, no more installing <a href="http://git-scm.com/">git</a> from source.</p>]]></content:encoded>
			<wfw:commentRss>http://blogs.csuchico.edu/ik/2009/05/11/epel-and-rhel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO: Fix Broken RHEL 4 and Perl LDAPS Connections</title>
		<link>http://blogs.csuchico.edu/ik/2008/09/18/perl-ldaps/</link>
		<comments>http://blogs.csuchico.edu/ik/2008/09/18/perl-ldaps/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 15:06:25 +0000</pubDate>
		<dc:creator>pberry</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[perl ldaps rhel]]></category>

		<guid isPermaLink="false">http://blogs.csuchico.edu/ik/?p=386</guid>
		<description><![CDATA[Wherein we fix broken LDAPS connection in RHEL 4 perl.]]></description>
			<content:encoded><![CDATA[<p>Are your <span class="caps">LDAPS </span>connections from perl scripts suddenly broken and you&#8217;re stuck staring at a screen with a seemingly useless error message?</p>

<blockquote><p>is only avaliable [sic] with the XS version at /usr/lib/perl5/site_perl/5.8.5/IO/Socket/SSL.pm, line 30</p></blockquote>

<p>I say seemingly because you know <em>you</em> didn&#8217;t change anything about IO::Socket::SSL.  A few Google searches will at least fill in the blank before the is and tell you that <span class="caps">LDAPS </span>is unhappy.</p>

<p>If you are running <span class="caps">RHEL</span> 4, you probably had to install IO::Socket::SSL from <span class="caps">CPAN. </span> RedHat updated Perl 5.8.5 and some modules that required the XS (interface to use compiled C libraries in modules) version of Scalar::List::Utils.  I&#8217;m not sure exactly what broke, but the <em>easiest fix</em> is to update IO::Socket::SSL from <span class="caps">CPAN </span>and it will update Scalar::List::Utils and all will be well.</p>]]></content:encoded>
			<wfw:commentRss>http://blogs.csuchico.edu/ik/2008/09/18/perl-ldaps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO: Extracting postinstall Scripts from a RPM</title>
		<link>http://blogs.csuchico.edu/ik/2007/07/16/howto-extracting-postinstall-scripts-from-a-rpm/</link>
		<comments>http://blogs.csuchico.edu/ik/2007/07/16/howto-extracting-postinstall-scripts-from-a-rpm/#comments</comments>
		<pubDate>Mon, 16 Jul 2007 16:48:36 +0000</pubDate>
		<dc:creator>pberry</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rpm]]></category>

		<guid isPermaLink="false">http://blogs.csuchico.edu/ik/2007/07/16/howto-extracting-postinstall-scripts-from-a-rpm/</guid>
		<description><![CDATA[RPM packagers will often create shell scripts that help with the setup of the software that is going to be installed.  If you want to look at what these scripts are going to do to your system run this command:

rpm -qp --scripts some-package.rpm &#62; rpmscript.sh

Also handy in this context is seeing what files are [...]]]></description>
			<content:encoded><![CDATA[<p><span class="caps">RPM </span>packagers will often create shell scripts that help with the setup of the software that is going to be installed.  If you want to look at what these scripts are going to do to your system run this command:</p>

<p><code>rpm -qp --scripts some-package.rpm &gt; rpmscript.sh</code></p>

<p>Also handy in this context is seeing what files are in the package and where they will be installed.</p>

<p><code>rpm -qlp some-package.rpm</code></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.csuchico.edu/ik/2007/07/16/howto-extracting-postinstall-scripts-from-a-rpm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO Install Fedora Ruby on RHEL</title>
		<link>http://blogs.csuchico.edu/ik/2007/01/03/howto-install-fedora-ruby-on-rhel/</link>
		<comments>http://blogs.csuchico.edu/ik/2007/01/03/howto-install-fedora-ruby-on-rhel/#comments</comments>
		<pubDate>Wed, 03 Jan 2007 16:24:11 +0000</pubDate>
		<dc:creator>pberry</dc:creator>
				<category><![CDATA[HOWTO]]></category>

		<guid isPermaLink="false">http://blogs.csuchico.edu/ik/2007/01/03/howto-install-fedora-ruby-on-rhel/</guid>
		<description><![CDATA[Wherein we get a useful version of Ruby for RHEL.]]></description>
			<content:encoded><![CDATA[
<ol>
<li>Uninstall any <span class="caps">RHEL </span>packages associated with ruby (ruby, ruby-rdoc, ruby-ri, etc. <code>rpm -qa | grep ruby</code> will give you the whole list)</li>
<li>Install the ruby source rpm (<code>rpm -i ruby-1.8.5-3.fc6.src.rpm</code>)</li>
<li>Install any dependencies except for libX11-devel (the previous install step should give you the names of all the devel packages you need)</li>
<li>Install xorg-x11-devel (<code>up2date xorg-x11-devel</code>) to satisfy needed <span class="caps">X11 </span>files</li>
<li>build ruby (<code>rpmbuild -bb --nodeps /usr/src/redhat/SPECS/ruby.spec</code>)</li>
<li>Install ruby (rpm -ivh /usr/src/redhat/RPMS/i386/ruby*)</li>
</ol>



<p>You may want to specify a build target in the <code>rpmbuild</code> step, although I&#8217;m not sure how much performance gain you would get, especially if all the glibc libraries are i386. </p>]]></content:encoded>
			<wfw:commentRss>http://blogs.csuchico.edu/ik/2007/01/03/howto-install-fedora-ruby-on-rhel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading PEAR on RHEL 4</title>
		<link>http://blogs.csuchico.edu/ik/2006/11/27/upgrading-pear-on-rhel-4/</link>
		<comments>http://blogs.csuchico.edu/ik/2006/11/27/upgrading-pear-on-rhel-4/#comments</comments>
		<pubDate>Mon, 27 Nov 2006 22:41:47 +0000</pubDate>
		<dc:creator>pberry</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blogs.csuchico.edu/ik/2006/11/27/upgrading-pear-on-rhel-4/</guid>
		<description><![CDATA[Wherein we figure out how to upgrade PEAR on RHEL 4.]]></description>
			<content:encoded><![CDATA[<p><strong>Problem:</strong> You need to install <span class="caps">PEAR </span>packages that use package.xml version 2.0 but you&#8217;re running the stock RedHat <span class="caps">RPM </span>of <span class="caps">PHP </span>which is at php-pear-4.3.9-22.i386.prm (aka pear 1.3.1).</p>

<blockquote><p><code>pear upgrade Date</code><br />
<code>downloading Date-1.4.7.tgz ...</code><br />
<code>Starting to download Date-1.4.7.tgz (55,754 bytes)</code><br />
<code>.............done: 55,754 bytes</code><br />
<code>No handlers for package.xml version 2.0</code></p></blockquote>

<p>You can&#8217;t upgrade <span class="caps">PEAR </span>using <code>pear upgrade PEAR</code> because you need at least pear-1.3.3 to get to the latest version.</p>

<blockquote><p><code>requires package `PEAR' &gt;= 1.3.3</code><br />
<code>PEAR: Dependencies failed</code></p></blockquote>

<p><strong>Solution:</strong></p>


<ol>
<li>Download <a href="http://pear.php.net/package/PEAR/download/1.3.3"><span class="caps">PEAR</span> 1.3.3</a></li>
<li>Install with <code>pear upgrade /path/to/pear-1.3.3</code></li>
<li>Upgrade <span class="caps">PEAR </span>with <code>pear upgrade pear</code></li>
<li><em>Optional:</em> Upgrade your existing packages with <code>pear upgrade-all</code></li>
</ol>



<p>You may now install packages that use package.xml version 2.0.  You are also ahead of the game with regard to <span class="caps">RPM</span>s.  The next <span class="caps">RHN </span>update may hose what you have just done.  You should probably consider marking php-pear as a package to ignore.</p>

<p><strong>Update:</strong> As noted in the comments, you will need to upgrade to 1.4.11 before you can upgrade to 1.5.0.</p>]]></content:encoded>
			<wfw:commentRss>http://blogs.csuchico.edu/ik/2006/11/27/upgrading-pear-on-rhel-4/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>CAS-ifying Wordpress MU</title>
		<link>http://blogs.csuchico.edu/ik/2006/10/29/cas-ifying-wordpress-mu/</link>
		<comments>http://blogs.csuchico.edu/ik/2006/10/29/cas-ifying-wordpress-mu/#comments</comments>
		<pubDate>Mon, 30 Oct 2006 01:21:27 +0000</pubDate>
		<dc:creator>pberry</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Weblogs]]></category>

		<guid isPermaLink="false">http://blogs.csuchico.edu/ik/2006/10/29/cas-ifying-wordpress-mu/</guid>
		<description><![CDATA[A huge thanks to Andrej Ciho for posting his HOWTO CAS-ify Wordpress MU.  This could be a big help for us, and many other institutions that are using CAS.]]></description>
			<content:encoded><![CDATA[<p>A huge thanks to Andrej Ciho for posting his <a href="http://www.andrejciho.com/wordpress-mu/wpmu-cas-integration/"><span class="caps">HOWTO CAS</span>-ify Wordpress MU</a>.  This could be a big help for us, and many other institutions that are using <span class="caps">CAS.</span></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.csuchico.edu/ik/2006/10/29/cas-ifying-wordpress-mu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RHEL 4 and php-xslt</title>
		<link>http://blogs.csuchico.edu/ik/2006/09/20/rhel-4-and-php-xslt/</link>
		<comments>http://blogs.csuchico.edu/ik/2006/09/20/rhel-4-and-php-xslt/#comments</comments>
		<pubDate>Wed, 20 Sep 2006 15:55:49 +0000</pubDate>
		<dc:creator>pberry</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blogs.csuchico.edu/ik/2006/09/20/rhel-4-and-php-xslt/</guid>
		<description><![CDATA[Having problems with php-xslt on RHEL?  This _might_ help you.]]></description>
			<content:encoded><![CDATA[<p>It all started out innocently enough&#8230;a <span class="caps">JIRA </span>issue for me to install the <a href="http://www.php.net/manual/en/ref.xslt.php"><span class="caps">PHP XSLT </span>module</a>.  <em>How hard could it be?</em>  When you ask yourself that question immediately realize that you are in trouble.</p>

<p>You&#8217;re running the stock RedHat <span class="caps">PHP </span>rpm.  RedHat Network doesn&#8217;t provide an rpm for php-xslt.  So you need to build a php-xslt rpm from source.  How do you do that and avoid all the issues we ran into?  Good question.</p>


<ol>
<li>Get and build a <a href="http://dag.wieers.com/packages/js/">js rpm</a> from source.
<ol>
<li><code>rpm -i js-version.srpm</code></li>
<li><code>rpmbuild -bb /usr/src/redhat/SPECS/js.spec</code></li>
<li>install <code>js</code> and <code>js-devel</code> rpms</li>
</ol>
</li>
<li>Get and build a <a href="http://dag.wieers.com/packages/sablotron/">sablotron rpm</a> from source.  You need to build from source to avoid problems later on that I will explain.
<ol>
<li><code>rpm -i sablotron-version.srpm</code></li>
<li>Edit <code>/usr/src/redhat/SPECS/sablotron.spec</code> to remove the <code>--with-readline</code> configure option.  If <span class="caps">PHP </span>tries to load a module that dynamically links to readline, it <a href="http://archive.gingerall.cz/archives/public/sablot2004/msg00318.html">will barf</a>.</li>
<li><code>rpmbuild -bb /usr/src/redhat/SPECS/sablotron.spec</code></li>
<li>install <code>sablotron</code> and <code>sablotron-devel</code> rpms</li>
</ol>
</li>
<li>Get and install php source from <span class="caps">RHN</span>
<ol>
<li><code>up2date --get-source php</code></li>
<li><code>rpm -i /var/spool/up2date/php-version.srpm</code></li>
</ol>
</li>
<li>Patch <code>php.spec</code> to enable php-xslt.  A patch that works against <code>php-4.3.9-3.15</code> is available <a href="http://www.pdinc.us:8080/public/rpms/php-xslt/php-xslt-srcrpm.rhel4.patch">here</a> or <a href="http://blogs.csuchico.edu/ik/wp-content/uploads/2006/09/php-xslt-srcrpmrhel4.txt">here</a>.
<ol>
<li><code>cd /usr/src/redhat</code></li>
<li><code>patch -p0 &lt; /path/to/patch</code> (You should see that 5 hunks succeeded.)</li>
<li>Edit <code>php.spec</code> so that <code>%{!?xslt:%define xslt 0}</code> says <code>%{!?xslt:%define xslt 1}</code></li>
</ol>
</li>
<li>Build and install php
<ol>
<li><code>rpmbuild --bb /usr/src/redhat/SPECS/php.spec</code></li>
<li><code>rpm -U --replacepkgs --force --hash /path/to/php /path/to/php-xslt</code></li>
<li><code>service httpd reload</code></li>
</ol>
</li>
</ol>



<p><em>How hard could it be</em>, indeed&#8230;</p>

<p>Technorati tags: <a href="http://technorati.com/tag/php" rel="tag">php, <a href="http://technorati.com/tag/xslt" rel="tag">xslt</a>, <a href="http://technorati.com/tag/rhel" rel="tag">rhel</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.csuchico.edu/ik/2006/09/20/rhel-4-and-php-xslt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fixing a hole&#8230;</title>
		<link>http://blogs.csuchico.edu/ik/2006/05/15/fixing-a-hole/</link>
		<comments>http://blogs.csuchico.edu/ik/2006/05/15/fixing-a-hole/#comments</comments>
		<pubDate>Mon, 15 May 2006 18:18:55 +0000</pubDate>
		<dc:creator>sjungling</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://fozzy.csuchico.edu/wordpress/2006/05/15/fixing-a-hole/</guid>
		<description><![CDATA[Wherein we fix CSS bugs.]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8230;where the rain gets in \ and stops my mind from wandering&#8230;</p></blockquote>

<p>While working on a new design for the <acronym title="Central Authentication Service">CAS</acronym> login page I ran across a bug where a background imagine would not properly attach itself to the bottom of a screen. The odd thing was that the rendering error only appeared in Firefox.</p>

<p>This bug also affects the <span class="caps">CSU</span> Chico home page.</p>

<p><img alt="Missing CSS Property" src="http://blogs.csuchico.edu/ik/wp-content/uploads/2006/05/csuc_bad_css.jpg" /></p>

<p>After some research, I discovered that I had omitted the <code>background-attachment</code> property for the <code>body</code> tag. By default the attachment is set to <code>scroll</code> and by simply defining the attachment as <code>fixed</code>, I was able to cure the Firefox bug (which may have actually be an <em>all other browsers are broke</em> bug).</p>

<h2>Original Code</h2>

<div class="igBar"><span id="lcss-1"><a href="#" onclick="javascript:showCodeTxt('css-1'); return false;"><span class="caps">PLAIN TEXT</span></a></span></div><div class="syntax_hilite"><span class="langName"><span class="caps">CSS</span>:</span><br /><div id="css-1">
<div class="css"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">body <span style="color: #66cc66;">&#123;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000000; font-weight: bold;">background-color</span>: #999;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000000; font-weight: bold;">background-image</span>: <span style="color: #993333;">url</span><span style="color: #66cc66;">&#40;</span>/images/bkg-body.jpg<span style="color: #66cc66;">&#41;</span>;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000000; font-weight: bold;">background-repeat</span>: <span style="color: #993333;">repeat-x</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000000; font-weight: bold;">background-position</span>: <span style="color: #000000; font-weight: bold;">bottom</span>;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div></li></ol></div>
</div></div><br />

<h2>Fixed Code</h2>

<div class="igBar"><span id="lcss-2"><a href="#" onclick="javascript:showCodeTxt('css-2'); return false;"><span class="caps">PLAIN TEXT</span></a></span></div><div class="syntax_hilite"><span class="langName"><span class="caps">CSS</span>:</span><br /><div id="css-2">
<div class="css"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">body <span style="color: #66cc66;">&#123;</span> </div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000000; font-weight: bold;">background-color</span>: #999;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000000; font-weight: bold;">background-image</span>: <span style="color: #993333;">url</span><span style="color: #66cc66;">&#40;</span>/images/bkg-body.jpg<span style="color: #66cc66;">&#41;</span>;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000000; font-weight: bold;">background-repeat</span>: <span style="color: #993333;">repeat-x</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000000; font-weight: bold;">background-position</span>: <span style="color: #000000; font-weight: bold;">bottom</span>;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000000; font-weight: bold;">background-attachment</span>: <span style="color: #993333;">fixed</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #66cc66;">&#125;</span> </div></li></ol></div>
</div></div><br />

<p>So to the unsung maintainer of the <span class="caps">CSS </span>code base for the <span class="caps">CSU</span> Chico homepage, if you&#8217;re curious why this is happening, here&#8217;s the solution.</p>]]></content:encoded>
			<wfw:commentRss>http://blogs.csuchico.edu/ik/2006/05/15/fixing-a-hole/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microformat Exercise Part 2: Faculty Listings</title>
		<link>http://blogs.csuchico.edu/ik/2006/05/08/microformat-exercise-part-2-faculty-listings/</link>
		<comments>http://blogs.csuchico.edu/ik/2006/05/08/microformat-exercise-part-2-faculty-listings/#comments</comments>
		<pubDate>Mon, 08 May 2006 23:53:08 +0000</pubDate>
		<dc:creator>sjungling</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Microformats]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://fozzy.csuchico.edu/wordpress/2006/05/08/microformat-exercise-part-2-faculty-listings/</guid>
		<description><![CDATA[Wherein we experiment with microformats.]]></description>
			<content:encoded><![CDATA[<p>Today we saw a preview of the new <a href="http://www.csuchico.edu/engl">English Department website</a> that featured a directory listing of faculty members. Here&#8217;s an example sample of some of the markup for one faculty member</p>

<div class="igBar"><span id="lhtml-3"><a href="#" onclick="javascript:showCodeTxt('html-3'); return false;"><span class="caps">PLAIN TEXT</span></a></span></div><div class="syntax_hilite"><span class="langName"><span class="caps">HTML</span>:</span><br /><div id="html-3">
<div class="html"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">&lt;td</span></a> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">&#8220;34%&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/strong.html"><span style="color: #000000; font-weight: bold;">&lt;strong&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&#8220;bio/lastnameFirstInitial.shtml&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>Jane Doe<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a&gt;</span></span> <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/strong&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br</span></a> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; Composition, Literature <span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br</span></a> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; Phone: 898-0000 <span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br</span></a> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; Office: Building&nbsp; 116 <span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br</span></a> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&#8220;mailto:dalexich@csuchico.edu&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>jdoe@csuchico.edu <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a&gt;</span></span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td&gt;</span></span> </div></li></ol></div>
</div></div><br />

<p>If we add a few classes to this existing structure (plus a few @span@s) we could make the site microformat compatible.</p>

<div class="igBar"><span id="lhtml-4"><a href="#" onclick="javascript:showCodeTxt('html-4'); return false;"><span class="caps">PLAIN TEXT</span></a></span></div><div class="syntax_hilite"><span class="langName"><span class="caps">HTML</span>:</span><br /><div id="html-4">
<div class="html"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">&lt;td</span></a> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">&#8220;34%&#8221;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&#8220;vcard&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/strong.html"><span style="color: #000000; font-weight: bold;">&lt;strong</span></a> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&#8220;fn&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">&lt;a</span></a> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&#8220;url&#8221;</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&#8220;bio/lastnameFirstInitial.shtml&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>Jane Doe<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a&gt;</span></span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/strong&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br</span></a> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/span.html"><span style="color: #000000; font-weight: bold;">&lt;span</span></a> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&#8220;org organizational-unit&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>Composition, Literature<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/span&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br</span></a> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/span.html"><span style="color: #000000; font-weight: bold;">&lt;span</span></a> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&#8220;tel&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>Phone: <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/span&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/span.html"><span style="color: #000000; font-weight: bold;">&lt;span</span></a> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&#8220;work&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>898-0000<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/span&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br</span></a> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/span.html"><span style="color: #000000; font-weight: bold;">&lt;span</span></a> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&#8220;adr work additional-address&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>Office: Building<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/span&gt;</span></span> 116 <span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br</span></a> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span> </div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">&lt;a</span></a> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&#8220;email&#8221;</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&#8220;mailto:dalexich@csuchico.edu&#8221;</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>jdoe@csuchico.edu<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a&gt;</span></span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td&gt;</span></span> </div></li></ol></div>
</div></div><br />

<p>Bam! Microformat compatible.</p>]]></content:encoded>
			<wfw:commentRss>http://blogs.csuchico.edu/ik/2006/05/08/microformat-exercise-part-2-faculty-listings/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>HOWTO: &#8220;Fix&#8221; Secure LDAP in PHP</title>
		<link>http://blogs.csuchico.edu/ik/2006/02/18/howto-fix-secure-ldap-in-php/</link>
		<comments>http://blogs.csuchico.edu/ik/2006/02/18/howto-fix-secure-ldap-in-php/#comments</comments>
		<pubDate>Sat, 18 Feb 2006 22:32:46 +0000</pubDate>
		<dc:creator>pberry</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[LDAP]]></category>

		<guid isPermaLink="false">http://fozzy.csuchico.edu/wordpress/2006/02/18/howto-fix-secure-ldap-in-php/</guid>
		<description><![CDATA[Wherein we slay openssl, php, and ldap dragons.]]></description>
			<content:encoded><![CDATA[
<p><em>Preface:</em> I am not an expert in encryption, SSL, or LDAP.  Your install may be functioning just fine and you don&#8217;t need any of this information.  You use this <strong>at your own risk</strong> as it may be <em>completely wrong</em>.  That being said, it worked for me.</p>

<p>Making a secure (ldaps) connection in PHP (php-4.3.9-3.8) on Red Hat Enterprise Linux AS release 4 (Nahant Update 1) will fail if on ldap_connect (&#8220;Error -1: Can&#8217;t connect to LDAP server&#8221;) if the certificate cannot be verified.  Due to the release of a new intermediate certificate from Verisign, it is likely that your install of openssl will not have access to that intermediate cert.  Thus openssl will tell you that there is a self-signed certificate in the chain (&#8220;Error -19&#8221;).  If you recently bought a certificate from Verisign you will not find much in the way of help for dealing with LDAP, PHP, or openssl.</p>

<p>The answer with web servers is generally well documented, and the intermediate certificate is made available to the server to send to the client.  This is good because it means that 8 trillion web browsers don&#8217;t generally need to be updated to use SSL.</p>

<p>It should also be noted that it is probably best to &#8220;fix&#8221; this issue at the server level rather than the client because each and every client would need to be fixed as opposed to just fixing the server once.  If you do not have access to the server to fix it, this should work for you.</p>

<ol>
<li><p>Obtain a copy of the <a href="http://www.verisign.com/support/install/intermediate.html">Verisign intermediate certificate</a>.
Save it as a text file on a system where you can run openssl binaries.</p></li>
<li><p><a href="http://www.cementhorizon.com/wiki/index.php/Convert_PEM_Certificate_to_ca-bundle.crt_format">Convert from PEM to ca-bundle format</a> (*Update:* There is a updated script for BSD sed if you are on OS X).  Save this output as you may need to do the next few steps on multiple servers.</p>

<div class="igBar"><span id="lcode-5"><a href="#" onclick="javascript:showCodeTxt('code-5'); return false;">PLAIN TEXT</a></span></div><div class="syntax_hilite"><span class="langName">CODE:</span><br /><div id="code-5">
<div class="code"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">#!/bin/sh</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># Friendly Name</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">openssl x509 -in $<span style="color:#800000;color:#800000;">1</span> -text -noout | \</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">sed -n -e <span style="color:#CC0000;">&#8217;/^[ ]<span style="color:#000099; font-weight:bold;">\+</span>Subject:/{s/^.*CN=<span style="color:#000099; font-weight:bold;">\(</span>[^,]*<span style="color:#000099; font-weight:bold;">\)</span>.*/<span style="color:#000099; font-weight:bold;">\1</span>/;p}&#8217;</span> </div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># Underline Friendly Name with equal signs</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">openssl x509 -in $<span style="color:#800000;color:#800000;">1</span> -text -noout | \</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">sed -n -e <span style="color:#CC0000;">&#8217;/^[ ]<span style="color:#000099; font-weight:bold;">\+</span>Subject:/{s/^.*CN=<span style="color:#000099; font-weight:bold;">\(</span>[^,]*<span style="color:#000099; font-weight:bold;">\)</span>.*/<span style="color:#000099; font-weight:bold;">\1</span>/;p}&#8217;</span> | \</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">sed -e <span style="color:#CC0000;">&#8217;s/./=/g&#8217;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># Output Fingerprint and swap = for :</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">openssl x509 -in $<span style="color:#800000;color:#800000;">1</span> -noout -fingerprint | sed -e <span style="color:#CC0000;">&#8217;s/=/: /&#8217;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># Output PEM Data:</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo <span style="color:#CC0000;">&#8216;PEM Data:&#8217;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># Output Certificate</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">openssl x509 -in $<span style="color:#800000;color:#800000;">1</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># Output Cettificate text swapping Certificate with Certificate Ingredients</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">openssl x509 -in $<span style="color:#800000;color:#800000;">1</span> -text -noout | sed -e <span style="color:#CC0000;">&#8217;s/^Certificate:/Certificate Ingredients:/&#8217;</span> </div></li></ol></div>
</div></div><br />
</li>
<li><p>Locate and backup your ca-bundle.crt</p>

<p><code>locate ca-bundle.crt</code> should show you where on your system this file lives.  On RHEL <code>/usr/share/ssl/cert.pem</code> is also symlinked to your ca-bundle.crt.</p></li>
<li><p>Append the converted intermediate certificate to your ca-bundle.crt file.</p>

<p>You can now test using the openssl command:</p>

<p><code>openssl s_client -host your.ldap.edu -port 636 -CAfile /usr/share/ssl/certs/ca-bundle.crt</code>.</p>

<p>A <code>Verify return code: 0 (ok)</code> is what you are looking for.</p></li>
<li><p>Configure OpenLDAP on the system that PHP is running on to use your ca-bundle.crt.</p>

<p>Locate your ldap.conf for OpenLDAP.  On RHEL it is <code>/etc/openldap/ldap.conf</code>.</p>

<p>Add the following: <code>TLS_CACERT /usr/share/ssl/cert.pem</code> (which on RHEL is a symlink to ca-bundle.crt).  Thanks to <a href="https://rulink.rutgers.edu/loadca.html">Rutgers</a> for this tidbit.</p></li>
<li><p>Restart httpd.</p></li>
</ol>

<p>PHP should now successfully connect <em>securely</em> to your LDAP server.</p>

<h3 id="errata">Errata</h3>

<p><em>Added restart of httpd (2005-09-10 11:52:00)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.csuchico.edu/ik/2006/02/18/howto-fix-secure-ldap-in-php/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
