Projet

Général

Profil

Wiki » Historique » Version 39

Patrice Nadeau, 2015-08-13 09:05

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 3 Patrice Nadeau
* _username_ : nom voulu pour l’usager MySQL
46
* _password_ : mot de passe voulu pour l’usager MySQL
47
48
À partir du serveur :
49
> root est l’usager « root » de MySQL
50 36 Patrice Nadeau
51
Création de la base de données
52 1 Patrice Nadeau
<pre><code class="bash">
53 37 Patrice Nadeau
mysqladmin -u root -p create database
54 3 Patrice Nadeau
</code></pre>
55 1 Patrice Nadeau
56 36 Patrice Nadeau
Délégation des droits et création de l'usager pour la base de données
57
<pre><code class="bash">
58 38 Patrice Nadeau
mysql -u root -p
59 36 Patrice Nadeau
</code></pre>
60
61 20 Patrice Nadeau
Inscrire les commandes SQL suivantes :
62 1 Patrice Nadeau
<pre><code class="sql">
63 39 Patrice Nadeau
create database drupal_db character set utf8;
64
create user 'username'@'localhost' identified by 'password';
65
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES, CREATE TEMPORARY TABLES ON drupal_db.* TO 'username'@'localhost' IDENTIFIED BY 'password';
66 20 Patrice Nadeau
COMMIT;
67 3 Patrice Nadeau
quit;
68
</code></pre>
69
70
h2. Installation de Drupal
71
72 34 Patrice Nadeau
> Les fichiers sont installés dans */srv/www/htdocs/drupal*
73 3 Patrice Nadeau
74
À partir d’un navigateur web, allez sur le site https://drupal.org/project/drupal.
75
Choisir le fichier « tar.gz » et copier le lien pour l’insérer dans la commande _wget_ plus bas.
76
À partir du serveur :
77 21 Patrice Nadeau
> Exemple avec la version 7.38
78 3 Patrice Nadeau
<pre><code class="bash">
79
cd /srv/www/htdocs
80 21 Patrice Nadeau
wget http://ftp.drupal.org/files/projects/drupal-7.38.tar.gz
81 3 Patrice Nadeau
tar xvf drupal*.tar.gz
82 22 Patrice Nadeau
rm drupal*.tar.gz
83 21 Patrice Nadeau
mv drupal-7.38 drupal
84 3 Patrice Nadeau
cd drupal
85
cp sites/default/default.settings.php sites/default/settings.php
86
chmod 0777 sites/default sites/default/settings.php
87
</code></pre>
88
89 33 Patrice Nadeau
Créer le fichier _/etc/apache2/vhosts.d/vhost.conf_
90 23 Patrice Nadeau
<pre><code class="bash">
91
<VirtualHost *:80>
92
    # La ligne suivante est nécessaire seulement si plusieurs site web son présents sur le même serveur.
93
    ServerName drupal.yourdomain.com
94
    DocumentRoot /srv/www/htdocs/drupal
95
96
    <Directory "/srv/www.htdocs/drupal">
97
        Options Indexes ExecCGI FollowSymLinks
98
        AllowOverride None
99
        Order deny,allow
100
        Require all granted
101
    </Directory>
102
</VirtualHost>
103
</code></pre>
104
105 3 Patrice Nadeau
À partir d’un navigateur web : http://server/drupal
106
107
h3. Sécurité
108
> Le fichier *sites/default/settings.php* contient les noms de la BD, de l’usager et de son mot de passe en texte.
109
110
Changer les droits des fichier et repertoires :
111
<pre><code class="bash">
112
chmod 0755 sites/default
113
chmod 0444 sites/default/settings.php
114
</code></pre>
115
116
h2. Personnalisation
117
118
h3. Logo
119
120
Copier un logo (32x32 pixels) dans le répertoire *sites/default/files*.
121
À partir de la page web, Administration, Appearance
122
Dans le thème par défaut, choisir Settings, TOGGLE DISPLAY
123
Sélectionner Logo, Site Name, LOGO IMAGE SETTINGS, Path to custom logo
124
Entrer le nom du logo
125
126
h3. Date local au lieu de UTC
127
128
Dans le fichier */etc/php5/apache2/php.ini* (Date section)
129
<pre><code class="bash">
130
date.timezone =’America/New_York’
131
</code></pre>
132
133
Relancer apache
134
135
h3. Type de fichier permis
136
137
A partir de Drupal Management, Administration > Structure > Content types
138
#  Choisir le type de contenu
139
#  Choisir _Edit_ pour le _FIELD TYPE_ *File*
140
141
h2. Modules supplémentaires
142
143
h3. Gallery Formater
144
145
Module pour la présentation de photos.
146
147
Sélectionner le fichier à partir de http://drupal.org/project/galleryformatter
148
Installer en mode manuel (voir la section précédente)
149
A partir de Drupal : Management, Administration, Modules 
150
* Sélectionner le module et sauvegarder
151
152
h4. Créer un nouveau type de contenu
153
154
Administration, Structure, Contents types, Gallery, onglet *MANAGE FIELDS*
155
* Ajouter un champ de type *Image*
156
Éditer le champ et dans la section *Image field settings* choisir *unlimited* pour le nombre de valeurs
157
158
Administration, Structure, Contents types, Gallery, onglet *MANAGE DISPLAY*
159
* Pour le champ _Image_, choisir le format *JQuery Gallery*
160
161
h3. GeSHi Filter
162
163
Modules d’affichage de code
164
Ce module est basé sur GeSHi et supporte plus de 200 langages.
165
> Ne fonctionne pas avec avec les éditeurs de type WYSIWYG.
166
167
3 solutions existent pour contourner ce problème :
168
* L’utilisation de Wysiwyg Geshi
169
** Je ne l’ais pas essayé.
170
* La définition d’un nouveau type de format texte sans éditeur
171
* La définition d’un nouveau type de champ à ajouter dans les documents
172
173
h4. Installation
174
175
A partir du serveur :
176
<pre><code class="bash">
177
cd /srv/www/htdocs/drupal/modules
178
wget http://ftp.drupal.org/files/projects/libraries-7.x-2.2.tar.gz
179
tar -xvf libraries-7.x-2.2.tar.gz
180
rm libraries-7.x-2.2.tar.gz
181
#
182
wget http://ftp.drupal.org/files/projects/geshifilter-7.x-1.2.tar.gz
183
tar xvf geshifilter-7.x-1.2.tar.gz
184
rm geshifilter-7.x-1.2.tar.gz
185
#
186
cd ../sites/all/librairies
187
# La version doit etre 1.0.x (la version 1.1.x ne fonctionneras pas
188
wget http://sourceforge.net/projects/geshi/files/geshi/GeSHi%201.0.8.11/GeSHi-1.0.8.11.tar.gz
189
tar xvf GeSHi-1.0.8.11.tar.gz
190
rm GeSHi-1.0.8.11.tar.gz
191
</code></pre>
192
193
Dans la gestion des modules (Home, Administration, Modules), activer
194
* Filters
195
** GeSHi field
196
** GeSHi Filter
197
* Libraries
198
199
Dans la page d’administration, sélectionner l’onglet INDEX, l’option GeSHi Filter apparaitra.
200
* GENERAL SETTINGS
201
Les option pour afficher le numéro de ligne peux être choisis ainsi que des options plus avancées
202
* LANGUAGES
203
Activer/désactiver seulement les langages nécessaires.
204
S’assurer d’avoir des «tags» de définis pour chaque langage.
205
* FILTER CONFLICTS
206
Vérifier qu’il n’y a pas de conflit.
207
208
Dans la page d’administration, Configuration, Content authoring, Text formats.
209
Choisir Full HTML, activer le filtre GeSHi.
210
Déplacer l’ordre de traitement de ce filtre en dernier.
211
212
h4. Nouveau format texte
213
214
Création du nouveau format texte sans éditeur associé.
215
Home » Administration » Configuration » Content authoring
216
* Text formats
217
Ajouter un format texte Code
218
** Roles Admin
219
anonymous user
220
authenticated user
221
** Enabled filters GeSHi
222
* Wysiwyg profiles
223
S’assurer que le format Code n’as pas d’éditeur associé.
224
225
h4. Nouveau type de champ
226
227
Création d’un nouveau champ.
228
Administration » Structure
229
Choisir le type de contenu et manage fields.
230
Ajouter une nouveau champ _Code_ de type *GeSHi*.
231
Un écran d’information sur le champ apparaitra. On peux y définir le langages par defaut
232
et le nom de champ disponibles.
233
Répéter pour les autres type de contenu, si nécessaire.
234
235
h2. Maintenance
236
237
h3. Copie de sécurité
238
239
Faire une copie des fichiers et de la bd :
240
<pre><code class="bash">
241
cd /srv/www/htdocs
242
mysqldump -u username -p database > drupal.mysql
243
tar czf drupalbackup.tgz drupal.mysql drupal/
244
</code></pre>
245
246
h3. Récupération d’une copie de sécurité
247
248
<pre><code class="bash">
249
cd /srv/www/htdocs
250
tar xf drupalbackup.tgz
251
mysql -u root -p < drupal.mysql
252
</code></pre>
253
254 25 Patrice Nadeau
Remettre les permissions
255
<pre><code class="bash">
256 27 Patrice Nadeau
chmod 0755 /srv/www/htdocs/drupal/sites/default
257 29 Patrice Nadeau
chmod -R 0777 /srv/www/htdocs/drupal/sites/default/files
258 25 Patrice Nadeau
</code></pre>
259
260 3 Patrice Nadeau
h3. Mise à jour
261
262
Mettre le site en mode maintenance (Management, Administration, Configuration, Developement, Maintenance mode)
263
À partir du serveur
264
<pre><code class="bash">
265
cd /srv/www/htdocs
266
wget http://ftp.drupal.org/files/projects/drupal-x.xx.tar.gz
267
tar -xvf drupal-*.tar.gz
268 5 Patrice Nadeau
cp -R drupal-x.y/* drupal-x.y/.htaccess drupal
269
rm -r drupal-x.y
270
rm drupal-x.xx.tar.gz
271 3 Patrice Nadeau
</code></pre>
272
273 28 Patrice Nadeau
Se brancher sur la page web http://server/update.php
274 3 Patrice Nadeau
Remettre en mode en ligne
275
276
h3. Mise à jour des modules
277
278
Mode manuel (sans FTP)
279
À partir du serveur
280
* Télécharger dans le dossier sites/all/modules
281
* Décompresser
282
283
À partir d’un navigateur web : http://server/drupal/update.php
284
285 26 Patrice Nadeau
h2. Bogues
286 3 Patrice Nadeau
287 26 Patrice Nadeau
h3. Configuration du module Image (core)
288 3 Patrice Nadeau
289
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146
290
Editer le fichier *drupal/modules/images.image.install*, ligne 231
291
<pre><code class="BASH">
292
# ligne en probleme
293
db_create_table(’image_effect’, $schema[’image_effects’]);
294
# remplacer par
295
db_create_table(’image_effects’, $schema[’image_effects’]);
296
</code></pre>
297
298
Arrêter Apache
299
<pre><code class="bash">
300
systemctl stop apache2.service
301
</code></pre>
302
303
Lancer MySQL
304
<pre><code class="bash">
305
mysql -u
306
</code></pre>
307
308
Changer le nom de la table
309
<pre><code class="sql">
310
use drupal;
311
rename table image_effect to image_effects;
312
quit;
313
</code></pre>
314
315
Relancer apache
316
<pre><code class="bash">
317
systemctl start apache2.service
318
</code></pre>
319 6 Patrice Nadeau
320 18 Patrice Nadeau
h2. Accès à partir d'Internet
321 7 Patrice Nadeau
322 9 Patrice Nadeau
h3. NAT dans le pare-feu 
323 1 Patrice Nadeau
324
> Cette étape dépens du pare-feu utilisé.
325 9 Patrice Nadeau
326 1 Patrice Nadeau
Il s'agit de rediriger le port 80 externe vers le port 80 interne.
327 19 Patrice Nadeau
Cette configuration est fort probablement déjà en place si un serveur web accessible de l'internet existe.
328 12 Patrice Nadeau
329 1 Patrice Nadeau
h3. « Proxy » sur le serveur Apache
330
331 17 Patrice Nadeau
Voir l'article [[guides_opensuse:apache#Serveurs virtuels]] pour la redirection.
332 1 Patrice Nadeau
333 16 Patrice Nadeau
h3. Configurer Drupal
334 17 Patrice Nadeau
335
Seulement nécessaire si la redirection est faite vers un autre serveur.
336 12 Patrice Nadeau
337 13 Patrice Nadeau
>Sans cette étape, le contenu des pages risque de mal s'afficher à partir de l'internet.
338 9 Patrice Nadeau
339 24 Patrice Nadeau
Dans le fichier _sites/default/settings.php_ modifier la ligne *$base_url*
340 30 Patrice Nadeau
Ex. :
341
<pre><code class="php">
342 31 Patrice Nadeau
$base_url = 'http://drupal.domain.tld';
343 1 Patrice Nadeau
</code></pre>
344 31 Patrice Nadeau
> Ne pas ajouter de « slash » à la fin.