DOCUMENTACIÓN DE DESARROLLO SOBRE XENFORO 2

Esta documentación anima a que te inicies con XenForo 2.0 para desarrolladores. Pre-requisitos para esta documentación asumen que estarás familiarizado con montones de cosas sobre PHP y MySQL. No es esencial tener experiencia con la versión previa de XenForo, pero te dará una gran ventaja.

En las páginas siguientes te guiaremos a través de una breve descripción de cómo configurar un servidor local, preparar la instalación, hacer una instalación limpia de XenForo 2.0 y ejecutar a su través algunos de los conceptos de desarrollo XF2.

Novedades para los desarrolladores

A pesar de que XenForo 2.0 presenta varias mejoras para foros y miembros, se ha dedicado una cantidad significativa de esfuerzos a mejorar el marco subyacente de XenForo. Puedes leer más información sobre estos cambios en los siguientes temas:

Comenzando

Comenzar con XF para desarrolladores es fácil. Solo necesitas descargar los archivos, subirlos a tu servidor web y lanzar la instalación.

Si aún no tienes un servidor web, no te preocupes, puedes configurar uno en tu máquina virtual y descargar XF 2.0.

Descargar XF 2.0

Para descargar XF 2.0, visita el Área de cliente e inicia sesión normalmente. Localiza la correcta licencia y haz clic en el vínculo "Descargar XenForo". Selecciona la versión que deseas descargar, el tipo de paquete y acepta el contrato de licencia. Finalmente, haz clic en el botón Descargar para descargar los archivos.

Requisitos de XF 2.0

Los requisitos para ejecutar XF 2.0 han cambiado desde XF 1.5. Los requisitos recomendados son los siguientes:

  • PHP: 5.4.0+
  • MySQL: 5.5+
  • Extensiones de PHP: MySQLi, GD (con soporte JPEG), PCRE, SPL, SimpleXML, DOM, JSON, iconv, ctype, cURL

Descargar el script para probar los requisitos.

Configurar un servidor local

A menudo conviene más configurar un servidor web local para desarrollo. Generalmente hay dos enfoques para esto:

  1. Instalar Apache (o nginx), MySQL (o MariaDB) y PHP tu mismo.
  2. Instalar un paquete preconstituido.

Configurar cosas uno mismo es más complicado, pero tiende a darte más control sobre cómo se configura todo.

Un paquete pre-construido es probablemente la forma más fácil de hacerlo. Hay muchos de ellos y pueden variar sus características, rendimiento y fiabilidad. Bitnami mantiene gran número de paquetes, incluyendo los paquetes LAMP, MAMP y WAMP para uso en Linux, Mac y Windows respectivamente. Incluyen una configuración de Apache completamente configurada, de MySQL y de PHP e incluye PhpMyAdmin para gestionar MySQL.

Subir los archivos

Para instalar XF 2.0, necesitas extraer el archivo ZIP descargado desde el Área de cliente y subir los archivos y directorios a tu servidor.

Una vez extraídos verás un directorio denominado upload. Accede dentro de él y sube todos los archivos y directorios que contiene a la raíz de tu servidor web. Usualmente está situado en un directorio denominado public_html, htdocs o www.

Crear src/config.php

Si se usa CLI (Command Line Interface == Interfaz de línea de comandos) para instalar XF 2.0, precisarás crear manualmente el archivo config.php. Para hacerlo, entra al directorio src del interior de los archivos subidos a tu servidor de XF 2.0. Crea un nuevo archivo llamado config.php y configúralo con el host, puerto, nombre de usuario, contraseña y nombre de la base de datos de tu servidor MySQL.

Nota

Asegúrate de crear el archivo config en el interior del directorio src. El directorio library sólo se usa ya para fines heredados.

Una vez terminado, debe lucir algo así como:

<?php

$config['db']['host'] = 'localhost'; $config['db']['port'] = '3306'; $config['db']['username'] = 'root'; $config['db']['password'] = 'micontraseña'; $config['db']['dbname'] = 'xf2';

¡Ahora, ya estás listo para instalar!

Si usas MySQL 5.5 o superior y quieres tener soporte completo unicode (para cosas como emoji) debes agregar lo siguiente antes de instalar:

$config['fullUnicode'] = true;

Nota sobre permisos de archivos

XenForo necesita escribir archivos en ubicaciones específicas cuando se ejecuta. Normalmente, esto se limita a los directorios data e internal_data (y sus sub-directorios). Esta escritura de archivos se ejecutará en cosas como la subida de adjuntos que normalmente lo hace el usuario de PHP en su propio servidor web. Así, es necesario asegurarse de que los permisos están configurados en esos directorios de tal modo que el servidor pueda escribirlos. Se necesita hacer esto antes de iniciar la instalación.

Ahora interviene la CLI, Esta situación se vuelve más difícil ya que ahora hay potencialmente dos usuarios que necesitan poder escribir en los archivos. Como tal, es importante tomar medidas para evitar problemas de escritura con estos archivos. Aquí hay algunas opciones.

  1. Usar el mismo usuario para la CLI y para el servidor web. Esto conlleva el cambiar al usuario del servidor web antes de ejecutar cualquier comando de instalación o actualización (u otras que deban escribir archivos).
  2. Si se puede, considerar aplicar ACLs a los directorios data e internal_data. Esto varía según el OS y su configuravión, pero la idea general está descrita aquí.
  3. Forzar permisos específicos para que PHP pueda escribir. Esto puede hacerse a través del archivo src/config.php con una línea como esta: $config['chmodWritableValue'] = 0666;. Esto es potencialmente el modo más simple para propósitos de programación.

Advertir que si se está programando complementos, pueden existir otras ubicaciones que precisen escribirse por la CLI y por los usuarios del servidor web. Notablemente, esto incluye al directorio _output para los complementos. En esta situación, tener el servidor web ejecutando el usuario de CLI puede generar problemas. Si vas por cualquier otra ruta, es preciso asegurar que tu servidor web pueda escribir durante la instalación completa de XenForo. Esto no es recomendable en producción.

Instalación

El modo actual de instalar XF 2.0 es a traves del nuevo sistema CLI. Deben realizarse un montón de procesos que solo se pueden realizar usando CLI, por lo que no queda otro remedio que usarlo para instalar XF 2.0. Para ejecutar estos comandos, necesitarás un terminal/shell, el comando de CLI php y el directorio actual de trabajo, que suele ser la raíz a donde se han subido los archivos de XF 2.0.

Advertencia

Para eliminar los problemas con los permisos de los archivos, recomendamos ejecutar el instalador con el mismo usuario de PHP del servidor web. Si no haces esto, deberás seguir unos pasos para asegurarte de que los permisos están configurados correctamente. Ver la sección anterior para más detalles.

Para comenzar la instalación, introduce el siguiente comando:

Terminal

$ php cmd.php xf:install

Se te preguntará por el nombre de usuario y la contraseña del administrador inicial, título del foro, etc. Tras esto, se importarán las tablas de la base de datos y los datos maestros de XF 2.0.

¡XF 2.0 ahora está instalado!

Reinstalación

Ocasionalmente, puede ser necesario reinstalar XF2. Esto es particularmente cierto durante la fase de desarrollo previa que no soporta actualizaciones. Si se está listo para reinstalar, hay que descargar los nuevos archivos (si procede) desde la sección de arriba Descargar XF 2.0. En general, debería ser posible fusionar y sobrescribir los archivos existentes. Si se está haciendo una re-instalación limpia completa, se deberá guardar una copia del archivo config.php o re-crearlo siguiendo las instrucciones para Crear src/config.php.

Antes de subir los nuevos archivos, hay que eliminar todos los contenidos de los directorios data e internal_data.

Finalmente, deberás iniciar la instalación, como arriba. Precisarás usar la opción --clear que eliminará todas las tablas xf_ existentes.

Terminal

$ php cmd.php xf:install --clear

Una vez terminada la re-instalación, ahora deberías poder volver a iniciar sesión.

Si estás programando complementos y eliges mantener o hacer copia de seguridad de tus archivos existentes en el directorio src/addons, podrás restaurar los datos con el comando Importar la salida de desarrollo.

Advertencia

Ten cuidado si decides realizar una copia de seguridad y restaurar el directorio src/addons. El directorio XF contiene en su interior los datos maestros de XF y no pueden restaurarse desde una copia de seguridad para asegurar que siempre tienes la última versión de los archivos.

Realizar una re-instalación por este método es una operación destructiva que destruye todos los datos creados. Además, ten en cuenta que sólo las tablas con el prefijo xf_ se eliminan. Ésta es la significativa razón de la recomendación de que vayan prefijadas con xf_, incluso la de los complementos.

Verificar la integridad de los archivos

Cuando se instala XF2 se realiza una comprobación de la integridad de los archivos. Si fuera necesario y no existe la posibilidad de realizar ésta comprobación en el PC de Admin, puede ejecutarse un comando CLI para realizarla.

Terminal

$ php cmd.php xf:file-check <addon id=""></addon>

Si se quiere realizar una comprobación de la salud de todos los archivos, incluyendo XF en sí mismo, hay que omitir el argumento <ADDON ID>. Para sólo XF, hay que usar solamente XF en el sitio del argumento, o para un complemento en particular, hay que especificar el ID del complemento que se quiere comprobar.

Comandos de gestión de complementos

Adicionalmente a los comandos de instalación de XF2, existen varios comandos para gestionar los complementos.

Instalar complemento

Terminal

$ php cmd.php xf:addon-install <addon id=""></addon>

Instala el complemento específico, siempre y cuando esté disponible y pase la comprobación de salud de archivos.

Actualizar complemento

Terminal

$ php cmd.php xf:addon-upgrade <addon id=""></addon>

Actualiza el complemento específico, siempre y cuando esté disponible y pase la comprobación de salud de archivos.

Reconstruir complemento

Terminal

$ php cmd.php xf:addon-rebuild [addon_id]

Reconstruye los datos maestros de los datos del complemento especificado, siempre y cuando sea reconstruible, y pasa la comprobación de salud de archivos. Ésto re-importa los datos del complemento. Opcionalmente, puede importar desde la salida de desarrollo.

Desinstalar complemento

Terminal

$ php cmd.php xf:addon-uninstall <addon id=""></addon>

Desinstala el complemento específico, siempre y cuando pueda desinstalarse.