Conectar OpenKM con MySQL

Este gestor de contenido, trabaja con su propia base de datos, en archivos y tablas; pero lo mas practico seria conectarla a un servidor de base de datos; para 1) agilizar la conectividad 2) obtener consultas de busqueda con mayor velocidad

Primero se debe crear un usuario en su servidor MYSQL que se llame: openkm y defina una contraseña
Tambien 2 bases de datos con los siguientes nombres:

okm_app
okm_repo

Para ello debemos tener OpenKM de la versión 4 para arriba y hacer lo siguiente:
entrar a: /opt/openkm/jboss-4.2.3.GA/server/default/deploy

Una vez alli, se debe reemplazar el archivo openkm-ds.xml con éstos datos; sustituyendo con sus datos donde esté marcado en rojo

[root@skate deploy]# cat openkm-ds.xml
<?xml version=»1.0″ encoding=»UTF-8″?>
<datasources>
<local-tx-datasource>
<jndi-name>OpenKMDS</jndi-name>
<connection-url>jdbc:mysql://SU-SERVIDOR-MYSQL;PUERTO/okm_app?autoReconnect=true</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>openkm</user-name>
<password>Su-CONTRASEÑA</password>
<min-pool-size>5</min-pool-size>
<max-pool-size>20</max-pool-size>
<idle-timeout-minutes>28680</idle-timeout-minutes>
<exception-sorter-class-name>com.mysql.jdbc.integration.jboss.ExtendedMysqlExceptionSorter</exception-sorter-class-name>
<valid-connection-checker-class-name>com.mysql.jdbc.integration.jboss.MysqlValidConnectionChecker</valid-connection-checker-class-name>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
[root@skate deploy]#

Luego; reemplazar el archivo repository.xml del home de su Jboss (openkm)

<?xml version=»1.0″?>
<!DOCTYPE Repository PUBLIC «-//The Apache Software
Foundation//DTD Jackrabbit 1.6//EN»
«http://jackrabbit.apache.org/dtd/repository-1.6.dtd»>
<Repository>
<!– virtual file system where the repository stores global
state
(e.g. registered namespaces, custom node types, etc.) –>
<FileSystem
class=»org.apache.jackrabbit.core.fs.local.LocalFileSystem»>
<param name=»path» value=»${rep.home}/repository»/>
</FileSystem>
<!– Security configuration –>
<Security appName=»OpenKM»>
<!– Access manager: FQN of class implementing the
AccessManager interface –>
<AccessManager class=»com.openkm.core.OKMAccessManager»/>
<!– <AccessManager
class=»org.apache.jackrabbit.core.security.SimpleAccessManager»/>
–>
<!– <AccessManager
class=»org.apache.jackrabbit.core.security.DefaultAccessManager»>
–>
<!– <param name=»config» value=»${rep.home}/access.xml»/> –>
<!– </AccessManager> –>
</Security>
<!– Location of workspaces root directory and name of default
workspace –>
<Workspaces rootPath=»${rep.home}/workspaces»
defaultWorkspace=»default»/>
<!– Workspace configuration template:
used to create the initial workspace if there’s no workspace
yet –>
<Workspace name=»${wsp.name}»>
<!– Virtual file system of the workspace:
class: FQN of class implementing the FileSystem interface –>
<FileSystem
class=»org.apache.jackrabbit.core.fs.local.LocalFileSystem»>
<param name=»path» value=»${wsp.home}»/>
</FileSystem>
<!– Persistence manager of the workspace:
class: FQN of class implementing the PersistenceManager
interface –>
<PersistenceManager
class=»org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager»>
<param name=»driver» value=»com.mysql.jdbc.Driver»/>
<param name=»url» value=»jdbc:mysql://Su-SERViDORMYSQL:PUERTO/okm_repo?
autoReconnect=true»/>
<param name=»schema» value=»mysql»/>
<param name=»user» value=»openkm»/>
<param name=»password» value=»Su-PASSWORD«/>
<param name=»schemaObjectPrefix» value=»${wsp.name}_»/>
<param name=»externalBLOBs» value=»false»/>
</PersistenceManager>
<!– Search index and the file system it uses.
class: FQN of class implementing the QueryHandler interface
–>
<SearchIndex
class=»org.apache.jackrabbit.core.query.lucene.SearchIndex»>
<param name=»path» value=»${wsp.home}/index»/>
<param name=»textFilterClasses» value=»
org.apache.jackrabbit.extractor.PlainTextExtractor,
org.apache.jackrabbit.extractor.MsWordTextExtractor,
org.apache.jackrabbit.extractor.MsExcelTextExtractor,
org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,
org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,
org.apache.jackrabbit.extractor.RTFTextExtractor,
org.apache.jackrabbit.extractor.HTMLTextExtractor,
org.apache.jackrabbit.extractor.XMLTextExtractor,
org.apache.jackrabbit.extractor.PngTextExtractor,
org.apache.jackrabbit.extractor.MsOutlookTextExtractor,
com.openkm.extractor.PdfTextExtractor,
com.openkm.extractor.AudioTextExtractor,
com.openkm.extractor.ExifTextExtractor,
com.openkm.extractor.TiffTextExtractor,
com.openkm.extractor.SourceCodeTextExtractor,
com.openkm.extractor.MsOffice2007TextExtractor»/>
<param name=»extractorPoolSize» value=»2″/>
<param name=»supportHighlighting» value=»false»/>
<param name=»indexingConfiguration»
value=»${wsp.home}/../../../indexing_configuration.xml»/>
</SearchIndex>
</Workspace>
<!– Configures the versioning –>
<Versioning rootPath=»${rep.home}/version»>
<!– Configures the filesystem to use for versioning for the
respective
persistence manager –>
<FileSystem
class=»org.apache.jackrabbit.core.fs.local.LocalFileSystem»>
<param name=»path» value=»${rep.home}/version» />
</FileSystem>
<!– Configures the persistence manager to be used for
persisting version state.
Please note that the current versioning implementation is
based on
a ‘normal’ persistence manager, but this could change in
future
implementations. –>
<PersistenceManager
class=»org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager»>
<param name=»driver» value=»com.mysql.jdbc.Driver»/>
<param name=»url»
value=»jdbc:mysql://SU-SERVIDORMYSQL:PUERTO/okm_repo?autoReconnect=true»/>
<param name=»schema» value=»mysql»/>
<param name=»user» value=»openkm»/>
<param name=»password» value=»SU-CONTRASEÑA«/>
<param name=»schemaObjectPrefix» value=»version_»/>
<param name=»externalBLOBs» value=»false»/>
</PersistenceManager>
</Versioning>
<!– Search index for content that is shared repository wide
(/jcr:system tree, contains mainly versions) –>
<SearchIndex
class=»org.apache.jackrabbit.core.query.lucene.SearchIndex»>
<param name=»path» value=»${rep.home}/repository/index»/>
<param name=»textFilterClasses» value=»»/>
<param name=»extractorPoolSize» value=»2″/>
<param name=»supportHighlighting» value=»false»/>
</SearchIndex>
<!– DataStore improve file handling performance –>
<DataStore
class=»org.apache.jackrabbit.core.data.FileDataStore»>
<param name=»path» value=»${rep.home}/repository/datastore»/>
<param name=»minRecordLength» value=»100″/>
</DataStore>
</Repository>

AHORA; hay una cuestion importante; en el archivo: OpenKM.cfg; solo POR PRIMERA VEZ QUE SE EJECUTA; se debe modificar de esta menera; para que el OpenKM cree el árbol de contenido en el MySQL

[root@skate jboss-4.2.3.GA]# cat OpenKM.cfg
#hibernate.dialect=org.hibernate.dialect.HSQLDialect
#hibernate.hbm2ddl=create
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.hbm2ddl=create
[root@skate jboss-4.2.3.GA]#

Luego, matar el servidor y modificar nuevamente el OpenKM.cfg con el valor: hibernate.hbm2ddl=none

y volver a ejecutarlo.

De esta manera el servidor está listo para ser configurado y todo el repositorio sera almacenado en la base de datos; ante cualquier migración … con instalar el OpenKM y un Dump de la DB, se levanta enseguida.

Adjunto la guía en ingles por las dudas: OKM_InstallationWithMySQL_English_V1.0

Saludoss !

Amaro

Listas de correo con Qmail

Para gestionar listas de correo con Qmail, se debe ingresar a:

iserver:/var/qmail/alias# pwd
/var/qmail/alias
iserver:/var/qmail/alias#

Luego; se puede observar las listas existentes; o crear una:

iserver:/var/qmail/alias# ls -lha
total 64K
drwxr-sr-x 2 alias qmail 4.0K May 15 2009 .
drwxr-xr-x 3 root root 4.0K Jan 22 2005 ..
-rw-r–r– 1 root qmail 107 Mar 1 2011 .qmail-administracion
-rw-r–r– 1 root qmail 55 May 16 2011 .qmail-despacho
-rw-r–r– 1 root qmail 25 Feb 25 2005 .qmail-gerencia
-rw-r–r– 1 root qmail 48 May 16 2011 .qmail-info

Qmail identifica el nombre de la lista, con el nombre del archivo; .qmail.administracion será administracion@nuestrodominio.com
y en el contenido, se indica a los correos que se distribuirán

iserver:/var/qmail/alias# cat .qmail-administracion
user1@nuestro-dominio.com.ar
user2@nuestro-dominio.com.ar
user3@nuestro-dominio.com.ar
user4@nuestro-dominio.com.ar
iserver:/var/qmail/alias#

De ésta manera; cuando ingrese un correo a administracion@nuestrodominio.com será reenviado a las cuentas que estén listadas una debajo de la otra en el archivo.

Linux 4 life

Saludos

Amaro

Samba: Manejo de usuarios

Buenas … en esta oportunidad quedará plasmada la forma mas sensilla de crear/eliminar un usuario para el Samba ( servidor de archivos compartidos con windows)

Primero:
Creación de un usuario en Linux
#useradd pepe

Segundo:
Batimos este comando con el flag -a, que indiga Agregar
root@servidor:~# smbpasswd -a pepe
New SMB password: // Establecemos contraseña
Retype new SMB password: // Repetimos la contraseña»
Added user pepe. .

ANSI - DANGER

Tercero; para eliminar un usuario:
root@servidor:~# smbpasswd -x pepe

Documento tambien:
Otras opciones de smbpasswd
-d: Deshabilitar un usuario
-e: Habilitar un usuario
-n: Usuario sin password. Necesita parámetro null passwords = yes en sección ‘global’ del archivo de configuración de samba.
-m: Indica que es una cuenta de máquina (equipo)

Saludos !!

Amaro

Configurar PPPoE en Mikrotik RB750

Bueno, bienvenidos, el blog tiene como objetivo dar soluciones prácticas ante problemas  de configuración y todas esas hierbas…

Pasos para configurar el Router Mikrotik con PPPoE (osea que marque él mismo la conexiones adsl)

1) Poner el MODEM en Bridge

2) Configurar IP – Addresses – la ETHERNET2 (si, la 2, la 1 será la que marca y la 2, la LAN) por ejem: 192.168.0.1/24 Network: 192.168.0.0; Configurar Pool para DHCP (si se desea)
3) Seleccionar la Interface, del Router que se vaya a utilizar para Marcar, en mi caso la Ethernet1 (ésta interface no tiene que estar switcheada con las otras, es muy importante que ésto sea asi)

4) Desde el WINBOX: ir a: PPP –  Simbolo + – Interface PPPoE Cliente (osea que marca) 

Una vez creada la interface:
a) 
Seleccionar la Interface que anteriormente configuramos para marcar.

b) Luego en la pestaña de Dial Out

Ok; hasta aca todo lindo … ahora,¿ COMO NATEO la LAN ? Asi …

5)  desde Winbox –

IP – Firewall – Pestaña NAT:

a) creamos una regla nueva

BIEN ! una vez creada ésta regla es necesario crear otra; la que permitirá NATear la red interna, para la siguiente no tengo foto robada, pero es:
Chain=srcnat
Src Address= 192.168.0.0/24  o la red privada que hayan elegido
Luego en la pestaña Action: Masquerade
Luego Apply …

Despues de ésta configuración el Router debería Marcar y Natear a la red privada; osea compartir la conexion a internet marcada por la PPPoE-Out1

Espero que les haya servido; nos leemos en el próximo post

Saludos

Amaro