Projet

Général

Profil

Wiki » Historique » Version 73

Patrice Nadeau, 2016-01-10 11:23

1 2 Patrice Nadeau
h1. Drupal
2 1 Patrice Nadeau
3 3 Patrice Nadeau
{{TOC}}
4 1 Patrice Nadeau
5 3 Patrice Nadeau
h2. Configuration préalable
6
7
Un serveur openSUSE avec les options « LAMP » (Linux, Apache, MySQL, PHP) ainsi que Postfix
8
devrait déjà être installé.
9
10
h3. PHP
11
12
Les modules PHP supplémentaires suivants doivent être installés :
13
<pre><code class="bash">
14 32 Patrice Nadeau
zypper install php5-mbstring php5-gd php5-ftp php5-zlib pecl php5-pear
15 3 Patrice Nadeau
</code></pre>
16
17
h4. Permettre les modules via FTP
18
19 4 Patrice Nadeau
Voir #45
20 1 Patrice Nadeau
21 4 Patrice Nadeau
> Basé sur https://www.drupal.org/node/1608658
22 3 Patrice Nadeau
23 4 Patrice Nadeau
Voir le lien pour l’installation : [[guides_opensuse:ftp]]
24 3 Patrice Nadeau
25 4 Patrice Nadeau
26 3 Patrice Nadeau
27
h4. Module « file upload progress bar » de PHP
28
29
> Facultatif
30
31
Télécharger le module :
32
<pre><code class="bash">
33
pecl install uploadprogress
34
</code></pre>
35
36
Ajouter à */etc/php5/apache2/php.ini*
37
<pre><code class="bash">
38
extension=uploadprogress.so
39
</code></pre>
40
41
h3. Préparation de MySQL
42
43
Choisir et noter les 3 items suivants :
44 39 Patrice Nadeau
* _drupal_db_ : nom voulu de la base de donnés de Drupal
45 41 Patrice Nadeau
* _drupal_user_ : nom voulu pour l’usager MySQL
46
* _drupal_password_ : mot de passe voulu pour l’usager MySQL
47 3 Patrice Nadeau
48
À partir du serveur :
49
> root est l’usager « root » de MySQL
50 36 Patrice Nadeau
51
<pre><code class="bash">
52 38 Patrice Nadeau
mysql -u root -p
53 36 Patrice Nadeau
</code></pre>
54
55 20 Patrice Nadeau
Inscrire les commandes SQL suivantes :
56 1 Patrice Nadeau
<pre><code class="sql">
57 39 Patrice Nadeau
create database drupal_db character set utf8;
58 41 Patrice Nadeau
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES, CREATE TEMPORARY TABLES ON drupal_db.* TO 'drupal_user'@'localhost' IDENTIFIED BY 'drupal_password';
59 20 Patrice Nadeau
COMMIT;
60 3 Patrice Nadeau
quit;
61
</code></pre>
62
63
h2. Installation de Drupal
64
65 34 Patrice Nadeau
> Les fichiers sont installés dans */srv/www/htdocs/drupal*
66 3 Patrice Nadeau
67
À partir d’un navigateur web, allez sur le site https://drupal.org/project/drupal.
68
Choisir le fichier « tar.gz » et copier le lien pour l’insérer dans la commande _wget_ plus bas.
69
À partir du serveur :
70 21 Patrice Nadeau
> Exemple avec la version 7.38
71 3 Patrice Nadeau
<pre><code class="bash">
72
cd /srv/www/htdocs
73 21 Patrice Nadeau
wget http://ftp.drupal.org/files/projects/drupal-7.38.tar.gz
74 3 Patrice Nadeau
tar xvf drupal*.tar.gz
75 22 Patrice Nadeau
rm drupal*.tar.gz
76 21 Patrice Nadeau
mv drupal-7.38 drupal
77 3 Patrice Nadeau
cd drupal
78
cp sites/default/default.settings.php sites/default/settings.php
79
chmod 0777 sites/default sites/default/settings.php
80
</code></pre>
81
82 33 Patrice Nadeau
Créer le fichier _/etc/apache2/vhosts.d/vhost.conf_
83 23 Patrice Nadeau
<pre><code class="bash">
84
<VirtualHost *:80>
85
    # La ligne suivante est nécessaire seulement si plusieurs site web son présents sur le même serveur.
86
    ServerName drupal.yourdomain.com
87
    DocumentRoot /srv/www/htdocs/drupal
88
89
    <Directory "/srv/www.htdocs/drupal">
90
        Options Indexes ExecCGI FollowSymLinks
91
        AllowOverride None
92
        Order deny,allow
93
        Require all granted
94
    </Directory>
95
</VirtualHost>
96
</code></pre>
97
98 3 Patrice Nadeau
À partir d’un navigateur web : http://server/drupal
99
100
h3. Sécurité
101
> Le fichier *sites/default/settings.php* contient les noms de la BD, de l’usager et de son mot de passe en texte.
102
103
Changer les droits des fichier et repertoires :
104
<pre><code class="bash">
105
chmod 0755 sites/default
106
chmod 0444 sites/default/settings.php
107
</code></pre>
108
109
h2. Personnalisation
110
111
h3. Logo
112
113 45 Patrice Nadeau
À partir de la page princpale, *Appearance*
114 44 Patrice Nadeau
Dans le thème par défaut, choisir *Settings, TOGGLE DISPLAY*
115 45 Patrice Nadeau
Section *LOGO IMAGE SETTINGS*, enlever le crochet pour l'utilisation du logo par défaut
116
Télécharger le logo voulu
117 44 Patrice Nadeau
118 3 Patrice Nadeau
h3. Type de fichier permis
119
120
A partir de Drupal Management, Administration > Structure > Content types
121
#  Choisir le type de contenu
122 1 Patrice Nadeau
#  Choisir _Edit_ pour le _FIELD TYPE_ *File*
123 46 Patrice Nadeau
124
h3. Activation des « clean URL »
125
126
Les liens seront affichés comme _example.com/user_ au lieu de _example.com/?q=user_.
127
128
> Le module Apache _rewrite_ doit être installé et actif
129
130
A partir de Drupal Administration, Configuration > Clean URLs
131
# Faire le test
132
# Activer l'option
133
134 47 Patrice Nadeau
Dans le cas d'une erreur, modifier la configuration d'Apache
135 46 Patrice Nadeau
136 47 Patrice Nadeau
Fichier _/etc/apache2/default-server.conf_, section *<Directory "/srv/www/htdocs">*
137 1 Patrice Nadeau
<pre><code class="bash">
138
#AllowOverride None
139
AllowOverride All
140 47 Patrice Nadeau
</code></pre>
141
142
Relire la configuration
143
<pre><code class="bash">
144
systemctl reload apache2.service
145 46 Patrice Nadeau
</code></pre>
146 3 Patrice Nadeau
147 50 Patrice Nadeau
h3. Retrait du lien « Home »
148
149 51 Patrice Nadeau
La variable *$breadcrumb* est utilisée dans le fichier *page.tpl.php* du thème.
150
Enlever les 3 lignes correspondantes a son impression
151 50 Patrice Nadeau
152 53 Patrice Nadeau
Ex. : Thème Bartik, fichier _themes/bartik/templates/page.tpl.php_, enlever
153 50 Patrice Nadeau
<pre><code class="php">
154
<?php if ($breadcrumb): ?>
155
   <div id="breadcrumb"><?php print $breadcrumb; ?></div>
156
<?php endif; ?>
157
</code></pre>
158
159 51 Patrice Nadeau
Il peux être nécessaire de relancer une maintenance Cron pour rafraîchir le cache.
160 50 Patrice Nadeau
161 3 Patrice Nadeau
h2. Modules supplémentaires
162
163 55 Patrice Nadeau
h3. CKEditor
164
165 59 Patrice Nadeau
Éditeur visuel HTML.
166 55 Patrice Nadeau
> Seras intégré à Drupal 8
167
168
h4. Installation
169
170
<pre><code class="bash">
171
cd /srv/www/htdocs
172
wget http://ftp.drupal.org/files/projects/ckeditor-7.x-1.16.tar.gz
173 56 Patrice Nadeau
tar -xvf ckeditor-7.x-1.16.tar.gz
174 57 Patrice Nadeau
mv ckeditor/ drupal/modules/
175
rm ckeditor-7.x-1.16.tar.gz
176 55 Patrice Nadeau
</code></pre>
177
178 58 Patrice Nadeau
Faire l'activation dans Drupal, Modules
179
180 3 Patrice Nadeau
h3. Gallery Formater
181
182
Module pour la présentation de photos.
183
184
Sélectionner le fichier à partir de http://drupal.org/project/galleryformatter
185
Installer en mode manuel (voir la section précédente)
186
A partir de Drupal : Management, Administration, Modules 
187
* Sélectionner le module et sauvegarder
188
189
h4. Créer un nouveau type de contenu
190
191
Administration, Structure, Contents types, Gallery, onglet *MANAGE FIELDS*
192
* Ajouter un champ de type *Image*
193
Éditer le champ et dans la section *Image field settings* choisir *unlimited* pour le nombre de valeurs
194
195
Administration, Structure, Contents types, Gallery, onglet *MANAGE DISPLAY*
196
* Pour le champ _Image_, choisir le format *JQuery Gallery*
197
198
h3. GeSHi Filter
199
200
Modules d’affichage de code
201
Ce module est basé sur GeSHi et supporte plus de 200 langages.
202
> Ne fonctionne pas avec avec les éditeurs de type WYSIWYG.
203
204
3 solutions existent pour contourner ce problème :
205
* L’utilisation de Wysiwyg Geshi
206
** Je ne l’ais pas essayé.
207
* La définition d’un nouveau type de format texte sans éditeur
208
* La définition d’un nouveau type de champ à ajouter dans les documents
209
210
h4. Installation
211
212
A partir du serveur :
213
<pre><code class="bash">
214
cd /srv/www/htdocs/drupal/modules
215
wget http://ftp.drupal.org/files/projects/libraries-7.x-2.2.tar.gz
216
tar -xvf libraries-7.x-2.2.tar.gz
217
rm libraries-7.x-2.2.tar.gz
218
#
219
wget http://ftp.drupal.org/files/projects/geshifilter-7.x-1.2.tar.gz
220
tar xvf geshifilter-7.x-1.2.tar.gz
221
rm geshifilter-7.x-1.2.tar.gz
222
#
223
cd ../sites/all/librairies
224
# La version doit etre 1.0.x (la version 1.1.x ne fonctionneras pas
225
wget http://sourceforge.net/projects/geshi/files/geshi/GeSHi%201.0.8.11/GeSHi-1.0.8.11.tar.gz
226
tar xvf GeSHi-1.0.8.11.tar.gz
227
rm GeSHi-1.0.8.11.tar.gz
228
</code></pre>
229
230
Dans la gestion des modules (Home, Administration, Modules), activer
231
* Filters
232
** GeSHi field
233
** GeSHi Filter
234
* Libraries
235
236
Dans la page d’administration, sélectionner l’onglet INDEX, l’option GeSHi Filter apparaitra.
237
* GENERAL SETTINGS
238
Les option pour afficher le numéro de ligne peux être choisis ainsi que des options plus avancées
239
* LANGUAGES
240
Activer/désactiver seulement les langages nécessaires.
241
S’assurer d’avoir des «tags» de définis pour chaque langage.
242
* FILTER CONFLICTS
243
Vérifier qu’il n’y a pas de conflit.
244
245
Dans la page d’administration, Configuration, Content authoring, Text formats.
246
Choisir Full HTML, activer le filtre GeSHi.
247
Déplacer l’ordre de traitement de ce filtre en dernier.
248
249
h4. Nouveau format texte
250
251
Création du nouveau format texte sans éditeur associé.
252
Home » Administration » Configuration » Content authoring
253
* Text formats
254
Ajouter un format texte Code
255
** Roles Admin
256
anonymous user
257
authenticated user
258
** Enabled filters GeSHi
259
* Wysiwyg profiles
260
S’assurer que le format Code n’as pas d’éditeur associé.
261
262
h4. Nouveau type de champ
263
264
Création d’un nouveau champ.
265
Administration » Structure
266
Choisir le type de contenu et manage fields.
267
Ajouter une nouveau champ _Code_ de type *GeSHi*.
268
Un écran d’information sur le champ apparaitra. On peux y définir le langages par defaut
269
et le nom de champ disponibles.
270
Répéter pour les autres type de contenu, si nécessaire.
271
272
h2. Maintenance
273
274
h3. Copie de sécurité
275
276
Faire une copie des fichiers et de la bd :
277
<pre><code class="bash">
278
cd /srv/www/htdocs
279
mysqldump -u username -p database > drupal.mysql
280
tar czf drupalbackup.tgz drupal.mysql drupal/
281
</code></pre>
282
283
h3. Récupération d’une copie de sécurité
284
285
<pre><code class="bash">
286
cd /srv/www/htdocs
287
tar xf drupalbackup.tgz
288
mysql -u root -p < drupal.mysql
289
</code></pre>
290
291 25 Patrice Nadeau
Remettre les permissions
292
<pre><code class="bash">
293 27 Patrice Nadeau
chmod 0755 /srv/www/htdocs/drupal/sites/default
294 29 Patrice Nadeau
chmod -R 0777 /srv/www/htdocs/drupal/sites/default/files
295 25 Patrice Nadeau
</code></pre>
296
297 3 Patrice Nadeau
h3. Mise à jour
298
299 62 Patrice Nadeau
Instructions sur un « update »
300 60 Patrice Nadeau
301 3 Patrice Nadeau
Mettre le site en mode maintenance (Management, Administration, Configuration, Developement, Maintenance mode)
302 54 Patrice Nadeau
303 3 Patrice Nadeau
À partir du serveur
304
<pre><code class="bash">
305
cd /srv/www/htdocs
306
wget http://ftp.drupal.org/files/projects/drupal-x.xx.tar.gz
307
tar -xvf drupal-*.tar.gz
308 5 Patrice Nadeau
cp -R drupal-x.y/* drupal-x.y/.htaccess drupal
309
rm -r drupal-x.y
310
rm drupal-x.xx.tar.gz
311 3 Patrice Nadeau
</code></pre>
312 1 Patrice Nadeau
313 62 Patrice Nadeau
Se brancher sur la page web http://server/update.php
314
Remettre en mode en ligne
315
316 63 Patrice Nadeau
h3. Mise a niveau
317 62 Patrice Nadeau
318
Instructions sur un « upgrade » de la version 7 à la version 8 (*en test*).
319
320 64 Patrice Nadeau
https://www.drupal.org/upgrade/migrate
321
322
Une nouvelle installation de Drupal 8 doit être faite et ensuite une migration vers le nouveau site seras effectué.
323
324 70 Patrice Nadeau
h4. PHP OPcache
325
326 71 Patrice Nadeau
>Module facultatif
327
328 70 Patrice Nadeau
Installation
329 1 Patrice Nadeau
<pre><code class="bash">
330
zypper install php5-opcache
331 70 Patrice Nadeau
</code></pre>
332
333
Ajouter dans le fichier _/etc/php/apache2/php.ini_
334
<pre><code class="php">
335
extension=opcache.so
336
</code></pre>
337
338
Relire la configuration Apache
339
<pre><code class="bash">
340
systemctl reload apache2.service
341
</code></pre>
342
343 72 Patrice Nadeau
h4. Drupal 8
344 70 Patrice Nadeau
345 72 Patrice Nadeau
<pre><code class="bash">
346 69 Patrice Nadeau
# Téléchargement
347 61 Patrice Nadeau
cd /srv/www/htdocs
348
wget http://ftp.drupal.org/files/projects/drupal-8.0.2.tar.gz
349 65 Patrice Nadeau
tar -xvf drupal-8.0.2.tar.gz
350 66 Patrice Nadeau
mv drupal-8.0.2 drupal2
351 69 Patrice Nadeau
# changement de la securite
352 68 Patrice Nadeau
chown wwwrun:www -R drupal2
353 67 Patrice Nadeau
cd drupal2
354 69 Patrice Nadeau
# Création des 2 fichiers de configurations a partir des templates
355 1 Patrice Nadeau
cp sites/default/default.settings.php settings.php
356 73 Patrice Nadeau
# Ce fichier est nécessaire ?
357
cp sites/default/default.services.yml services.yml
358 66 Patrice Nadeau
</code></pre>
359 3 Patrice Nadeau
360
h3. Mise à jour des modules
361
362
Mode manuel (sans FTP)
363
À partir du serveur
364
* Télécharger dans le dossier sites/all/modules
365
* Décompresser
366
367
À partir d’un navigateur web : http://server/drupal/update.php
368
369 26 Patrice Nadeau
h2. Bogues
370 3 Patrice Nadeau
371 26 Patrice Nadeau
h3. Configuration du module Image (core)
372 3 Patrice Nadeau
373
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146
374
Editer le fichier *drupal/modules/images.image.install*, ligne 231
375
<pre><code class="BASH">
376
# ligne en probleme
377
db_create_table(’image_effect’, $schema[’image_effects’]);
378
# remplacer par
379
db_create_table(’image_effects’, $schema[’image_effects’]);
380
</code></pre>
381
382
Arrêter Apache
383
<pre><code class="bash">
384
systemctl stop apache2.service
385
</code></pre>
386
387
Lancer MySQL
388
<pre><code class="bash">
389
mysql -u
390
</code></pre>
391
392
Changer le nom de la table
393
<pre><code class="sql">
394
use drupal;
395
rename table image_effect to image_effects;
396
quit;
397
</code></pre>
398
399
Relancer apache
400
<pre><code class="bash">
401
systemctl start apache2.service
402
</code></pre>
403 6 Patrice Nadeau
404 18 Patrice Nadeau
h2. Accès à partir d'Internet
405 7 Patrice Nadeau
406 9 Patrice Nadeau
h3. NAT dans le pare-feu 
407 1 Patrice Nadeau
408
> Cette étape dépens du pare-feu utilisé.
409 9 Patrice Nadeau
410 1 Patrice Nadeau
Il s'agit de rediriger le port 80 externe vers le port 80 interne.
411 19 Patrice Nadeau
Cette configuration est fort probablement déjà en place si un serveur web accessible de l'internet existe.
412 12 Patrice Nadeau
413 1 Patrice Nadeau
h3. « Proxy » sur le serveur Apache
414
415 17 Patrice Nadeau
Voir l'article [[guides_opensuse:apache#Serveurs virtuels]] pour la redirection.
416 1 Patrice Nadeau
417 16 Patrice Nadeau
h3. Configurer Drupal
418 17 Patrice Nadeau
419
Seulement nécessaire si la redirection est faite vers un autre serveur.
420 12 Patrice Nadeau
421 13 Patrice Nadeau
>Sans cette étape, le contenu des pages risque de mal s'afficher à partir de l'internet.
422 9 Patrice Nadeau
423 24 Patrice Nadeau
Dans le fichier _sites/default/settings.php_ modifier la ligne *$base_url*
424 30 Patrice Nadeau
Ex. :
425
<pre><code class="php">
426 31 Patrice Nadeau
$base_url = 'http://drupal.domain.tld';
427 1 Patrice Nadeau
</code></pre>
428 31 Patrice Nadeau
> Ne pas ajouter de « slash » à la fin.