Wiki » Historique » Version 25
Mathias Rouan, 27/05/2021 15:03
1 | 25 | Mathias Rouan | h1. Guide d’installation de ManageChart |
---|---|---|---|
2 | 24 | Mathias Rouan | |
3 | Réalisé le 19 mai 2021 par William Masson (william.masson@inrae.fr) |
||
4 | |||
5 | L’installation a été effectuée en tant que super-utilisateur sur une machine avec la |
||
6 | configuration suivante : |
||
7 | * Ubuntu 20.04.2 LTS |
||
8 | * Java 11.0.11 |
||
9 | * Nginx 1.18.0 |
||
10 | * Postgres 12.6 |
||
11 | * PHP 7.4 |
||
12 | * Composer 2.0.13 |
||
13 | |||
14 | Avant d’installer ManageChart, bien vérifier que PHP, Composer et Java sont installés. |
||
15 | D’autres solutions peuvent être utilisées pour la base de données et le serveur (MySQL, |
||
16 | Apache, etc) |
||
17 | |||
18 | h3. Installer PHP |
||
19 | |||
20 | Installer PHP (+ certains modules) |
||
21 | <pre><code class="shell"> |
||
22 | apt install php-fpm |
||
23 | apt install -y php-{simplexml,intl,mbstring,zip,mysql,pgsql,sqlite3} |
||
24 | </code></pre> |
||
25 | |||
26 | Vérifier l’installation de PHP |
||
27 | <pre><code class="shell"> |
||
28 | php -v |
||
29 | systemctl status php7.4-fpm nginx |
||
30 | </code></pre> |
||
31 | |||
32 | h3. Installer Composer |
||
33 | |||
34 | Télécharger l’installeur |
||
35 | <pre><code class="shell"> |
||
36 | php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" |
||
37 | </code></pre> |
||
38 | |||
39 | Vérifier l’installeur (la clé peut changer : https://getcomposer.org/download/) |
||
40 | <pre><code class="shell"> |
||
41 | php -r "if (hash_file('sha384', 'composer-setup.php') === |
||
42 | '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d |
||
43 | 4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer |
||
44 | corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" |
||
45 | </code></pre> |
||
46 | |||
47 | Lancer l’installeur |
||
48 | <pre><code class="shell"> |
||
49 | php composer-setup.php --filename=composer |
||
50 | mv composer /usr/local/bin/composer |
||
51 | </code></pre> |
||
52 | |||
53 | Supprimer l’installeur |
||
54 | <pre><code class="shell"> |
||
55 | php -r "unlink('composer-setup.php');" |
||
56 | </code></pre> |
||
57 | |||
58 | Vérifier l’installation de Composer |
||
59 | <pre><code class="shell"> |
||
60 | composer -V |
||
61 | </code></pre> |
||
62 | |||
63 | h3. Installer ManageChart |
||
64 | |||
65 | Cloner le dépôt Git |
||
66 | Depuis le dossier /opt (ou autre, /var/www par exemple) : |
||
67 | <pre><code class="shell"> |
||
68 | git clone git://tucuxi.univ-brest.fr/managechart |
||
69 | </code></pre> |
||
70 | |||
71 | ou pour avoir les dernières fonctionnalités (version developpement) |
||
72 | |||
73 | <pre><code class="shell"> |
||
74 | git clone -b devel git://tucuxi.univ-brest.fr/managechart |
||
75 | </code></pre> |
||
76 | |||
77 | Installer les dépendances |
||
78 | <pre><code class="shell"> |
||
79 | cd managechart |
||
80 | rm composer.lock |
||
81 | composer install |
||
82 | </code></pre> |
||
83 | |||
84 | Il va y avoir une erreur, c’est normal. |
||
85 | |||
86 | Modifier le fichier UnitOfWork |
||
87 | Dans le fichier vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php, modifier les continue des lignes |
||
88 | 2 636 et 2 665 en continue 2. |
||
89 | <pre><code class="shell"> |
||
90 | composer install |
||
91 | </code></pre> |
||
92 | |||
93 | Modifier le fichier PostgreSqlSchemaManager.php |
||
94 | Dans le fichier vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php, changer |
||
95 | la fonction _getPortableSequenceDefinition() par celle-ci : |
||
96 | <pre><code class="shell"> |
||
97 | protected function _getPortableSequenceDefinition($sequence) |
||
98 | { |
||
99 | if ($sequence['schemaname'] != 'public') { |
||
100 | $sequenceName = $sequence['schemaname'] . "." . $sequence['relname']; |
||
101 | } else { |
||
102 | $sequenceName = $sequence['relname']; |
||
103 | } |
||
104 | $version = floatval($this->_conn->getWrappedConnection()->getServerVersion()); |
||
105 | if ($version >= 10) { |
||
106 | $data = $this->_conn->fetchAll('SELECT min_value, increment_by FROM pg_sequences |
||
107 | WHERE schemaname = \'public\' AND sequencename = '.$this->_conn->quote($sequenceName)); |
||
108 | } else { |
||
109 | $data = $this->_conn->fetchAll('SELECT min_value, increment_by FROM ' . $this- |
||
110 | >_platform->quoteIdentifier($sequenceName)); |
||
111 | } |
||
112 | return new Sequence($sequenceName, $data[0]['increment_by'], $data[0]['min_value']); |
||
113 | } |
||
114 | </code></pre> |
||
115 | |||
116 | Changer les droits sur le cache et les logs |
||
117 | <pre><code class="shell"> |
||
118 | chown www-data:www-data -R app/cache app/logs |
||
119 | </code></pre> |
||
120 | |||
121 | Créer le dossier privateKey |
||
122 | <pre><code class="shell"> |
||
123 | mkdir src/Mc/EncryptBundle/Resources/privateKey |
||
124 | chown www-data:www-data -R src/Mc/EncryptBundle/Resources/privateKey |
||
125 | </code></pre> |
||
126 | |||
127 | Compiler les fichiers CSS et JS (nécessite Java) |
||
128 | <pre><code class="shell"> |
||
129 | php app/console assets:install web/ --symlink |
||
130 | php app/console assetic:dump --env=prod |
||
131 | </code></pre> |
||
132 | |||
133 | Créer la base de données (nécessite PostgreSQL) |
||
134 | <pre><code class="shell"> |
||
135 | sudo -u postgres psql |
||
136 | </code></pre> |
||
137 | <pre><code class="sql"> |
||
138 | create database db_managechart_prod; |
||
139 | create user u_managechart_prod with encrypted password 'XXXXXXXXXXXXXXXX'; |
||
140 | grant all privileges on database db_managechart_prod to u_managechart_prod; |
||
141 | alter database db_managechart_prod owner to u_managechart_prod; |
||
142 | \q |
||
143 | </code></pre> |
||
144 | |||
145 | Modifier le fichier parameters.yml |
||
146 | Dans le fichier app/config/parameters.yml, modifier les lignes database_name, database_user et |
||
147 | database_password avec les informations de l’étape précédente. |
||
148 | |||
149 | Créer les tables de la base de données |
||
150 | <pre><code class="shell"> |
||
151 | php app/console doctrine:schema:update --dump-sql (pour voir les modifications) |
||
152 | </code></pre> |
||
153 | |||
154 | Si la commande précèdente ne marche pas, modifier la valeur 127.0.0.1 de la ligne database_host du |
||
155 | fichier app/config/parameters.yml par la valeur localhost |
||
156 | <pre><code class="shell"> |
||
157 | php app/console doctrine:schema:update --force (pour appliquer les modifications) |
||
158 | </code></pre> |
||
159 | |||
160 | Créer un compte administrateur |
||
161 | <pre><code class="shell"> |
||
162 | php app/console fos:user:create |
||
163 | php app/console fos:user:promote avec le rôle ROLE_SUPER_ADMIN |
||
164 | </code></pre> |
||
165 | |||
166 | Créer les fichiers serveur (nécessite Nginx) |
||
167 | <pre><code class="shell"> |
||
168 | nano /etc/nginx/sites-available/managechart.conf |
||
169 | ln -fs /etc/nginx/sites-available/managechart.conf /etc/nginx/sites-enabled |
||
170 | </code></pre> |
||
171 | |||
172 | Exemple de fichier de configuration : |
||
173 | <pre><code class="yaml"> |
||
174 | server { |
||
175 | listen 8888; |
||
176 | listen [::]:8888; |
||
177 | server_name XXXXXXXXXXXX; |
||
178 | root /opt/managechart/web; |
||
179 | location / { |
||
180 | try_files $uri /app.php$is_args$args; |
||
181 | } |
||
182 | location ~ ^/app\.php(/|$) { |
||
183 | fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; |
||
184 | fastcgi_split_path_info ^(.+\.php)(/.*)$; |
||
185 | include snippets/fastcgi-php.conf; |
||
186 | fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; |
||
187 | fastcgi_param DOCUMENT_ROOT $realpath_root; |
||
188 | internal; |
||
189 | } |
||
190 | location ~ \.php$ { |
||
191 | return 404; |
||
192 | } |
||
193 | access_log /var/log/nginx/XXXXXXXXXXXX_access.log; |
||
194 | error_log /var/log/nginx/XXXXXXXXXXXX_error.log; |
||
195 | } |
||
196 | 1 | Mathias Rouan | |
197 | 24 | Mathias Rouan | </code></pre> |
198 | |||
199 | 25 | Mathias Rouan | h1. Historique des documentations d'installation pour mémoire... |
200 | 24 | Mathias Rouan | |
201 | 1 | Mathias Rouan | h2. Technologies |
202 | 3 | Mathias Rouan | |
203 | 21 | William Masson | - Framework PHP Symfony : v2.8 |
204 | 16 | Mathias Rouan | - CSS : Bootstrap v3.3.6 |
205 | 19 | William Masson | - JS : Highcharts v6.2.0 (maj le 11/09/2020) |
206 | 16 | Mathias Rouan | |
207 | 23 | Mathias Rouan | Guide d'installation : https://tucuxi.univ-brest.fr/attachments/download/768/Installation_05-2021_Ubuntu20_postgres_nginx.pdf |
208 | |||
209 | 5 | Mathias Rouan | h2. Prérequis |
210 | 13 | Anonyme | |
211 | 20 | William Masson | - Java (pour la compilation des assets) |
212 | - Composer (https://getcomposer.org/download/) |
||
213 | - OpenSSL |
||
214 | 17 | Mathias Rouan | - Serveur Web (Apache 2.2) |
215 | - PHP 5.6 |
||
216 | 8 | Mathias Rouan | - Base de Données (postgreSQL) |
217 | 6 | Mathias Rouan | 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) |
218 | 5 | Mathias Rouan | |
219 | 3 | Mathias Rouan | h2. Installation |
220 | |||
221 | déploiement depuis git : |
||
222 | - clone git://tucuxi.univ-brest.fr/managechart |
||
223 | - composer.lock à supprimer |
||
224 | 9 | Anonyme | - php composer.phar self-update |
225 | 3 | Mathias Rouan | - proc_open à autoriser en commentant la ligne dans /etc/php5/conf.d/zz_recommended.ini.. |
226 | 12 | Anonyme | - timeout_redirection et mailer_port à commenter dans app/config/config.yml |
227 | 10 | Anonyme | - php composer.phar install |
228 | 14 | Anonyme | - paramater.yml à configurer en fonction de votre base de données |
229 | 9 | Anonyme | - php app/console assets:install web/ --symlink |
230 | - php app/console assetic:dump --env=prod |
||
231 | 3 | Mathias Rouan | // -> erreur fos_user doctrincd ..e registry corrigée en bloquant la version de fosuser bundle à 2.0.0alpha3 |
232 | 15 | Anonyme | |
233 | - Ajouter une base de données |
||
234 | 20 | William Masson | - php app/console doctrine:schema:update --dump-sql (pour voir les modifications) |
235 | - php app/console doctrine:schema:update --force (pour appliquer les modifications) |
||
236 | 1 | Mathias Rouan | |
237 | - timeout_redirection et mailer_port à décommenter dans app/config/config.yml |
||
238 | - php app/console cache:clear --env=prod |
||
239 | - proc_open à bloquer |
||
240 | 22 | William Masson | - l'utilisateur www-data:www-data doit avoir les droits sur les fichiers sources de managechart |
241 | 15 | Anonyme | |
242 | |||
243 | 16 | Mathias Rouan | h2. pistes pour la configuration virtualhost apache symfony |
244 | 3 | Mathias Rouan | |
245 | 16 | Mathias Rouan | [[http://www.mist-labs.com/blog/installing-and-configuring-symfony2#.U8ZwwPl_uEB]] |
246 | [[http://fr.openclassrooms.com/informatique/cours/developpez-votre-site-web-avec-le-framework-symfony2/deployer-son-site-symfony2-en-production]] |
||
247 | |||
248 | |||
249 | h2. déploiement depuis tar : |
||
250 | |||
251 | 3 | Mathias Rouan | tar zcf |
252 | copy |
||
253 | tar xf |
||
254 | rm -rf app/cache/* |
||
255 | remettre parameter.yml |
||
256 | chown -hR www-data: |
||
257 | service apache2 restart |
||
258 | TRUC PAS BEAU : les liens symb vers opt/lampp/xxxx |