RosarioSIS es una aplicación web que depende de un servidor web, el lenguaje de script PHP y un servidor de base de datos PostgreSQL o MySQL/MariaDB.
Para que funcione RosarioSIS se debe primero tener el servidor web, PostgreSQL (o MySQL/MariaDB), y PHP (incluyendo las extensiones pgsql
, mysqli
, gettext
, intl
, mbstring
, gd
, curl
, xml
y zip
) operativos. La implementación de aquellos varia con el sistema operativo así que está fuera del alcance de este breve documento de instalación.
RosarioSIS ha sido probado en:
- Windows 10 x86 con Apache 2.4.16, Postgres 9.3.6, y PHP 7.1.18
- macOS Monterey con Apache 2.4.54, Postgres 14.4, y PHP 8.0.21
- Ubuntu 14.04 con Apache 2.4.18, Postgres 9.3.10, MySQL 5.6.33 y PHP 5.5.9
- Ubuntu 20.04 con Apache 2.4.48, Postgres 12.11, y PHP 7.4.22
- Debian Bullseye con Apache 2.4.54, Postgres 13.7, MariaDB 10.5.15 y PHP 8.1.4
- CentOS 8.2 con Apache 2.4.37, Postgres 9.6.10, y PHP 7.2.24
- Shared hosting con cPanel, nginx, Postgres 8.4, y PHP 5.6.27
- a traves de Mozilla Firefox y Google Chrome
- con BrowserStack para la compatibilidad de navegadores (no compatible con Internet Explorer)
Requerimientos mínimos: PHP 5.5.9 y PostgreSQL 8.4 o MySQL 5.6/MariaDB
Instrucciones de instalación:
- Windows
- Mac (en inglés)
- cPanel (en inglés)
- Softaculous (en inglés)
- Docker (en inglés)
- Ubuntu (o cualquier distribución Linux basada en Debian), ver abajo
Descomprima el archivo de RosarioSIS, o clona el repositorio usando git en un directorio accesible con el navegador. Edita el archivo config.inc.sample.php
para definir las variables de configuración apropiadas, y renombralo config.inc.php
.
-
$DatabaseType
Tipo del servidor de base de datos: mysql o postgresql. -
$DatabaseServer
Nombre o dirección IP del servidor de base de datos. -
$DatabaseUsername
Nombre de usuario para conectarse a la base de datos. -
$DatabasePassword
Contraseña para conectarse a la base de datos. -
$DatabaseName
Nombre de la base de datos. -
$DatabaseDumpPath
Camino completo hacia el utilitario de exportación de base de datos, pg_dump (PostgreSQL) o mysqldump (MySQL). -
$wkhtmltopdfPath
Camino completo hacia el utilitario de generación de PDF, wkhtmltopdf. -
$DefaultSyear
Año escolar por defecto. Solo cambiar después de haber corrido el programa Transferir. -
$RosarioNotifyAddress
Dirección de email para las notificaciones (nuevo administrador, nuevo estudiante / usuario, nueva inscripción). -
$RosarioLocales
Lista separada por comas de códigos de lenguajes. Ver la carpetalocale/
para los códigos disponibles.
$DatabasePort
Número de puerto para acceder a la base de datos. Por defecto: 5432 para PostgreSQL y 3306 para MySQL.$RosarioPath
Camino completo hacia la instalación de RosarioSIS.$StudentPicturesPath
Camino hacia las fotos de los estudiantes.$UserPicturesPath
Camino hacia las fotos de los usuarios.$PortalNotesFilesPath
Camino hacia los archivos adjuntos a las notas del portal.$AssignmentsFilesPath
Camino hacia los archivos de las tareas de los estudiantes.$FS_IconsPath
Camino hacia los iconos del servicio de comida.$FileUploadsPath
Camino hacia los archivos subidos.$LocalePath
Camino hacia los lenguajes. Reinicie Apache después de cambiarlo.$PNGQuantPath
Camino hacia PNGQuant (compresión de las imagenes PNG).$RosarioErrorsAddress
Dirección de email para los errores (PHP fatal, base de datos, intentos de pirateo).$Timezone
Zona horaria usada por la funciones de fecha y tiempo. Listado de zonas horarias admitidas.$ETagCache
Pasar afalse
para desactivar el caché ETag y desactivar el caché de sesión "privada". Ver Sesiones y seguridad.define( 'ROSARIO_POST_MAX_SIZE_LIMIT', 16 * 1024 * 1024 );
Limitar el tamaño de$_POST
(16MB por defecto). Detalles acá.define( 'ROSARIO_DEBUG', true );
Modo debug activado.define( 'ROSARIO_DISABLE_ADDON_UPLOAD', true );
Desactivar el upload de complementos (módulos y plugins).define( 'ROSARIO_DISABLE_ADDON_DELETE', true );
Desactivar la posibilidad de eliminar complementos (modules & plugins).
Ahora, está listo para configurar la base de datos de RosarioSIS. Si tiene acceso al símbolo del sistema de su servidor, abra una ventana del terminal, y sigua estas instrucciones.
Las instrucciones siguientes aplican para PostgreSQL (ver abajo para MySQL):
- Entra a PostgreSQL con el usuario postgres:
server$ sudo -u postgres psql
- Crea el usuario rosariosis:
postgres=# CREATE USER rosariosis_user WITH PASSWORD 'rosariosis_user_password';
- Crea la base de datos rosariosis:
postgres=# CREATE DATABASE rosariosis_db WITH ENCODING 'UTF8' OWNER rosariosis_user;
- Salga de PostgreSQL:
postgres=# \q
También, el archivo pg_hba.conf
puede ser editado para activar la conexión de usuarios con contraseña (md5
):
# "local" is for Unix domain socket connections only
local all all md5
Las instrucciones siguientes aplican para MySQL (RosarioSIS versión 10 o superior):
- Entra a MySQL con el usuario root:
server$ sudo mysql
o
server$ mysql -u root -p
- Permitir la creación de funciones:
mysql> SET GLOBAL log_bin_trust_function_creators=1;
- Crea el usuario rosariosis:
mysql> CREATE USER 'rosariosis_user'@'localhost' IDENTIFIED BY 'rosariosis_user_password';
- Crea la base de datos rosariosis:
mysql> CREATE DATABASE rosariosis_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
mysql> GRANT ALL PRIVILEGES ON rosariosis_db.* TO 'rosariosis_user'@'localhost';
- Salga de MySQL:
mysql> \q
Para instalar la base de datos, apunte su navegador a: http://sudominio.com/REPERTORIO_DE_INSTALACION/InstallDatabase.php
Es todo!... ahora, apunte su navegador a: http://sudominio.com/REPERTORIO_DE_INSTALACION/index.php
y entra con el nombre de usuario 'admin' y la contraseña 'admin'. Con esta cuenta, podrá agregar nuevos usuarios, y modificar o suprimir los tres usuarios de ejemplo.
Para ayudarlo a detectar problemas de instalación, apunte su navegador a: http://sudominio.com/REPERTORIO_DE_INSTALACION/diagnostic.php
Instrucciones de instalación para Ubuntu 20.04:
server$ sudo apt-get install php-pgsql php-mysql gettext php-intl php-mbstring php-gd php-curl php-xmlrpc php-xml php-zip
Configuración PHP recomendada. Editar el archivo php.ini
como sigue:
; Maximum time in seconds a PHP script is allowed to run
max_execution_time = 240
; Maximum accepted input variables ($_GET, $_POST)
; 4000 allows submitting lists of up to 1000 elements, each with multiple inputs
max_input_vars = 4000
; Maximum memory (RAM) allocated to a PHP script
memory_limit = 512M
; Session timeout: 1 hour
session.gc_maxlifetime = 3600
; Maximum allowed size for uploaded files
upload_max_filesize = 50M
; Must be greater than or equal to upload_max_filesize
post_max_size = 51M
Reiniciar PHP y Apache.
Instrucciones de instalación para Ubuntu 20.04. Instalar el lenguaje español:
server$ sudo apt-get install language-pack-es
Luego reinicie el servidor.
Instrucciones de instalación para Ubuntu 20.04 (Focal):
server$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
server$ sudo apt install ./wkhtmltox_0.12.6-1.focal_amd64.deb
Definir el camino en el archivo config.inc.php
:
$wkhtmltopdfPath = '/usr/local/bin/wkhtmltopdf';
Instrucciones de instalación para Ubuntu 20.04. Activar la función PHP mail()
:
server$ sudo apt-get install sendmail