Note

The online documentation is produced by a web publishing technology created by us to read the documents origins in OpenOffice Writer (ODT) and Microsoft Word (docx) formats and produces native web and PDF versions. In this way we maintain Louder project documentation update and in sync on each of its formats.
Select a Language:
Instalación
Introducción
Kumbia Enterprise Framework requiere de PHP versión 5.2.3 ó superior para un funcionamiento optimo. El framework requiere del Apache Web Server preferiblemente en su versión 2.0 ó 2.2 y del modulo mod_rewrite instalado para su correcto funcionamiento.

Kumbia Enterprise Framework soporta adicionalmente Microsoft Internet Information Services (IIS) desde la versión 6.0 utilizando el modulo del servidor ISAPI_Rewrite.

Al descargar el paquete de Kumbia Enterprise Framework este debe ser descomprimido y ubicado en la raíz de documentos del servidor Web ó en un subdirectorio de este, este puede variar de acuerdo a la plataforma ó distribución utilizada.
Configuración con Apache Web Server 2.x
Kumbia Enterprise Framework implementa soporte para Smart URLs lo cual las hace más familiares y humanas para los usuarios finales. Para esto es necesario instalar el modulo de Apache llamado mod_rewrite que realiza la reescritura de las URLs a una convención interna en el framework, esto es vital para la correcta implementación del patrón arquitectacional Model-View-Controller.
Apache proporciona el comando a2enmod en la mayoría de distribuciones Linux, mediante este comando se puede habilitar fácilmente el modulo, después solo es necesario reiniciar el servidor Web.
Con el usuario administrador root utilizamos el comando así:
# a2enmod rewrite
# /etc/init.d/apache2 restart

En algunos sistemas como RedHat/Fedora el comando para reiniciar el servidor es:
# service httpd restart

Para Microsoft Windows es necesario habilitar el modulo directamente en el archivo de configuración de Apache. Para esto se quita el comentario dejando que el modulo de Apache Web Server sea cargado:
LoadModule rewrite_module modules/mod_rewrite.so

Las reglas de reescritura del framework deben ser leídas por Apache y ejecutadas en cada petición a la aplicación. Para esto es necesario habilitar la lectura de los archivos .htaccess ó agregar las reglas al archivo de configuración de Apache.

La ubicación del archivo httpd.conf ó default-server.conf puede variar de acuerdo a la distribución Linux ó el sistema operativo.
Tabla: Directorio de publicación web y configuración del servidor en diversas plataformas
Distribución
Ubicación Directorio Raíz Web
RedHat Enterprise 4/5
/etc/httpd/conf/httpd.conf /var/www/html
OpenSuSE 10.1/10.2/10.3/11 /etc/apache2/default-server.conf /srv/www/htdocs/
Ubuntu/Debian /etc/apache2/sites-available/default /var/www
Solaris 10 usando Sun Webstack/etc/opt/webstack/apache2/2.2/httpd.conf/var/opt/webstack/apache2/2.2/htdocs
MacOS X (Leopard 10.5) usando
MAMP
/Applications/MAMP/conf/apache/httpd.conf /Applications/MAMP/htdocs/
Windows XP/2003
usando XAMPP
c:\Archivos de Programa\xampp\apache\conf\httpd.conf c:\Archivos de Programa\xampp\apache\htdocs\

Las reglas de reescritura de mod_rewrite pueden ir en los archivos .htaccess incluidos en el framework ó en los archivos de configuración de Apache Web Server. Las siguientes reglas deben pertenecer al archivo .htaccess ó al directorio raíz donde esta el framework:
<IfModule mod_rewrite.c>
     RewriteEngine on
     RewriteRule ^$ public/ [L]
     RewriteRule (.*) public/$1 [L]
</IfModule>

Las segundas reglas de configuración deben ir en el archivo .htaccess ubicado en el directorio public/ así:
<IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

Cuando utilizamos archivos .htaccess es necesario habilitar las opciones AllowOverride All y Options All para el directorio raíz del Web Server en el archivo de configuración de Apache. Cuando agregamos la configuración directamente a los archivos de Apache Web Server debemos usar la directiva Directory así:
Tabla: Parámetros de configuración de Apache Web Server directamente en httpd.conf
<Directory "/srv/www/htdocs/application">
     <IfModule mod_rewrite.c>
          RewriteEngine on
          RewriteRule ^$ public/ [L]
           RewriteRule (.*) public/$1 [L]
      /IfModule>
</Directory>

<Directory "/srv/www/htdocs/application/public">
     <IfModule mod_rewrite.c>
          RewriteEngine On
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
     </IfModule>
</Directory>

Si no requerimos de la utilización de archivos .htaccess es recomendable desabilitarlos mediante AllowOverride None, de esta forma evitamos que el servidor Web busque este archivo en cada directorio en cada petición Web aumentando considerablemente el rendimiento de las aplicaciones.
También es importante revisar que el archivo index.php sea el primero en la directiva DirectoryIndex, así Apache Web Server le dará más prioridad antes de otras extensiones:
DirectoryIndex index.php index.html

Después de realizar la configuración es necesario reiniciar el servidor Web.
Configuración con Microsoft IIS e ISAPI Rewrite
Para esto debemos agregar al archivo httpd.ini del directorio raíz del paquete Kumbia Enterprise lo siguiente:
Ejemplo: Parámetros de configuración para Microsoft IIS
[ISAPI_Rewrite]
RewriteCond URL (?!/javascript/|/img/|/files/|/css/|/temp/).*
RewriteRule (.*?\.php)(\?[^/]*)?/([^/]*)/(.*) $1(?2$2&:\?url=/$3/$4)
RewriteCond URL (?!/javascript/|/img/|/files/|/css/|/temp/).*
RewriteRule ^/(.*) /public/index.php?url=/$1 [L]
RewriteCond URL (?!/javascript/|/img/|/files/|/css/|/temp/).*
RewriteRule /(.*) /public/$1
Configuración de PHP
La siguiente configuración es opcional para Aplicaciones Web con Kumbia Enterprise. A continuación se listan los parámetros de configuración del php.ini:
Tabla: Parámetros de configuración de PHP opcionales
Nombre
Descripción
short_open_tag
Permite usar las etiquetas especiales de php <?= y <. No se recomienda si va a redistribuir sus aplicaciones en servidores de terceros. No es un estándar profesional de PHP el uso de estas etiquetas.
display_errors Permite que al generarse un error se muestren las rutas y archivos donde se generan errores PHP, es útil en entornos development pero no en modo production.
memory_limit En entornos de producción 64M es un número adecuado para este parámetro por script. Debe ser ajustada de acuerdo a las circustancias.
error_reporting Kumbia Enterprise Framework esta desarrollado bajo nivel de reporte E_ALL | E_NOTICE | E_STRICT lo que asegura la calidad del código y cumplimiento de estándares básicos de desarrollo OOP en PHP5
register_globals Permite que el contenido de las superglobales se convierta en variables locales. En general se debe dejar deshabilitado ya que no es seguro de muchas formas.
magic_quotes_gpc Al estar en On podría ayudar a evitar ataques de inyección de SQL, al mismo tiempo hace que el rendimiento del servidor sea algo menor.
session.use_only_cookies Cuando tiene valor 1 ayuda a evitar considerablemente ataques de inyección de SQL y XSS.
Configuración con Zend Application Server
Zend Application Server es un servidor para aplicaciones PHP basado en Apache Web Server por lo tanto su configuración es similar.

Puede seguir los pasos de configuración de Apache y reproducirlos en Zend Server. El módulo rewrite ya está activado por defecto lo que los pasos de configuración deben ser minimos.
Crear una Instancia de Kumbia Enterprise
El framework se distribuye en un archivo comprimido multi-plataforma que contiene la estructura de archivos del framework y recursos necesarios para el desarrollo, prueba e implementación de aplicaciones en Kumbia Enterprise.

El nombre del archivo tiene la siguiente estructura kumbia-ef-version-madurez-extension.

Solución a problemas de instalación
Las siguientes situaciones se pueden presentar al realizar la instalación de una instancia del framework:

Situación: No tiene Mod-ReWrite de Apache instalado
El servidor web no tiene el modulo rewrite instalado, consulte la sección "Configuración con Apache Web Server 2.x" en el capítulo de instalación.

Situación: En la pantalla se presenta el mensaje "No se pudo utilizar reescritura de URLs"
Se debe verificar lo siguiente:

  • Si se usa Apache Web Server el archivo '.htaccess' debe estar presente en la raíz del directorio donde está la instancia del framework ó las reglas en este deben estar activas en la configuración del servidor web.
  • Apache Web Server soporta archivos de sobreescritura de configuración '.htaccess'.
  • La opción de configuración de Apache 'AllowOverride All' no está presente para las opciones de configuración del DocumentRoot del servidor web.

Situación: Al ingresar a la aplicación por defecto se presenta una pantalla blanca sin ningún mensaje
La directiva del servidor Web de archivos por defecto le está dando prioridad al archivo index.html y no al index.php. En el caso de Apache Web Server esto se soluciona mediante la opción de configuración DirectoryIndex.

Situación: Al ingresar a la aplicación se genera la excepción "CoreException: El directorio public/temp no tiene permisos de escritura"
Esta excepción se genera cuando el directorio public/temp es un directorio de solo lectura ó no tiene permisos de escritura para el usuario con el que se ejecuta el proceso del servidor web.

Situación: Al ingresar a la aplicación se genera la excepción "CoreException: Debe tener instalado PHP version 5.20 ó superior para utilizar este framework"
La versión de PHP que tiene instalada es igual ó superior a la versión 5.0 pero es inferior a la 5.2.0. La versión 5.2.0 en adelante corrige errores importantes de seguridad en en núcleo de PHP y tiene un mejor rendimiento.

Situación: Al ingresar a la aplicación se genera la excepción "CoreException: Timezone inválido"
Ha definido una zona horaria en el archivo config/config.ini inválido por lo que muchas opciones del framework generarán información erronea.

Situación: Al ingresar a la aplicación se genera la excepción "RouterException: No se ha indicado la aplicación por defecto en config/config.ini (defaultApp)"
La opción defaultApp en el archivo de configuración de la instancia no existe ó define una aplicación que no existe en la instancia del framework.

Situación: Al ingresar a la aplicación se genera la excepción: "CoreConfigException: Debe indicar el nombre de la aplicación dende está el archivo 'config.ini'"
La opción defaultApp en el archivo de configuración de la instancia no existe ó define una aplicación que no existe en la instancia del framework.