#Sistema Integrado de Información Gerencial
- Servidor Web
- Gestor de base de datos
- PHP 5.3.8+
$ sudo apt-get update
$ sudo apt-get install php5 php5-pgsql php5-sqlite sqlite php5-xdebug php-apc php5-cli php5-xsl php5-intl apache2 postgresql acl git-core curl
##Instalación
Puedes descargarlo desde: https://github.com/erodriguez-minsal/SIIG/tarball/master o puedes clonar el repositorio
$ git clone https://github.com/erodriguez-minsal/SIIG.git siig
A partir de este punto todos los comandos se deben ejecutar dentro de la carpeta en que se ha descargado el código fuente
Composer Es una librería de PHP para el manejo de dependencias. Para instalarlo, dentro de la carpeta donde descargaste el código fuente se debe ejecutar:
$ curl -s https://getcomposer.org/installer | php
$ php composer.phar install
Se puede crear un enlace en /var/www y hacia la carpeta web de nuestro proyecto y utilizarlo como http://localhost/siig o se puede configurar un VirtualHost ####Configurar un VirtualHost Creamos el archivo para la definición del VirtualHost
$ sudo nano /etc/apache2/sites-available/siig.localhost
El contenido será similar a esto:
<VirtualHost 127.0.0.7>
ServerName siig.localhost
DocumentRoot /ruta_al_directorio_descargado/web
<Directory /ruta_al_directorio_descargado/web >
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/siig-error.localhost.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/siig-access.localhost.log combined
</VirtualHost>
En el archivo /etc/hosts agregamos la línea
127.0.0.7 siig.localhost
Habilitamos el VirtualHost
$ sudo a2ensite siig.localhost
También es recomendable activar el módulo mod_rewrite
$ sudo a2enmod rewrite
Reiniciar apache
$ sudo /etc/init.d/apache2 restart
Es necesario tener soporte para ACL en la partición en que está el proyecto y luego ejecutar
$ sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs web/uploads
$ sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs web/uploads
Entra a la siguiente dirección desde el navegador http://siig.localhost/config.php Si aparece algún error debe ser corregido antes de continuar
Después de haber solventado todos los inconvenientes, dentro de la misma página hay un enlace para pasar a la configuración, y seguir los pasos del asistente
$ app/console doctrine:database:create
$ app/console doctrine:schema:update --force
$ app/console doctrine:fixtures:load
$ app/console fos:user:create --super-admin
Instalación de HStore
- Ejecutar desde la terminal
$ sudo apt-get install postgresql-contrib
- Ejecutar dentro de la base de datos, con el usuario postgres
create extension hstore;
- Crear la tabla especial que no se manejará con el ORM, hacerlo con el usuario dueño de la base de datos
CREATE TABLE fila_origen_dato(
id serial,
id_origen_dato integer,
datos hstore,
PRIMARY KEY (id),
FOREIGN KEY (id_origen_dato) REFERENCES origen_datos(id) on update CASCADE on delete RESTRICT
);
Instalación de RabbitMQ
RabbitMQ es un sistema de mensajería empresarial completo y altamente confiable basado en el estándar AMQP Charla sobre RabbitMQ. En este proyecto será utilizado para la carga masiva de datos y así evitar cuelgues o saturación del servidor.
- Agregar el repositorio
sudo sh -c 'echo "deb http://www.rabbitmq.com/debian/ testing main" >> /etc/apt/sources.list'
- Agregar la clave pública
$ wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
$ sudo apt-key add rabbitmq-signing-key-public.asc
- Ejecutar
$ sudo apt-get update
- Instalar el paquete
$ sudo apt-get install rabbitmq-server
- Verificar que el servicio de rabbitmq esté corriendo
$ sudo /etc/init.d/rabbitmq-server start
- Programar en el cron, los dos procesos para la ejecución de las colas que cargarán los datos (Falta verificar su funcionamiento desde el cron)
php /ruta_hacia_proyecto/app/console rabbitmq:consumer cargar_origen_datos
php /ruta_hacia_proyecto/app/console rabbitmq:consumer guardar_registro
- Habilitar la interfaz web de administración
$ sudo rabbitmq-plugins enable rabbitmq_management
$ sudo /etc/init.d/rabbitmq-server restart
- Cargar la interfaz web: entrar a la dirección http://server_name:55672/mgmt/ El usuario por defecto es guest y la clave guest