Avanzado: Opciones del config.php

Desactivar complementos a traves del config.php

A veces, puede darse un conflicto causado por los complementos. Estos conflictos pueden hacer que no se pueda acceder al PCA para desactivar el complemento causante.

Para solucionar esto, pueden desactivarse todos los complementos a través del archivo library/config.php. Añadir sólo esta línea de código al final:

$config['enableListeners'] = false;

Esto desactivará cualquier código que corresponda a complementos. Ya se podrá iniciar sesión en el PCA y desactivar el(los) complemento(s) causante(s) desde aquí. Una vez hecho, ya se puede eliminar la línea añadida a library/config.php.

Definir una caché

En grandes instalaciones de XenForo, puede resultar ventajoso definir una caché a fin de ahorrar tiempo de proceso y consultas a la base de datos.

XenForo tiene la capacidad de almacenar y recuperar diferentes datos de una memoria caché, que pueden configurarse en el archivo library/config.php.

Ejemplos de tipos de caché

La caché de XenForo es una implementación de Zend_Cache_Core para la parte de adelante (zona pública), y una extensión de Zend_Cache_Backend para la parte de atrás (panel de control).

Cache de la parte de adelante o zona pública

Configurar la parte pública es fácil y consiste en agregar las siguientes líneas al archivo library/config.php:

$config['cache']['enabled'] = true;
$config['cache']['frontend'] = 'Core';
$config['cache']['frontendOptions']['cache_id_prefix'] = 'xf_';

Se puede variar el valor 'cache_id_prefix' para satisfacer sus propias necesidades. Usuarios avanzados pueden cambiar otras opciones de Zend_Cache_Core front-end para satisfacer sus necesidades.

Si se desea leer y escribir sesiones de XenForo en la caché, agregar la siguiente línea al archivo library/config.php:

$config['cache']['cacheSessions'] = true;

Tenga en cuenta que la caché debe tener espacio suficiente para albergar las sesiones, o los usuarios pueden no ser capaces de iniciar sesión correctamente. No se recomienda escribir sesiones en la caché si se está usando APC como caché back-end.

Los siguientes son ejemplos de caché de la parte de atrás que pueden usarse con XenForo:

Archivo Back-End

El tipo más simple de caché de atrás es el almacenamiento en archivo, que almacena los datos de caché como archivos en un directorio temporal del servidor.

La configuración es igualmente simple:

$config['cache']['backend'] = 'File';

Listado completo de opciones de caché APC.

APC Back-End

Si se tiene APC (Caché alternativo de PHP) instalado en el servidor, puede usarse para almacenar los datos de caché.

Advertir que algunas versiones de APC pueden ser susceptibles de problemas cache-slam, por lo que si se activa la caché APC de datos (añadido al código de caché de PHP que se mantiene automáticamente sin requerir ninguna configuración), se debe controlar cuidadosamente el servidor durante un tiempo para asegurarse de que funciona sin problemas.

$config['cache']['backend'] = 'Apc';

Listado completo de las opciones de caché APC.

Memcached Back-End

Memcached es un mecanismo de almacenamiento avanzado para datos compartidos y puede usarse como caché de atrás de XenForo.

La configuración requerida es algo más simple para Back-end, como por ejemplo:

$config['cache']['backend'] = 'Memcached';
$config['cache']['backendOptions'] = array(
'compression' => false,
'servers' => array(
        array(
            // your memcached server ip /address
            'host' => 'localhost',
                            
            // memcached port
            'port' => 11211,
            )
        )
);

Listado completo de opciones de memcached.

Opciones del config.php

Hay una serie de opciones de configuración de la aplicación que están en el archivo library/config.php. Estas son las opciones avanzadas y deben modificarse con cuidado.

Advertencia

Una configuración incorrecta de estas opciones puede hacer que XenForo no pueda usarse. Si se tiene cualquier problema, deshacer las modificaciones.

Para modificar cualquier valor del archivo config.php, hay que añadir solo una línea al final del mismo. Esta guía asume un conocimiento básico de la sintáxis de PHP.

  • $config['db']['adapterNamespace'] - predeterminado: 'Zend_Db_Adapter' | Controla la conexión a la clase que puede usarse del adaptador de bases de datos.
  • $config['cache'] | Esto se discute en la sección Definir una caché.
  • $config['debug'] - predeterminado: false | Controla cuando se activa el modo de depuración o debug. El modo de depuación ofrece mayor acceso a los mensajes de error, información de depuración/rendimiento y herramientas de desarrollo. No debe ejecutarse en un foro en producción por poder degradar el rendimiento o incluso ser un riesgo de seguridad.
  • $config['enableListeners'] - predeterminado: true | Permite desactivar los detectores de eventos de código de los complementos en el evento de un complemento que no permite el acceso al PCA. Leer más en Desactivar complementos a través de config.php.
  • $config['superAdmins'] - predeterminado: '1' | Lista separada por comas de IDs de usuarios consideradossuper administradores. Los super administradores pueden crear/eliminar a otros administradores y acceder siempre a todas las partes del PCA.
  • $config['jsVersion'] - predeterminado: '' | Puede cambiarse este valor para forzar un refresco de todos loas archivos de JS. Para desarrolladores, esto está supervisado por la opción jsLastUpdate.
  • $config['cookie']['prefix'] - predeterminado: 'xf_' | Todas las cookies configuradas por XenForo tendrán este prefijo. Esto puede cambiarse si se tienen varias instalaciones de XenForo en el mismo dominio.
  • $config['cookie']['path'] - predeterminado: '/' | Esto permite a las cookies configuradas por XenForo estar limitadas a un sub-directorio en particualr en el dominio. Esto puede cambiarse si se tienen varias instalaciones de XenForo en el mismo dominio.
  • $config['cookie']['domain'] - predeterminado: '' | Si se precisa tener disponibles en un sub-dominio las cookies de XenForo, debe configurarse esto a '.dominio.com' para permitir el acceso a lascookies en el sub-dominio.
  • $config['enableMail'] - predeterminado: true | Configurar esto a false para evitar el envío de emails de XenForo.
  • $config['internalDataPath'] - predeterminado: 'internal_data' | Ruta al directorio internal_data/. Las rutas relativas comienzan en el directorio de instalación de XenForo. Esto puede estar fuera del directorio raíz.
  • $config['externalDataPath'] - predeterminado: 'data' | Ruta al directorio data/. Las rutas relativas comienzan en el directorio de instalación de XenForo. Este directorio debe ser accesible a través de web.
  • $config['externalDataUrl'] - predeterminado: 'data' | URL al directorio data/. Las URLs relativas comienzan en la URL de instalación de XenForo.
  • $config['javaScriptUrl'] - predeterminado: 'js' | URL al directorio js/. Las URLs relativas comienzan en la URL de instalación de XenForo. Esto puede cambiarse para servir el JavaScript desde un CDN, por ejemplo.
  • $config['checkVersion'] - predeterminado: true | Si es verdadero, el acceso a los foros estará desactivado automáticamente si la versión del archivo no coincide con la versiónde la base de datos.
  • $config['enableGzip'] - predeterminado: true | Si es verdadero, todo el contenido textual enviado por XenForo se comprimirá con gzip automáticamente.
  • $config['enableContentLength'] - predeterminado: true | Si es verdadero, XenForo enviará una cabecera de longitud del contenido. En algunas configuraciones de servidor, puede modificarse el contenido entre el envío de XenForo y la recepción por el usuario. En esta situación, la cabecera de longitud del contenido puede no actualizarse correctamente por lo que debe ser desactivada.
  • $config['adminLogLength'] - predeterminado: 60 | Número de días a mantener el registro de todas las actividades de los administradores en el PCA.
  • $config['chmodWritableValue'] - predeterminado: 0 | Si este valor no es cero, todos los archivos creados por XenForo tendrán este valor como chmod automáticamente. Así mismo los directorios deben tener este valor chmod, aunque también serán siempre de usuario-, grupo-, y también ejecutable por todo el mundo. En la mayoría de situaciones, XenForo determinará el valor correcto de chmod automáticamente.
  • $config['rebuildMaxExecution'] - predeterminado: 10 | Cuando se realizan reconstrucciones de datos o largos procesos, estos solo pueden ejecutarse por este número de sugundos antes de recargar la página. Incrementar este número puede mejorar el rendimiento de reconstrucción marginalmente, pero algunos servidores pueden forzar la finalización de los procesos de PHP.
  • $config['passwordIterations'] - predeterminado: 10 | Fuerza del sistema de almacenamiento de contraseñas basadas en bcrypt. Números más altos son más seguros pero cada aumento será más o menos el doble de la cantidad de tiempo que se necesita para generar o validar una contraseña, lo que aumenta el uso del servidor.
  • $config['enableTemplateModificationCallbacks'] - predeterminado: true | Las modificaciones de plantilla pueden realizar una retrollamada de PHP para modificar las plantillas. En el caso de un error en la retrollamada, XenForo puede no completar su reconstrucción de plantillas. Esta opción puede desactivarse para temporalmente desactivar la modificación que permite que la reconstrucción termine.
  • $config['enableClickjackingProtection'] - predeterminado: true | Cuando está activado, esta opción previene ataques de clickjacking al colocar el foro en un iframe y engañando al usuario que haga clic en algo. Sin embargo, esto también puede desactivar usos válidos al incrustar en un iframe. Solo desactivar esto si se entienden las implicaciones.
  • $config['maxImageResizePixelCount'] - predeterminado: 20000000 | Máximo tamaño de una imagen (en número total de pixeles) que XenForo intentará redimensionar. Imágenes mayores no se redimensionarán y, por lo tanto, pueden ser rechazadas. Esto se calcula usando ancho × alto.