Dependiendo de tus necesidades puedes hacer la instalación a través de la paquetería o manualmente. Instalar de paquetería siempre es más cómodo así como las actualizaciones pero en función de los repositorios que utilices puede estar obsoleta de forma que queda en tus manos tomar la decisión. Dado que esta es una configuración básica para montar un servicio rápido de solr para pruebas, local etc.. las siguientes directrices son sobre paquetería:
Instalación de java:
Instalamos la paquetería básica de java.
# aptitude install openjdk-7-jre-headless
Opcional:
# aptitude install java7-jdk
Instalación de tomcat:
Base:
# apt-get install tomcat7
Panel de administración:
# apt-get install tomcat7-admin
Comprobar que está funcionando:
# service tomcat7 start
El puerto por defecto de tomcat7 es 8080, podemos comprobarlo yendo a
http://localhost:8080
o
http://{IP}:8080/
Dado que el puerto
8080
suele ser utilizado por otros servicios podemos cambiar el puerto (por ejemplo 8983) con la siguiente instrucción.
# sed -i s/8080/8983/g /usr/local/tomcat/conf/server.xml
# service tomcat7 restart
Autentificación
Por razones de seguridad (a parte de firewall que podamos introducir) vamos a añadir un usuario y password para controlar el acceso.
Editamos el fichero:
tomcat-users.xml # vim /etc/tomcat7/tomcat-users.xml
Incluimos las siguientes instrucciones antes del final del cierre:
</tomcat-users>
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="your_username" password="your_password" roles="manager-gui,admin-gui"/>
Reiniciamos la máquina:
# service tomcat7 restart
Instalación de Solr
Descargamos última versión de 4.x (http://www.apache.org/dyn/closer.cgi/lucene/solr)
# wget http://archive.apache.org/dist/lucene/solr/4.10.0/solr-4.10.0.tgz | tar xz
Partimos de la configuración por defecto del ejemplo de Solr y la incluimos en el class path de tomcat.
Nota: El directorio classpath de tomcat contiene enlaces simbólicos a los JAR de
/usr/share/java
Puedes hacer lo mismo si quieres con los de solr, dado que solo vamos a usar Solr desde tomcat preferimos incluirlo directamente (en futuras actualizaciones solo necesitarás remplazarlo).
# cp ~/solr-4.10.0/example/lib/ext/* /usr/share/tomcat7/lib/
Incluimos los WAR de Solr dentro del directorio de webapps de Tomcat’s webapps para que Tomcat pueda desplegar la aplicación.
Nota: por defecto tomcat despliega los WAR en carpetas con el mismo nombre de forma que una vez que se haya desplegado el directorio
/var/lib/tomcat7/webapps/solr
debe de existir. El servicio se ejecutará desde éste.
# cp ~/solr-4.10.0/dist/solr-4.10.0.war /var/lib/tomcat7/webapps/solr.war
Catalina
Catalina es un servlet container de Tomcat: el componente del servidor Tomcat que interactúa con los Java servlets.
Copiamos los ficheros de ejemplo de solr al directorio de Catalina:
/var/lib/tomcat7
y fijamos los permisos para que Tomcat pueda interactuar.
# cp -R ~/solr-4.10.0/example/solr /var/lib/tomcat7
# chown -R tomcat7:tomcat7 /var/lib/tomcat7/solr
La aplicación de Solr debe de aparecer listada en ejecución en:
http://localhost:8080/manager/html
Reiniciamos el servicio para comprobar que se ha configurado todo correctamente.
# service tomcat7 restart
En este punto Solr estará ejecutándose en
http://localhost:8080/solr.
Autentificación
Por temas de seguridad añadimos protección de acceso a solr.
# service tomcat7 stop
Incluso si el puerto 8080 no es accesible públicamente, es una buena idea fijar una autentificación para prevenir accesos no autorizados internos.
Editamos el fichero
/var/lib/tomcat7/webapps/solr/WEB-INF/web.xml
(Incluye la configuración de la app de Solr).
# vim /var/lib/tomcat7/webapps/solr/WEB-INF/web.xml
Añadimos las siguientes instrucción antes del cierre:
<security-constraint>
<web-resource-collection>
<web-resource-name>Solr GUI Authentication</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>solr-gui</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
Esto añade una autenticación HTTP básica (usuario y contraseña) para el rol
solr-gui
Editamos de nuevo el fichero /etc/tomcat7/tomcat-users.xml para añadir un usuario con el rol creado:
<user username="your_username" password="your_password" roles="solr-gui"/>
Reiniciamos:
# service tomcat7 restart
Comprobamos que accediendo a
http://localhost:8080/solr
ahora nos pide las credenciales. Igualmente podíamos haber utilizado el mismo usuario de antes con añadiendo el nuevo rol
solr-gui
<user username="your_username" password="your_password" roles="manager-gui,admin-gui,solr-gui"/>
Disfruta de tu nuevo solr!