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
, pdo
, 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 con Apache 2.4.58, MariaDB 10.4.32, y PHP 8.1.25
- macOS Monterey con Apache 2.4.54, Postgres 14.4, y PHP 8.0.21
- Ubuntu 22.04 con Apache 2.4.52, MariaDB 10.6.12, y PHP 5.6.40
- Ubuntu 22.04 con Apache 2.4.57, Postgres 14.9, y PHP 8.1.2
- Debian Bookworm con Apache 2.4.57, Postgres 15.5, MariaDB 10.11.4, y PHP 8.3.10
- Shared hosting con cPanel, nginx, Postgres 9.2, y PHP 7.2
- 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 la última versión de RosarioSIS, o clona el repositorio git (y haga el checkout del tag de la última versión) 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), mysqldump (MySQL) o mariadb-dump (MariaDB). -
$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.$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).define( 'ROSARIO_DISABLE_USAGE_STATISTICS', true );
Desactivar la colecta de estadísticas de uso.
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 22.04:
server$ sudo apt-get install php-pgsql php-mysql php-pdo php-intl php-mbstring php-gd php-curl 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 22.04. Instalar la locale español (España):
server$ sudo locale-gen es_ES.UTF-8
server$ sudo update-locale
Luego reinicie el servidor.
Instrucciones de instalación para Ubuntu 22.04 (jammy), funciona también para Ubuntu 24.04 (noble):
server$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
server$ sudo apt install ./wkhtmltox_0.12.6.1-2.jammy_amd64.deb
server$ wkhtmltopdf --version
server$ wkhtmltopdf 0.12.6.1 (with patched qt)
Definir el camino en el archivo config.inc.php
:
$wkhtmltopdfPath = '/usr/local/bin/wkhtmltopdf';
Instrucciones de instalación para Ubuntu 22.04. Activar la función PHP mail()
:
server$ sudo apt-get install sendmail