Projet

Général

Profil

Wiki » Historique » Version 37

Patrice Nadeau, 2015-08-13 08:53

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