Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
sygal
Manage
Activity
Members
Labels
Plan
Wiki
Redmine
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
open-source
sygal
Commits
be32b907
Commit
be32b907
authored
Feb 3, 2021
by
Bertrand Gauthier
Browse files
Options
Downloads
Patches
Plain Diff
COrrection du README et de la doc d'install
parent
9229918a
No related branches found
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
README.md
+6
-38
6 additions, 38 deletions
README.md
doc/INSTALL.md
+41
-53
41 additions, 53 deletions
doc/INSTALL.md
with
47 additions
and
91 deletions
README.md
+
6
−
38
View file @
be32b907
...
@@ -5,61 +5,29 @@ SYstème de Gestion et d'Accompagement doctoraL
...
@@ -5,61 +5,29 @@ SYstème de Gestion et d'Accompagement doctoraL
## Documentation
## Documentation
Allez à l'adresse suivante et pensez bien à sélectionner la branche correspondant à la version voulue (ex: 1.1.4) :
Reportez-vous
[
ici
](
doc/README.md
)
.
https://git.unicaen.fr/open-source/sygal-doc/blob/master/README.md
## Lancement de l'application *pour le dévelopement*
## Lancement de l'application *pour le dévelopement*
En dev, on monte les sources (répertoire courant) dans un volume.
### Avec docker-compose
```
bash
```
bash
docker-compose up
-d
--build
docker-compose up
-d
--build
```
```
Enlever le
`-d`
(detached) pour voir les logs en direct.
Enlever le
`-d`
(detached) pour voir les logs en direct.
### Sans docker-compose
Regardez le fichier
[
docker-compose.yml
](
./docker-compose.yml
)
pour les détails.
```
bash
## Lancement d'une commande
docker build
\
--add-host
=
"proxy.unicaen.fr:10.14.128.99"
\
--add-host
=
"svn.unicaen.fr:10.14.129.44"
\
--build-arg
PHP_VERSION
=
7.0
\
--build-arg
HTTP_PROXY
=
"http://proxy.unicaen.fr:3128"
\
--build-arg
HTTPS_PROXY
=
"http://proxy.unicaen.fr:3128"
\
--build-arg
NO_PROXY
=
".unicaen.fr,localhost"
\
-t
unicaen/sygal-php7-dev-image
\
.
```
NB: Il est possible de spécifier le proxy par son adresse IP mais
*il ne faut pas oublier*
de mettre
`http://`
devant
(càd:
`--build-arg http_proxy="http://10.14.128.99:3128"`
).
Run :
```
bash
```
bash
docker run
\
docker-compose
exec
sygal composer
install
--rm
\
-d
\
-p
8080:80
\
-p
8443:443
\
-v
${
PWD
}
:/app
\
--dns
=
10.14.128.125
\
--dns-search
=
unicaen.fr
\
--name
sygal-php7-dev-container
\
unicaen/sygal-php7-dev-image
```
```
### Debug
### Debug d'une ligne de commande
### CLI
```
bash
```
bash
docker
exec
-it
sygal
-php7-dev-container
\
docker
-compose
exec
sygal
\
bash
-c
"
\
bash
-c
"
\
export XDEBUG_CONFIG='remote_host=172.17.0.1' &&
\
export XDEBUG_CONFIG='remote_host=172.17.0.1' &&
\
export PHP_IDE_CONFIG='serverName=docker' &&
\
export PHP_IDE_CONFIG='serverName=docker' &&
\
...
...
This diff is collapsed.
Click to expand it.
doc/INSTALL.md
+
41
−
53
View file @
be32b907
# Installation de SyGAL
# Installation de SyGAL
## Création de la base de données
## Création de la base de données
Reportez-vous au
[
README consacré à la création de la base de données
](
database/README.md
)
.
Reportez-vous au
[
README consacré à la création de la base de données
](
database/README.md
)
.
## Installation
## Installation
Pour ce qui est de l'installation du serveur d'application, n'ayant pas à Caen les compétences
Pour ce qui est de l'installation du serveur d'application, n'ayant pas à Caen les compétences
en déploiement Docker autres que pour le développement
(d'où la présence d'un
`Dockerfile`
et d'un
`docker-compose.yml`
en déploiement Docker autres que pour le développement
, nous documenterons une installation à l'ancienne sur
dans les sources), nous documenterons une installation à l'ancienne sur
un serveur
*entièrement dédié à l'application*
.
un serveur
*entièrement dédié à l'application*
.
Si vous voulez déployer l'application avec Docker, faites-le à partir du
`Dockerfile`
présent et n'hésitez pas à
Si vous voulez déployer l'application avec Docker, faites-le à partir du
`Dockerfile`
présent et n'hésitez pas à
proposer votre contribution pour améliorer cette doc d'install !
proposer votre contribution pour améliorer cette doc d'install !
...
@@ -37,7 +35,13 @@ nécessaires.*
...
@@ -37,7 +35,13 @@ nécessaires.*
### Configuration du serveur
### Configuration du serveur
Sur le serveur, placez-vous dans le répertoire des sources de SyGAL et jetez un oeil au script
`Dockerfile.sh`
.
Sur le serveur, récupérez le dépôt git de l'image Docker de SyGAL puis placez-vous dans le répertoire créé :
```
bash
git clone https://git.unicaen.fr:open-source/docker/sygal-image.git /tmp/sygal-image
cd
/tmp/sygal-image
```
Jetez un oeil sur le script
`Dockerfile.sh`
.
Ce script est en quelque sorte l'équivalent du
`Dockerfile`
traduit en bash.
Ce script est en quelque sorte l'équivalent du
`Dockerfile`
traduit en bash.
(Vous y verrez que le dépôt git d'une image Docker Unicaen est cloné pour lancer
(Vous y verrez que le dépôt git d'une image Docker Unicaen est cloné pour lancer
son script
`Dockerfile.sh`
qui est lui aussi l'équivalent du
`Dockerfile`
de l'image
son script
`Dockerfile.sh`
qui est lui aussi l'équivalent du
`Dockerfile`
de l'image
...
@@ -45,24 +49,24 @@ traduit en bash.)
...
@@ -45,24 +49,24 @@ traduit en bash.)
Lancez le script
`Dockerfile.sh`
ainsi :
Lancez le script
`Dockerfile.sh`
ainsi :
```
bash
```
bash
cd
/app
bash Dockerfile.sh 7.3
bash Dockerfile.sh 7.0
```
```
Ensuite, vérifiez et ajustez si besoin sur votre serveur les fichiers de configs suivants,
Ensuite, vérifiez et ajustez si besoin sur votre serveur les fichiers de configs suivants,
créés par le script
`Dockerfile.sh`
:
créés
ou modifiés
par le script
`Dockerfile.sh`
:
-
${APACHE_CONF_DIR}/ports.conf
-
${APACHE_CONF_DIR}/ports.conf
-
${APACHE_CONF_DIR}/sites-available/app.conf
-
${APACHE_CONF_DIR}/sites-available/app.conf
-
${APACHE_CONF_DIR}/sites-available/app-ssl.conf
-
${APACHE_CONF_DIR}/sites-available/app-ssl.conf
-
${PHP_CONF_DIR}/fpm/pool.d/app.conf
-
${PHP_CONF_DIR}/fpm/pool.d/www.conf
-
${PHP_CONF_DIR}/fpm/conf.d/90-app.ini
-
${PHP_CONF_DIR}/fpm/conf.d/99-app.ini
-
${PHP_CONF_DIR}/cli/conf.d/99-app.ini
NB: Vérifiez dans le script
`Dockerfile.sh`
que vous venez de lancer mais normalement
NB: Vérifiez dans le script
`Dockerfile.sh`
que vous venez de lancer mais normalement
`APACHE_CONF_DIR=/etc/apache2`
et
`PHP_CONF_DIR=/etc/php/7.
0
`
.
`APACHE_CONF_DIR=/etc/apache2`
et
`PHP_CONF_DIR=/etc/php/7.
3
`
.
### Installation d'une version précise de l'application
### Installation d'une version précise de l'application
Normalement, vous ne devez installer que les versions officielles, c'est à dire les versions taguées, du genre
`
1.4.2
`
Normalement, vous ne devez installer que les versions officielles, c'est à dire les versions taguées, du genre
`
2.1.5
`
par exemple.
par exemple.
Placez-vous dans le répertoire des sources de l'application puis lancez les commandes suivantes pour obtenir la liste des
Placez-vous dans le répertoire des sources de l'application puis lancez les commandes suivantes pour obtenir la liste des
...
@@ -71,16 +75,16 @@ versions officielles (taguées) :
...
@@ -71,16 +75,16 @@ versions officielles (taguées) :
git fetch
&&
git fetch
--tags
&&
git tag
git fetch
&&
git fetch
--tags
&&
git tag
```
```
Si la version la plus récente est par exemple la
`
1.4.2
`
, utilisez les commandes suivantes pour "installer" cette version
Si la version la plus récente est par exemple la
`
2.1.5
`
, utilisez les commandes suivantes pour "installer" cette version
sur votre serveur :
sur votre serveur :
```
bash
```
bash
git checkout
--force
1.4.2
&&
bash install.sh
git checkout
--force
2.1.5
&&
bash install.sh
```
```
### Configuration du moteur PHP pour SyGAL
### Configuration du moteur PHP pour SyGAL
Si vous êtes sur un serveur de PROD, corrigez les lignes suivantes du fichier de config PHP
Si vous êtes sur un serveur de PROD, corrigez les lignes suivantes du fichier de config PHP
`/etc/php/7.
0
/fpm/conf.d/90-app.ini`
:
`/etc/php/7.
3
/fpm/conf.d/90-app.ini`
:
display_errors = Off
display_errors = Off
...
...
...
@@ -94,8 +98,9 @@ Placez-vous dans le répertoire de l'application puis descendez dans le réperto
...
@@ -94,8 +98,9 @@ Placez-vous dans le répertoire de l'application puis descendez dans le réperto
Supprimez l'extension
`.dist`
des fichiers
`local.php.dist`
et
`secret.local.php.dist`
, ex :
Supprimez l'extension
`.dist`
des fichiers
`local.php.dist`
et
`secret.local.php.dist`
, ex :
```
bash
```
bash
cp
-n
local.php.dist local.php
APPLICATION_ENV
=
"production"
cp
-n
secret.local.php.dist secret.local.php
cp
-n
local.php.dist
${
APPLICATION_ENV
}
.local.php
cp
-n
secret.local.php.dist
${
APPLICATION_ENV
}
.secret.local.php
```
```
Dans la suite, vous adapterez le contenu de ces fichiers à votre situation.
Dans la suite, vous adapterez le contenu de ces fichiers à votre situation.
...
@@ -112,7 +117,7 @@ Dans la suite, vous adapterez le contenu de ces fichiers à votre situation.
...
@@ -112,7 +117,7 @@ Dans la suite, vous adapterez le contenu de ces fichiers à votre situation.
'informatiqueEtLibertes'
=>
"http://www.unicaen.fr/acces-direct/informatique-et-libertes/"
,
'informatiqueEtLibertes'
=>
"http://www.unicaen.fr/acces-direct/informatique-et-libertes/"
,
```
```
#### `local.php`
#### `
${APPLICATION_ENV}.
local.php`
-
Adaptez le
`'label'`
,
`'title'`
et
`'uri'`
du lien mentionnant votre établissement dans le pied de page de
-
Adaptez le
`'label'`
,
`'title'`
et
`'uri'`
du lien mentionnant votre établissement dans le pied de page de
l'application :
l'application :
...
@@ -141,7 +146,7 @@ Dans la suite, vous adapterez le contenu de ces fichiers à votre situation.
...
@@ -141,7 +146,7 @@ Dans la suite, vous adapterez le contenu de ces fichiers à votre situation.
```
```
*NB: ce répertoire doit être autorisé en écriture à l'utilisateur `www-data` (ou équivalent).*
*NB: ce répertoire doit être autorisé en écriture à l'utilisateur `www-data` (ou équivalent).*
#### `secret.local.php`
#### `
${APPLICATION_ENV}.
secret.local.php`
-
Dans la config de connexion au WS suivante,
`UCN`
doit être remplacé par le code établissement choisi lors
-
Dans la config de connexion au WS suivante,
`UCN`
doit être remplacé par le code établissement choisi lors
de la création de votre établissement dans la base de données (dans le script
`05-init.sql`
) :
de la création de votre établissement dans la base de données (dans le script
`05-init.sql`
) :
...
@@ -149,9 +154,8 @@ de la création de votre établissement dans la base de données (dans le script
...
@@ -149,9 +154,8 @@ de la création de votre établissement dans la base de données (dans le script
```
php
```
php
'import-api'
=>
[
'import-api'
=>
[
'etablissements'
=>
[
'etablissements'
=>
[
// code établissement => [config]
'UCN'
/* <-- code établissement */
=>
[
'UCN'
=>
[
'url'
=>
'https://sygal-import-ws:443'
,
// cf. plus bas
'url'
=>
'https://sygal-import-ws:443'
,
'proxy'
=>
false
,
'proxy'
=>
false
,
'verify'
=>
false
,
// si true et faux certif : cURL error 60: SSL certificate problem: self signed certificate
'verify'
=>
false
,
// si true et faux certif : cURL error 60: SSL certificate problem: self signed certificate
'user'
=>
'xxx'
,
'user'
=>
'xxx'
,
...
@@ -220,27 +224,17 @@ Par exemple, pour appliquer le profil `ADMIN_TECH` au rôle *Administrateur tech
...
@@ -220,27 +224,17 @@ Par exemple, pour appliquer le profil `ADMIN_TECH` au rôle *Administrateur tech
NB: "UCN" n'est qu'un exemple et pour vous ce sera le code établissement choisi lors
NB: "UCN" n'est qu'un exemple et pour vous ce sera le code établissement choisi lors
de la création de votre établissement dans la base de données (dans le script
`05-init.sql`
)
de la création de votre établissement dans la base de données (dans le script
`05-init.sql`
)
### Import
Allez dans menu "Import" pour contrôler que l'application parvient à contacter votre web service.
La version de l'API devrait s'afficher, ex: 1.2.4.
Ne tenez pas compte du menu "Lancement" car il n'est pas possible de lancer l'import des données
depuis l'interface graphique.
## Import de données
##
En ligne de commande
##
# Installation du web service
### Import de données
Vous devez à présent installer le web service d'import de données est,
reportez-vous au projet
`sygal-import-ws`
sur
[
sur github.com/EsupPortail
](
https://github.com/EsupPortail/sygal-import-ws
)
ou sur
[
sur git.unicaen.fr
](
https://git.unicaen.fr/open-source/sygal-import-ws
)
.
Placez-vous dans le répertoire de SyGAL sur le serveur.
### Lancement de l'import seul
Ce qui suit n'est possible que si le web service d'import de données est installé, si ce n'est pas le cas,
reportez-vous au projet
`sygal-import-ws`
[
sur github.com/EsupPortail
](
https://github.com/EsupPortail/sygal-import-ws
)
ou
[
sur git.unicaen.fr
](
https://git.unicaen.fr/open-source/sygal-import-ws
)
.
#### Lancement de l'import
Il s'agit de l'interrogation du web service pour remplir les tables temporaires TMP_
*
.
Il s'agit de l'interrogation du web service pour remplir les tables temporaires TMP_
*
.
...
@@ -249,12 +243,12 @@ Il s'agit de l'interrogation du web service pour remplir les tables temporaires
...
@@ -249,12 +243,12 @@ Il s'agit de l'interrogation du web service pour remplir les tables temporaires
*
NB:
`UCN`
doit être remplacé par le code établissement choisi lors
*
NB:
`UCN`
doit être remplacé par le code établissement choisi lors
de la création de votre établissement dans la base de données (dans le script
`05-init.sql`
).
*
de la création de votre établissement dans la base de données (dans le script
`05-init.sql`
).
*
#### Lancement de la synchro
#### Lancement de la synchro
seule
Il s'agit de la synchronisation des tables définitives de travail de l'application avec les tables TMP_
*
Il s'agit de la synchronisation des tables définitives de travail de l'application avec les tables TMP_
*
contenant les données déjà importées.
contenant les données déjà importées.
php public/index.php synchro
nize
-all
php public/index.php
run
synchro
-
-all
Pour plus de détails, vous pouvez vous reporter à la documentation sur les
[
lignes de commandes
](
cli.md
)
.
Pour plus de détails, vous pouvez vous reporter à la documentation sur les
[
lignes de commandes
](
cli.md
)
.
...
@@ -265,37 +259,31 @@ l'application.
...
@@ -265,37 +259,31 @@ l'application.
Pour lancer l'interrogation du web service
*puis*
la synchronisation des tables définitives de travail, faites :
Pour lancer l'interrogation du web service
*puis*
la synchronisation des tables définitives de travail, faites :
php public/index.php import-all --etablissement=UCN --synchronize=1 --breakOnServiceNotFound=0
ETAB=UCN bin/run-import.sh
*
NB:
`UCN`
doit être remplacé par le code établissement choisi lors
*
NB:
`UCN`
doit être remplacé par le code établissement choisi lors
de la création de votre établissement dans la base de données (dans le script
`05-init.sql`
).
*
de la création de votre établissement dans la base de données (dans le script
`05-init.sql`
).
*
### Programmation des tâches périodiques
### Programmation des tâches périodiques
Un certains nombres de tâches périodiques doivent être programmées sur le serveur.
Un certains nombres de tâches périodiques doivent être programmées sur le serveur.
Pour cela, créez le fichier
`/etc/cron.d/sygal`
et adaptez le contenu suivant à votre contexte :
Pour cela, créez le fichier
`/etc/cron.d/sygal`
et adaptez le contenu suivant à votre contexte :
```
cron
```
cron
MAILTO=nom.prenom@domaine.fr
#
#
# Application SyGAL.
# Application SyGAL.
#
#
APP_DIR=/app
APP_DIR=/app
##### Traitements en fonction des résultats de l'import #####
0 5-17 * * 1-5 root /usr/bin/php $APP_DIR/public/index.php process-observed-import-results --etablissement=UCN 1> /tmp/sygal-process-observed-import-results.log 2>&1
# (du lundi au vendredi, chaque heure de 5h à 17h)
##### Import des données des établissements #####
##### Import des données des établissements #####
*/20 * * * * root /usr/bin/php $APP_DIR/public/index.php import-all --etablissement=UCN --synchronize=1 --breakOnServiceNotFound=0 1> /tmp/cron-sygal-import.log 2>&1
0,30 7-19 * * 1-5 root ETAB=UCN $APP_DIR/bin/run-import.sh >>/tmp/cron-sygal-import-ws.log 2>&1
## (toutes les 20 minutes)
##### Traitements en fonction des résultats de l'import #####
25,55 7-19 * * 1-5 root /usr/bin/php $APP_DIR/public/index.php process-observed-import-results --etablissement=UCN >>/tmp/sygal-process-observed-import-results.log 2>&1
##### Ménage dans /tmp #####
##### Ménage dans /tmp #####
0 4 * * * root bash $APP_DIR/bin/purge_temp_files.sh 1> /tmp/sygal_purge_temp_files.sh.log 2>&1
0 4 * * * root bash $APP_DIR/bin/purge_temp_files.sh 1> /tmp/sygal_purge_temp_files.sh.log 2>&1
## (tous les jours à 4h du mat')
```
```
*
NB:
`UCN`
doit être remplacé par le code établissement choisi lors
*
NB:
`UCN`
doit être remplacé par le code établissement choisi lors
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment