william fabricio manual de sistemas sas
TRANSCRIPT
![Page 1: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/1.jpg)
República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Universitaria
MANUAL DEL SISTEMA DE
AUTOGESTIONADO DE SALUD (SAS)
Ministerio del Poder Popular para la Educación Universitaria
La Universidad de Portuguesa
AUTOR:
Acarigua, Febrero de 2017.
William Aparicio C.I. 19.799.425
Universidad Fermin Toro Nucleo-Portuguesa
Facultad de Ingenieria
![Page 2: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/2.jpg)
Descripción del hardware (CPU, periféricos, utilidad) y software (aplicaciones, utilidad) necesarios para la implementación de su sistema. Para la implementación de este sistema es necesario contar con un buen servidor principal, conocer cuáles serán los requisitos mínimos en cuanto a las estaciones de trabajo donde tendrán el acceso al sistema y requerimientos del servidor web donde estará instalado el sistema. Servidor Web
Es necesario contar con un servidor principal que cumpla el rol de servidor web
para la instalación del sistema para que los usuarios puedan acceder y hacer
uso del mismo.
A continuación se nombra el servidor y se especifican cuáles son sus
características:
Servidor:
Modelo Dell optiplex 3200 cuenta con las siguientes características:
Hardware:
2 CPU Xeon de 8 núcleos.
8 GB de Ram.
Almacenamiento en discos duros trabajando en RAID 5.
Interfaces Red Gigabits.
Modem GSM con Comandos AT Software:
Sistema Operativo Debian 7.0 Estable.
Stack de Virtualización Basado en Xen y KVM.
Servidor Web Apache2 & PHP5
Servidor de Base Datos PostgresSQL.
Tecnologias Utilizadas: HTML5, CSS3, JS, Web Services, Json.
Estaciones de Trabajo:
Las estaciones deben contar con un Hardware básico: Procesador Pentium IV
3.2 Ghz, DiscoDuro 80 Gb, Memoria Ram 1 GB, Unidad de Dvd/ Rw, Ratón
teclado,
Software: Sistema Operativo Linux Ubuntu, o Microsoft Windows XP.
![Page 3: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/3.jpg)
El manual del sistema tiene como objetivo ver cómo está diseñada la
aplicación, las herramientas utilizadas, los procesos de instalación y
configuración, como es su interacción con otros sistemas y/o módulos,
descripción de procesos de mantenimiento del mismo, descripción del contexto
de uso, detalles de implementación y las principales funciones del software,
diccionario de datos.
Pasos para la Instalación de PostqreSQL:
PostgreSQL es un potente motor de bases de datos, que tiene prestaciones
y funcionalidades equivalentes a muchos gestores de bases de datos
comerciales. Es más completo que MySQL ya que permite métodos
almacenados, restricciones de integridad, vistas, etc. aunque en las últimas
versiones de MySQL se han hecho grandes avances en ese sentido.
En Ubuntu disponemos paquetes para varias versiones de PostgreSQL: 7.4,
8.0, 8.1 y 8.2 de modo que instalaremos la última versión a no ser que
necesitemos alguna anterior. Los paquetes necesarios para una instalación
completa son los de la parte cliente (postgresql-client-8.2) y los de la parte
servidora (postgresql-8.2). En un ordenador que usemos como cliente sólo
necesitamos los paquetes del cliente. También es recomentable instalar un
cliente gráfico que nos facilitará la interacción con el servidor. Un cliente gráfico
recomendable es pgAdmin III, que funciona muy bien.
Si tienes dudas sobre que necesitas, puedes instalar los tres paquetes:
$ sudo aptitude install postgresql-8.2 postgresql-client-8.2 pgadmin3
Por razones de seguridad estableceremos la nueva contraseña al usuario del sistema creado por PostgreSQL:
$ sudo passwd postgres
Cambiar los privilegios de acceso al shell del usuario postgres con el siguiente comando:
$ sudo vipw
Y cambiamos el shell del usuario postgres de "/bin/false" a "/bin/bash". Luego salimos grabando con escape ":wq". Para verificar si la instalación fue satisfactoria accedemos a la shell del servidor de bases de datos:
![Page 4: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/4.jpg)
$ sudo su postgres -c "psql template1"
Si el acceso ha sido satisfactorio cambiamos la contraseña al usuario predeterminado del servidor de bases de datos:
template1=# ALTER USER postgres WITH PASSWORD 'nueva_contraseña';
Te saldrá el siguiente mensaje confirmando la operación:
ALTER ROLE
Sal de la shell del servidor de bases de datos con el comando \q :
template1=# \q
Configuración:
Permitir conexiones remotas:
Por motivos de seguridad, la configuración por defecto no admite conexiones externas. Para habilitarlas tenemos que editar el fichero /etc/postgresql/8.2/main/postgresql.conf.
$ sudo gedit /etc/postgresql/8.2/main/postgresql.conf
Ahora buscamos las siguientes líneas que se encuentran comentadas:
#listen_addresses = 'localhost'
Y la substituimos por la siguiente línea:
listen_addresses = '*'
Posteriormente buscamos la siguiente línea y le quitamos la marca de comentario:
#password_encryption = on
Y nos debe quedar lo siguiente:
password_encryption = on
Guardamos los cambios y reiniciamos el demonio para que los cambios surjan efecto:
$ sudo /etc/init.d/postgresql-8.2 restart
![Page 5: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/5.jpg)
Configurar la lista de acceso:
La configuración de la lista de acceso permite decirle a PostgreSQL qué método de autentificación usar y establecer relaciones de confianza para ciertas máquinas y redes. Hay que editar el fichero /etc/postgresql/8.2/main/pg_hba.conf:
$ sudo vi /etc/postgresql/8.2/main/pg_hba.conf
Al final del archivo se encuentra una lista de acceso predeterminada, ahora, dependiendo de su necesidad puedes hacer lo siguiente:
Si necesita que cualquier usuario se conecte por medio de una dirección IP en específico, agregue al final la siguiente línea:
host all all 192.168.1.4 255.255.255.0 md5
Si necesita que cualquier usuario se conecte por medio de una IP determinada sin importar el password (confiamos en dicha IP), la línea es:
host all all 192.168.1.4 255.255.255.255 trust
Si necesita que cualquier usuario (usuario de base de datos autentificándose, claro) se conecte por medio de cualquier dirección IP, agregue al final la siguiente línea:
host all all 0.0.0.0 0.0.0.0 md5
Si necesita que un usuario determinado se conecte a una base de datos determinada por medio de una dirección IP en específico, agregue al final la siguiente línea:
host MyDataBase MyUser 192.168.1.4 255.255.255.0 md5
Guarda los cambios realizados en el archivo y reinicia el demonio para que los cambios surjan efecto:
$ sudo /etc/init.d/postgresql-8.2 restart
Gestión de usuarios:
Los usuarios de PostgreSQL tienen un par de capacidades que definimos en su creación. Me explico: un usuario puede o no crear más usuarios y un usuario puede o no crear bases de datos. En el ejemplo que puedes ver a continuación creamos un usuario que no puede crear más usuarios (no es un administrador) pero puede crear más bases de datos. El modificador -P hace que nos
![Page 6: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/6.jpg)
pregunte por el password que le asignaremos al usuario. De otra manera el usuario se creará sin password.
$ createuser -A -d -P -h host -U usuario nuevo_usuario Enter password for user "nuevo_usuario": Enter it again:
Como acabo de comentar, existen usuario administradores (pueden crear otros usuarios). Como es lógico este comando debe ser ejecutado por un usuario con esa característica.
Análogamente podemos eliminar un usuario de esta forma:
$ dropuser -h host -U usuario usuario_borrar
Copia de seguridad:
Para hacer una copia de seguridad de una base de datos tiene el siguiente comando:
$ pg_dump -h host -U usuario nombre_bd > nombre_bd.sql
Para hacer una copia de seguridad de todas las bases de datos PostgreSQL de un servidor, usa este escript:
#!/bin/bash ## BEGIN CONFIG ## HOST=localhost BACKUP_DIR=tmp ## END CONFIG ## if [ ! -d $BACKUP_DIR ]; then mkdir -p $BACKUP_DIR fi POSTGRE_DBS=$(psql -h $HOST -U postgres -l | awk ' (NR > 2) && (/[a-zA-Z0-9]+[ ]+[|]/) && ( $0 !~ /template[0-9]/) { print $1 }'); for DB in $POSTGRE_DBS ; do echo "* Backuping PostgreSQL data from $DB@$HOST..." pg_dump -h $HOST -U postgres $DB > $BACKUP_DIR/pg_$DB.sql done
Para restaurar una copia de seguridad:
psql -d nombre_base_datos -f archivo.pgdump.
![Page 7: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/7.jpg)
Instalación de Github:
A través del navegador web ingresamos a la dirección: www.githud.com
Registro del usuario en la página web:
Se llenaran los siguientes campos: -Nombre de Usuario. -Correo Electrónico. -Contraseña con datos validos. -Presionar sign up for github nos redireccionara a otro enlace.
![Page 8: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/8.jpg)
Seleccionar el plan de subscripción donde seleccionares la opción free y luego
finalizaremos el registro.
Al finalizar el registro pueden agregar la información personal relacionada a su
perfil.
![Page 9: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/9.jpg)
QUE HACER LUEGO DE REGISTRARSE:
1. Luego de haber creado el usuario y actualizado su perfil lo
primero que deben hacer es iniciar sesión con su usuario y
contraseña recién creado para acceder a su cuenta de usuario.
Luego de iniciar sesión serán redirigidos a la pantalla principal de github pero
con su sesión abierta.
![Page 10: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/10.jpg)
Dar click en su nombre de usuario en la parte superior serán redirigidos a la
pantalla principal de su perfil en esta pantalla se puede ver todos los aportes
que ustedes realicen a los diferentes proyectos.
2. Seguir un proyecto para seguir el proyecto sasv2 que es la
versión 2 del sistema autogestionado de salud podemos ingresar
a la siguiente dirección :
https://github.com/ArrozAlba/SASv2 o en la pantalla principal en el buscador.
![Page 11: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/11.jpg)
Colocar la palabra “SASV2” luego de escribir la palabra seleccionamos la tecla
ENTER y nos aparecerá un resultado como el siguiente:
3. Debemos seleccionar el proyecto ARROZALBA/SASV2 esto nos
redireccionara a la página principal de proyecto.
![Page 12: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/12.jpg)
Debemos seleccionar la opción WATCH se despliega un menú.
Seleccionar WATCHING, al hacer esto ya nuestra cuenta quedara pendiente
de todos los cambios que se realicen en el proyecto notificándonos por correo y
dejando la huella en el proyecto.
Después de seguir el proyecto debemos seleccionar la opción STAR que hará
que sea un proyecto favorito.
![Page 13: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/13.jpg)
Luego de haber colocado el proyecto como favorito es importante realizar la
copia del proyecto a nuestra cuenta con la opción (FORK) esta opción lo que
hace es realizar una copia del código e información del proyecto principal a
nuestra cuenta donde podemos probarlo sin temor a que se dañe el proyecto
principal
![Page 14: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/14.jpg)
Presionar la opción FORK el sistema realiza una copia de todo lo que se
encuentre en el proyecto y lo colocara en nuestra cuenta (repositorio)
4. Agregar ISSUES (cuestiones) un ISSUES es cualquier
observación que quieran agregar al proyecto para esto debemos
seleccionar la opción ISSUES en el proyecto principal
https://github.com/arrozalba/sasv2
![Page 15: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/15.jpg)
Seguidamente nos redireccionara a la pantalla principal donde se gestionan las
ISSUES.
Aquellas donde hemos sido mencionados, para crear una seleccionamos new
ISSUES
Esto nos abrirá un formulario para agregar un título y un mensaje.
![Page 16: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/16.jpg)
Después de llenar el mensaje debemos enviar la ISSUES para que los demás
usuarios puedan proceder a revisarla, ejecutarla, comentarla y posteriormente
cerrarla
5. MANEJO DE LA GESTION DOCUMENTAL DEL PROYECTO
(WIKI) utilizaremos el wiki para agregar toda la información del
![Page 17: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/17.jpg)
proyecto en todas sus fases y adicionalmente agregar el manual
de usuario del sistema para de esta manera tener un repositorio
(o almacén) donde se guarde toda la información que generamos
adicional al código. Es importante que cada usuario cumpla con
crear una página del WIKI con información correspondiente al
área que le corresponde cubrir.
Para acceder al WIKI seleccionamos la opción WIKI.
Se selecciona la opción WIKI nos redireccionara a la pantalla principal del
mismo
![Page 18: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/18.jpg)
En esta pantalla podemos agregar información (NEW PAGE), editar la
existente y registrar todo el contenido del proyecto.
Después de agregar la información seleccionamos la opción SAVE PAGE
![Page 19: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/19.jpg)
Al final agregamos una nota del cambio que se realizó para dejar un histórico
de modificaciones y saber quién hizo alguna modificación.
Luego podremos ver como quedo la información que se agregó al proyecto y
en el lateral el listado de páginas creadas.
![Page 20: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/20.jpg)
COMO INSTALAR CUMBIAPHP:
Requisitos:
Servidor web capaz de ejecutar PHP: Apache en cualquier versión bajo
Windows 2000/XP/Vista/7 ó Linux/UNIX, IIS con Isapi_Rewrite instalado,
Cherokee Web server, Lighttpd (soporte experimental), o cualquier web server
con soporte de PHP y módulo de reescritura URL (mod_rewrite o su
equivalente).En caso de usar un servidor no nombrado aquí debe realizar la
adaptación.
PHP 5.2.x (Se debe seleccionar una versión que posea PHP 5.2.x, KumbiaPHP
no tolera los bugs de PHP 5.3.x) instalando y funcionando en el servidor
Motor de base de datos soportado si se necesitase. (Ejemplo: MySQL Server,
Oracle, Firebird...)
Descargar KumbiaPHP Framework
Kumbia se distribuye en un paquete comprimido listo para usar. Se puede
descargar la última versión de: http://www.kumbiaphp.com/
http://sourceforge.net/projects/kumbia/ El nombre del paquete tiene un
nombre como kumbia-version-notes.extensión, por ejemplo: kumbia-0.4.7a-
stable.tar.gz
Configurando apache:
KumbiaPHP Framework utiliza un módulo llamado mod_rewrite para la
reescritura de URLs y hacerlas más comprensibles y fáciles de recordar en
nuestras aplicaciones. Por esto, el módulo debe ser configurado e instalado en
Apache. Para esto, debe chequear que el módulo esté habilitado en el
httpd.conf (de acuerdo a la versión de apache)
<Directory "/to/document/root">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
![Page 21: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/21.jpg)
-En el DocumentRoot (Directorio Raíz de Apache) debe llevar la opción
AllowOverride All para que Apache lea el archivo .htaccess y llame a
mod_rewrite. Habilitando Mod_Rewrite en S.O. Basados en GNU/Linux
(Debian, Ubuntu y derivadas) Nos aseguramos primero de activar el
mod_rewrite de esta manera y como usuario root:
#a2enmod rewrite
-Para windows hay que activar el mododulo
LoadModule rewrite_module modules/mod_rewrite.so en el archivo
httpd.conf
-Es decir Sustituir esta línea de código
#LoadModule rewrite_module modules/mod_rewrite.so
-Por esta
LoadModule rewrite_module modules/mod_rewrite.so
-Despues de este paso editamos el siguiente archivo:
$ sudo vi /etc/apache2/sites-enabled/000-default
Recuerde que puede escoger cualquier editor: vi, nano, gedit, etc en este
ejemplo usamos vi. Cuando estemos dentro de dicho archivo, vamos a cambiar
las siguientes líneas que aparezcan así: AllowOverride None por esta otra:
AllowOverride All
¿Por qué es importante Mod-Rewrite?
ReWrite es un módulo de apache que permite reescribir las urls que han
utilizado nuestros usuarios a otras más complicadas para ellos. KumbiaPHP
Framework encapsula esta complejidad permitiéndonos usar URLS bonitas o
limpias como las que vemos en blogs o en muchos sitios donde no aparecen
los ? ó los & o las extensiones del servidor (.php, .asp, .aspx, etc).
Además de esto, con mod-rewrite, KumbiaPHP puede proteger nuestras
aplicaciones ante la posibilidad de que los usuarios puedan ver los directorios
del proyecto y puedan acceder a archivos de clases, modelos, lógica, etc, sin
que sean autorizados.
Con mod-rewrite el único directorio que pueden ver los usuarios es el contenido
del directorio public, el resto permanece oculto y sólo puede ser visualizado
cuando ha realizado una petición en forma correcta y también es correcto
según nuestra lógica de aplicación. Cuando escribes direcciones utilizando este
tipo de URLs, estás ayudando también a los motores de búsqueda a indexar
mejor tu información.
![Page 22: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/22.jpg)
NOTA: Se trabaja actualmente para que este requisito no sea indispensable.
¿Porque KumbiaPHP utiliza PHP5?
KumbiaPHP trabaja sólo con PHP5 ya que es la versión más avanzada, estable
y es el futuro de este lenguaje. Posee un soporte más completo a la orientación
a objetos. Esta características de PHP5 proporcionan un toque profesional a
las aplicaciones desarrolladas esto con la intención que se abandone el uso de
PHP4.
Configurando Oracle:
Kumbia trabaja con la extensión de PHP OCI8. Estas funciones le permiten
acceder a bases de datos Oracle 10, Oracle 9, Oracle 8 y Oracle 7 usando la
Interfaz de Llamados Oracle (OCI por sus siglas en Inglés). Ellas soportan la
vinculación de variables PHP a recipientes Oracle, tienen soporte completo
LOB, FILE y ROWID, y le permiten usar variables de definición entregadas por
el usuario.
Para que OCI8 trabaje es necesario instalar el cliente instantáneo de oracle.
Luego hay que agregar a la variable de entorno PATH del sistema la ruta a
donde fue descomprimido el cliente instantáneo.
PATH=%PATH%; c:\instantclient10_2\
Reiniciar Apache
Advertencia: En Oracle la funcionalidad limit podría no funcionar como se
espera. Utilice la condición rownum < numero_filas para hacer esto.
En el caso de la distribución Ubuntu y Xubuntu, existen 4 líneas de estas dentro
del archivo 000-default.
Ahora solo reiniciamos nuestro servicio Apache
#/etc/init.d/apache2 restart
Instalando KumbiaPHP en centOS5 y RHEL5
El método para centOS5 es exactamente igual al de RHEL5, sin embargo no
recomendamos hacer las modificaciones que acá se sugieren a un RHEL5 a
menos que sea estrictamente necesario y tiene que tomar en cuenta que su
licencia de soporte RHEL no cubre aplicaciones sobre paquetes que no son
oficiales de RHEL.
Primero que todo, la versión de php que trae centOS5 y RHEL5 es la 5.1.X, así
que kumbiaphp puede instalarse, sin embargo funciona mal, es posible que en
los logs de errores de su apache vea algo parecido a:
![Page 23: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/23.jpg)
PHP Fatal error: Call to undefined method XMLWriter
Y que algunas vistas no se carguen adecuadamente, eso es debido a que la
versión de php-xml que trae php 5.1.X no es muy compatible con los
requerimientos de kumbiaphp, para que kumbiaphp trabaje adecuadamente
debe estar sobre php 5.2.x, por lo tanto para instalar php 5.2.x de forma
sencilla agregue el repositorio de http://www.atomicorp.com, como root:
wget http://www.atomicorp.com/channels/atomic/centos/5/i386/RPMS/atomic-
release-1.0-10.el5.art.noarch.rpm
rpm -ivh atomic-release-1.0-10.el5.art.noarch.rpm
yum clean all
yum install php
Esto podrá actualizar todos los paquetes de php a una versión adecuada para
kumbiaphp, debe tomar en cuenta que debe tener mucho cuidado debido a que
si realiza este procedimiento en un hosting compartido con otras aplicaciones,
posiblemente algunas de ellas dejen de funciona adecuadamente, sobre todo si
tiene versiones muy viejas de CMS, si esto sucede y quiere regresar todo a
como estaba puede hacer rollback de la siguiente manera:
rpm -e atomic-release
yum clean all
rpm -qa | grep php
yum remove php*
yum install php
Si le hace falta alguna librería de php, simplemente instalela vía yum y luego
siga las instrucciones para habilitar Mod-Rewrite en Fedora.
Si le da problemas la conexión a base datos revise /var/log/messages y
verifique si SELINUX está lanzando mensajes similares a:
setroubleshoot: SELinux está negando al demonio http que se conecte a una
base de datos. For complete SELinux messages. run sealert -l 3d5d
si es así, puede desactivar SELINUX hasta que consiga la regla de contexto
que permita al webserver acceder a base de datos:
setenforce 0
O de plano desactive SELINUX de forma definitiva editando el archivo
/etc/selinux/config.
![Page 24: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/24.jpg)
[editar] Habilitando Mod-Rewrite en Fedora
#vi /etc/httpd/conf/httpd.conf
Buscar la línea...
#LoadModule rewrite_module modules/mod_rewrite.so
El "#" al principio indica que la línea esta comentada, lo que quiere decir que
apache no cargara el modulo si fuese este el caso quitar el "#".
En el mismo archivo buscar...
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Donde dice None reemplazarlo por All, para que apache interprete los archivos
.htaccess.
Reiniciar el servicio httpd (apache)
# service httpd restart
Instalando XAMPP bajo GNU/Linux
El procedimiento para instalar XAMPP en cualquier distribución GNU/Linux es
el siguiente:
1. Descargar XAMPP de Apache Friends. Se debe seleccionar una versión
que posea PHP 5.2.x, KumbiaPHP no tolera los bugs de PHP 5.3.x.
2. Instalar XAMPP
3. Copiar el paquete de Kumbia a /opt/lampp/htdocs/
4. Continuar la instalación normalmente
Instalando XAMPP bajo Debian/Ubuntu Linux Instala Apache2+MySQL5+PHP5
si no lo tienes instalado usando la guia en este blog o en Ubuntu-es. En
Debian/Ubuntu tienes que usar el comando para habilitar mod_rewrite en
Apache:
1. a2enmod rewrite
y luego en editas el archivo:
![Page 25: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/25.jpg)
/etc/apache2/sites-enabled/000-default
Buscas la línea para el directorio /var/www donde dice: AllowOverride None y
cambiar por AllowOverride All
Posterior a esto hay que indicar al servidor web cual será el orden de
preferencias en cuanto a los archivos index, por defecto en primer orden se
ejecutan los archivos index.html esto hay que cambiarlo por index.php. En
version 2.2.x de apache solo hay que editar el archivo que se encuentra en:
/etc/apache2/mods-enabled/dir.conf
1. DirectoryIndex index.php index.html ...
Reinicias Apache con:
1. # /etc/init.d/apache2 restart
-Continuar normalmente
Verificar la instalación de Kumbia
La verificación del buen funcionamiento de Kumbia y la instalación realizada es
muy simple. Debéis abrir el navegador web ( explorer, firefox, opera ) y escribir:
http://localhost/<directorio_paquete_kumbia>/
<directorio_paquete_kumbia> lo debéis substituir por la carpeta donde habéis
descomprimido el paquete.
Si todo esta correcto os mostrará una pantalla de bienvenida, en caso contrario
os informará sobre error o errores detectados.
Configurando Lighttpd:
Lo primero que debemos hacer es activar el módulo mod_rewrite, lo que nos
permitirá el usa de URL amigables, buscamos en el archivo de configuración
del lighttpd la siguiente directiva, server.modules, y verás algo como esto:
server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_fastcgi",
# "mod_rewrite",
![Page 26: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/26.jpg)
# "mod_redirect",
# "mod_evhost",
# "mod_usertrack",
# "mod_rrdtool",
# "mod_webdav",
"mod_expire"
# "mod_flv_streaming",
# "mod_evasive"
)
Debemos remover la almohadilla (#) delante del mod_rewrite, y que quede
algo como:
server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_fastcgi",
"mod_rewrite",
# "mod_redirect",
# "mod_evhost",
# "mod_usertrack",
# "mod_rrdtool",
# "mod_webdav",
"mod_expire"
# "mod_flv_streaming",
# "mod_evasive"
)
![Page 27: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/27.jpg)
Si no había ningún # antes del mod_rewrite omite el paso anterior. Luego de
eso agrega al final del archivo algo como esto:
url.rewrite += ( "^/kumbiaphp/$" => "/kumbiaphp/app/public/" )
url.rewrite += ( "^/kumbiaphp/([^\.]*)$" =>
"/kumbiaphp/app/public/index.php?url=/$1" )
url.rewrite += ( "^/kumbiaphp/(.+)$" => "/kumbiaphp/app/public/$1" )
Debes sustituir "kumbiaphp" (sin las comillas) por el nombre del directorio
donde esta KumbiaPHP. Luego de esto reinicia el servidor y prueba.
Crear una aplicación en:
Una vez obtenida la copia del framework descomprimimos y renombramos la
carpeta con el nombre de nuestro proyecto, para efecto del ejemplo
llamaremos a nuestro proyecto kumbia, tal como se muestra en la imagen.
Dentro del directorio Kumbia y se hace énfasis que kumbia es nuestro proyecto
este podría tener cualquier otro nombre, tendremos un árbol de directorios tal
como se muestra en la siguiente imagen.
Antes de continuar vamos a verificar que todo esté trabajando bien en nuestras
configuraciones a nivel de servidor web, para esto abrimos nuestro navegador
web y colocamos http://localhost/kumbia, si todo está funcionando bien
debería mostrarnos la siguiente imagen.
Ahora tenemos que escribir el famosos Hola KUMBIA! pero nosotros hicimos
un pequeño cambio y sera Hola Kumbia! Pensando en esto recordemos el
modelo MVC. Según esto, Kumbia debería aceptar una petición que buscaría
en controlador y en éste, una acción que atendería la petición, luego el
controlador utilizaría una vista para mostrar la información al usuario. Para
escribir el código de nuestro Hola Kumbia!, no necesitamos sino un controlador
y una vista. No necesitamos modelos ya que no estamos trabajando la
información de una base de datos.
Nos ubicamos en el directorio apps/default/controllers aquí estarán nuestros
controladores, para crear un controlador es importante tener en cuenta las
convenciones de nombre que utiliza el Framework, para entender mejor
nosotros llamaremos a nuestro controlador saludo_controller.php nótese el
sufijo _controller.php esto forma parte de la convención de nombre y esto hace
que Kumbia identifique ese archivo como un controlador.
Dentro de este archivo colocaremos las siguientes lineas de codigo.
saludo_controller.php
![Page 28: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/28.jpg)
1. <?php
2. class SaludoController extends ApplicationController {
3. public function index() {}
4. }
5. ?>
Como vemos en una clase con un método index, notese que también esta el
sufijo Controller al final de la declaración de la clase esto la identifica como una
clase controladora y esta hereda (extends) de la superclase
ApplicationController con lo que adquiere las propiedades de una clase
controladora.
Para continuar de una manera que vayamos entendiendo el funcionamiento del
framework es importante entender sus URL, hagamos una descomposición de
esta URL http://localhost/kumbia/saludo/index
http://localhost => Dominio
/kumbia => Nombre del Proyecto
/saludo => Nombre del Controlador
/index => Nombre de una Accion del Controlador
Cualquier otra información pasada por URL es tomada como parámetro para
propósito de nuestra aplicación.
Vamos a ejecutar desde el navegador nuestro controlador saludo y la acción
index de la siguiente manera http://localhost/kumbia/saludo/index
1. <?php
2. class SaludoController extends ApplicationController {
3. function index(){
4. }
5. }
6. ?>
Como podemos darnos cuenta tenemos una acción vacía sin nada que mostrar
al usuario que realizo la solicitud, esto es sencillo de deducir ya que no
tenemos ninguna vista asociada a nuestra acción. Agreguemosle contenido a la
![Page 29: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/29.jpg)
acción index, esto lo hacemos creando un directorio con el mismo nombre de
nuestro controlador en este caso deberia llamarse saludo y dentro de este
estaran todas las vistas asociadas a las acciones que necesiten mostrar alguna
información.
Para efecto del ejemplo llamamos a una acción llamada index por lo tanto
creamos un archivo llamado index.phtml fijese que el archivo se llama igual
que la acción, este archivo lo creamos en el directorio
apps/default/views/saludo/index.phtml
Una vez creado este archivo le agregamos un poco de contenido...
1. <h1>Hola Kumbia</h1>
Ahora si volvemos ejecutar desde nuestro navegador
web http://localhost/kumbia/saludo/index si nos debe mostrar el contenido
del archivo index.phtml
Ahora si visualizamos en el explorador se entiende que Kumbia
automáticamente carga la vista con el mismo nombre la acción en el directorio
con el nombre del controlador seleccionado. Poniendo a consideración
podríamos decir que las vistas permiten la salida al usuario usando PHP
embebido en HTML. Por esto las vistas poseen extensión phtml a diferencia de
los controladores que poseen PHP puro y por esto su extensión .php.
Pues como se ve ya hemos ejecutado la primera acción en Kumbia esto nos
permite apreciar el comportamiento del framework.
Agregando más Contenido:
Ahora vamos a mostrar la hora y fecha haciendo uso de la función date(), con
esto evitamos tener un contenido estático y tener un sitio más dinámico,
editamos el archivo saludo_controller.php.
1. <?php
2. class SaludoController extends ApplicationController {
3. public function index() {
4. $this->fecha = date("Y-m-d H:i");
5. }
6. }
7. ?>
Y la vista index.phtml quedaria asi:
![Page 30: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/30.jpg)
index.phtml
1. <h1>Hola Kumbia</h1>
2. <?php echo $fecha ?>
Nota: Cuando hacemos uso de $this sobre una variable en el controlador,
como se puede apreciar con $this->fecha, automáticamente tenemos esa
variable en la vista de la siguiente manera $fecha, esto porque Kumbia trabaja
con variables de instancia. Ahora si volvemos a
ejecutar http://localhost/kumbia/saludo/index obtendremos la hora y fecha
del momento en que se haga la petición.
Ahora vamos a crear otro controlador que lo llamaremos despedida haciendo
memoria tendremos un archivo en:
apps/default/controllers/despedida_controller.php
1. <?php
2. class DespedidaController extends ApplicationController {
3. public function adios() {
4. }
5. }
6. ?>
Tal como se menciona arriba creamos una vista con el nombre de la acción en
este caso nuestra vista en:
apps/default/views/despedida/adios.phtml
1. <h1>Adiós</h1>
2. <?php echo link_to("saludo/index", "Volver a Saludar") ?>
Ahora colocamos en nuestro
navegador http://localhost/kumbia/despedida/adios obtendremos un texto y
un vínculo hacia nuestro controlador saludo y la acción index.
link_to, es un helper que ofrece kumbia para facilitar al momento de
programar, este helper es equivalente a hacer
1. <a href="kumbia/saludo/index">Volver a Saludar</a>
Esto funciona bien, pero que sucedería si decidimos cambiar el nombre de la
aplicación de kumbia a demo por ejemplo, significa que deberías cambiar los
vínculos de la aplicación para que apunten a la nueva ubicación.
![Page 31: William fabricio manual de sistemas sas](https://reader031.vdocuments.us/reader031/viewer/2022021921/58efb9441a28abbe258b464d/html5/thumbnails/31.jpg)
Descripción de los diferentes módulos o solicitudes: Tenemos las siguientes
solicitudes
-Solicitud de medicamentos
-Atención primaria
-Solicitudes odontológicas
-Exámenes
-Carta Aval
-Reembolso
-Servicios funerarios
En la Configuración tenemos:
A través del usuario administrador del sistema se accede al menú
configuración:
-Sucursal: nos permite agregar el nombre de cada una de las sucursales a
medida que la empresa se vaya expandiendo.
-Profesión: nos permite agregar a una lista desplegable la profesión de cada
uno de los beneficiarios.
-Cargo: Nos permite agregar los tipos de cargos asignados a los usuarios de la
aplicación.
-Cobertura: nos permite modificar el monto establecido para cada cobertura. -Departamento: nos permite agregar el tipo de departamento. -Discapacidad: nos permite agregar en una lista los tipos de discapacidad de
los beneficiarios
-Patología: nos permite agregar el tipo de patología la cual el usuario está solicitando
-Recaudos: permite la configuración del almacenamiento de los recaudos establecidos por el sistema, documentos personales, fotos, escaneos.