Projet

Général

Profil

Actions

Guide d’installation de ManageChart

Réalisé le 19 mai 2021 par William Masson ()

L’installation a été effectuée en tant que super-utilisateur sur une machine avec la
configuration suivante :
  • Ubuntu 20.04.2 LTS
  • Java 11.0.11
  • Nginx 1.18.0
  • Postgres 12.6
  • PHP 7.4
  • Composer 2.0.13

Avant d’installer ManageChart, bien vérifier que PHP, Composer et Java sont installés.
D’autres solutions peuvent être utilisées pour la base de données et le serveur (MySQL,
Apache, etc)

Installer PHP

Installer PHP (+ certains modules)

apt install php-fpm
apt install -y php-{simplexml,intl,mbstring,zip,mysql,pgsql,sqlite3}

Vérifier l’installation de PHP

php -v
systemctl status php7.4-fpm nginx

Installer Composer

Télécharger l’installeur

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 

Vérifier l’installeur (la clé peut changer : https://getcomposer.org/download/)

php -r "if (hash_file('sha384', 'composer-setup.php') ===
'756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d
4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer
corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" 

Lancer l’installeur

php composer-setup.php --filename=composer
mv composer /usr/local/bin/composer

Supprimer l’installeur

php -r "unlink('composer-setup.php');" 

Vérifier l’installation de Composer

composer -V

Installer ManageChart

Cloner le dépôt Git
Depuis le dossier /opt (ou autre, /var/www par exemple) :

git clone git://tucuxi.univ-brest.fr/managechart

ou pour avoir les dernières fonctionnalités (version developpement)

git clone -b devel git://tucuxi.univ-brest.fr/managechart

Installer les dépendances

cd managechart
rm composer.lock
composer install

Il va y avoir une erreur, c’est normal.

Modifier le fichier UnitOfWork
Dans le fichier vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php, modifier les continue des lignes
2 636 et 2 665 en continue 2.

composer install

Modifier le fichier PostgreSqlSchemaManager.php
Dans le fichier vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php, changer
la fonction _getPortableSequenceDefinition() par celle-ci :

protected function _getPortableSequenceDefinition($sequence)
{
if ($sequence['schemaname'] != 'public') {
$sequenceName = $sequence['schemaname'] . "." . $sequence['relname'];
} else {
$sequenceName = $sequence['relname'];
}
$version = floatval($this->_conn->getWrappedConnection()->getServerVersion());
if ($version >= 10) {
$data = $this->_conn->fetchAll('SELECT min_value, increment_by FROM pg_sequences
WHERE schemaname = \'public\' AND sequencename = '.$this->_conn->quote($sequenceName));
} else {
$data = $this->_conn->fetchAll('SELECT min_value, increment_by FROM ' . $this-
>_platform->quoteIdentifier($sequenceName));
}
return new Sequence($sequenceName, $data[0]['increment_by'], $data[0]['min_value']);
}

Changer les droits sur le cache et les logs

chown www-data:www-data -R app/cache app/logs

Créer le dossier privateKey

mkdir src/Mc/EncryptBundle/Resources/privateKey
chown www-data:www-data -R src/Mc/EncryptBundle/Resources/privateKey

Compiler les fichiers CSS et JS (nécessite Java)

php app/console assets:install web/ --symlink
php app/console assetic:dump --env=prod

Créer la base de données (nécessite PostgreSQL)

sudo -u postgres psql

create database db_managechart_prod;
create user u_managechart_prod with encrypted password 'XXXXXXXXXXXXXXXX';
grant all privileges on database db_managechart_prod to u_managechart_prod;
alter database db_managechart_prod owner to u_managechart_prod;
\q

Modifier le fichier parameters.yml
Dans le fichier app/config/parameters.yml, modifier les lignes database_name, database_user et
database_password avec les informations de l’étape précédente.

Créer les tables de la base de données

php app/console doctrine:schema:update --dump-sql (pour voir les modifications)

Si la commande précèdente ne marche pas, modifier la valeur 127.0.0.1 de la ligne database_host du
fichier app/config/parameters.yml par la valeur localhost

php app/console doctrine:schema:update --force (pour appliquer les modifications)

Créer un compte administrateur

php app/console fos:user:create
php app/console fos:user:promote avec le rôle ROLE_SUPER_ADMIN

Créer les fichiers serveur (nécessite Nginx)

nano /etc/nginx/sites-available/managechart.conf
ln -fs /etc/nginx/sites-available/managechart.conf /etc/nginx/sites-enabled

Exemple de fichier de configuration :

server {
  listen 8888;
  listen [::]:8888;
  server_name XXXXXXXXXXXX;
  root /opt/managechart/web;
  location / {
    try_files $uri /app.php$is_args$args;
  }
  location ~ ^/app\.php(/|$) {
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include snippets/fastcgi-php.conf;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    fastcgi_param DOCUMENT_ROOT $realpath_root;
    internal;
  }
  location ~ \.php$ {
    return 404;
  }
  access_log /var/log/nginx/XXXXXXXXXXXX_access.log;
  error_log /var/log/nginx/XXXXXXXXXXXX_error.log;
}

Historique de la documentation d'installation pour mémoire...

Technologies

- Framework PHP Symfony : v2.8
- CSS : Bootstrap v3.3.6
- JS : Highcharts v6.2.0 (maj le 11/09/2020)

Guide d'installation : https://tucuxi.univ-brest.fr/attachments/download/768/Installation_05-2021_Ubuntu20_postgres_nginx.pdf

Prérequis

- Java (pour la compilation des assets)
- Composer (https://getcomposer.org/download/)
- OpenSSL
- Serveur Web (Apache 2.2)
- PHP 5.6
- Base de Données (postgreSQL)
ou installation complète serveur associant Linux, Apache, PostgreSQL et PHP est généralement appelé serveur "LAPP": apt://php5-pgsql (https://doc.ubuntu-fr.org/php)

Installation

déploiement depuis git :
- clone git://tucuxi.univ-brest.fr/managechart
- composer.lock à supprimer
- php composer.phar self-update
- proc_open à autoriser en commentant la ligne dans /etc/php5/conf.d/zz_recommended.ini..
- timeout_redirection et mailer_port à commenter dans app/config/config.yml
- php composer.phar install
- paramater.yml à configurer en fonction de votre base de données
- php app/console assets:install web/ --symlink
- php app/console assetic:dump --env=prod
// -> erreur fos_user doctrincd ..e registry corrigée en bloquant la version de fosuser bundle à 2.0.0alpha3

- Ajouter une base de données
- php app/console doctrine:schema:update --dump-sql (pour voir les modifications)
- php app/console doctrine:schema:update --force (pour appliquer les modifications)

- timeout_redirection et mailer_port à décommenter dans app/config/config.yml
- php app/console cache:clear --env=prod
- proc_open à bloquer
- l'utilisateur www-data:www-data doit avoir les droits sur les fichiers sources de managechart

pistes pour la configuration virtualhost apache symfony

[[http://www.mist-labs.com/blog/installing-and-configuring-symfony2#.U8ZwwPl_uEB]]
[[http://fr.openclassrooms.com/informatique/cours/developpez-votre-site-web-avec-le-framework-symfony2/deployer-son-site-symfony2-en-production]]

déploiement depuis tar :

tar zcf
copy
tar xf
rm -rf app/cache/*
remettre parameter.yml
chown -hR www-data:
service apache2 restart
TRUC PAS BEAU : les liens symb vers opt/lampp/xxxx

Mis à jour par Mathias Rouan il y a presque 3 ans · 26 révisions