Projet

Général

Profil

Wiki » Historique » Version 40

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