Wiki » Historique » Révision 25
Révision 24 (Mathias Rouan, 27/05/2021 11:34) → Révision 25/26 (Mathias Rouan, 27/05/2021 15:03)
h1. Wiki h2. Guide d’installation de ManageChart Réalisé le 19 mai 2021 par William Masson (william.masson@inrae.fr) 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) h3. Installer PHP Installer PHP (+ certains modules) <pre><code class="shell"> apt install php-fpm apt install -y php-{simplexml,intl,mbstring,zip,mysql,pgsql,sqlite3} </code></pre> Vérifier l’installation de PHP <pre><code class="shell"> php -v systemctl status php7.4-fpm nginx </code></pre> h3. Installer Composer Télécharger l’installeur <pre><code class="shell"> php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" </code></pre> Vérifier l’installeur (la clé peut changer : https://getcomposer.org/download/) <pre><code class="shell"> 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;" </code></pre> Lancer l’installeur <pre><code class="shell"> php composer-setup.php --filename=composer mv composer /usr/local/bin/composer </code></pre> Supprimer l’installeur <pre><code class="shell"> php -r "unlink('composer-setup.php');" </code></pre> Vérifier l’installation de Composer <pre><code class="shell"> composer -V </code></pre> h3. Installer ManageChart Cloner le dépôt Git Depuis le dossier /opt (ou autre, /var/www par exemple) : <pre><code class="shell"> git clone git://tucuxi.univ-brest.fr/managechart </code></pre> ou pour avoir les dernières fonctionnalités (version developpement) <pre><code class="shell"> git clone -b devel git://tucuxi.univ-brest.fr/managechart </code></pre> Installer les dépendances <pre><code class="shell"> cd managechart rm composer.lock composer install </code></pre> 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. <pre><code class="shell"> composer install </code></pre> Modifier le fichier PostgreSqlSchemaManager.php Dans le fichier vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php, changer la fonction _getPortableSequenceDefinition() par celle-ci : <pre><code class="shell"> 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']); } </code></pre> Changer les droits sur le cache et les logs <pre><code class="shell"> chown www-data:www-data -R app/cache app/logs </code></pre> Créer le dossier privateKey <pre><code class="shell"> mkdir src/Mc/EncryptBundle/Resources/privateKey chown www-data:www-data -R src/Mc/EncryptBundle/Resources/privateKey </code></pre> Compiler les fichiers CSS et JS (nécessite Java) <pre><code class="shell"> php app/console assets:install web/ --symlink php app/console assetic:dump --env=prod </code></pre> Créer la base de données (nécessite PostgreSQL) <pre><code class="shell"> sudo -u postgres psql </code></pre> <pre><code class="sql"> 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 </code></pre> 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 <pre><code class="shell"> php app/console doctrine:schema:update --dump-sql (pour voir les modifications) </code></pre> 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 <pre><code class="shell"> php app/console doctrine:schema:update --force (pour appliquer les modifications) </code></pre> Créer un compte administrateur <pre><code class="shell"> php app/console fos:user:create php app/console fos:user:promote avec le rôle ROLE_SUPER_ADMIN </code></pre> Créer les fichiers serveur (nécessite Nginx) <pre><code class="shell"> nano /etc/nginx/sites-available/managechart.conf ln -fs /etc/nginx/sites-available/managechart.conf /etc/nginx/sites-enabled </code></pre> Exemple de fichier de configuration : <pre><code class="yaml"> 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; } </code></pre> h1. Historique des documentations d'installation pour mémoire... Historique... h2. 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 h2. 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) h2. 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 h2. 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]] h2. 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