Projet

Général

Profil

Competences techniques apache et drupal » Historique » Version 33

Julien Enselme, 02/08/2013 17:30
Correction des niveaux de titres

1 33 Julien Enselme
Afin de monter des sites correctement en local il est bon de maîtriser les points détaillés ci-après.
2 30 Florent Torregrosa
3
{{>toc}}
4 1 Florent Torregrosa
5 33 Julien Enselme
h1. Différences majeures entre les distributions
6 1 Florent Torregrosa
7 8 Julien Enselme
Bien que parfois très semblables, les distributions GNU/Linux diffèrent dans leur fonctionnement. Afin de bien comprendre la suite de ce document et d’éviter quelques incompréhensions, nous proposons une liste des différences majeures et des points principaux à adapter. La liste de distribution donnée dans chaque type n’est aucunement exhaustive, tout comme la liste des points de différences.
8
9 33 Julien Enselme
h2. Le nom du service apache
10 8 Julien Enselme
11
* Pour les distribution basées sur Debian (Ubuntu, Linux Mint,…) : le service s’appelle apache2
12
* Pour les distributions typées RedHat (Fedora, CentOS,…) : le service s’appelle httpd
13
14 33 Julien Enselme
h2. Interaction avec les services
15 8 Julien Enselme
16
Historiquement les distributions utilisaient le service init pour démarrer et la commande <code>service</code> pour interragir avec les services de la façon suivante : <code>service apache2 restart</code>. Cela est toujours le cas sur Debian.
17
18
De plus en plus de distributions (Fedora, Mageia, OpenSUSE,…) utilisent de nos jours systemd qui gèrent aussi les services via la commande <code>systemctl</code> de la façon suivante : <code>systemctl restart httpd</code>. La commande <code>service</code> est dans la plupart des cas toujours opérationnelle pour des raisons de compatibilités.
19
20 33 Julien Enselme
h2. Activation des modules Apache
21 8 Julien Enselme
22
L’activation explicite des modules dépend de votre distributions.
23
24 33 Julien Enselme
h2. Emplacements des fichiers de configuration
25 8 Julien Enselme
26
Suivant votre distribution l’emplacement des fichiers de configuration peut varier. Il y a une constante toute fois : ils sont souvent dans /etc/NOM_DU_SERVICE.
27 1 Florent Torregrosa
28 33 Julien Enselme
h1. Installer et configurer Apache, phpmyadmin
29 7 Julien Enselme
30 9 Julien Enselme
* savoir installer un serveur apache et phpmyadmin (dépend de votre système)
31
* augmenter sa mémoire dédiée
32
* avoir drush d'installer (peut-être présent dans les dépôts de votre distributions) et savoir où il est installé : which drush
33
* augmenter la taille maximale des fichiers pouvant être importés dans phpmyadmin (dans le(s) php.ini, la méthode suivante est basée sur les systèmes basés sur debian. À adapter pour votre système.). Il faut trouver et modifier les lignes suivantes dans /etc/php5/apache2/php.ini et /etc/php5/cli/php.ini
34 7 Julien Enselme
35 9 Julien Enselme
 * <code class="php">memory_limit = 512M;</code>
36
 * <code class="php">post_max_size = 32M;</code>
37
 * <code class="php">upload_max_filesize = 32M;</code>
38 12 Julien Enselme
 * redémarrer apache
39
* savoir recharger la configuration d’apache et le redémarrer : <code class="bash">service apache2 reload</code> et <code class="bash">service apache2 restart</code>
40 7 Julien Enselme
41 33 Julien Enselme
h1. Savoir activer des modules apache
42 1 Florent Torregrosa
43
* sudo a2enmod mod_rewrite
44 7 Julien Enselme
* sudo a2ensite NOM_DU_SITE
45 1 Florent Torregrosa
46 33 Julien Enselme
h1. Savoir installer drush et les bibliothèques php
47 1 Florent Torregrosa
48 20 Julien Enselme
* Si drush est fourni dans les dépôts de votre distribution, l’installer depuis ceux-ci. Si votre distribution fourni également drupal, il peut être intéressant de l’installer également pour avoir la liste des dépendances. L’installation de drupal via drush est la méthode recommandée.
49
* Savoir où est installé drush : @drush config@
50
* Dépendances supplémentaires utiles : @sudo apt-get install curl libcurl3 libcurl3-dev php5-curl@
51
52
Pour plus d’information sur Drush, consulter la [[Drush|page dédiée]].
53 1 Florent Torregrosa
54 33 Julien Enselme
h1. Pouvoir utiliser un nom de domaine en local
55 1 Florent Torregrosa
56 21 Julien Enselme
Quand je vais sur assos.centrale-marseille.fr, c’est mon site local que je veux voir et non pas celui de centrale. Il suffit de modifier le fichier hosts, situé dans /etc en ajoutant la ligne
57 7 Julien Enselme
<pre>127.0.0.1  assos.centrale-marseille.fr</pre>
58 11 Julien Enselme
59 21 Julien Enselme
Constater qu’en allant sur assos.centrale-marseille.fr on tombe sur la page par defaut de notre apache (la page sur laquelle on tombe dépend de la configuration d’apache). On peut vérifier avec le module Firefox _show ip_ qui donne l’IP du site sur lequel on est. Si l’IP affichée est 127.0.0.1, c’est bon.
60 7 Julien Enselme
61 33 Julien Enselme
h1. Pouvoir créer des vhost
62 1 Florent Torregrosa
63 27 Julien Enselme
La méthode est donnée en annexe [[Competences_techniques_apache_et_drupal#Annexe-Vhosts|ici]]
64 7 Julien Enselme
65 33 Julien Enselme
h1. Pouvoir reproduire en local un site en particulier
66 1 Florent Torregrosa
67 23 Julien Enselme
Pouvoir télécharger en local juste le minimum de fichiers. Le minimum c’est :
68 1 Florent Torregrosa
69 23 Julien Enselme
* tout le htmltest sauf le dossier sites
70
* dans sites/ il faut ne prendre que le dossier default et le dossier du site qui nous concerne.
71
* pouvoir se démerder (script ou suite de ligne de commande ou …) pour pouvoir faire ça efficacement (une suite de commande scp ou rsync n’est pas une mauvaise idée). Jenselme avait commencé un script qui fonctionne presque pour la réplication des sites en local et possède des capacités de réplication sur le réseau. Idée donnée par dgeo à jenselme : utiliser drush avec entre autre @drush rsync@. À creuser.
72 1 Florent Torregrosa
73 23 Julien Enselme
 * sur sa machine : se faire un dossier d6 et un dossier d7
74
 * _Exemple pour le site des annales, à apapter_ :
75 14 Julien Enselme
<pre>
76
 <code>cd d6</code>
77
  <code>rsync -lr --exclude sites assos@sas1.centrale-marseille.fr:html/* .</code>
78
  <code>mkdir sites</code>
79
  <code>cd sites</code>
80
  <code>rsync -lr assos@sas1.centrale-marseille.fr:html/sites/default .</code>
81
  <code>rsync -lr assos@sas1.centrale-marseille.fr:html/sites/assos.centrale-marseille.fr.annales .</code> (étape longue)
82
</pre>
83 7 Julien Enselme
84 33 Julien Enselme
h1. Pouvoir télécharger la base de donnée d’un site en particulier
85 2 Florent Torregrosa
86 33 Julien Enselme
h2. Avec phpmyadmin
87 1 Florent Torregrosa
88 15 Julien Enselme
Dans phpmyadmin :
89
 * exporter
90
 * options personnalisées
91
 * choisir que les tables qui vous intéressent
92
 * laisser les autres options
93
 * enregistrer
94
 * ça enregistre dans votre dossier de téléchargements sur votre machine
95 1 Florent Torregrosa
96 33 Julien Enselme
h2. Avec drush
97 1 Florent Torregrosa
98 15 Julien Enselme
Indispensable car parfois le fichier téléchargé par phpmyadmin est trop gros et dépasse la limite autorisée.
99
100
# sur le sas, pour le site des annales par exemple :
101
<pre>
102
<code>dump_site annales</code>
103
<code>cd Desktop/dump_individuels</code>
104
</pre>
105
*ou si le site est dans une base de données séparée :*
106
<pre>
107
<code>cd DOSSIER DU SITE</code>
108
<code>drush sql-dump > fichier.sql</code>
109
</pre>
110
# sur sa machine :
111
<pre>scp assos@sas1.centrale-marseille.fr:Desktop/dump_individuels/annalesDATE .</pre>
112 1 Florent Torregrosa
113 24 Julien Enselme
Il existe peut-être une commande drush qui fait tout. À creuser.
114
115 33 Julien Enselme
h1. Monter un site en local
116 1 Florent Torregrosa
117 25 Julien Enselme
# Monter un seul vhost pour assos.centrale-marseille.fr (il sera valable pour tous les sous sites, il ne sera jamais édité)
118
# Télécharger les fichiers et la base de donnée du site en question
119
# Injecter la dbb en local (utiliser le phpmyadmin en local ou mysql -u root -pmotdepasse nomdelabase < fichier.sql)
120
# Modifier le settings.php du site en question pour donner les informations de connection mysql et modifier $base_url
121
# Pour aller plus vite, renommer le dossier du site en default
122
# Désactiver le mode maintenance @drush vset maintenance_mode 0@ et les urls simplifiées si besoin @drush vset clean_url 0@
123
# Activer éventuellement les rapports d’erreurs @drush vset error_level NB@
124
# Vider les caches
125 1 Florent Torregrosa
126 33 Julien Enselme
h1. Installer le script drush de mise à jour
127 1 Florent Torregrosa
128 13 Julien Enselme
* suivre la procédure d’installation donnée "ici":http://drupal.org/project/drush_sup
129 1 Florent Torregrosa
* critère de validation : la commande suivante marche : drush sup
130
131 33 Julien Enselme
h1. Exécuter correctement le script de mise à jour
132 1 Florent Torregrosa
133
* lire la doc de drush sup
134
* exécuter drush sup avec les bons arguments
135 7 Julien Enselme
136 33 Julien Enselme
h1. Alias drush
137 7 Julien Enselme
138 32 Julien Enselme
Voir la [[Drush#Les-alias-drush|section]] correspondante dans la page traitant de Drush.
139 1 Florent Torregrosa
140 3 Florent Torregrosa
h1. Annexe : Nom de domaine
141 1 Florent Torregrosa
142 26 Julien Enselme
Il est tout à fait possible de faire pointer n’importe quel nom de domaine sur sa machine locale. Normalement, toutes les unix reposent sur le même principe. Il suffit d’ajouter l’entrée suivante dans /etc/hosts (par exemple pour assos) : @127.0.0.1  assos.centrale-marseille.fr@.
143
144
{{tip(Ne pas oublier de relancer apache.)}}
145 1 Florent Torregrosa
146 3 Florent Torregrosa
h1. Annexe : Vhosts
147 1 Florent Torregrosa
148 28 Julien Enselme
Exemple : créer le domaine titi.local
149
150 1 Florent Torregrosa
h2. Pour les distributions basées sous Debian
151
152 28 Julien Enselme
* Dans /etc/apache2/sites-available/ créer un fichier titi. Le contenu de titi est :
153
154 1 Florent Torregrosa
<pre>
155
<VirtualHost *:80>
156 28 Julien Enselme
       ServerAdmin webmaster@localhost
157
       ServerName titi.local
158
       ServerAlias titi.local
159 1 Florent Torregrosa
160 28 Julien Enselme
       DocumentRoot /chemin/dossier_site
161 1 Florent Torregrosa
162 28 Julien Enselme
       <Directory /chemin/dossier_site/>
163
               Options Indexes FollowSymLinks MultiViews
164
               AllowOverride All
165
               Order allow,deny
166
               allow from all
167
       </Directory>
168 1 Florent Torregrosa
169 28 Julien Enselme
       ErrorLog ${APACHE_LOG_DIR}/titi.error.log
170 1 Florent Torregrosa
171 28 Julien Enselme
       # Possible values include: debug, info, notice, warn, error, crit,
172
       # alert, emerg.
173
       LogLevel warn
174 1 Florent Torregrosa
175 28 Julien Enselme
       CustomLog ${APACHE_LOG_DIR}/titi.access.log combined
176 1 Florent Torregrosa
</VirtualHost>
177
</pre>
178 28 Julien Enselme
179
* Créer le fichier test.html dans /chemin/dossier_site  et mettre dedans <pre><h1>TITI</h1></pre>
180
* Activer le site : @sudo a2ensite titi@
181
* *ou*
182
* Ajouter un lien symbolique dans /etc/apache2/sites-enabled qui pointe sur le fichiet titi qui est dans /etc/apache2/sites-available/ pour activer le site (méthode manulle)
183
184
 * <code>cd /etc/apache2/sites-enabled/</code>
185
 * <code>ln -s ../sites-available/titi .</code>
186
187
* Ajouter l’entrée titi.local dans le fichier /etc/hosts
188 1 Florent Torregrosa
<pre>
189 28 Julien Enselme
127.0.0.1        titi.local
190 1 Florent Torregrosa
</pre>
191
192 28 Julien Enselme
* Redémarrer apache : <code>sudo service apache2 restart</code>
193
* Consulter  titi.local/test.html
194
195
h2. Pour Fedora et les distributions basées sur RHEL (CentOS, Scientific Linux…)
196
197
* Dans /etc/httpd/cond.d/ créer un fichier titi.conf. Le contenu de titi est :
198
199 1 Florent Torregrosa
<pre>
200 28 Julien Enselme
<VirtualHost *:80>
201
       ServerAdmin webmaster@localhost
202
       ServerName titi.local
203
       ServerAlias titi.local
204
205
       DocumentRoot /chemin/dossier_site
206
207
       <Directory /chemin/dossier_site/>
208
               Options Indexes FollowSymLinks MultiViews
209
               AllowOverride All
210
               Order allow,deny
211
               allow from all
212
       </Directory>
213
214
       # Possible values include: debug, info, notice, warn, error, crit,
215
       # alert, emerg.
216
       LogLevel warn
217
218
</VirtualHost>
219 4 Florent Torregrosa
</pre>
220 28 Julien Enselme
221
* Créer le fichier test.html dans /chemin/dossier_site  et mettre dedans <pre><h1>TITI</h1></pre>
222
* Ajouter l’entrée titi.local dans le fichier /etc/hosts
223 1 Florent Torregrosa
<pre>
224 28 Julien Enselme
127.0.0.1        titi.local
225 1 Florent Torregrosa
</pre>
226 4 Florent Torregrosa
227 28 Julien Enselme
* Redémarrer apache :
228
229
 * Fedora >= 15 (basées sur systemd) : @systemctl restart httpd@
230
 * Fedora < 15, CentOS… <code>service httpd restart</code>
231
* Consulter  titi.local/test.html
232
233 4 Florent Torregrosa
h2. Pour Mageia 3
234
235 33 Julien Enselme
* Dans /etc/httpd/conf/sites.d/ créer un fichier _nom_du_fichier.conf_ dont le contenu est :
236 1 Florent Torregrosa
<pre>
237 29 Florent Torregrosa
<VirtualHost *:80>
238
  ServerAdmin webmaster@localhost
239 4 Florent Torregrosa
240 29 Florent Torregrosa
  ServerAlias alias_du_site_dans_le_ficher_hosts
241 4 Florent Torregrosa
242 29 Florent Torregrosa
  DocumentRoot /chemin/dossier_site
243
  <Directory /chemin/dossier_site>
244
    Options FollowSymLinks Includes ExecCGI MultiViews
245
    AllowOverride All
246
    Order allow,deny
247
    allow from all
248
    Satisfy any
249
    deny from none
250
  </Directory>
251 4 Florent Torregrosa
252 29 Florent Torregrosa
  ErrorLog /var/log/httpd/nom_du_site-error.log
253
  CustomLog /var/log/httpd/nom_du_site-access.log combined
254 4 Florent Torregrosa
255 29 Florent Torregrosa
  # Possible values include: debug, info, notice, warn, error, crit,
256
  # alert, emerg.
257
  LogLevel warn
258
</VirtualHost>
259 2 Florent Torregrosa
</pre>
260 1 Florent Torregrosa
261
* créer un dossier (avec un Drupal dedans) appelé dossier_site dans /chemin/
262
* restart apache
263
<pre>
264 29 Florent Torregrosa
sudo systemctl restart httpd.service
265 1 Florent Torregrosa
</pre>
266
267 29 Florent Torregrosa
* consulter  alias_du_site_dans_le_ficher_hosts