Opciones del config.php

Toda la información que necesita XenForo para conectar a la base de datos del servidor se ubica en el archivo src/config.php.

En dependencia de cómo esté instalado XenForo, config.php ha podido generarse copiando los contenidos del archivo original src/config.php.default o que lo haya creado el Instalador de XenForo.

Normalmente, el archivo config contiene un manojo de configuraciones que hacen que funcione XenForo, pero existen varias opciones adicionales que pueden agregarse para cambiar el cómo opera XenForo.

Advertencia

Estas opciones controlan funcionalidades fundamentales de la instalación de XenForo y una configuración incorrecta puede volver el sitio inoperable. Si se tienen problemas, hay que deshacer los cambios en el config.php y probar de nuevo.

Variables en el config.php

Lo siguiente es un listado de todas las configuraciones que pueden controlarse a través del config.php. Estos nombres de variable deben introducirse exactamente como se muestran aquí o se ignorará la configuración. Los nombres y valores de las variables son sensibles a mayúsculas y minúsculas.

En cada caso, el nombre de la variable se muestra con su valor predeterminado, por ejemplo:

$config['variableName'] = 'default-value';


Database connection

  • $config['db']['host'] = 'localhost';
  • $config['db']['post'] = 3306;
  • $config['db']['socket'] = null;

Son el nombre o la dirección IP, el puerto y el socket del servidor de la base de datos que aloja nuestra base de datos de XenForo. Esta información debe proveersenos a cada uno de nosotros por nuestro proveedor de alojamiento.

  • $config['db']['username'] = '';
  • $config['db']['password'] = '';
  • $config['db']['dbname'] = '';

Son el nombre de usuario y la contraseña que se utilizan para conectar a la base de datos del servidor y el nombre de la base de datos alojada en nuestro servidor y en la que se instalarán nuestros foros.

Soporte completo unicode / emoji

  • $config['fullUnicode'] = false;

Esta configuración indica a XenForo cuando debe dar los pasos necesarios para soportar o no unicode completo en el contenido del foro. Unicode completo se usa para el soporte en el texto de Emoji.

Si la instalación de XenForo inicial es la versión 2, en vez de haber actualizado desde XenForo 1, nuestra base de datos ya estará en formato unicode completo y puede colocarse esta configuración, con un valor true en el archivo config.php.

Si la instalación de XenForo ha sido actualizada desde XenForo 1, será necesario ejecutar el proceso de conversión unicode conversion antes de poder emplear unicode completo y esta configuración estará como false hasta hacerlo.

Nota

El soporte unicode completo precisa como mínimo MySQL 5.5.

Cómo actualizar a unicode completo para tener soporter Emoji

Opciones avanzadas

Estas configuraciones no están incluidas en un config.php estándar, en su mayor parte, y XenForo usará los valores predeterminados. Si se deciera utilizar cualquiera de estas configuraciones, hay que asegurarse de comprobar completamente el efecto sobre los foros antes de poner en producción el sistema.

Característica desactivada ancho del sitio

algunos sistemas XenForo pueden desactivarse por completo desde el archivo config sin tener que acceder al paner de control para nada. Configurar cualquiera de estas opciones en false desactivará por completo su funcionalidad.

Nota

Si un sistema se desactiva a través del archivo config.php, no puede re-activarse a través del panel de control de administración - sólo la edición del archivo config restaurará la funcionalidad del sistema.

Las descripciones de estas configuraciones describirán qué ocurrirá si se configura su valor en false.

  • $config['enableMail'] = true;
  • $config['enableMailQueue'] = true;
  • $config['enableListeners'] = true;
  • $config['enableTemplateModificationCallbacks'] = true;
  • $config['enableGzip'] = true;
  • $config['enableContentLength'] = true;
  • $config['enableTfa'] = true;
  • $config['enableLivePayments'] = true;
  • $config['enableClickJackingProtection'] = true;
  • $config['enableReverseTabnabbingProtection'] = true;

enableMail

Desactiva por completo la característica de enviar emails a través de XenForo. No se enviará ningún email, nunca.

enableMailQueue

Desactiva el sistema de cola de email. cualquier email que permanezca en la cola no se enviará y los emails nuevos se enviarán en cuanto se generen en lugar de pasar a la cola y enviarse por lotes.

enableListeners

Desactiva todos los detectores de eventos de código de XenForo. Esto termina con la funcionalidad de los complementos de largo y puede utilizarse para recuperar el acceso al sistema y del panel de control de administración si un complemento ha roto la capacidad de hacerlo.

enableTemplateModificationCallbacks

Desactiva la capacidad de las modificaciones de plantilla de de ejecutar devoluciones de llamada de PHP. Similarmente a enableListeners, este conmutador debe usarse para acceder a un sistema que se haya roto por una devolución de llamada y vuelto inoperable.

enableGzip

Por defecto, XenForo comprimirá el HTML final y las salida de CSS de las páginas que genera utilizando compresión gzip, que se descomprime de forma invisible a los visitantes cuando reciben los datos. Esto incrementa la velocidad de carga de la página de forma significativa, pero si se desea desactivar esta característica y envíar el HTML y CSS sin comprimir, hay que desactivar esta configuración.

enableContentLength

Normalmente, XenForo enviará una cabecera HTTP de contenido. En algunas configuraciones de servidor puede modificarse el contenido entre el envío de XenForo y la recepción por el usuario final. En esta situación, La cabecera de contenido no se actualiza corectamente por lo que puede desactivarse.

enableTfa

Desactiva la autentificación en dos pasos (2FA), sistema por el cual los usuarios necesitan iniciar sesión con un nombre de usuario y contraseña y una pieza adicional de información, such as a code from their phone. Useful if you have lost access to your admin control panel, or if you want to prevent any users from employing 2FA at all.

enableLivePayments

No se procesará pago alguno con esto desactivado. No se contactará con los proveedores de pago y no se hará intento de transacción alguna. Útil para ejecutar un sitio de prueba con una copia viva de la base de datos.

enableClickJackingProtection

Normalmente, XenForo envía la cabecera HTTP X-Frame-Options con el valor SAMEORIGIN como un medio para evitar el click-jacking desde scripts maliciosos.

cuando se activa, esta opción evita los ataques de clickjacking colocando el foro en un iframe y engañando al usuario para que haga clic en algo. Sin embargo, también desactiva usos válidos de incrustación iframe. Hay que desactivarlo solo si se entienden las implicaciones.

enableReverseTabnabbingProtection

Si está activada, evita ataques reversos de phising basados en tabnabbing que se lenazan cuando los usuarios hacen clic en enlaces a sitios externos. Sin embargo, esta protección puede interferir con servicios externos que se basan en cambiar la forma en que se procesan los clics de los enlaces (como incluir enlaces de afiliado). Hay que desactivarlo solo si se entienden las implicaciones.

Si se necesita configurar como se establecen las cookies en los navegadores de los visitantes, pueden utilizarse las siguiente configuraciones, pero advertir que valores incorrectos o no válidos pueden dejarnos incapaces de iniciar sesión con nuestra cuenta de XenForo, incluyendo en el panel de control de administración.

La primera razón para cambiar estos valores es acomodar varias instalaciones de XenForo en el mismo dominio. Si solo se tiene una única instalación en el dominio no es necesario cambiar esta configuración.

Sólo hay que cambiar estos valores si realmente se necesita y se conoce lo que se está haciendo. Si se tiene algún problema, hay que rieniciar los valores a sus predeterminados.

  • $config['cookie']['prefix'] = 'xf_';

Todas las cookies se identifican por el nombre y el configurado por XenForo está normalmente prefijado con xf_ para permitir distinguirlas de cookies configuradas por otros sistemas. Una de las consecuencias de cambiar este valor es que reinicia el Recordarme de todos los visitantes que hayan iniciado sesión que precisarán volver a hacerlo en la siguiente visita al sitio.

El valor del prefijo only utiliza letras, números y subrayados y distingue mayúsculas de minúsculas.

  • $config['cookie']['path'] = '/';

Al utilizar el valor predeterminado /, las cookies configuradas por XenForo estarán disponibles en todas las áreas del sitio. Si se necesita cambiar esto para que las cookies de XenForo solo estén disponibles en una parte específica del sitio, hay que cambiar el valor para incluir el directorio ruta como valor del correcto área del sitio, iniciando con la raíz del sitio, /.

Ejemplo de valores

  • '/' las cookies de XenForo están disponibles en todas las áreas del sitio.
  • '/foro/' las cookies de XenForo solo pueden leerse por páginas ubicadas en el directorio foro, que reside en 'http://example.com/foro', en donde example.com es la dirección de nuestro sitio.
  • '/ruta/a/otro/directorio/' las cookies de XenForo sólo pueden leerse por páginas ubicadas en la ruta de directorios ruta/a/otro/directorio, que reside en http://example.com/ruta/a/otro/directorio.
    • Las cookies no pueden leerse por páginas ubicadas en directorios superiores a esta ubicación, por ejemplo:
    • http://example.com/ruta
    • http://example.com/ruta/a
    • http://example.com/ruta/a/otror

Advertencia

Si se especifica una ruta de cookie que no las permite, XenForo no será capaz de leerlas y fallarán operaciones críticas como el inicio de sesión.

  • $config['cookie']['domain'] = '';

Similiarmente a la configuración de la ruta en la cookie, esto permite especificar un dominio sobre el cual se pueden leer las cookies. No es usual configurar este valor a cualquier otro que no sea el predeterminado y, como en la ruta de la cookie, debe serse muy cuidadoso si se cambia porque introducir un valor que anule la lectura de las cookies por XenForo romperá importantes funcionalidades, como la capacidad de permanecer conectado al foro.

La razón de configurar este valor debiera ser el permitir a las cookies a ser compartidas por varios dominios, por ejemplo, una configuración de .example.com permitiría a las cookies ser accesadas desde todos los subdominios de example.com, tal como www.example.com y otro.example.com. En la mayoría de las ocasiones puede dejarse con su valor predeterminado.

Ejemplo de valores

  • '' permite leer las cookies solo en los dominios en que han sido configuradas
  • '.example.com' permite leer las cookies de example.com y de cualquier subdominio que tenga
  • 'subdominio.example.com' permite leer las cookies sólo en subdominio.example.com

Ubicación de Data y scripts

Si se desea cambiar la ubicación en la que XenForo almacena los datos y scripts que se tienen en archivos, como los avatares, adjuntos y los archivos de javascript, puede hacerse cambiando esta configuración.

  • $config['externalDataPath'] = 'data';
  • $config['externalDataUrl'] = 'data';
  • $config['internalDataPath'] = 'internal_data';
  • $config['codeCachePath'] = '%s/code_cache';
  • $config['tempDataPath'] = '%s/temp';
  • $config['javaScriptUrl'] = 'js';

Ruta de las variables

En cada uno de estos casos, el nombre de la variable termina con Path en referencia al sistema de ruta de archivos interno en el servidor, relativos al directorio en que se ha instalado XenForo. Las rutas relativas comienzan en el directorio de instalación de XenForo. Esto puede configurarse fuera de la raíz web.

Si la instalación de XenForo se ubica en /users/tunombre/htdocs/xenforo, los siguientes ejemplos mostrarán diferentes valores relativos a esta ruta:

  • data - /users/tunombre/htdocs/xenforo/data
  • ../otra-carpeta - /users/tunombre/htdocs/otra-carpeta

Estas variables también pueden utilizar una ruta absoluta desde la raíz del servidor, tal como /users/tunombre/htdocs/xenforo/data.

URL variables

Variables cuyos nombres terminan en Url se refieres a la ruta relativa del directorio de XenForo y visible desde la raíz web. Las URLs relativas comienzan el el directorio de la instalación de XenForo. Si la instalación de XenForo reside en http://example.com/xenforo, los siguientes ejemplos muestran cómo se evalúan los diferentes valores:

  • data - http://example.com/xenforo/data
  • ../otra-carpeta - http://example.com/otra-carpeta
  • /una-carpeta-raiz - http://example.com/una-carpeta-raiz
  • /xenforo/mi-carpeta - http://example.com/xenforo/mi-carpeta

Se obtendrá una URL completa, incluyendo el nombre del dominio, tal como:

  • http://example.com/xenforo/data
  • //example.com/xenforo/data

Advertencia

Los directorios especificados como rutas deben ser escriturables por el servidor web (chmod 777) o no podrán almacenarse los datos de XenForo en esta ubicación.

Si cualquiera de estas rutas y URLs se configuran incorrectamente, se romperán funcionalidades importantes de XenForo. Hay que cambiarlos sòlo si se sabe exáctamente lo que se hace.

externalDataPath

Define la ruta al directorio 'data', en el que mantiene los archivos XenForo y que se sirven directamente al navegador por el servidor web, como un avatar y miniaturas de imágenes y adjuntos. Este directorio debe permanecer dentro de la raíz web.

externalDataUrl

Define la ubicación del directorio 'data', en el que XenForo mantiene los avatares y miniaturas de imágenes y adjuntos, visible a nuestro servidor web.

internalDataPath

Define la ruta al directorio 'internal_data', que contiene archivos que no se sirven directamente a los navegadores web clientes, como los adjuntos.

codeCachePath

Define la ubicación del directorio 'code_cache', con versiones de caché almacenadas en archivos de PHPs utilizados para incrementar la velocidad de ejecución de XenForo. Esto normalmente reside en el directorio 'internal_data'.

tempDataPath

Define la ruta aldirectorio utilizado para almacenar archivos temporales, como los adjuntos recien subidos y que se están procesando antes de almacenarse en su ubicación final. Esto normalmente reside en el directorio 'internal_data'.

javaScriptUrl

Define la ubicación del directorio 'js', en el que XenForo espera encontrar los archivos de JavaScript necesarios para su funcionalidad, como una ruta del servidor web público. Este directorio debe permanecer dentro de la raíz web.

Adaptador de la base de datos

  • $config['db']['adapterClass'] = 'XF\Db\Mysqli\Adapter';

Es el nombre de la clase de PHP que se usa para conectar a la base de datos. Usar un servidor con MySQL supone una buena razón para querer cambiar esta configuración.

Configuración de la caché

En grandes sitios con XenForo, se obtendrá ventaja del uso del mecanismo caché para acelerar la generación de la página.

La configuración para almacenar en caché todo todo lo que cae está en la sección $config['cache'] y se discutirá más detalladamente en la sección Caché de este manual.

Si se configura una caché, puede desactivarse en cualquier momento configurando el valor de esta opción en false:

  • $config['cache']['enabled'] = false;

Configuración de la caché

Configuración del cliente HTTP

Estas configuraciones controlan el comportamiento del cliente HTTP interno de XenForo, que se usa para obtener recursos de todo internet, tal comos imágenes y páginas webs cuando se utiliza el Proxy de imágenes y enlaces.

  • $config['http']['sslVerify'] = null;
  • $config['http']['proxy'] default null

La configuración sslVerify forzará al sistema la verificación del certificado SSL de cualquier sitio que él visite utilizando SSL/HTTPS cuando solicite recursos. Configurar este valor en true puede beneficiar en algunas circunstancias, pero la verificación del crtificado SSL puede fallar por varias vías, dando como resultado la incapacidad de obtener los recursos solicitados. En caso de duda, hay que dejar este ajuste solo.

Si se quiere que el cliente HTTP interno de XenForo realice sus requerimientos a través de un proxy, introducir la dirección del servidor proxy en la configuración proxy.

Otras variables

  • $config['globalSalt'] = '[%GLOBAL_SALT%]';

Esta variable define un valor secreto que se utiliza para sazonar los valores de varias cachés, cookies y otros datos con el propósito de prevenir que los agentes maliciosos roben o falsifiquen los datos. Nunca debe revelarse el valor de sazonamiento global a nadie ya que puede comprometerse la seguridad de la instalación de XenForo.

Normalmente, XenForo generará su propio sazonamiento global seguro y solo se precisará cambiarlo si se desea definirlo uno mismo.

  • $config['checkVersion'] = true;

Si está activado, el sistema comprobará que el número de versión almacenado en los scripts de PHP de XenForo coincida con el número de versión almacenado en la base de datos de XenForo y evitará el acceso a los foros de los visitantes regulares si el número no coincide, como podría ser el caso de terminar de subir los archivos para ejecutar una actualización sin haber ejecutado el proceso de actualización aún.

  • $config['passwordIterations'] = 10;

Configura la fuerza del sistema de almacenamiento de contraseñas basado en bcrypt. Números altos son más seguros, pero cada incremento de este valor duplicará aproximadamente el tiempo que lleva generar o validar una contraseña, conllevando un mayor uso del servidor.

  • $config['maxImageResizePixelCount'] = 20000000;

Máximo tamaño de una imagen (número de pixeles en total) a la que XenForo intentará redimensionar. Imágenes mayores de este valor no se redimensionarán y serán rechazados. Esto se calcula utilizando ancho × alto.

  • $config['adminLogLength'] = 60;

Número de días a mantener el registro de todas las actividades de administrador en el panel de control de administración. Una vez transcurridos este número de días desde su registro se purgará de la base de datos.

  • $config['chmodWritableValue'] = 0;

Si este valor no es cero, todos los archivos creados por XenForo adquirirán automáticamente este valor de chmod. También los directorios tendrán este valor de chmod, aunque también siempre serán user-, group- y palabras ejecutables. En la mayoría de las situaciones, XenForo determinará el valor correcto de chmod automáticamente.

  • $config['proxyUrlFormat'] = 'proxy.php?{type}={url}&hash={hash}';

Define el formato de los enlaces que utilizan el proxy de imágenes y enlaces.

El formato debe incluir las fichas {type}, {url} y {hash} y debe apuntar a proxy.php salvo que se tenga un script alternativo o sistema para manejar las solicitudes proxy.

  • $config[jobMaxRunTime'] = 8;

Configura en segundos el tiempo que los trabajos de proceso tienen permitido ejecutar antes de suspenderlos para su posterior procesamiento en otro turno, si es posible.

  • $config['fsAdapters'] = [];

Define una lista de adptadores de archivos del sistema disponibles para uso del sistema. Esta es una poderosa característica avanzada que será completamente documentada en posterior fecha.

Modo debug

El modo debug es un estado especial en que XenForo se ejcuta con propósitos de depuración o de desarrollo.

  • $config['debug'] = false;

Configurar esto en true es necesario para que operen ciertas funcionalidades, incluyendo los modos Diseñador y Desarrollador.

Advertencia

Nunca, nunca debe activarse el modo debug en un entorno vivo en producción expuesto a Internet.

No solo la generación y ejecución de las páginas será significativamente más lentas que con el modo debug desactivado, si no que puede revelarse importante información, como el estado interno de las consultas de SQL, a los visitantes. Sólo debe activarse el modo debug si se está trabajando en una instalación privada de XenForo que esté protegida de visitantes potencialmente maliciosos.

Modo diseño

El modo diseño es una característica avanzada de XenForo para diseñadores de estilos que permite editar directamente las plantillas en el sistema de archivos, en lugar de utilizar el editor de plantillas en el panel de control de administración.

  • $config['designer']['enabled'] = false;
  • $config['designer']['basePath'] = 'src' . \DIRECTORY_SEPARATOR . 'styles';

Conmuta el estado activado de la configuración del modo diseño entre Sí y No, y el valor basePath controla la ubicación en que XenForo espera encontar los archivos de las plantillas, etc. con los que está trabajando el diseñador.

Más extensa documentación sobre el Modo diseñoe se encuentra en la Documentación de desarrollo de XenForo 2

Development mode

El modo de desarrollo es otra característica avanzada, esta vez para los desarrolladores de complementos de XenForo.

  • $config['development']['enabled'] = false;
  • $config['development']['defaultAddOn'] = '';

Conmuta el estado activado de la configuración del modo de desarrollo entre Sí y No. La configuración defaultAddOn permite especificar el ID de un complemento, en el que automáticamente se crea la configuración del Complemento para material de nueva creación en el panel de control de administración para el complemento especificado.

  • $config['development']['skipAddOns] = null;

Para usar esta configuración, hay que establecer el valor a una matríz de IDs de complementos, tal como ['addOn1', 'addOn2']. Cualquier complemento especificado en la matríz skipAddOns se omitirá cuando ejecute herramientas de desarrollo como importar y exportar datos maestros.

  • $config['development']['throwJobErrors'] = null;

Si esta opción está establecida en true, cualquier error que habitualmente se suprimía al ejecutar herramientas de desarrollo como el script de generación del complemento, se materializará y se mostrará, interrumpiendo el proceso. Esto puede ser útil cuando se depuran problemas con la salida de los trabajos de desarrollo.

  • $config['development']['fullJs'] = false;

Controla cuando el sistema puede utilizar las librería javascript estándar minified y cuando rolled-up, como en la configuración predeterminada de XenForo, o si se usará en su lugar los archivos completos de javascript.

Configurar el valor en true causará que XenForo solicite los archivos completos de javascript. La funcionalidad resultante será la misma, pero el javascript completo sin minificar sus archivos son más fáciles de solucionar cuando se depuran los problemas que se puedan tener al desarrollar complementos.

Utilizar los archivos completos de javascript causará que el sitio genere más solicitudes HTTP y consuma mayor ancho de banda, lo que resultará en una más lenta y peor experiencia para los visitantes, por lo que no es recomendable el uso de fullJs en sitios de producción en vivo.

Una descripción completa del Modo de desarrollo está disponible en la Documentación de desarrollo de XenForo 2.