Ací es detalla com configurar el servidor per a la intranet. En aquesta màquina instal·lem el sistema operatiu, preferiblemente sense entorn gràfic. La versió de PHP ha de ser al menys la 7.2, encara que és preferible tindre la 8.
Els paquets a instal·lar són:
Hem de donar accéss a l’usuari root a MySql, encara que es recomana crear un usuari per a la BBDD de la intranet y utilitzar aquest usuari y no root (però podem fer-ho després des del phpmyadmin). Farem:
sudo mysql -u root
mysql> USE mysql;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'P@ssw0rd';
mysql> FLUSH PRIVILEGES;
mysql> exit;
sudo systemctl restart mysql.service # o mariadb.service
Crearem la BBDD per a la nostra intranet. Podem fer-ho del del phpmyadmin o des de la CLI. Es recomana crear un usuari per a gestionar aquesta base de dades.
Dins de /var/www/html clonem el repositori de la intranet:
git clone git@github.com:cipfpbatoi/intranetBatoi.git
En el moment d’escriure aquesta ajuda hauríem de utilitzar la branca laravel10 perquè master encara no està actualitzada. En el futur es farà directament des de la branca master.
Creem els certificats (el .key en /etc/ssl/private i els altres 2 en en /etc/ssl/certs):
openssl genrsa -out intranet.key 2048
openssl req -new -key intranet.key -out intranet.csr # completem la informació que ens demanen
openssl x509 -req -in intranet.csr -signkey intranet.key -out intranet.crt
Configurem el lloc web SSL en /etc/apache2/sites-available:
ServerName intranet.myDocumentRoot /var/www/html/intranetBatoi/publicSSLCertificateFile /etc/ssl/certs/intranet.crtSSLCertificateKeyFile /etc/ssl/certs/intranet.key
``bash<Directory /var/www/html/intranetBatoi/public> AllowOverride All Order Allow,Deny Allow from All </Directory>
Configurem el lloc web no SSL en _/etc/apache2/sites-available_ per a que redireccione al SSL:
* ServerName: p.ej. `ServerName intranet.my`
* Redireccionem: `Redirect permanent / https://intranet.my/`
* DocumentRoot: `DocumentRoot /var/www/html/intranetBatoi/public`
Habilitem els sites si els hem creat nous:
```bash
sudo a2ensite intranet.conf
sudo a2ensite intranet-ssl.conf
Configurem el php.ini (en /etc/php/8.x/apache2/) per a poder subir els fitxers de Itaca que són molt grans. També és convenient indicar la hora local:
post_max_size=0
upload_max_filesize = 200M
date.timezone = Europe/Madrid
Posem el nostre domini en el /etc/hosts:
127.0.0.1 intranet.my
Per a finalitzar hem d’activar (si no ho estan ja) els mòduls ssl i rewrite i reiniciar apache:
sudo a2enmod ssl
sudo a2enmod rewrite
sudo systemctl restart apache2.service
ATENCIÓ: cal que estiga la carpeta intranetBatoi ja creada abans de reiniciar Apache per que no done un error.
Creem el fitxer .env amb les dades de la nostra intranet. Utilitzem como plantilla el fitxer .env.example:
cp .env.example .env
I editem el fitxer .env modificant les variables:
- `APP_URL`: URL de la nostra intranet, ej. `http://intranet.my`
- `DB_DATABASE`: ponemos el nombre de nuestra BBDD
- `DB_USERNAME`, `DB_PASSWORD`: el usuario y contraseña para acceder a la misma
- `SESSION_DOMAIN`: URL de la nostra intranet (com la APP_URL però sense http), ej. `intranet.my`
Ara ja podem instal·lar les dependències amb el comando:
composer update
Si falla perquè falta algun paquet l’haurem d’instal·lar. Per exemple en aquesta versió diu que falta ext-bcmath. Com que la nostra versió de PHP és la 8.1 haurem d’executar apt install php8.1-bcmath.
Creem la clau que es guardarà en el fitxer .env amb:
php artisan key:generate # Genera la clave de la aplicación y la añade a APP_KEY en el fichero .env
Ara hem de recarregar el fitxer de configuració en la caché (cal fer-ho cada vegada que canviem alguna cosa en qualsevl fitxer de configuració):
php artisan config:cache
Per últim només queda crear les taules de la BBDD i carregar-les amb les dades inicials. Ho fem amb:
php artisan migrate # crea las tablas en la base de datos
php artisan db:seed # inserta los datos iniciales de algunas tablas
El db:seed fica les dades inicials de:
Les dades de les taules de muninipios i provincias no els obtenim de Itaca sinó que els hem de importar a ma si els volem (és opcional, s’utilitzen només en alguns llistats).
També crea un usuari amb el codi 9999 i la contrasenya ‘12345678’ que és Administrador provisional de la intranet. Per a iniciar sessió per primera vegada hem de posar com usuari el seu email què és admin@intranet.my.
A continuació canviem el nom de la carpeta pdf.exemple a pdf amb
mv public/img/pdf.exemple/ a pdf/
Ara canviem el propietari de la carpeta de la intranet i el seu contingut a l’usuari www-data i donem permisos d’escriptura per a tothom sobre la carpeta /storage y el seu contingut.
chown -R www-data:www-data .
chmod -R a+w ./storage
Abans de fer la primera importació de dades de Itaca hem d’obrir el fitxer contacto.php en /config on configurem totes les dades del nostre centre. A més indicarem el NIF (en format Itaca, és a dir, amb un 0 davant) dels càrrecs així com:
També és convenient posar correctament les dades de les taules (això només cal fer-ho la primera vegada que es crea la intranet, la resta d’anys es conserven les dades):
La taula Departamentos ha de tindre OBLIGATORIAMENT un departament (podem dir-li ‘Desconegut’ o com vulgam) amb codi 99 que és al que s’asignaran els nous professors fins que es posen en el departament adequat.
En el xml de Itaca per a la primera importació han d’estar les següents taules:
Les importacions es fan des del menú Administració -> Importació des de Itaca. Al ser la primera cal marcar la casella ‘Hi ha professors amb horari nou (no és substitut)’.

A continuació seleccionen el fitxer amb les dades en format .XML i polsem ‘Enviar’.
ATENCIÓ: Aquest procés tardarà uns quants minuts en funció de la mida del fitxer XML. És molt important NO TANCAR el navegador ni tornar a polsar ‘Enviar’ fins que acabe.
Tras importar les dades la primera vegada hurem d’assignar a ma els professores als departaments i els grups als cicles (posteriorment només haurem de tornar-ho a fer amb elo nous professors i els nous grups si hi haguera tras cada importació).
Els professors estan asignats per defecte al departament 99 (‘Desconegut’). Cada professor pot posar el departament al que pertany editant el seu perfil. També des de direcció es pot posar cadascun al seu departament des de Equip directiu -> Dades professors -> Editar perfil professor.
Els grups por defecte no estan asignats a cap cicle. Per a fer-ho anem a Professorat -> Gestió grups -> Editar grup i li posem a cada grup el seu cicle.
Per a finalitzar hem de tornar a fer la importació per a que s’asignen correctament els mòduls als cicles al importar els horaris **sense la casella de ‘Hi ha professors amb horari nou’ MARCADA.
En el xml de Itaca per a la resta d’importacions només estaran les taules en que hi haja canvis, normalment:
Si hi ha algun professor nou que no és substitut d’altre que ja estava hem de marcar la caselle ‘Hi ha professors amb horari nou’.
Marquem ‘Assignar tutor’ si hi ha nous tutors (si no, no cal) i deixem desmarcada la d’esborrar grups sense tutor.
Necessitem un servidor de correu instal·lat per a moltes de les funcionalitats de la intranet. Ací teniu com exemple la instal·lació i configuració del servidor de correu exim4 amb un compte de Gmail, però es pot utilitzar qualsevol.
El primer pas és instal·lar el paquet i configurar-lo:
sudo apt install exim4
sudo dpkg-reconfigure exim4-config
El que ens pregunta és:
A continuació editem el fitxer /etc/exim4/passwd.client per posar el nom i contrasenay del compte de gmail a utilitzar per a enviar els correus:
### target.mail.server.example:login:password
gmail-smtp.l.google.com:intranet@gmail.com:abcd@1234
*.google.com:intranet@gmail.com:abcd@1234
smtp.gmail.com:intranet@gmail.com:abcd@1234
Per a finalitzar hem de configurar el compte de GMail per a permetre a exim eixir. Es fa des de GMail -> Configuració -> Compte -> Configuració del compte de Google -> Inici de sessió i seguretat -> Aplicacions amb accés al compte -> Permet l’accés a les aplicacions menys segures i ACTIVEM aquesta opció:

Podem conprovar que funciona correctament enviant un e-mail des de la terminal:
mail el_meu_micorreu@gmail.com
També cal possar en el crontab:
Si estem gastant https no funcionaran els pdf por el snapy. Cal mirar la documentació d’esta pàgina per resoldre el bug https://github.com/barryvdh/laravel-snappy/issues/217. Depenent de la versió de linux que hem instal·lat variarà. Es tracta de degradar el ssl.