<?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>Stillnet Studios &#187; System Administration</title>
	<atom:link href="http://www.stillnetstudios.com/category/system-administration/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stillnetstudios.com</link>
	<description>Web development notes and commentary from Ryan Stille</description>
	<lastBuildDate>Tue, 27 Jul 2010 14:40:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MySQL losing case in table names</title>
		<link>http://www.stillnetstudios.com/mysql-losing-case-in-table-names/</link>
		<comments>http://www.stillnetstudios.com/mysql-losing-case-in-table-names/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 17:24:13 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://www.stillnetstudios.com/?p=699</guid>
		<description><![CDATA[I had an issue recently when I was working with a couple other developers on a project.  We keep our MySQL database in sync by exporting the database as an SQL script and sharing it in a subversion repository (I wish MS SQL could be this easy!).  Our table names are saved with [...]]]></description>
			<content:encoded><![CDATA[<p>I had an issue recently when I was working with a couple other developers on a project.  We keep our MySQL database in sync by exporting the database as an SQL script and sharing it in a subversion repository (I wish MS SQL could be this easy!).  Our table names are saved with mix case, like &#8220;userFiles&#8221;, but everytime I would export my database the tables would come out all lower case, like &#8220;userfiles&#8221;.</p>
<p>Turns out this is a simple thing to fix, I had to add a line to MySQL&#8217;s config file: <em>my.cnf</em>.  Mine was located at <em>[MySQL installed root]\bin\my.cnf</em>.  The setting that needs to change is lower_case_table_names, I set the value to 2, like this:</p>
<p><code>lower_case_table_names=2</code></p>
<p>If you are interested, here are the different possible values:</p>
<table>
<tbody>
<tr>
<td valign="top"><span class="bold"><strong>Value</strong></span></td>
<td><span class="bold"><strong>Meaning</strong></span></td>
</tr>
<tr>
<td valign="top">0</td>
<td>Table and database names are stored on disk using the lettercase<br />
                specified in the CREATE  TABLE or CREATE DATABASE statement. Name comparisons are case<br />
                sensitive. Note that if you force this variable to 0 with &#8211;lower-case-table-names=0<br />
                on a case-insensitive file system and access MyISAM tablenames using different<br />
                lettercases, index corruption may result.</td>
</tr>
<tr>
<td valign="top">1</td>
<td>Table names are stored in lowercase on disk and name comparisons are not<br />
                case sensitive. MySQL converts all table names to<br />
                lowercase on storage and lookup. This behavior also<br />
                applies to database names and table aliases.</td>
</tr>
<tr>
<td valign="top">2</td>
<td>Table and database names are stored on disk using the lettercase<br />
                specified in the CREATE TABLE or CREATE  DATABASE statement, but MySQL converts them to<br />
                lowercase on lookup. Name comparisons are not case sensitive. This works only on file<br />
                systems that are not case sensitive! InnoDB table names are stored in<br />
                lowercase, as for lower_case_table_names=1.</td>
</tr>
</tbody>
</table>
<p>On Windows the default is 1.</p>
<p>More information at <a href="http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html">http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stillnetstudios.com/mysql-losing-case-in-table-names/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Garbled / truncated data when reading XLS files</title>
		<link>http://www.stillnetstudios.com/garbled-truncated-reading-xls-files/</link>
		<comments>http://www.stillnetstudios.com/garbled-truncated-reading-xls-files/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 20:09:26 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.stillnetstudios.com/?p=524</guid>
		<description><![CDATA[We had an issue recently where one of our Excel import routines was putting garbled data into the database.  By &#8220;garbled&#8221; I mean the field contained a few normal words then broke into a bunch of strange characters.  This Excel file was read in using an ODBC datasource.
If you are not familiar with [...]]]></description>
			<content:encoded><![CDATA[<p>We had an issue recently where one of our Excel import routines was putting garbled data into the database.  By &#8220;garbled&#8221; I mean the field contained a few normal words then broke into a bunch of strange characters.  This Excel file was read in using an ODBC datasource.</p>
<p>If you are not familiar with this method of reading Excel files, here is a short summary.<br />
1) Create a system ODBC DSN using the MS Excel driver in your Windows ODBC control panel.  Point it to an empty .xls file somewhere on your drive.<br />
2) Create a datasource in ColdFusion (driver: &#8220;ODBC Socket&#8221;) and select your Windows ODBC DSN from the drop down.<br />
3) Copy the XLS file you want to read on top of the empty file you setup in your ODBC DSN.<br />
4) Use it like this in your CFML:</p>
<pre><code>&lt;cfquery name="myQuery" datasource="XLSPassThroughDSN"&gt;
SELECT *
FROM [Sheet1$]
&lt;/cfquery&gt;</code></pre>
<p>This usually works well but for some reason we were having problems.  Digging through the Excel file turned up nothing out of the ordinary, except <em>some</em> rows (and not the ones causing problems) looked like they were double byte encoded (unicode).</p>
<p>Turns out this XLS driver determines the data type of each column in the spread sheet by looking through the first couple of rows and guessing a data type based on that data.  In our case column B only contained values with less than 100 characters in the first few dozen rows.  So the driver assumed it was a varchar type of some length.  But much further down in the spread sheet, in a different row, that same column contained a value that was several hundred characters, thus overflowing the data type.</p>
<p>Normally this only results in truncated data.  If that would have been the issue I probably would have found the fix much sooner.  But instead we were ending up with garbled data, which was truncated as well but it was impossible to tell.</p>
<p>The fix is to adjust your registry to tell the driver to scan through more, preferably all, of the rows before guessing at a data type.   In your odbc control panel you&#8217;ll notice a setting for this:<br />
<img src="http://www.stillnetstudios.com/wp-content/uploads/2009/07/odbc.png" alt="ODBC DSN screen shot" title="ODBC DSN screen shot" width="434" height="303" class="alignnone size-full wp-image-525" /></p>
<p>But, that doesn&#8217;t work!  You need to change the registry value manually.  I set mine to 1000, since that will cover the length of any of the spreadsheets we upload.</p>
<p>The registry keys are located at:</p>
<p>For Excel 97:<br />
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Excel<br />
For Excel 2000 and later versions:<br />
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel</p>
<p>Here is the MS knowledge base article for more detail: <a href="http://support.microsoft.com/kb/189897/">http://support.microsoft.com/kb/189897/</a></p>
<p>Now the driver scans through all the rows before determining a data type, and probably uses something like a &#8220;text&#8221; type for column B.  I think our data may have been getting garbled, instead of just truncated, because of the double byte data. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.stillnetstudios.com/garbled-truncated-reading-xls-files/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Securing your open blue dragon settings file</title>
		<link>http://www.stillnetstudios.com/securing-blue-dragon-settings-file/</link>
		<comments>http://www.stillnetstudios.com/securing-blue-dragon-settings-file/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 15:36:29 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[BlueDragon]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.stillnetstudios.com/?p=508</guid>
		<description><![CDATA[After installing Open Blue Dragon on Tomcat and hooking it up to Apache, I did some poking around and found I was able to pull up my bluedragon.xml configuration file directly in my browser.  Now, this may not happen in all configurations (there are many ways to setup a J2EE web application), but it [...]]]></description>
			<content:encoded><![CDATA[<p>After installing Open Blue Dragon on Tomcat and hooking it up to Apache, I did some poking around and found I was able to pull up my bluedragon.xml configuration file directly in my browser.  Now, this may not happen in all configurations (there are many ways to setup a J2EE web application), but it my case, running through Apache and having copied Blue Dragon&#8217;s WEB-INF directory to my webroot, I was able to browse this file.  In case you didn&#8217;t know, all OpenBD&#8217;s settings are stored in a single xml file (which I find very convenient, by the way).</p>
<p>It didn&#8217;t work when going directly through Tomcat, i.e. browsing on port 8080 would not pull it up, I think Tomcat is smart enough to know not to serve files from the WEB-INF directory.  But browsing through Apache on port 80 bypasses Tomcat for anything thats not a .cfm or .cfc file, so it would happily return the xml file.   Datasource passwords are stored encrypted but the administrator password is clear text.  Its easy to lock this down, just add this to your Apache config file:</p>
<p><code>&lt;location "/WEB-INF/"&gt;<br />
deny from all<br />
&lt;/location&gt;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stillnetstudios.com/securing-blue-dragon-settings-file/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8216;Failed to retrieve style path&#8217; error when adding a Verity collection</title>
		<link>http://www.stillnetstudios.com/verity-collection-error-coldfusion/</link>
		<comments>http://www.stillnetstudios.com/verity-collection-error-coldfusion/#comments</comments>
		<pubDate>Fri, 01 May 2009 18:11:06 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://www.stillnetstudios.com/?p=444</guid>
		<description><![CDATA[When trying to create a Verity collection on a freshly setup ColdFusion8 installation today I received this error:
Unable to create collection MyCollection.
An error occurred while creating the collection: com.verity.api.administration.ConfigurationException: Failed to retrieve style path. (-6044)
Turns out the Verity installation did not complete correctly.  I could tell by looking in the {cf-root}/verity/verity-install.log file.  This [...]]]></description>
			<content:encoded><![CDATA[<p>When trying to create a Verity collection on a freshly setup ColdFusion8 installation today I received this error:</p>
<p><code>Unable to create collection MyCollection.<br />
An error occurred while creating the collection: com.verity.api.administration.ConfigurationException: Failed to retrieve style path. (-6044)</code></p>
<p>Turns out the Verity installation did not complete correctly.  I could tell by looking in the {cf-root}/verity/verity-install.log file.  This problem is fixed by simply uninstalling and reinstalling verity.</p>
<p>In the {cf-root}/verity directory you&#8217;ll find a script named uninstall-verity.sh (on linux) or uninstall-verity.bat (on windows).  Just run that and then run the install-verity.* file and you should be back in business.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stillnetstudios.com/verity-collection-error-coldfusion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Missing library errors when installing ColdFusion on Linux</title>
		<link>http://www.stillnetstudios.com/missing-library-errors-when-installing-coldfusion-on-linux/</link>
		<comments>http://www.stillnetstudios.com/missing-library-errors-when-installing-coldfusion-on-linux/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 17:19:08 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.stillnetstudios.com/?p=423</guid>
		<description><![CDATA[I was installing ColdFusion 7.02 on a client&#8217;s CentOS 5.2 Linux server the other day and received an error when running the installer.  Note that this OS is NOT supported by Adobe for this version of ColdFusion.  This is a fairly old version of CF being installed on a pretty current version of [...]]]></description>
			<content:encoded><![CDATA[<p>I was installing ColdFusion 7.02 on a client&#8217;s CentOS 5.2 Linux server the other day and received an error when running the installer.  Note that this OS is NOT supported by Adobe for this version of ColdFusion.  This is a fairly old version of CF being installed on a pretty current version of CentOS.  The error was:</p>
<p><code>[root@server tmp]# ./coldfusion-702-linux.bin<br />
Preparing to install...<br />
Extracting the JRE from the installer archive...<br />
Unpacking the JRE...<br />
Extracting the installation resources from the installer archive...<br />
Configuring the installer for this system's environment...<br />
awk: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory<br />
dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory<br />
/bin/ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory<br />
basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory<br />
dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory<br />
basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory<br />
Launching installer<br />
grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory<br />
/tmp/install.dir.3348/Linux/resource/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory</code></p>
<p>There is a hard coded value in the installer thats causing things to get messed up.  Fixing this is fairly easy, you can modify the installer like this:</p>
<p><code>cp coldfusion-702-linux.bin coldfusion-702-linux.bin.backup<br />
cat coldfusion-702-linux.bin.backup | sed "s/export LD_ASSUME/#xport LD_ASSUME/" &gt; coldfusion-702-linux.bin</code></p>
<p>That comments out the offending line in all places in the installation script.</p>
<p>More discussion on this here:<br />
<a href="http://www.billmitchell.org/coldfusion/centos5/mx7_apache.php">http://www.billmitchell.org/coldfusion/centos5/mx7_apache.php</a><br />
<a href="http://www.talkingtree.com/blog/index.cfm/2006/12/6/Running-ColdFusion-MX-7-on-Fedora-Core-6-Linux">http://www.talkingtree.com/blog/index.cfm/2006/12/6/Running-ColdFusion-MX-7-on-Fedora-Core-6-Linux</a></p>
<p>You will probably run into more issues installing CF7 on this version of CentOS but it can be done.  I also had to upgrade the connector to work with Apache 2.2 (when CF7 came out the connector was designed to run on Apache 2.0).  The Adobe KB article that discusses this is here: <a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=8001e97&#038;sliceId=1">http://kb.adobe.com/selfservice/viewContent.do?externalId=8001e97&#038;sliceId=1</a>.   Their example didn&#8217;t quite work for me because its defaulting to the version of Java thats on your OS, which won&#8217;t work unless its a Sun 1.4.2x version.  So I just used the JRE that is bundled with ColdFusion to install the new connector:</p>
<pre><code>/opt/coldfusionmx7/runtime/jre/bin/java -Dtrace.ci=1 -jar ../../runtime/lib/wsconfig.jar \
        -server coldfusion \
    -ws apache \
        -dir /etc/httpd/conf \
        -bin /usr/sbin/httpd \
        -script /etc/rc.d/init.d/httpd \
        -coldfusion -v</code></pre>
<p>I thought that was the last hurdle but when we tried to log in to the ColdFusion administrator we got an error about &#8220;The Graphing service is not available&#8221;.  The message in the log file was &#8220;Unable to initialize Graphing service: java.lang.UnsatisfiedLinkError: /opt/coldfusionmx7/runtime/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory&#8221;.  This was fixed by installing the libXp library:</p>
<p><code>yum install libXp</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stillnetstudios.com/missing-library-errors-when-installing-coldfusion-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problems connecting to MySQL locally &#8211; try localhost instead of %</title>
		<link>http://www.stillnetstudios.com/problems-connecting-to-mysql-locally/</link>
		<comments>http://www.stillnetstudios.com/problems-connecting-to-mysql-locally/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 22:19:05 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.stillnetstudios.com/2008/08/24/problems-connecting-to-mysql-locally/</guid>
		<description><![CDATA[I&#8217;m setting up mysql locally on my laptop this weekend, and ran into a snag that cost me at least an hour.  To mimic a web app I am running locally, I needed to connect to mysql with a specific username and password.  But no matter what I did, I always got this [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m setting up mysql locally on my laptop this weekend, and ran into a snag that cost me at least an hour.  To mimic a web app I am running locally, I needed to connect to mysql with a specific username and password.  But no matter what I did, I always got this error:</p>
<pre><code>MySQL: access denied for user: <em>username</em> (Using password: YES)</code></pre>
<p>I got this when connecting via the command line client and via ColdFusion.  Finally after some googling I came across <a href="http://javafoo.wordpress.com/2005/06/30/mysql-access-denied-for-user-using-password-yes">this blog post</a> suggesting to change the privilege details to allow connecting from &#8216;localhost&#8217; instead of &#8216;%&#8217;.   The % indicates a wildcard and should allow connections from any host.  But for some reason this was not working for me.   Changing it to &#8216;localhost&#8217; fixed the problem and allowed me to connect.  I think it may have had something to do with the fact that I checked a box when installing that would only allow connections from the localhost.</p>
<p>I used this SQL to fix the host setting after connecting to the &#8216;mysql&#8217; database:</p>
<pre><code>update user set Host=’localhost’ where User=’myUserName’</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.stillnetstudios.com/problems-connecting-to-mysql-locally/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Deleting all your .svn directories</title>
		<link>http://www.stillnetstudios.com/deleting-svn-dirs-linux-windows/</link>
		<comments>http://www.stillnetstudios.com/deleting-svn-dirs-linux-windows/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 15:17:56 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.stillnetstudios.com/2008/07/02/deleting-svn-dirs-linux-windows/</guid>
		<description><![CDATA[Sometimes its necessary to delete all the .svn folders from your subversion working copy.
Here is a simple way to do it on Linux:
rm -rf `find . -name .svn`
That might not work if you have hundreds or thousands of folders, as it might be too many arguments for the rm command.  I still like it [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes its necessary to delete all the .svn folders from your subversion working copy.</p>
<p>Here is a simple way to do it on Linux:</p>
<pre><code>rm -rf `find . -name .svn`</code></pre>
<p>That might not work if you have hundreds or thousands of folders, as it might be too many arguments for the rm command.  I still like it because its simple.  But a more robust way would be:</p>
<pre><code>find . -name .svn -prune -exec rm -rf {} \;</code></pre>
<p>This calls rm on each file separately.</p>
<p>I haven&#8217;t tried the following, but on Windows you may be able to:</p>
<p>Create a cleanSVN.cmd file in the root containing these lines:</p>
<pre><code>for /f “tokens=* delims=” %%i in (’dir /s /b /a:d *svn’) do (
rd /s /q “%%i”
)</code></pre>
<p>You could also try browsing to the files in Windows Exporer and then:<br />
Right click on the folder and click Search..<br />
Enter .svn as the filename to search for.<br />
Click “More advanced options” and select:<br />
- Search hidden files and folders<br />
- Search subfolders<br />
Press search button and delete the folders you find appropriate.</p>
<p>The Windows tips came from Axel&#8217;s blog at <a href="http://www.axelscript.com/2008/03/11/delete-all-svn-files-in-windows/">http://www.axelscript.com/2008/03/11/delete-all-svn-files-in-windows/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stillnetstudios.com/deleting-svn-dirs-linux-windows/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Require subversion comments &#8211; a perl pre-commit hook</title>
		<link>http://www.stillnetstudios.com/require-subversion-comments-minimum/</link>
		<comments>http://www.stillnetstudios.com/require-subversion-comments-minimum/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 19:52:14 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.stillnetstudios.com/2008/06/16/require-subversion-comments-minimum/</guid>
		<description><![CDATA[We&#8217;ve been having some issues with people committing to the subversion server without entering a comment.  Its easy to to require a comment using a &#8220;pre-commit&#8221; hook, which is a script that runs before someone&#8217;s changes are committed to the repository.  A sample commit hook is supplied with subversion that you can enable [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been having some issues with people committing to the subversion server without entering a comment.  Its easy to to require a comment using a &#8220;pre-commit&#8221; hook, which is a script that runs before someone&#8217;s changes are committed to the repository.  A sample commit hook is supplied with subversion that you can enable to require comments.  The problem is it doesn&#8217;t report back any error message (users will just get a generic &#8220;commit failed&#8221; in their svn client), and there is no provision for making sure the comment is a minimum length.</p>
<p>I tried to modify the example script, but I&#8217;m pretty bad with shell scripting.  I looked for a perl one, which I knew I could easily modify, but couldn&#8217;t find any.  So I whipped this one up:<br />
<span id="more-100"></span></p>
<pre><code>#!/usr/bin/perl

# config section
$minchars = 4;
$svnlook = '/usr/bin/svnlook';

#--------------------------------------------
$repos = $ARGV[0];
$txn = $ARGV[1];
$comment = `$svnlook log -t "$txn" "$repos"`;
chomp($comment);

if ( length($comment) == 0 ) {
  print STDERR "A comment is required!";
  exit(1);
  }
elsif ( length($comment) &lt; $minchars ) {
  print STDERR "Comment must be at least $minchars characters.";
  exit(1);
  }

exit(0);</code></pre>
<p>Those error messages get sent back to the client and display just fine in TortoiseSVN or whatever you use.</p>
<p>My subversion server is running on Linux, but the script should run on Windows with little modification, if you have perl installed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stillnetstudios.com/require-subversion-comments-minimum/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Book Review &#8211; Apache Security</title>
		<link>http://www.stillnetstudios.com/book-review-apache-security/</link>
		<comments>http://www.stillnetstudios.com/book-review-apache-security/#comments</comments>
		<pubDate>Fri, 12 Oct 2007 00:38:20 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.stillnetstudios.com/2007/10/11/book-review-apache-security/</guid>
		<description><![CDATA[A few months ago I decided to go on a book binge and acquired a stack of books about two feet tall. It includes classics such as The Pragmatic Progammer and Practices of an Agile Developer, as well as some on Java, Asterisk, Extreme Programming, Linux Firewalls, and a NASCAR book thrown in for good [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago I decided to go on a book binge and acquired a stack of books about two feet tall. It includes classics such as <a href="http://www.amazon.com/dp/020161622X">The Pragmatic Progammer</a> and <a href="http://www.amazon.com/dp/097451408X/">Practices of an Agile Developer</a>, as well as some on Java, <a href="http://www.oreilly.com/catalog/9780596510480/">Asterisk</a>, <a href="http://www.amazon.com/dp/0672324415/">Extreme Programming</a>, <a href="http://www.amazon.com/dp/0764524631/">Linux Firewalls</a>, and a NASCAR book thrown in for good measure.</p>
<p>I&#8217;ve gotten through a couple, and will be posting reviews of a few of them.  This week I finished <a href="http://www.amazon.com/dp/0596007248/">Apache Security</a>, from O&#8217;Reilly.  I found this book while browsing the programming section of Borders (the programming section of my local Borders is amazing!), and I&#8217;ve found it to be a real gem.<br />
<span id="more-66"></span><br />
The book covers so much more than just Apache security.  It covers installation and configuration, and explains a little of how Apache works along the way.  There are also chapters or sections on:</p>
<p>- Understanding and securing PHP<br />
- An explanation of SSL<br />
- DOS attacks<br />
- Traffic shaping in Apache<br />
- Logging is covered extensively<br />
- There&#8217;s a chapter on web security in general, where all the common attacks are explained<br />
- Using Apache as a proxy or a reverse proxy</p>
<p>I especially enjoyed the <em>Web Security Assessment</em> chapter where the author explained how to systematically analyze and probe web applications/servers, with many real world examples.</p>
<p>There is a large section discussing mod_security, which is an amazing Apache module. Mod_security is an intrusion detection and prevention engine for web applications (a web application firewall).  The book is written by the author of mod_security (Ivan Ristic), so he really knows what he&#8217;s talking about in this area.  Also covered is mod_dosevasive, which, obviously helps prevent against denial of service attacks.</p>
<p>I would not hesitate to recommend this book to any Apache administrator, user, or web programmer.</p>
<p><a href="http://www.amazon.com/dp/0596007248/" title="Apache Security book cover"><img id="image67" src="http://www.stillnetstudios.com/wp-content/uploads/2007/10/apachesecurity.jpg" alt="Apache Security book cover" style="border: 1px solid black;" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stillnetstudios.com/book-review-apache-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problems installing the ColdFusion connector on Linux/Apache</title>
		<link>http://www.stillnetstudios.com/problems-installing-the-coldfusion-connector-on-linuxapache/</link>
		<comments>http://www.stillnetstudios.com/problems-installing-the-coldfusion-connector-on-linuxapache/#comments</comments>
		<pubDate>Fri, 06 Apr 2007 03:20:16 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.stillnetstudios.com/2007/04/05/problems-installing-the-coldfusion-connector-on-linuxapache/</guid>
		<description><![CDATA[Some people have encountered problems during the ColdFusion MX 7 install on Linux/Apache.  When you first start the ColdFusion server, you may see something like this:
Configuring the web server connector (Launched on the first run of the ColdFusion MX 7 start script)
Running apache connector wizard...
=======================================
There was an error while running the connector wizard
Connector installation [...]]]></description>
			<content:encoded><![CDATA[<p>Some people have encountered problems during the ColdFusion MX 7 install on Linux/Apache.  When you first start the ColdFusion server, you may see something like this:</p>
<p><code>Configuring the web server connector (Launched on the first run of the ColdFusion MX 7 start script)<br />
Running apache connector wizard...<br />
=======================================<br />
There was an error while running the connector wizard<br />
Connector installation was not successful</code><br />
<span id="more-46"></span><br />
The connector may or may not actually be installed.  In some cases it is, but you still get this error.  If it is installed, you should know it.  Restart apache to make the httpd.conf changes take effect, then try browsing to a .cfm page.  If it displays correctly, the connector was installed.</p>
<p>In this case, all you need to do to get rid of the error message is rename the <code>/opt/coldfusionmx7/bin/cfmx-connectors.sh</code> script.  Thats normally what happens when the connector is successfully installed &#8211; ColdFusion renames that script to &#8220;cfmx-connectors-run.sh&#8221;.</p>
<p>If your connector did <em>not</em> successfully install, there are a few additional steps to get it properly installed.  Change into the /opt/coldfusionmx7/bin/connectors directory.  Open the apache_connector.sh file, and fix the paths to be correct to your system.</p>
<p>By default the file contains these lines (among others):<br />
<code>../../runtime/bin/wsconfig \<br />
        -server coldfusion \<br />
    -ws apache \<br />
        -dir /usr/local/apache2/conf \<br />
        -bin /usr/local/apache2/bin/httpd \<br />
        -script /usr/local/apache2/bin/apachectl \<br />
        -coldfusion</code></p>
<p>On RedHat/CentOS, they should usually look like this:</p>
<p><code>../../runtime/bin/wsconfig \<br />
        -server coldfusion \<br />
    -ws apache \<br />
        -dir /etc/httpd/conf \<br />
        -bin /usr/sbin/httpd \<br />
        -script /etc/rc.d/init.d/httpd \<br />
        -coldfusion</code></p>
<p>Even though those are the values I entered during the install, they don&#8217;t always make it to this connector script for some reason.</p>
<p>Save the script and run it.  Restart apache, and browse to a .cfm file, or to the Administrator to verify that it is installed properly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stillnetstudios.com/problems-installing-the-coldfusion-connector-on-linuxapache/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
	</channel>
</rss>
