DokuWiki (Español)

From ArchWiki
Esta traducción de DokuWiki fue revisada el 2019-11-24. Si existen cambios puede actualizarla o avisar al equipo de traducción.

«DokuWiki es un wiki que cumple con los estándares, simple de usar y que permite a los usuarios crear ricos repositorios de documentación. Proporciona un entorno para que personas, equipos y empresas creen y colaboren utilizando una sintaxis sencilla pero potente que garantiza que los archivos de datos permanezcan estructurados y legibles fuera de la wiki».

«Las revisiones ilimitadas de cada página permiten la restauración de cualquier versión anterior de dichas páginas, y con los datos almacenados en archivos de texto plano, no se requiere ninguna base de datos. Una poderosa arquitectura de complementos permite la extensión y la mejora del sistema central. Vea la sección de características para obtener una descripción completa de lo que DokuWiki puede ofrecer.» [1]

En otras palabras, DokuWiki es una Wiki escrita en PHP y que no requiere base de datos.

Notas iniciales

DokuWiki debería funcionar en cualquier servidor web que soporte PHP 5.6 o posterior. Como los requisitos pueden cambiar con el tiempo, debe consultar la página de requisitos de DokuWiki para obtener más detalles.

Se recomienda encarecidamente leer las secciones apropiadas de la página de seguridad de DokuWiki para su servidor web. La mayoría de los servidores web más populares están cubiertos, pero también hay instrucciones genéricas.

El paquete descomprime DokuWiki en /usr/share/webapps/dokuwiki con los archivos de configuración en /etc/webapps/dokuwiki y los archivos de datos en /var/lib/dokuwiki/data. También cambia la propiedad de los archivos relevantes al usuario «http». Esto debería funcionar bien para la mayoría de los servidores web más populares, tal como están empaquetados por Arch.

Instalación

  1. Instale un servidor web de su elección (por ejemplo, Apache, nginx o lighttpd) y configúrelo para PHP. Como se mencionó anteriormente, DokuWiki no tiene necesidad de un servidor de base de datos por lo que puede saltarse ese paso al configurar su servidor web.
  2. Instale dokuwiki.
  3. Configure el servidor web para DokuWiki (consulte la sección siguiente).
  4. Con el navegador web de su elección, abra http://<your-server>/dokuwiki/install.php y continúe la instalación desde allí. Para nginx la URL es http://<your-server>/install.php.

Alternativamente, si desea instalar desde un archivo tarball, puede informarse en https://www.dokuwiki.org/Install. Generalmente el procedimiento es el mismo que el anterior. En lugar de usar pacman, necesitará descargar el tarball, descomprimirlo en la raíz del documento del servidor (por ejemplo, /srv/http/dokuwiki), y cambiar los permisos al usuario apropiado (por ejemplo, «http»).

Configuración

Si está utilizando lighttpd o nginx y la versión de PHP es inferior a 7, debe ajustar open_basedir en /etc/php/php.ini para incluir los directorios dokuwiki (php prohíbe seguir enlaces simbólicos fuera del ámbito permitido):

/etc/php/php.ini
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/dokuwiki/:/var/lib/dokuwiki/

También descomente la siguiente línea:

/etc/php/php.ini
extension=gd

Dokuwiki necesita esta biblioteca para cambiar el tamaño de las imágenes.

Apache

El paquete debe tener el archivo /etc/httpd/conf/extra/dokuwiki.conf con el siguiente contenido:

Alias /dokuwiki /usr/share/webapps/dokuwiki
<Directory /usr/share/webapps/dokuwiki/>
    Options +FollowSymLinks
    AllowOverride All
    order allow,deny
    allow from all
    php_admin_value open_basedir "/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/dokuwiki/:/var/lib/dokuwiki/"
</Directory>

Si está ejecutando Apache 2.4 o posterior, tendrá que cambiar las siguientes líneas:

    order allow,deny
    allow from all

para que lea:

    Require all granted

Incluya el archivo recién creado en la configuración de Apache colocando la siguiente línea al final de /etc/httpd/conf/httpd.conf:

Include conf/extra/dokuwiki.conf

Asegúrese de que las carpetas /etc/webapps/dokuwiki y /var/lib/dokuwiki sean propiedad del usuario y del grupo «http». Puede reubicar estos directorios si lo desea, siempre que actualice las referencias en /etc/httpd/conf/extra/dokuwiki.conf respectivamente, para que DokuWiki encuentre los complementos y la carpeta tpl.

Después reinicie Apache:

 # systemctl restart httpd.service

Para terminar la instalación, ejecute el script dokuwiki/install.php en su navegador.

lighttpd

Edite el archivo /etc/lighttpd/lighttpd.conf de acuerdo con las instrucciones dokuwiki (puede contener información actualizada).

Asegúrese de que los módulos mod_access y mod_alias están cargados. Si no, carguelos, añadiendo lo siguiente a:

/etc/lighttpd/lighttpd.conf:

server.modules += ("mod_access")
server.modules += ("mod_alias")

mod_access proporciona la orden url.access-deny que estamos utilizando desde este punto.

Bajo la línea:

$HTTP["url"] =~ "\.pdf$" {
  server.range-requests = "disable"
}

añada esto:

# subdirectorio de dokuwiki
# compuesto por el subdirectorio del directorio raíz donde está instalado dokuwiki
# en este caso el directorio raíz es el directorio base /htdocs/
# Nota: tenga cuidado con las barras inclinadas al unir cadenas.
# Todo el contenido de este servidor de ejemplo se sirve desde htdocs/ hacia arriba.
#var.dokudir = var.basedir + "/dokuwiki"
var.dokudir = server.document-root + "/dokuwiki"

# asegúrese de que siempre se sirvan a través de fastcgi fastcgi y nunca como archivos estáticos
# denegar completamente el acceso a estos
$HTTP["url"] =~ "/(\.|_)ht" { url.access-deny = ( "" ) }
$HTTP["url"] =~ "^" + var.dokudir + "/(bin|data|inc|conf)/"  { url.access-deny = ( "" ) }

Estas entradas dan alguna seguridad básica a DokuWiki. Lighttpd no utiliza archivos .htaccess como Apache. PUEDE hacer la instalación sin esto, pero NUNCA es recomendable.

Añada alias en algún lugar del archivo de configuración de lighttpd o fastcgi:

alias.url += ("/dokuwiki" => "/usr/share/webapps/dokuwiki/")

Reinicie lighttpd:

 # systemctl restart lighttpd

nginx

Asegúrese de que php-fpm esté instalado e iniciado.

Añada el siguiente bloque de «server», pero cambie el nombre del servidor por el suyo y comente el bloque install.php hasta que haya terminado de instalar DokuWiki. Este bloque se supone que utiliza TLS. [2]

/etc/nginx/nginx.conf
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name wiki.example.com;
         
        root /usr/share/webapps/dokuwiki;
        index doku.php;

        #Recuerde comentar lo siguiente cuando esté instalando DokuWiki, y descomentarlo cuando haya terminado.
        location ~ /(data/|conf/|bin/|inc/|install.php) { deny all; } # secure Dokuwiki

        location ~^/\.ht { deny all; } # also secure the Apache .htaccess files
        location @dokuwiki {
            #rewrites "doku.php/" out of the URLs if you set the userewrite setting to .htaccess in dokuwiki config page
            rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
            rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
            rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
            rewrite ^/(.*) /doku.php?id=$1&$args last;
        }

        location / { try_files $uri $uri/ @dokuwiki; }
        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
        }

    }

Reinicie nginx:

 # systemctl restart nginx

Activar la carga y visualización de archivos SVG

DokuWiki admite archivos SVG pero los tiene desactivados de forma predeterminada.

Si desea activarlos, cree el siguiente archivo:

/etc/webapps/dokuwiki/mime.local.conf
svg image/svg+xml

Esto tiene implicaciones de seguridad: mire aquí

Posinstalación

Limpiar

Después de configurar el servidor, quite el archivo install.php o asegúrese de que esté inaccesible en la configuración de su servidor web

 # rm /usr/share/webapps/dokuwiki/install.php

Instalar complementos

Muchos complementos creados por la comunidad se pueden encontrar aquí

Se pueden agregar a través de la interfaz web (así como actualizarla) a través del menú Admin. Algunos plugins no se pueden descargar, si se hace mediante ssl (por ejemplo, git).

Realizar copias de seguridad

Es muy trivial hacer una copia de seguridad de DokuWiki, ya que no hay base de datos. Todas las páginas están en texto plano, y requieren solo un tar simple, o rsync

Un desglose rápido de los directorios de interés en la versión actual (2015-08-10a):

  /usr/share/webapps/dokuwiki/data/  =>  Todos los datos creados por el usuario
  /usr/share/webapps/dokuwiki/conf/  =>  Ajustes de configuración

Esto puede cambiar en versiones futuras, por favor consulte las FAQ de DokuWiki para comprobarlo.

Lecturas recomendadas

La página principal de DokuWiki tiene toda la información y ayuda que pueda necesitar.