Table of Contents
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:
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()?> </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()?> </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