<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://www.kelvinwong.ca/wp-atom.php">
	<title type="text">Bongo's Codeways</title>
	<subtitle type="text">web programming, life, etc...</subtitle>

	<updated>2012-01-21T21:13:44Z</updated>

	<link rel="alternate" type="text/html" href="http://www.kelvinwong.ca" />
	<id>http://www.kelvinwong.ca/feed/atom/</id>
	

	<generator uri="http://wordpress.org/" version="3.3.1">WordPress</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/BongosCodeways" /><feedburner:info uri="bongoscodeways" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
		<author>
			<name>kelvin.wong</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Hacked on a Friday]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BongosCodeways/~3/kjz3AMpEItY/" />
		<id>http://www.kelvinwong.ca/?p=930</id>
		<updated>2012-01-21T21:13:44Z</updated>
		<published>2012-01-21T05:32:18Z</published>
		<category scheme="http://www.kelvinwong.ca" term="etc" /><category scheme="http://www.kelvinwong.ca" term="dreamhost" /><category scheme="http://www.kelvinwong.ca" term="hacked" /><category scheme="http://www.kelvinwong.ca" term="techcrunch" />		<summary type="html"><![CDATA[It&#8217;s not the first time that I&#8217;ve been hacked and I&#8217;m quite sure that it won&#8217;t be the last time either. Today, I found out that my web host (Dreamhost) was hacked. Part of being hacked is trying to figure out what was taken. It takes time to review logs, so I&#8217;m not too concerned [...]]]></summary>
		<content type="html" xml:base="http://www.kelvinwong.ca/2012/01/20/hacked-on-a-friday-with-dreamhost/">&lt;p&gt;It&amp;#8217;s not the first time that I&amp;#8217;ve been hacked and I&amp;#8217;m quite sure that it won&amp;#8217;t be the last time either. Today, I found out that my web host (Dreamhost) was &lt;a href="http://techcrunch.com/2012/01/20/dreamhost-hacked-password-changes-made-mandatory/"&gt;hacked&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Part of being hacked is trying to figure out what was taken. It takes time to review logs, so I&amp;#8217;m not too concerned that Dreamhost can&amp;#8217;t answer questions about what data was compromised.&lt;/p&gt;
&lt;p&gt;The thing that gets me is that they never emailed me to let me know what was going on. I found out about the breach by reading Tech Crunch. That&amp;#8217;s really what I&amp;#8217;m grumpy about tonight&amp;#8230;that and the passwords I have to reset.&lt;/p&gt;
&lt;h4&gt;Update &amp;gt; 12h on&lt;/h4&gt;
&lt;p&gt;Dreamhost sent an email overnight with password advice. I&amp;#8217;m still not impressed by the 12-hour delay.&lt;/p&gt;
&lt;p&gt;&lt;a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kelvinwong.ca%2F2012%2F01%2F20%2Fhacked-on-a-friday-with-dreamhost%2F&amp;amp;title=Hacked%20on%20a%20Friday" id="wpa2a_2"&gt;&lt;img src="http://www.kelvinwong.ca/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/taskHtemr6vuV1IfzjgayhQlScw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/taskHtemr6vuV1IfzjgayhQlScw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/taskHtemr6vuV1IfzjgayhQlScw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/taskHtemr6vuV1IfzjgayhQlScw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BongosCodeways/~4/kjz3AMpEItY" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.kelvinwong.ca/2012/01/20/hacked-on-a-friday-with-dreamhost/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.kelvinwong.ca/2012/01/20/hacked-on-a-friday-with-dreamhost/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.kelvinwong.ca/2012/01/20/hacked-on-a-friday-with-dreamhost/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>kelvin.wong</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[The Burzynski Clinic]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BongosCodeways/~3/pyi1fwtE-XM/" />
		<id>http://www.kelvinwong.ca/?p=922</id>
		<updated>2011-11-30T09:46:37Z</updated>
		<published>2011-11-30T09:46:37Z</published>
		<category scheme="http://www.kelvinwong.ca" term="etc" /><category scheme="http://www.kelvinwong.ca" term="Dr Stanislaw Burzynski" /><category scheme="http://www.kelvinwong.ca" term="quackery" />		<summary type="html"><![CDATA[Dr Stanislaw Burzynski runs an alternative cancer treatment clinic in Texas. Someone claiming to represent the Burzynski Clinic tried to silence teenage blogger/skeptic Rhys Morgan in a fascinating email exchange: You probably haven’t heard of a man named Stanislaw Burzynski. He offers a treatment called antineoplaston therapy, which he claims can treat cancer, in a [...]]]></summary>
		<content type="html" xml:base="http://www.kelvinwong.ca/2011/11/30/the-burzynski-clinic/">&lt;p&gt;&lt;a href="http://rhysmorgan.co/2011/08/the-burzynski-clinic/" title="Dr Stanislaw Burzynski cancer cure fiasco"&gt;Dr Stanislaw Burzynski&lt;/a&gt; runs an alternative cancer treatment clinic in Texas. Someone claiming to represent &lt;a href="http://rhysmorgan.co/2011/11/threats-from-the-burzynski-clinic/" title="Threats from the Burzynski Clinic"&gt;the Burzynski Clinic&lt;/a&gt; tried to silence teenage blogger/skeptic Rhys Morgan in a fascinating email exchange:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;You probably haven’t heard of a man named Stanislaw Burzynski. He offers a treatment called antineoplaston therapy, which he claims can treat cancer, in a centre called the Burzynski Clinic in Houston, Texas. That’s quite a claim, but the Nobel Prize Committee does not need to convene quite yet, because this treatment has been in non-randomised clinical trials since its discovery by Burzynski some 34 years ago.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kelvinwong.ca%2F2011%2F11%2F30%2Fthe-burzynski-clinic%2F&amp;amp;title=The%20Burzynski%20Clinic" id="wpa2a_4"&gt;&lt;img src="http://www.kelvinwong.ca/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wSlbJoFveJzODAMjVi9eyLlQEyk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wSlbJoFveJzODAMjVi9eyLlQEyk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wSlbJoFveJzODAMjVi9eyLlQEyk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wSlbJoFveJzODAMjVi9eyLlQEyk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BongosCodeways/~4/pyi1fwtE-XM" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.kelvinwong.ca/2011/11/30/the-burzynski-clinic/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.kelvinwong.ca/2011/11/30/the-burzynski-clinic/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.kelvinwong.ca/2011/11/30/the-burzynski-clinic/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>kelvin.wong</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Multi-site Solr for Drupal Notes]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BongosCodeways/~3/l4mN_2lmzvk/" />
		<id>http://www.kelvinwong.ca/?p=907</id>
		<updated>2011-11-11T22:56:48Z</updated>
		<published>2011-11-11T21:54:40Z</published>
		<category scheme="http://www.kelvinwong.ca" term="centos" /><category scheme="http://www.kelvinwong.ca" term="drupal" /><category scheme="http://www.kelvinwong.ca" term="java" /><category scheme="http://www.kelvinwong.ca" term="Acquia Drupal 6" /><category scheme="http://www.kelvinwong.ca" term="apachesolr" /><category scheme="http://www.kelvinwong.ca" term="iptables" /><category scheme="http://www.kelvinwong.ca" term="openjdk" /><category scheme="http://www.kelvinwong.ca" term="solr" />		<summary type="html"><![CDATA[Last month I published an article on setting up Solr web search for multiple Drupal web sites. Since then I have received several emails about the set-up. Here are some of my replies: Can I set up Solr on a separate machine? Yes. To do that you will have to open the port on your [...]]]></summary>
		<content type="html" xml:base="http://www.kelvinwong.ca/2011/11/11/multi-site-solr-drupal-notes/">&lt;p&gt;Last month I published &lt;a href="http://www.kelvinwong.ca/2011/09/07/multi-site-solr-acquia-drupal-6-search-tomcat-6-centos-6/" title="Multi-Site Solr for Drupal 6 Search on Tomcat 6 / CentOS 6"&gt;an article on setting up Solr web search for multiple Drupal web sites&lt;/a&gt;. Since then I have received several emails about the set-up. Here are some of my replies:&lt;/p&gt;
&lt;h4&gt;Can I set up Solr on a separate machine?&lt;/h4&gt;
&lt;p&gt;Yes. To do that you will have to &lt;a href="http://wiki.centos.org/HowTos/Network/IPTables"&gt;open the port&lt;/a&gt; on your &lt;i&gt;iptables&lt;/i&gt; (if it is running). Then configure Tomcat to &lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/config/http.html#Standard_Implementation" title="Change Connector port"&gt;listen on that address and port&lt;/a&gt; in your configuration file. Then you have to set up authentication (probably just &lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/config/realm.html" title="Set up Realm"&gt;basic authentication using a Realm&lt;/a&gt;) for your Context.&lt;/p&gt;
&lt;h4&gt;Why not just use multi-core Solr?&lt;/h4&gt;
&lt;p&gt;You can and should use &lt;a href="http://wiki.apache.org/solr/MultiCore"&gt;multi-core Solr&lt;/a&gt; if you are setting up commercial hosting and you have the technical knowledge to set-up separate Solr cores. Multi-core Solr would likely use less resources too. The set-up I describe works fine for a few Drupal web sites and can be maintained using files provided by the project maintainers. If you are only supporting a few sites (like maybe 3) I wouldn&amp;#8217;t bother trying anything more complex.&lt;/p&gt;
&lt;h4&gt;Sun JVM works better&lt;/h4&gt;
&lt;p&gt;I have heard that Sun&amp;#8217;s JVM works better than OpenJDK when running Solr but I haven&amp;#8217;t had any problems running OpenJDK. I have been running a couple of small Solr instances for over a year on OpenJDK and Tomcat 5.5 without any issues related to the JVM.&lt;/p&gt;
&lt;h4&gt;Can I use Solr version X (instead of 1.4.X)?&lt;/h4&gt;
&lt;p&gt;I have no idea. &lt;a href="http://drupalcode.org/project/apachesolr.git/blob_plain/refs/heads/6.x-1.x:/README.txt"&gt;ApacheSolr recommends Solr 1.4.x in the release notes&lt;/a&gt; and unless you need additional Solr features only available in later versions, I recommend that you stick with the supported version.&lt;/p&gt;
&lt;h4&gt;Will this work on my busy web site?&lt;/h4&gt;
&lt;p&gt;Define &amp;#8220;&lt;a href="http://en.wikipedia.org/wiki/Web_traffic" title="Busy as in lots of traffic"&gt;busy&lt;/a&gt;&amp;#8220;. &lt;/p&gt;
&lt;p&gt;Drupal is very flexible and if you mostly publish content and occasionally your users search for stuff, then the demands on your search service will be minimal and my set-up would probably work fine.&lt;/p&gt;
&lt;p&gt;If you run a search service and index other websites by scraping and republishing scraped content in Drupal, then your search is going to get a lot more use since it is the primary feature. In that case, you would probably be better off running Solr on a dedicated machine (or machines).&lt;/p&gt;
&lt;h4&gt;Why is my Tomcat on port 8983?&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://jetty.codehaus.org/jetty/"&gt;Jetty&lt;/a&gt; is likely listening on port 8983 (were you following &lt;a href="http://lucene.apache.org/solr/tutorial.html"&gt;the Solr tutorial&lt;/a&gt; and left it running?). Make sure that you are running Tomcat and that it is listening on port 8080.&lt;/p&gt;
&lt;h4&gt;Drupal: &amp;#8220;Your site was unable to contact the Apache Solr server&amp;#8221;&lt;/h4&gt;
&lt;p&gt;Like it says, your Drupal install couldn&amp;#8217;t find the Solr server. Check your Drupal settings. If they are not exactly right you will see this error. Check your system using &amp;#8220;netstat -anp&amp;#8221; and &amp;#8220;lsof -i&amp;#8221; run as root. Make sure that Tomcat is listening on port 8080. Check your logs.&lt;/p&gt;
&lt;h4&gt;Why doesn&amp;#8217;t my set-up work?&lt;/h4&gt;
&lt;p&gt;There are a lot of reasons why your Solr set-up isn&amp;#8217;t working. UNIX is very good at telling you when things go wrong by writing everything in its logs. Check your SELinux settings using &lt;a href="http://linux.die.net/man/8/sestatus"&gt;sestatus&lt;/a&gt;. Check your audit logs. Check your web server logs. Check your catalina.out log. Try Googling the error codes or the main body of the error message.&lt;/p&gt;
&lt;h4&gt;Feedback welcome&lt;/h4&gt;
&lt;p&gt;I&amp;#8217;m always glad to hear from readers via comments here on the blog, or by trackbacks or via email.&lt;/p&gt;
&lt;p&gt;&lt;a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kelvinwong.ca%2F2011%2F11%2F11%2Fmulti-site-solr-drupal-notes%2F&amp;amp;title=Multi-site%20Solr%20for%20Drupal%20Notes" id="wpa2a_6"&gt;&lt;img src="http://www.kelvinwong.ca/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_BcnVxb-v72jmnRL2D-2NEc7Fko/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_BcnVxb-v72jmnRL2D-2NEc7Fko/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_BcnVxb-v72jmnRL2D-2NEc7Fko/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_BcnVxb-v72jmnRL2D-2NEc7Fko/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BongosCodeways/~4/l4mN_2lmzvk" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.kelvinwong.ca/2011/11/11/multi-site-solr-drupal-notes/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.kelvinwong.ca/2011/11/11/multi-site-solr-drupal-notes/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.kelvinwong.ca/2011/11/11/multi-site-solr-drupal-notes/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>kelvin.wong</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Multi-Site Solr for Drupal 6 Search on Tomcat 6 / CentOS 6]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BongosCodeways/~3/w1MRvdmsrYY/" />
		<id>http://www.kelvinwong.ca/?p=807</id>
		<updated>2011-09-07T12:44:56Z</updated>
		<published>2011-09-07T12:12:03Z</published>
		<category scheme="http://www.kelvinwong.ca" term="centos" /><category scheme="http://www.kelvinwong.ca" term="drupal" /><category scheme="http://www.kelvinwong.ca" term="java" /><category scheme="http://www.kelvinwong.ca" term="php" /><category scheme="http://www.kelvinwong.ca" term="walkthroughs" /><category scheme="http://www.kelvinwong.ca" term="acquia" /><category scheme="http://www.kelvinwong.ca" term="Acquia Drupal 6" /><category scheme="http://www.kelvinwong.ca" term="apachesolr" /><category scheme="http://www.kelvinwong.ca" term="Context fragment" /><category scheme="http://www.kelvinwong.ca" term="getsebool" /><category scheme="http://www.kelvinwong.ca" term="sealert" /><category scheme="http://www.kelvinwong.ca" term="selinux" /><category scheme="http://www.kelvinwong.ca" term="setroubleshoot" /><category scheme="http://www.kelvinwong.ca" term="setsebool" /><category scheme="http://www.kelvinwong.ca" term="solr" /><category scheme="http://www.kelvinwong.ca" term="Solr 1.4.1" /><category scheme="http://www.kelvinwong.ca" term="solr php client" /><category scheme="http://www.kelvinwong.ca" term="SolrPhpClient" /><category scheme="http://www.kelvinwong.ca" term="tomcat" /><category scheme="http://www.kelvinwong.ca" term="tomcat6" />		<summary type="html"><![CDATA[ApacheSolr for Drupal 6 improves on the out-of-the-box search experience for Drupal users. The easiest way to get Solr running on your Drupal web site is to use the hosted service provided by Acquia; it is way easier than running your own Solr. You simply point your queries to their Solr server and you&#8217;re done. [...]]]></summary>
		<content type="html" xml:base="http://www.kelvinwong.ca/2011/09/07/multi-site-solr-acquia-drupal-6-search-tomcat-6-centos-6/">&lt;p&gt;&lt;a href="http://www.kelvinwong.ca/wp-content/uploads/2011/09/solr_did_u_mean.png"&gt;&lt;img src="http://www.kelvinwong.ca/wp-content/uploads/2011/09/solr_did_u_mean_inset.jpg" alt="" title="Screen grab of installed Solr search for Drupal" width="400" height="240" class="aligncenter size-full wp-image-853" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://drupal.org/project/apachesolr"&gt;ApacheSolr for Drupal 6&lt;/a&gt; improves on the out-of-the-box search experience for &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt; users. The easiest way to get &lt;a href="http://lucene.apache.org/solr/"&gt;Solr&lt;/a&gt; running on your Drupal web site is to use the hosted service provided by &lt;a href="http://www.acquia.com/"&gt;Acquia&lt;/a&gt;; it is way easier than running your own Solr. You simply point your queries to their Solr server and you&amp;#8217;re done.
&lt;/p&gt;
&lt;p&gt;
For various reasons, you might want to run your own &lt;a href="http://en.wikipedia.org/wiki/Apache_Solr"&gt;Solr web service&lt;/a&gt; on your own machine. In this article, I will walk you through setting up a working Solr installation using &lt;a href="http://en.wikipedia.org/wiki/Apache_Tomcat"&gt;Tomcat 6&lt;/a&gt; on &lt;a href="http://en.wikipedia.org/wiki/CentOS"&gt;CentOS 6&lt;/a&gt;. The end result of this walkthrough will be two separate Solr indexes (via two separate Solr web apps) for two different web sites running on a single Tomcat. I will assume that you are using Acquia&amp;#8217;s Drupal (which ships with &lt;a href="http://code.google.com/p/solr-php-client/"&gt;SolrPHPClient&lt;/a&gt;).
&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; This article assumes all services are on a single machine (suitable for a small organization). Running Solr on a separate machine is possible but raises security implications that are outside the scope of this article.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;These are the tasks that we will work on:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set-up Solr&lt;/li&gt;
&lt;li&gt;Set-up Tomcat&lt;/li&gt;
&lt;li&gt;Tweak CentOS &lt;abbr title="...it's a technical term..."&gt;security thinger&lt;/abbr&gt; (SELinux)&lt;/li&gt;
&lt;li&gt;Configure Acquia Drupal&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Prerequisites&lt;/h4&gt;
&lt;p&gt;The prerequisites are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CentOS 6 Web Server w/ PHP 5.3, MySQL 5, Tomcat 6, Java 6 (all services running w/ &lt;a href="http://en.wikipedia.org/wiki/No_problemo"&gt;no problemos&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Acquia Drupal 6 installed&lt;/li&gt;
&lt;li&gt;Familiarity with Drupal (basic skills &amp;#8211; enabling modules, setting permissions on nodes, etc)&lt;/li&gt;
&lt;li&gt;Familiarity with Java &amp;#038; Tomcat (basic skills)&lt;/li&gt;
&lt;li&gt;Familiarity working with Linux in a terminal and &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Vi"&gt;vi&lt;/a&gt;&lt;/em&gt; (intermediate skills)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is my system (a web server set-up with &lt;a href="http://fedoraproject.org/wiki/Anaconda"&gt;Anaconda&lt;/a&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;uname -a&lt;/b&gt;
Linux templeton.localdomain 2.6.32-71.29.1.el6.i686 #1 SMP Mon Jun 27 18:07:00 BST 2011 i686 i686 i386 GNU/Linux
# &lt;b style="color:black;"&gt;cat /etc/redhat-release&lt;/b&gt;
CentOS Linux release 6.0 (Final)
# &lt;b style="color:black;"&gt;yum list installed | grep mysql-server&lt;/b&gt;
mysql-server.i686       5.1.52-1.el6_0.1  @updates
# &lt;b style="color:black;"&gt;yum list installed | grep php&lt;/b&gt;
php.i686                5.3.2-6.el6_0.1   @updates
php-cli.i686            5.3.2-6.el6_0.1   @updates
php-common.i686         5.3.2-6.el6_0.1   @updates
php-gd.i686             5.3.2-6.el6_0.1   @updates
php-mysql.i686          5.3.2-6.el6_0.1   @updates
php-pdo.i686            5.3.2-6.el6_0.1   @updates
php-pear.noarch         1:1.9.0-2.el6     @anaconda-centos-201106051823.i386/6.0
php-xml.i686            5.3.2-6.el6_0.1   @updates
# &lt;b style="color:black;"&gt;java -version&lt;/b&gt;
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.5) (rhel-1.31.b17.el6_0-i386)
OpenJDK Client VM (build 14.0-b16, mixed mode)
# &lt;b style="color:black;"&gt;yum list installed | grep tomcat6&lt;/b&gt;
tomcat6.noarch          6.0.24-24.el6_0   @updates
tomcat6-el-2.1-api.noarch
tomcat6-jsp-2.1-api.noarch
tomcat6-lib.noarch      6.0.24-24.el6_0   @updates
tomcat6-servlet-2.5-api.noarch
# &lt;b style="color:black;"&gt;/sbin/service tomcat6 status&lt;/b&gt;
tomcat6 (pid 1790) is running...                           [  &lt;span style="color:green;"&gt;OK&lt;/span&gt;  ]
# &lt;b style="color:black;"&gt;sestatus&lt;/b&gt;
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;&lt;p&gt;Notice the hashmark (&lt;b&gt;#&lt;/b&gt;) as my terminal prompt. It denotes that I am executing all these commands as root (use &amp;#8216;su -&amp;#8217;). You can also prefix the following commands with &amp;#8216;sudo&amp;#8217;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h4&gt;Download Solr&lt;/h4&gt;
&lt;p&gt;Obtain a copy of the Solr tarball from a nearby mirror:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.apache.org/dyn/closer.cgi/lucene/solr/"&gt;http://www.apache.org/dyn/closer.cgi/lucene/solr/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Select Solr 1.4.1 or the latest recommended Solr:&lt;/p&gt;
&lt;p&gt;ie. &lt;a href="http://apache.sunsite.ualberta.ca//lucene/solr/1.4.1/"&gt;http://apache.sunsite.ualberta.ca//lucene/solr/1.4.1/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m using the &lt;strong title="Holy Cow!"&gt;54M&lt;/strong&gt; GZipped Tarball and downloading it using &lt;i&gt;wget&lt;/i&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;wget http://apache.sunsite.ualberta.ca//lucene/solr/1.4.1/apache-solr-1.4.1.tgz&lt;/b&gt;
--2011-09-02 02:06:05--  http://apache.sunsite.ualberta.ca//lucene/solr/1.4.1/apache-solr-1.4.1.tgz
Resolving apache.sunsite.ualberta.ca... 129.128.5.190
Connecting to apache.sunsite.ualberta.ca|129.128.5.190|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 56374837 (54M) [application/x-tar]
Saving to: “apache-solr-1.4.1.tgz”

100%[=============================================&amp;gt;] 56,374,837   261K/s   in 6m 20s  

2011-09-02 02:12:42 (145 KB/s) - “apache-solr-1.4.1.tgz” saved [56374837/56374837]

# &lt;b style="color:black;"&gt;tar zxvf apache-solr-1.4.1.tgz&lt;/b&gt;
apache-solr-1.4.1/client/
...
# &lt;b style="color:black;"&gt;pwd&lt;/b&gt;
/root&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Copy the Solr package somewhere reasonable like in the &lt;i&gt;/opt&lt;/i&gt; folder:&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;mkdir -p /opt/solr&lt;/b&gt;
# &lt;b style="color:black;"&gt;cp -r -p /root/apache-solr-1.4.1 /opt/solr&lt;/b&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Link it (the Solr &lt;a href="http://en.wikipedia.org/wiki/WAR_file_format_(Sun)"&gt;WAR&lt;/a&gt; file) to the Tomcat library directory:&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;ln -s /opt/solr/apache-solr-1.4.1/dist/apache-solr-1.4.1.war /usr/share/tomcat6/lib/solr.war&lt;/b&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the future, when you upgrade your software, install the Solr upgrade and update the symlink.&lt;/p&gt;
&lt;h4&gt;Create Solr directories&lt;/h4&gt;
&lt;p&gt;You need to choose where your Solr indexes will be kept. I put them into the &lt;i&gt;/var&lt;/i&gt; directory and that&amp;#8217;s where I&amp;#8217;m assuming that you will put yours:&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;mkdir -p /var/solr&lt;/b&gt;
# &lt;b style="color:black;"&gt;cp -r -p /opt/solr/apache-solr-1.4.1/example/solr/ /var/solr/&lt;/b&gt;
# &lt;b style="color:black;"&gt;mv /var/solr/solr /var/solr/example.com&lt;/b&gt;
# &lt;b style="color:black;"&gt;ls -l /var/solr/example.com/&lt;/b&gt;
total 12
drwxr-xr-x. 2 root root 4096 Sep  2 02:44 bin
drwxr-xr-x. 3 root root 4096 Sep  2 02:44 conf
-rw-r--r--. 1 root root 2259 Sep  2 02:44 README.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Each domain has its own Solr indexes located in &amp;#8216;&lt;i&gt;data&lt;/i&gt;&amp;#8216; and its own configuration files in &amp;#8216;&lt;i&gt;conf&lt;/i&gt;&amp;#8216;. There are two optional directories: &amp;#8216;&lt;i&gt;bin&lt;/i&gt;&amp;#8216; (for replication scripts) and &amp;#8216;&lt;i&gt;lib&lt;/i&gt;&amp;#8216; (for plugins). Unless your other apps use them, chances are they will be missing.&lt;/p&gt;
&lt;h4&gt;Install Drupal ApacheSolr plugin protwords, schema and solrconfig&lt;/h4&gt;
&lt;blockquote&gt;&lt;p&gt;You should already have Acquia Drupal 6 running or Drupal 6 with the ApacheSolr plugin installed. You can copy the &amp;#8216;protwords.txt&amp;#8217;, &amp;#8216;schema.xml&amp;#8217;, and &amp;#8216;solrconfig.xml&amp;#8217; files from the plugin directory in your respective distribution rather than downloading it, but adjust the paths accordingly.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;If you don&amp;#8217;t already have the ApacheSolr plugin, get it from the Drupal web site.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://drupal.org/project/apachesolr"&gt;http://drupal.org/project/apachesolr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Choose the latest Tarball and use &lt;i&gt;wget&lt;/i&gt; to download it to your server, then copy the ApacheSolr configuration files (and backup originals using &amp;#8216;b&amp;#8217; flag):&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;wget http://ftp.drupal.org/files/projects/apachesolr-6.x-1.5.tar.gz&lt;/b&gt;
# &lt;b style="color:black;"&gt;tar zxvf apachesolr-6.x-1.5.tar.gz&lt;/b&gt;
...
# &lt;b style="color:black;"&gt;echo 'If ur root cp may give u a scary msg next cmd! Ignore it! Y to overwrite!'&lt;/b&gt;
If ur root cp may give u a scary msg next cmd! Ignore it! Y to overwrite!
#
# &lt;b style="color:black;"&gt;cp -b -p -f apachesolr/protwords.txt /var/solr/example.com/conf&lt;/b&gt;
# &lt;b style="color:black;"&gt;cp -b -p -f apachesolr/schema.xml /var/solr/example.com/conf&lt;/b&gt;
# &lt;b style="color:black;"&gt;cp -b -p -f apachesolr/solrconfig.xml /var/solr/example.com/conf&lt;/b&gt;
#
# &lt;b style="color:black;"&gt;echo 'Fix group so tomcat can use this!'&lt;/b&gt;
Fix group so tomcat can use this!
#
# &lt;b style="color:black;"&gt;chown -R root:tomcat /var/solr/example.com&lt;/b&gt;
# &lt;b style="color:black;"&gt;chmod -R 775 /var/solr/&lt;/b&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;b&gt;Warning!&lt;/b&gt; If you are not using the Acquia distribution and instead installed the ApacheSolr plugin from the main Drupal web site then you should check that you have a copy of the SolrPhpClient (version r22 &amp;#8211; see module README for the gory details). The Acquia distribution includes the correct SolrPhpClient (so you might want to use that instead?).&lt;/p&gt;&lt;/blockquote&gt;
&lt;h4&gt;Make the two Solr instances for the two domains&lt;/h4&gt;
&lt;p&gt;This walkthrough will create two domains, but you can create more. Using the example.com folder as a prototype, just recursively copy it twice to make two domains (use &amp;#8216;p&amp;#8217; switch to &amp;#8216;preserve&amp;#8217; the file permissions and settings):&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;cp -r -p /var/solr/example.com /var/solr/www1.kelvinwong.ca&lt;/b&gt;
# &lt;b style="color:black;"&gt;cp -r -p /var/solr/example.com /var/solr/www2.kelvinwong.ca&lt;/b&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If the future, to add a new domain, copy the example.com folder you just made and customize it. This will also work for additional domains that you want to support.&lt;/p&gt;
&lt;h4&gt;Configure Tomcat 6&lt;/h4&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;b&gt;It&amp;#8217;s All About Context:&lt;/b&gt; The Context element represents a web application run within a particular Tomcat virtual host. Each web application is based on a Web Application Archive (WAR) file or a corresponding unpacked directory. The web application used to process each web request is determined by matching the request to the path of each Context. You may define as many Context elements as you wish, but each Context MUST have a unique path. &lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/config/context.html"&gt;More on Context&lt;/a&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Contexts are no longer put into Tomcat&amp;#8217;s &lt;i&gt;server.xml&lt;/i&gt; file since that file is read only at server start-up. Instead Contexts are placed into a folder hierarchy under &lt;b&gt;CATALINA_BASE&lt;/b&gt; (on CentOS 6 it is &lt;i&gt;/etc/tomcat6&lt;/i&gt;). Create and configure the following files:&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;touch /etc/tomcat6/Catalina/localhost/www1.kelvinwong.ca.xml&lt;/b&gt;
# &lt;b style="color:black;"&gt;touch /etc/tomcat6/Catalina/localhost/www2.kelvinwong.ca.xml&lt;/b&gt;
# &lt;b style="color:black;"&gt;chown tomcat:root /etc/tomcat6/Catalina/localhost/{www1.kelvinwong.ca.xml,www2.kelvinwong.ca.xml}&lt;/b&gt;
# &lt;b style="color:black;"&gt;chmod 664 /etc/tomcat6/Catalina/localhost/{www1.kelvinwong.ca.xml,www2.kelvinwong.ca.xml}&lt;/b&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tomcat will use these files to find the WAR and deploy the application using the settings in the Context. Note: Contexts can be overridden (they often are) and there are more than a few in Tomcat. Review &lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/index.html"&gt;Tomcat&amp;#8217;s documentation&lt;/a&gt; if they give you any trouble.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Make sure your Context fragments have &lt;b&gt;.xml&lt;/b&gt; suffixes!&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Place the following into &lt;i&gt;/etc/tomcat6/Catalina/localhost/www1.kelvinwong.ca.xml&lt;/i&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;vi /etc/tomcat6/Catalina/localhost/www1.kelvinwong.ca.xml&lt;/b&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="xml" style="font-family:monospace;"&gt;&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: #000066;"&gt;version&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;encoding&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;Context&lt;/span&gt; &lt;span style="color: #000066;"&gt;docBase&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;/usr/share/tomcat6/lib/solr.war&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;debug&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;crossContext&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
   &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;Environment&lt;/span&gt; &lt;span style="color: #000066;"&gt;name&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;solr/home&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;type&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;java.lang.String&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;value&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;/var/solr/www1.kelvinwong.ca&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;override&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/Context&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The Context fragment is simply telling Tomcat where to find the Context root (document base). It is an absolute path to its &lt;a href="http://en.wikipedia.org/wiki/WAR_file_format_(Sun)"&gt;web app archive (WAR) file.&lt;/a&gt; CrossContext allows Solr to get a request dispatcher from &lt;a href="http://download.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getContext(java.lang.String)"&gt;ServletContext.getContext()&lt;/a&gt; for access to other web apps on the virtual host. The Environment tag defines the &amp;#8216;&lt;i&gt;solr/home&lt;/i&gt;&amp;#8216; setting and allows it to be overridden. That&amp;#8217;s all you need.&lt;/p&gt;
&lt;p&gt;Change the other fragment:&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;vi /etc/tomcat6/Catalina/localhost/www2.kelvinwong.ca.xml&lt;/b&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Change the paths:&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="xml" style="font-family:monospace;"&gt;&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: #000066;"&gt;version&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;encoding&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;Context&lt;/span&gt; &lt;span style="color: #000066;"&gt;docBase&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;/usr/share/tomcat6/lib/solr.war&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;debug&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;crossContext&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
   &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;Environment&lt;/span&gt; &lt;span style="color: #000066;"&gt;name&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;solr/home&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;type&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;java.lang.String&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;value&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;/var/solr/www2.kelvinwong.ca&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;override&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/Context&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4&gt;Bind Tomcat to Local Port&lt;/h4&gt;
&lt;p&gt;By default, Tomcat listens on port 8080. The default &lt;i&gt;iptables&lt;/i&gt; ruleset in CentOS 6 does not allow remote connections to port 8080. For our purposes this is fine since we want our Drupal sites to connect locally on port 8080. Local good, remote bad.&lt;/p&gt;
&lt;p&gt;You can also tell Tomcat to bind to &lt;i&gt;localhost&lt;/i&gt; and not any of the other network adapters. Open Tomcat&amp;#8217;s &lt;i&gt;server.xml&lt;/i&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;vi /etc/tomcat6/server.xml&lt;/b&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Change Tomcat&amp;#8217;s binding address to the &lt;i&gt;localhost&lt;/i&gt; address (127.0.0.1) in the Connector tag:&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="line_numbers"&gt;&lt;pre&gt;69
70
71
72
73
74
&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;pre class="xml" style="font-family:monospace;"&gt;    &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;Connector&lt;/span&gt; &lt;span style="color: #000066;"&gt;port&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;8080&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;protocol&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;HTTP/1.1&amp;quot;&lt;/span&gt; &lt;/span&gt;
&lt;span style="color: #009900;"&gt;               &lt;span style="color: #000066;"&gt;connectionTimeout&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;20000&amp;quot;&lt;/span&gt; &lt;/span&gt;
&lt;span style="color: #009900;"&gt;               &lt;span style="color: #000066;"&gt;redirectPort&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;8443&amp;quot;&lt;/span&gt; &lt;/span&gt;
&lt;span style="color: #009900;"&gt;               &lt;span style="color: #000066;"&gt;URIEncoding&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;               &lt;span style="color: #000066;"&gt;maxHttpHeaderSize&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;65535&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;               &lt;span style="color: #000066;"&gt;address&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;127.0.0.1&amp;quot;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Solr is a web service that takes many requests from Drupal using the &lt;a href="http://en.wikipedia.org/wiki/GET_(HTTP)#Request_methods"&gt;HTTP GET method&lt;/a&gt;, similar to you typing into your browser&amp;#8217;s web address bar. These requests routinely get very long; you can increase the GET request character limit by increasing the &lt;b&gt;maxHttpHeaderSize&lt;/b&gt; attribute (from 8k to 64k as shown). To handle non-English characters, you should also set the request encoding to UTF-8. The Connector as-shown does both.&lt;/p&gt;
&lt;p&gt;Restart Tomcat to reload the &lt;i&gt;server.xml&lt;/i&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;/sbin/service tomcat6 restart&lt;/b&gt;
Stopping tomcat6:                                          [  &lt;span style="color:green;"&gt;OK&lt;/span&gt;  ]
Starting tomcat6:                                          [  &lt;span style="color:green;"&gt;OK&lt;/span&gt;  ]&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;View Solr Admin (optional)&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://www.kelvinwong.ca/wp-content/uploads/2011/09/solr_admin_okay.png"&gt;&lt;img src="http://www.kelvinwong.ca/wp-content/uploads/2011/09/solr_admin_okay_inset.jpg" alt="" title="Solr administration functional" width="400" height="240" class="aligncenter size-full wp-image-856" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You should now be able to view the Solr administration page if you open a &lt;b&gt;local&lt;/b&gt; web browser on the server. If you don&amp;#8217;t have a desktop on the server (as should be the case), you can use a text-browser like &lt;a href="http://en.wikipedia.org/wiki/ELinks"&gt;elinks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;View &lt;a href="http://localhost:8080/www1.kelvinwong.ca/admin"&gt;http://localhost:8080/www1.kelvinwong.ca/admin&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;elinks http://localhost:8080/www1.kelvinwong.ca/admin&lt;/b&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You should see the Solr administration page in your browser.&lt;/p&gt;
&lt;h4&gt;SELinux&lt;/h4&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;&amp;#8220;Apache Solr: Your site was unable to contact the Apache Solr server,&amp;#8221;&lt;/strong&gt; reports Drupal; SELinux chuckles.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Security-Enhanced_Linux"&gt;SELinux&lt;/a&gt; is enabled by default on CentOS 6, so you will likely have it running and it will not appreciate Apache trying to talk to Tomcat/Solr on port 8080 (check &lt;i&gt;/var/log/audit/audit.log&lt;/i&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;type=AVC msg=audit(1315100262.891:17629): avc:  &lt;b&gt;denied&lt;/b&gt;  { name_connect } for  pid=2064 comm="&lt;b&gt;httpd&lt;/b&gt;" dest=&lt;b&gt;8080&lt;/b&gt; scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket

type=SYSCALL msg=audit(1315100262.891:17629): arch=40000003 syscall=102 success=no exit=-13 a0=3 a1=bfbe6590 a2=b70426f4 a3=11 items=0 ppid=2060 pid=2064 auid=500 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4 comm="httpd" exe="/usr/sbin/httpd" subj=unconfined_u:system_r:httpd_t:s0 key=(null)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can either turn off SELinux (not recommended) or fix the attributes so that SELinux allows Apache to talk to Tomcat. The handy tool &lt;i&gt;sealert&lt;/i&gt; gives helpful advice:&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;sealert -a /var/log/audit/audit.log | less&lt;/b&gt;

Summary:

&lt;b&gt;SELinux is preventing the http daemon from connecting to&lt;/b&gt; itself or &lt;b&gt;the&lt;/b&gt; relay &lt;b&gt;port&lt;/b&gt;s

Detailed Description:

SELinux has denied the http daemon from connecting to itself or the relay ports. &lt;b&gt;An httpd script is trying to make a network connection to an http&lt;/b&gt;/ftp &lt;b&gt;port.&lt;/b&gt; If you did not setup httpd to make network connections, this could signal an intrusion attempt.

Allowing Access:

If you want httpd to connect to httpd/ftp ports you need to turn on the
httpd_can_network_relay boolean: "setsebool -P httpd_can_network_relay=1"

Fix Command:

&lt;b style="color:red"&gt;setsebool -P httpd_can_network_relay=1&lt;/b&gt;

Additional Information:

Source Context                unconfined_u:system_r:httpd_t:s0
Target Context                system_u:object_r:http_cache_port_t:s0
Target Objects                None [ tcp_socket ]
Source                        httpd
Source Path                   /usr/sbin/httpd
Port                          8080
Host                          &amp;lt;Unknown&amp;gt;
Source RPM Packages           httpd-2.2.15-5.el6.centos
Target RPM Packages
Policy RPM                    selinux-policy-3.7.19-54.el6_0.5
Selinux Enabled               True
Policy Type                   targeted
Enforcing Mode                Enforcing
Plugin Name                   httpd_can_network_relay
Host Name                     templeton.localdomainPlatform                      Linux templeton.localdomain                              2.6.32-71.29.1.el6.i686 #1 SMP Mon Jun 27 18:07:00
                              BST 2011 i686 i686
Alert Count                   14First Seen                    Sat Sep  3 18:25:40 2011Last Seen                     Sat Sep  3 18:37:42 2011Local ID                      4b66d238-ddf7-4b74-bbe5-3fb54be5b3e4Line Numbers                  178, 179, 180, 181, 182, 183, 184, 185, 192, 193,
                              194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
                              204, 205, 206, 207, 208, 209, 210, 211

&lt;span style="color:#ccc" title="Nobody ever reads the whole thing anyway"&gt;Once upon a time and a very good time it was there was a moocow coming down along the road and this moocow that was coming down along the road met a nicens little boy named baby tuckoo[&lt;a href="http://www.online-literature.com/james_joyce/portrait_artist_young_man/1/" style="color:#ccc"&gt;1&lt;/a&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The quick fix is to set the network relay flag (&amp;#8216;P&amp;#8217; flag makes the change persistent across reboots):&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;setsebool -P httpd_can_network_relay=1&lt;/b&gt;
# &lt;b style="color:black;"&gt;getsebool httpd_can_network_relay&lt;/b&gt;
httpd_can_network_relay --&amp;gt; on&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You don&amp;#8217;t need &lt;i&gt;sealert&lt;/i&gt; to use &lt;i&gt;setsebool&lt;/i&gt; but it is a useful utility to debug errors with SELinux. If you don&amp;#8217;t have &lt;i&gt;sealert&lt;/i&gt; installed, it is a simple thing to install it since it is part of the &lt;i&gt;setroubleshoot&lt;/i&gt; package:&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;# &lt;b style="color:black;"&gt;yum install setroubleshoot&lt;/b&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Configure Drupal to use Solr&lt;/h4&gt;
&lt;p&gt;Turning now to your Drupal installation&amp;#8230;&lt;/p&gt;
&lt;p&gt;Enable the Solr Search service module&amp;#8230;&lt;/p&gt;
&lt;p&gt;Configure the Apache Solr Search module by visiting &lt;i&gt;http://www1.kelvinwong.ca/?q=admin/settings/apachesolr&lt;/i&gt;&lt;br /&gt;
&lt;br/&gt;
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Solr host name&lt;/dt&gt;
&lt;dd&gt;localhost&lt;/dd&gt;
&lt;dt&gt;Solr port&lt;/dt&gt;
&lt;dd&gt;8080&lt;/dd&gt;
&lt;dt&gt;Solr path&lt;/dt&gt;
&lt;dd&gt;/www1.kelvinwong.ca&lt;/dd&gt;
&lt;/dl&gt;
&lt;blockquote&gt;&lt;p&gt;The Solr path is the name of your Context fragment minus the xml suffix (ie. &lt;i&gt;/etc/tomcat6/Catalina/localhost/&lt;/i&gt;&lt;b&gt;www1.kelvinwong.ca&lt;/b&gt;&lt;i&gt;.xml&lt;/i&gt;)&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
The cron job indexes 50 nodes at a time by default. When indexed, you can then search for nodes by keyword.&lt;/p&gt;
&lt;p&gt;Save the settings. You should see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The configuration options have been saved.&lt;/li&gt;
&lt;li&gt;Apache Solr: Your site has contacted the Apache Solr server.&lt;/li&gt;
&lt;li&gt;Apache Solr PHP Client Library: Correct version &amp;#8220;Revision: 22&amp;#8243;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Try a search&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://www.kelvinwong.ca/wp-content/uploads/2011/09/solr_result_set.png"&gt;&lt;img src="http://www.kelvinwong.ca/wp-content/uploads/2011/09/solr_result_set_inset.jpg" alt="" title="Solr result set sample" width="400" height="240" class="aligncenter size-full wp-image-859" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can re-index the site by force or let cron do it gradually. Either way it take a while for Solr to process the data.&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;i&gt;http://www1.kelvinwong.ca/?q=admin/settings/apachesolr/index&lt;/i&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
Once you have indexed your site and adjusted the permissions on the search form (so anonymous users can use the search form), visit it:&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;i&gt;http://www1.kelvinwong.ca/?q=search/apachesolr_search&lt;/i&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
Intentionally misspell something and let Solr give you hints!&lt;/p&gt;
&lt;h4&gt;What about the other one??? www2?&lt;/h4&gt;
&lt;p&gt;Ah, yes&amp;#8230;the other one is set-up in a similar manner, just use the following configuration in Drupal:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Solr host name&lt;/dt&gt;
&lt;dd&gt;localhost&lt;/dd&gt;
&lt;dt&gt;Solr port&lt;/dt&gt;
&lt;dd&gt;8080&lt;/dd&gt;
&lt;dt&gt;Solr path&lt;/dt&gt;
&lt;dd&gt;/www2.kelvinwong.ca&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kelvinwong.ca%2F2011%2F09%2F07%2Fmulti-site-solr-acquia-drupal-6-search-tomcat-6-centos-6%2F&amp;amp;title=Multi-Site%20Solr%20for%20Drupal%206%20Search%20on%20Tomcat%206%20%2F%20CentOS%206" id="wpa2a_8"&gt;&lt;img src="http://www.kelvinwong.ca/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/s2-y9Iiiv9hQxHlBp1pyJzDkUWk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s2-y9Iiiv9hQxHlBp1pyJzDkUWk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/s2-y9Iiiv9hQxHlBp1pyJzDkUWk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s2-y9Iiiv9hQxHlBp1pyJzDkUWk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BongosCodeways/~4/w1MRvdmsrYY" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.kelvinwong.ca/2011/09/07/multi-site-solr-acquia-drupal-6-search-tomcat-6-centos-6/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.kelvinwong.ca/2011/09/07/multi-site-solr-acquia-drupal-6-search-tomcat-6-centos-6/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.kelvinwong.ca/2011/09/07/multi-site-solr-acquia-drupal-6-search-tomcat-6-centos-6/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>kelvin.wong</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[The Register Hacked &amp; Defaced]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BongosCodeways/~3/Ssn4yZmWdI0/" />
		<id>http://www.kelvinwong.ca/?p=843</id>
		<updated>2011-11-04T22:15:14Z</updated>
		<published>2011-09-04T20:52:26Z</published>
		<category scheme="http://www.kelvinwong.ca" term="etc" /><category scheme="http://www.kelvinwong.ca" term="defaced" /><category scheme="http://www.kelvinwong.ca" term="hacked" /><category scheme="http://www.kelvinwong.ca" term="the register" />		<summary type="html"><![CDATA[Today The Register was defaced by a Turkish group of hackers. It looks like the DNS was changed to point to the hacker&#8217;s nameservers. $ whois theregister.co.uk Domain name: theregister.co.uk Registrant: Linus Birtles Trading as: The Register Registrant type: UK Sole Trader Registrant's address: Situation Publishing Limited PO Box 478 Southport PR8 2ZW United Kingdom [...]]]></summary>
		<content type="html" xml:base="http://www.kelvinwong.ca/2011/09/04/the-register-hacked-defaced/">&lt;p&gt;&lt;a href="http://www.kelvinwong.ca/wp-content/uploads/2011/09/register_hack.png"&gt;&lt;img src="http://www.kelvinwong.ca/wp-content/uploads/2011/09/register_hack_inset.jpg" alt="Screen grab of the Register defaced" width="400" height="240" class="aligncenter size-full wp-image-845" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;
Today &lt;a href="http://www.bbc.co.uk/news/technology-14786524"&gt;The Register was defaced by a Turkish group of hackers&lt;/a&gt;. It looks like the DNS was changed to point to the hacker&amp;#8217;s nameservers.&lt;br/&gt;
&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;$ &lt;b&gt;whois theregister.co.uk&lt;/b&gt;

    Domain name:
        theregister.co.uk

    Registrant:
        Linus Birtles

    Trading as:
        The Register

    Registrant type:
        UK Sole Trader

    Registrant's address:
        Situation Publishing Limited
        PO Box 478
        Southport
        PR8 2ZW
        United Kingdom

    Registered through:
        NetNames Limited
        URL: http://www.netnames.co.uk

    Registrar:
        Ascio Technologies Inc t/a Ascio Technologies inc [Tag = ASCIO]
        URL: http://www.ascio.com

    Relevant dates:
        Registered on: before Aug-1996
        Renewal date:  14-Mar-2012
        &lt;b style="color:red"&gt;Last updated:  04-Sep-2011&lt;/b&gt;

    Registration status:
        Registered until renewal date.

    &lt;b style="color:red"&gt;Name servers:
        ns1.yumurtakabugu.com
        ns2.yumurtakabugu.com&lt;/b&gt;

    WHOIS lookup made at 21:42:31 04-Sep-2011

--
This WHOIS information is provided for free by Nominet UK the central registry
for .uk domain names. This information and the .uk WHOIS are:

    Copyright Nominet UK 1996 - 2011.

You may not access the .uk WHOIS or use any data from it except as permitted
by the terms of use available in full at http://www.nominet.org.uk/whois, which
includes restrictions on: (A) use of the data for advertising, or its
repackaging, recompilation, redistribution or reuse (B) obscuring, removing
or hiding any or all of this notice and (C) exceeding query rate or volume
limits. The data is provided on an 'as-is' basis and may lag behind the
register. Access may be withdrawn or restricted at any time.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Yumurta kabuğu? It mean &amp;#8220;eggshell&amp;#8221; if you believe &lt;a href="http://browse.dict.cc/turkish-english/yumurta+kabu%C4%9Fu.html"&gt;this Turkish-English dictionary&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And if you are wondering who is yumurtakabugu.com then you won&amp;#8217;t get far:&lt;/p&gt;
&lt;pre&gt;&lt;code &gt;$ &lt;b&gt;whois yumurtakabugu.com&lt;/b&gt;

Whois Server Version 2.0

Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.

   Domain Name: YUMURTAKABUGU.COM
   Registrar: ACTIVE REGISTRAR, INC.
   Whois Server: whois.activeregistrar.com
   Referral URL: http://www.activeregistrar.com
   Name Server: NS1.ACTIVE-DNS.COM
   Name Server: NS2.ACTIVE-DNS.COM
   Status: clientTransferProhibited
   &lt;b style="color:red"&gt;Updated Date: 03-sep-2011&lt;/b&gt;
   Creation Date: 16-apr-2010
   Expiration Date: 16-apr-2020

&amp;gt;&amp;gt;&amp;gt; Last update of whois database: Sun, 04 Sep 2011 20:45:33 UTC &amp;lt;&amp;lt;&amp;lt;

NOTICE: The expiration date displayed in this record is the date the
registrar's sponsorship of the domain name registration in the registry is
currently set to expire. This date does not necessarily reflect the expiration
date of the domain name registrant's agreement with the sponsoring
registrar.  Users may consult the sponsoring registrar's Whois database to
view the registrar's reported date of expiration for this registration.

TERMS OF USE: You are not authorized to access or query our Whois
database through the use of electronic processes that are high-volume and
automated except as reasonably necessary to register domain names or
modify existing registrations; the Data in VeriSign Global Registry
Services' ("VeriSign") Whois database is provided by VeriSign for
information purposes only, and to assist persons in obtaining information
about or related to a domain name registration record. VeriSign does not
guarantee its accuracy. By submitting a Whois query, you agree to abide
by the following terms of use: You agree that you may use this Data only
for lawful purposes and that under no circumstances will you use this Data
to: (1) allow, enable, or otherwise support the transmission of mass
unsolicited, commercial advertising or solicitations via e-mail, telephone,
or facsimile; or (2) enable high volume, automated, electronic processes
that apply to VeriSign (or its computer systems). The compilation,
repackaging, dissemination or other use of this Data is expressly
prohibited without the prior written consent of VeriSign. You agree not to
use electronic processes that are automated and high-volume to access or
query the Whois database except as reasonably necessary to register
domain names or modify existing registrations. VeriSign reserves the right
to restrict your access to the Whois database in its sole discretion to ensure
operational stability.  VeriSign may restrict or terminate your access to the
Whois database for failure to abide by these terms of use. VeriSign
reserves the right to modify these terms at any time.

The Registry database contains ONLY .COM, .NET, .EDU domains and
Registrars.
Registration Service Provided By: Active-Domain LLC
Contact:  http://www.active-domain.com

Domain Name: yumurtakabugu.com
Expiry Date: 16-Apr-2020
Creation Date: 16-Apr-2010

Name servers:
ns1.active-dns.com
ns2.active-dns.com

Registrant Name: Whois Manager
Registrant Company: Whois Proof LLP
Registrant Email Address: m4l0j36f5ks@whoisproof.com
Registrant Address: PO Box 4120
Registrant City: Portland
Registrant State/Region/Province: OR
Registrant Postal Code: 97208-4120
Registrant Country: US
Registrant Tel No: +1.2024700599
Registrant Fax No: +1.8663666681

Admin Name: Whois Manager
Admin Company: Whois Proof LLP
Admin Email Address: m4l0j36f5ks@whoisproof.com
Admin Address: PO Box 4120
Admin City: Portland
Admin State/Region/Province: OR
Admin Postal Code: 97208-4120
Admin Country: US
Admin Tel No: +1.2024700599
Admin Fax No: +1.8663666681

Tech Name: Whois Manager
Tech Company: Whois Proof LLP
Tech Email Address: m4l0j36f5ks@whoisproof.com
Tech Address: PO Box 4120
Tech City: Portland
Tech State/Region/Province: OR
Tech Postal Code: 97208-4120
Tech Country: US
Tech Tel No: +1.2024700599
Tech Fax No: +1.8663666681

The data in this whois database is provided to you for information purposes only, that is, to assist you in obtaining information about or related to a domain name registration record. We make this information available "as is," and do not guarantee its accuracy. By submitting a whois query, you agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to: (1) enable high volume, automated, electronic processes that stress or load this whois database system providing you this information; or (2) allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations via direct mail, electronic mail, or by telephone. The compilation, repackaging, dissemination or other use of this data is expressly prohibited without prior written consent from us. The registrar of record is Active Registrar, Inc. We reserve the right to modify these terms at any time. By submitting this query, you agree to abide by these terms.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kelvinwong.ca%2F2011%2F09%2F04%2Fthe-register-hacked-defaced%2F&amp;amp;title=The%20Register%20Hacked%20%26%23038%3B%20Defaced" id="wpa2a_10"&gt;&lt;img src="http://www.kelvinwong.ca/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wbdRg2QgizjSeiUDVFEROCoCLtk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wbdRg2QgizjSeiUDVFEROCoCLtk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wbdRg2QgizjSeiUDVFEROCoCLtk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wbdRg2QgizjSeiUDVFEROCoCLtk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BongosCodeways/~4/Ssn4yZmWdI0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.kelvinwong.ca/2011/09/04/the-register-hacked-defaced/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.kelvinwong.ca/2011/09/04/the-register-hacked-defaced/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.kelvinwong.ca/2011/09/04/the-register-hacked-defaced/</feedburner:origLink></entry>
	</feed><!-- Dynamic Page Served (once) in 0.606 seconds --><!-- Cached page served by WP-Cache -->

