Projet

Général

Profil

Wiki » Historique » Version 31

Patrice Nadeau, 2015-06-22 19:14

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