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