User Tools

Site Tools


informatica:dokuwiki2

Dokuwiki

dokuwiki wiki

Instalación

1. Descargar la última versión de dokuwiki (http://www.splitbrain.org/projects/dokuwiki)

wget -c --tries=0 http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2009-02-14.tgz /ruta_wiki/

2. Descomprimir el paquete

tar xvfz /ruta_wiki/dokuwiki-2009-02-14.tgz

3. Permisos

find /ruta_wiki/dokuwiki-2009-02-14 -type d -exec chmod 0777 {} \; 
find /ruta_wiki/dokuwiki-2009-02-14 -type f -exec chmod 0666 {} \; 

4. Hacer accesible la wiki en apache2

5. Teclear en un navegador:

http://url_a_wiki/install

Seguir las instrucciones

Configuración

El fichero importantes es:

/ruta_wiki/conf/local.php

Por defecto no existe. Si seguimos las instrucciones de 'http://url_wiki/install' se crea automáticamente con los valores introducidos en el formulario

El control de usuarios se hace desde el fichero local.php Puede ser para un usuario

$conf['superuser'] = 'javi';

O para un grupo

$conf['superuser'] = '@admin';

Luego se modifica desde el módulo admin:

https://wiki.legido.com/doku.php?do=admin

Usuarios

Para configurar los usuarios es a través del módulo ACL:

http://www.dokuwiki.org/acl

Es modificar los ficheros: acl.auth.php.dist copiar a acl.auth.php
users.auth.php.dist copiar a users.auth.php

Y después administrar desde el plugin Admin. Para acceder al plugin admin, modificamos el usuario admin del fichero users.auth.php y lo metemos en el grupo admin:

admin:iRsNaEbnegvRl:admin:jose@legido.com:user,admin

Barra Lateral

sidebar

Descargar la barra de:

http://wiki.jalakai.co.uk/dokuwiki/doku.php/start

Se descomprime en la carpeta sidebar dentro de:

lib/tpl

Y se añade al fichero:

conf/local.php

La linea:

$conf['template'] = 'sidebar';

En el fichero:

lib/tpl/sidebar/conf/default.php

Podemos cambiar propiedades:

$conf['sidebar']['enable'] = 1;
$conf['sidebar']['page'] = 'sidebar';
$conf['sidebar']['layout'] = 'inside'; 
$conf['sidebar']['orientation'] = 'left';

También las podemos cambiar desde admin → “Configuration Settings”

Si tenemos nombres de menus muy largos, podemos poner en el fichero:

lib/tpl/sidebar/sidebar.css

La linea:

overflow:hidden;

/* sidebar orientation and position */
#sidebar
{
  width:20%;
  margin:0;
  padding:0;
  position: relative;
  overflow:hidden;
}

Plugins

Dentro de Admin, vamos a “Manage Plugins” para instalar los plugins.

Como no me sale, lo hago manualmente

Add New Page

1. Descargar

cd lib/plugins/
wget -c --tries=0 http://dokuplugins.idotech.info/addnewpage.zip

2. Descomprimir

unzip addnewpage.zip

3. Realizar cambios en plantilla 'sidebar' o 'dokuwiki'

En la plantilla sidebar:

cp lib/tpl/sidebar/main.php lib/tpl/sidebar/main.php.original
vim lib/tpl/sidebar/main.php

Antes:

...
<div class="bar" id="bar__top">

<div class="bar-left" id="bar__topleft">
	<?php tpl_button('edit')?>
	<?php tpl_button('history')?>
</div>

<div class="bar-right" id="bar__topright">
	<?php tpl_button('recent')?>
	<?php tpl_searchform()?>&nbsp;
</div>

<div class="clearer"></div>
</div>
...

Después:

<div class="bar" id="bar__top">

<div class="bar-left" id="bar__topleft">
	<?php tpl_button('edit')?>
	<?php tpl_button('history')?>
</div>

<!-- ############### ANYADIDO #################### -->
<div class="bar-left" id="bar__topleft">
	<?php
	$out = p_render('xhtml',p_get_instructions('{{NEWPAGE}}'),$info);
	echo str_replace(array("<p>","</p>"),array("",""),$out);
	?>
</div>
<!-- ############### FIN ANYADIDO ################## -->

<div class="bar-right" id="bar__topright">
	<?php tpl_button('recent')?>
	<?php tpl_searchform()?>&nbsp;
</div>

<div class="clearer"></div>
</div>

Grabar y salir

En la plantilla dokuwiki

Modificamos el fichero lib/tpl/dokuwiki/main.php

antes:

            <?php if($showSidebar): ?>
                <!-- ********** ASIDE ********** -->
                <div id="dokuwiki__aside"><div class="pad aside include group">
                    <h3 class="toggle"><?php echo $lang['sidebar'] ?></h3>
                    <div class="content">
                        <?php tpl_flush() ?>
                        <?php tpl_includeFile('sidebarheader.html') ?>
                        <?php tpl_include_page($conf['sidebar'], 1, 1) ?>
                        <?php tpl_includeFile('sidebarfooter.html') ?>
                    </div>
                </div></div><!-- /aside -->
            <?php endif; ?>

            <!-- ********** CONTENT ********** -->
            <div id="dokuwiki__content"><div class="pad group">
                <div class="pageId"><span><?php echo hsc($ID) ?></span></div>
                <div class="page group">
                    <?php tpl_flush() ?>
                    <?php tpl_includeFile('pageheader.html') ?>
                    <!-- wikipage start -->
                    <?php tpl_content() ?>
                    <!-- wikipage stop -->
                    <?php tpl_includeFile('pagefooter.html') ?>

Después

            <?php if($showSidebar): ?>
                <!-- ********** ASIDE ********** -->
                <div id="dokuwiki__aside"><div class="pad aside include group">
                    <h3 class="toggle"><?php echo $lang['sidebar'] ?></h3>
                    <div class="content">
                        <?php tpl_flush() ?>
                        <?php tpl_includeFile('sidebarheader.html') ?>
                        <?php tpl_include_page($conf['sidebar'], 1, 1) ?>
                        <?php tpl_includeFile('sidebarfooter.html') ?>
                    </div>
                </div></div><!-- /aside -->
            <?php endif; ?>

            <!-- ********** CONTENT ********** -->
            
<!-- ############### ANYADIDO #################### -->
<div class="bar-left" id="bar__topleft">
        <?php
        $out = p_render('xhtml',p_get_instructions('{{NEWPAGE}}'),$info);
        echo str_replace(array("<p>","</p>"),array("",""),$out);
        ?>
</div>
<!-- ############### FIN ANYADIDO ################## -->
            
            <div id="dokuwiki__content"><div class="pad group">
                <div class="pageId"><span><?php echo hsc($ID) ?></span></div>
                <div class="page group">
                    <?php tpl_flush() ?>
                    <?php tpl_includeFile('pageheader.html') ?>
                    <!-- wikipage start -->
                    <?php tpl_content() ?>
                    <!-- wikipage stop -->
                    <?php tpl_includeFile('pagefooter.html') ?>

Substituir _ por espacios en el título

En el fichero inc/parser/xhtml.php modificamos la función: function _formatLink($link).
Cambiamos la linea

$ret .= $link['name'];

Por esta

$ret .= strtr($link['name'],'_',' '); 

Crear una carpeta (namespace)

  • En un directorio inexistente. Si queremos crear la pagina 'mypage' dentro del directorio 'mydir' que no existe, navegamos al al directorio de donde queremos colgar 'mydir' y ejecutamos “Add Page” de “mydir:mypage”.
  • En un directorio existente. Navegamos al directorio de donde queremos crear la página y ejecutamos “Add Page” de “mypage”.

Eliminar una página

Se elimina totalmente su contenido y DocuWiki se encarga del resto.

Autenticación por archivo .htaccess

La idea es proteger el directorio donde resida dokuwiki con una contraseña mediante un archivo .htaccess. Es decir, el servidor web (en este caso Apache) es el encargado de pedir usuario y contraseña.

Luego, mediante el módulo ggauth se pasa esas credenciales a dokuwiki, para no tener que volver a introducir el usuario y contraseña. Además es posible desde dokuwiki administrar esos usuarios: altas, bajas, cambiar contraseñas…

Finalmente he modificado el proceso de salida (logout) para que sea más elegante.

1. Crear el archivo de usuarios con un usuario que ya existe en dokuwiki:

htpasswd -c /etc/apache2/usuarios_dokuwiki usuario_dokuwiki

Introducir dos veces la contraseña.

2. Crear el archivo de grupos con un par usuario-grupo que ya existe en dokuwiki:

nano /etc/apache2/grupos_dokuwiki

Con el siguiente contenido:

grupo_dokuwiki: usuario_dokuwiki

Grabar y salir.

3. NOTA: quizá este archivo si pueda ir dentro del directorio donde está dokuwiki, pero por seguridad lo saco fuera.

Crear archivo intermedio apache - dokuwiki:

nano /etc/apache2/htuser_dokuwiki

Con el siguiente contenido (revisar):

usuario_dokuwiki:nombre_largo:correo@servidor.com

Grabar y salir

4. Ajustar permisos

chmod 600 /etc/apache2/usuarios_dokuwiki 
chmod 600 /etc/apache2/grupos_dokuwiki 
chmod 600 /etc/apache2/htuser_dokuwiki
chown www-data:www-data /etc/apache2/usuarios_dokuwiki
chown www-data:www-data /etc/apache2/grupos_dokuwiki
chown www-data:www-data /etc/apache2/htuser_dokuwiki

5. Crear un archivo .htaccess:

nano /ruta/a/dokuwiki/.htaccess

Con el siguiente contenido:

AuthName "Introduzca su usuario"
AuthUserFile /etc/apache2/usuarios_wiki
AuthGroupFile /etc/apache2/grupos_wiki

# Use Basic authentication
AuthType Basic
<Limit GET POST>
satisfy all
require valid-user
</Limit>

Grabar y salir.

6. Crear el archivo de usuarios para poder hacer un 'salir' elegante:

htpasswd /etc/apache2/usuario_salir salir

NOTA Teclear dos veces 'enter' para no ponerle contraseña

7. Crear el directorio a donde vamos a redirigir cuando se pulse el botón 'salir':

cd /ruta/a/dokuwiki
mkdir salir
chmod 777 salir
chown www-data:www-data salir

8. Crear el archivo:

nano ./salir/index.html

Con el siguiente contenido:

chau

Grabar y salir y darle permisos:

chown www-data:www-data ./salir/index.html

9. Crear el archivo:

nano ./salir/.htaccess

Con el siguiente contenido:

Allow from All
DirectoryIndex index.html
AuthName 'Dokuwiki'
AuthType Basic
AuthUserFile /etc/apache2/usuario_salir
require user salir

Grabar y salir

10. Descargar el módulo ggauth en la raíz de nuestro directorio dokuwiki:

wget -c --tries=0 http://lastweekend.com.au/ggauth.4.zip

11. Descomprimirlo:

unzip ggauth.4.zip

12. Eliminar archivos innecesarios:

rm -fr ggauth.4.zip

13. Editar:

nano ./conf/local.php

Con el siguiente contenido:

$conf['authtype'] = 'htaccess';
#
# name of .htaccess file, must exist if absolute, if relative will search for this file up to the docume$
$conf['auth']['htaccess']['htaccess'] = '/home/datos/www/wiki/.htaccess'; 
#
# name of file to store names and emails for each user. if relative assumed same directory as "AuthUserF$
$conf['auth']['htaccess']['htuser'] = '/home/datos/www/wiki/conf/htuser';

$conf['auth']['httpbasic']['realm'] = 'Dokuwiki';
$conf['auth']['httpbasic']['logout'] = 'Hasta pronto';

14. Editar:

nano ./inc/auth/httpbasic.class.php

Y dejar el final del guión tal que así:

function logOff() {
/* MODIFICADO */
header("Location: https://salir@misitio.mine.nu/salir/");
flush();
exit;
}

Update

Nos bajamos la última versión y la descomprimimos en el servidor

https://download.dokuwiki.org/

informatica/dokuwiki2.txt · Last modified: 2017/12/05 22:19 by jose