Wiki » Historique » Révision 24
Révision 23 (Mathias Rouan, 27/05/2021 10:23) → Révision 24/26 (Mathias Rouan, 27/05/2021 11:34)
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>
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