Thank you. This will help me a lot. Sent from my iPhone
On Nov 13, 2013, at 10:08 AM, "Shawn Heisey" <s...@elyograg.org> wrote: > In the hopes that it will help someone get Solr running in a very clean way, > here's an informational email. > > For my Solr install on CentOS 6, I use /opt/solr4 as my installation path, > and /index/solr4 as my solr home. The /index directory is a dedicated > filesystem, /opt is part of the root filesystem. > > From the example directory, I copied cloud-scripts, contexts, etc, lib, > webapps, and start.jar over to /opt/solr4. My stuff was created before > 4.3.0, so the resources directory didn't exist. I was already using log4j > with a custom Solr build, and I put my log4j.properties file in etc instead. > I created a logs directory and a run directory in /opt/solr4. > > My data structure in /index/solr4 is complex. All a new user really needs to > know is that solr.xml goes here and dictates the rest of the structure. > There is a symlink at /index/solr4/lib, pointing to /opt/solr4/solrlib - so > that jars placed in ${solr.solr.home}/lib are actually located in the program > directory, not the data directory. That makes for a much cleaner version > control scenario - both directories are git repositories cloned from our > internal git server. > > Unlike the example configs, my solrconfig.xml files do not have <lib> > directives for loading jars. That gets automatically handled by the jars > living in that symlinked lib directory. See SOLR-4852 for caveats regarding > central lib directories. > > https://issues.apache.org/jira/browse/SOLR-4852 > > If you want to run SolrCloud, you would need to install zookeeper separately > and put your zkHost parameter in solr.xml. Due to a bug, putting zkHost in > solr.xml doesn't work properly until 4.4.0. > > Here's the current state of my init script. It's redhat-specific. I used > /bin/bash (instead of /bin/sh) in the shebang because I am pretty sure that > there are bash-isms in it, and bash is always available on the systems that I > use: > > http://apaste.info/9fVA > > Notable features: > * Runs Solr as an unprivileged user. > * Has three methods for stopping Solr, tries graceful methods first. > 1) The jetty STOPPORT/STOPKEY mechanism. > 2) PID saved by the 'start' action. > 3) Any program using the Solr listening port. > * Before killing by PID, tries to make sure that the process actually is Solr. > * Sets up remote JMX, by default without authentication or SSL. > * Highly tuned CMS garbage collection. > * Sets up GC logging. > * Virtually everything is overridable via /etc/sysconfig/solr4. > * Points at an overridable log4j config file, by default in /opt/solr4/etc. > * Removes the existing PID file if the server is just booting up -- which it > knows by noting that server uptime is less than three minutes. > > It shouldn't be too hard to convert this so it works on debian-derived > systems. That would involve rewriting portions that use redhat init > routines, and probably start-stop-daemon. What I'd really like is one script > that will work on any system, but that will require a fair amount of work. > > It's a work in progress. It should load log4j.properties from resources > instead of etc. I'd like to include it in the Solr download, but without a > fair amount of documentation and possibly an installation script, which still > must be written, that won't be possible. > > Feel free to ask questions about anything that doesn't seem clear. I welcome > ideas for improvement on both my own setup and the solr example. > > Thanks, > Shawn >