Projet

Général

Profil

Competences techniques apache et drupal » Historique » Version 40

Julien Enselme, 28/03/2015 11:50

1 37 Julien Enselme
Afin de monter des [[Site_local|sites correctement en local]] il est bon de maîtriser les points détaillés ci-après.
2 30 Florent Torregrosa
3 30 Florent Torregrosa
{{>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 8 Julien Enselme
9 33 Julien Enselme
h2. Le nom du service apache
10 8 Julien Enselme
11 8 Julien Enselme
* Pour les distribution basées sur Debian (Ubuntu, Linux Mint,…) : le service s’appelle apache2
12 8 Julien Enselme
* Pour les distributions typées RedHat (Fedora, CentOS,…) : le service s’appelle httpd
13 8 Julien Enselme
14 33 Julien Enselme
h2. Interaction avec les services
15 8 Julien Enselme
16 8 Julien Enselme
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 8 Julien Enselme
18 8 Julien Enselme
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 8 Julien Enselme
20 33 Julien Enselme
h2. Activation des modules Apache
21 8 Julien Enselme
22 8 Julien Enselme
L’activation explicite des modules dépend de votre distributions.
23 8 Julien Enselme
24 33 Julien Enselme
h2. Emplacements des fichiers de configuration
25 8 Julien Enselme
26 8 Julien Enselme
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 9 Julien Enselme
* augmenter sa mémoire dédiée
32 9 Julien Enselme
* 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 9 Julien Enselme
* 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 9 Julien Enselme
 * <code class="php">post_max_size = 32M;</code>
37 9 Julien Enselme
 * <code class="php">upload_max_filesize = 32M;</code>
38 12 Julien Enselme
 * redémarrer apache
39 12 Julien Enselme
* 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 36 Florent Torregrosa
* sudo a2enmod mod_rewrite ou sudo a2enmod 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 20 Julien Enselme
* Savoir où est installé drush : @drush config@
50 20 Julien Enselme
* Dépendances supplémentaires utiles : @sudo apt-get install curl libcurl3 libcurl3-dev php5-curl@
51 20 Julien Enselme
52 20 Julien Enselme
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 38 Julien Enselme
* tout le @drupal7@ sauf le dossier @sites@
70 38 Julien Enselme
* dans @sites/@ il faut ne prendre que le dossier default et le dossier du site qui nous concerne.
71 40 Julien Enselme
* 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). Un script existe source:other-scripts/d7-sync.sh (et sa dépendance source:other-scripts/modify-settings.py), sans garantie de fonctionnement.
72 1 Florent Torregrosa
73 23 Julien Enselme
 * sur sa machine : se faire un dossier d6 et un dossier d7
74 23 Julien Enselme
 * _Exemple pour le site des annales, à apapter_ :
75 14 Julien Enselme
<pre>
76 14 Julien Enselme
 <code>cd d6</code>
77 38 Julien Enselme
  <code>rsync -lr --exclude sites assos@sas1.centrale-marseille.fr:drupal7/* .</code>
78 14 Julien Enselme
  <code>mkdir sites</code>
79 14 Julien Enselme
  <code>cd sites</code>
80 38 Julien Enselme
  <code>rsync -lr assos@sas1.centrale-marseille.fr:drupal7/sites/default .</code>
81 38 Julien Enselme
  <code>rsync -lr assos@sas1.centrale-marseille.fr:drupal7/sites/assos.centrale-marseille.fr.annales .</code> (étape longue)
82 14 Julien Enselme
</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 34 Julien Enselme
90 15 Julien Enselme
 * exporter
91 15 Julien Enselme
 * options personnalisées
92 15 Julien Enselme
 * choisir que les tables qui vous intéressent
93 15 Julien Enselme
 * laisser les autres options
94 15 Julien Enselme
 * enregistrer
95 15 Julien Enselme
 * ça enregistre dans votre dossier de téléchargements sur votre machine
96 1 Florent Torregrosa
97 33 Julien Enselme
h2. Avec drush
98 1 Florent Torregrosa
99 15 Julien Enselme
Indispensable car parfois le fichier téléchargé par phpmyadmin est trop gros et dépasse la limite autorisée.
100 15 Julien Enselme
101 15 Julien Enselme
# sur le sas, pour le site des annales par exemple :
102 15 Julien Enselme
<pre>
103 15 Julien Enselme
<code>dump_site annales</code>
104 15 Julien Enselme
<code>cd Desktop/dump_individuels</code>
105 15 Julien Enselme
</pre>
106 15 Julien Enselme
*ou si le site est dans une base de données séparée :*
107 15 Julien Enselme
<pre>
108 15 Julien Enselme
<code>cd DOSSIER DU SITE</code>
109 15 Julien Enselme
<code>drush sql-dump > fichier.sql</code>
110 15 Julien Enselme
</pre>
111 15 Julien Enselme
# sur sa machine :
112 15 Julien Enselme
<pre>scp assos@sas1.centrale-marseille.fr:Desktop/dump_individuels/annalesDATE .</pre>
113 1 Florent Torregrosa
114 24 Julien Enselme
Il existe peut-être une commande drush qui fait tout. À creuser.
115 24 Julien Enselme
116 33 Julien Enselme
h1. Monter un site en local
117 1 Florent Torregrosa
118 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é)
119 25 Julien Enselme
# Télécharger les fichiers et la base de donnée du site en question
120 39 Julien Enselme
# Injecter la dbb en local (utiliser le phpmyadmin en local ou @mysql -u root -pmotdepasse nomdelabase < fichier.sql@ ou @dursh sql-cli < fichier.sql@ ou en un coup @drush @sitedepart sql-dump | drush @sitearrive sql-cil@)
121 25 Julien Enselme
# Modifier le settings.php du site en question pour donner les informations de connection mysql et modifier $base_url
122 25 Julien Enselme
# Pour aller plus vite, renommer le dossier du site en default
123 25 Julien Enselme
# Désactiver le mode maintenance @drush vset maintenance_mode 0@ et les urls simplifiées si besoin @drush vset clean_url 0@
124 25 Julien Enselme
# Activer éventuellement les rapports d’erreurs @drush vset error_level NB@
125 25 Julien Enselme
# Vider les caches
126 1 Florent Torregrosa
127 33 Julien Enselme
h1. Installer le script drush de mise à jour
128 1 Florent Torregrosa
129 13 Julien Enselme
* suivre la procédure d’installation donnée "ici":http://drupal.org/project/drush_sup
130 1 Florent Torregrosa
* critère de validation : la commande suivante marche : drush sup
131 1 Florent Torregrosa
132 33 Julien Enselme
h1. Exécuter correctement le script de mise à jour
133 1 Florent Torregrosa
134 1 Florent Torregrosa
* lire la doc de drush sup
135 1 Florent Torregrosa
* exécuter drush sup avec les bons arguments
136 7 Julien Enselme
137 33 Julien Enselme
h1. Alias drush
138 7 Julien Enselme
139 32 Julien Enselme
Voir la [[Drush#Les-alias-drush|section]] correspondante dans la page traitant de Drush.
140 1 Florent Torregrosa
141 3 Florent Torregrosa
h1. Annexe : Nom de domaine
142 1 Florent Torregrosa
143 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@.
144 26 Julien Enselme
145 26 Julien Enselme
{{tip(Ne pas oublier de relancer apache.)}}
146 1 Florent Torregrosa
147 3 Florent Torregrosa
h1. Annexe : Vhosts
148 1 Florent Torregrosa
149 28 Julien Enselme
Exemple : créer le domaine titi.local
150 28 Julien Enselme
151 1 Florent Torregrosa
h2. Pour les distributions basées sous Debian
152 1 Florent Torregrosa
153 28 Julien Enselme
* Dans /etc/apache2/sites-available/ créer un fichier titi. Le contenu de titi est :
154 28 Julien Enselme
155 1 Florent Torregrosa
<pre>
156 1 Florent Torregrosa
<VirtualHost *:80>
157 28 Julien Enselme
       ServerAdmin webmaster@localhost
158 28 Julien Enselme
       ServerName titi.local
159 28 Julien Enselme
       ServerAlias titi.local
160 1 Florent Torregrosa
161 28 Julien Enselme
       DocumentRoot /chemin/dossier_site
162 1 Florent Torregrosa
163 28 Julien Enselme
       <Directory /chemin/dossier_site/>
164 28 Julien Enselme
               Options Indexes FollowSymLinks MultiViews
165 28 Julien Enselme
               AllowOverride All
166 28 Julien Enselme
               Order allow,deny
167 28 Julien Enselme
               allow from all
168 28 Julien Enselme
       </Directory>
169 1 Florent Torregrosa
170 28 Julien Enselme
       ErrorLog ${APACHE_LOG_DIR}/titi.error.log
171 1 Florent Torregrosa
172 28 Julien Enselme
       # Possible values include: debug, info, notice, warn, error, crit,
173 28 Julien Enselme
       # alert, emerg.
174 28 Julien Enselme
       LogLevel warn
175 1 Florent Torregrosa
176 28 Julien Enselme
       CustomLog ${APACHE_LOG_DIR}/titi.access.log combined
177 1 Florent Torregrosa
</VirtualHost>
178 1 Florent Torregrosa
</pre>
179 28 Julien Enselme
180 28 Julien Enselme
* Créer le fichier test.html dans /chemin/dossier_site  et mettre dedans <pre><h1>TITI</h1></pre>
181 28 Julien Enselme
* Activer le site : @sudo a2ensite titi@
182 28 Julien Enselme
* *ou*
183 28 Julien Enselme
* 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)
184 28 Julien Enselme
185 28 Julien Enselme
 * <code>cd /etc/apache2/sites-enabled/</code>
186 28 Julien Enselme
 * <code>ln -s ../sites-available/titi .</code>
187 28 Julien Enselme
188 28 Julien Enselme
* Ajouter l’entrée titi.local dans le fichier /etc/hosts
189 1 Florent Torregrosa
<pre>
190 28 Julien Enselme
127.0.0.1        titi.local
191 1 Florent Torregrosa
</pre>
192 1 Florent Torregrosa
193 28 Julien Enselme
* Redémarrer apache : <code>sudo service apache2 restart</code>
194 28 Julien Enselme
* Consulter  titi.local/test.html
195 28 Julien Enselme
196 28 Julien Enselme
h2. Pour Fedora et les distributions basées sur RHEL (CentOS, Scientific Linux…)
197 28 Julien Enselme
198 35 Julien Enselme
* Dans /etc/httpd/conf.d/ créer un fichier titi.conf. Le contenu de titi est :
199 28 Julien Enselme
200 1 Florent Torregrosa
<pre>
201 28 Julien Enselme
<VirtualHost *:80>
202 28 Julien Enselme
       ServerAdmin webmaster@localhost
203 28 Julien Enselme
       ServerName titi.local
204 28 Julien Enselme
       ServerAlias titi.local
205 28 Julien Enselme
206 28 Julien Enselme
       DocumentRoot /chemin/dossier_site
207 28 Julien Enselme
208 28 Julien Enselme
       <Directory /chemin/dossier_site/>
209 28 Julien Enselme
               Options Indexes FollowSymLinks MultiViews
210 28 Julien Enselme
               AllowOverride All
211 28 Julien Enselme
               Order allow,deny
212 28 Julien Enselme
               allow from all
213 28 Julien Enselme
       </Directory>
214 28 Julien Enselme
215 28 Julien Enselme
       # Possible values include: debug, info, notice, warn, error, crit,
216 28 Julien Enselme
       # alert, emerg.
217 28 Julien Enselme
       LogLevel warn
218 28 Julien Enselme
219 28 Julien Enselme
</VirtualHost>
220 4 Florent Torregrosa
</pre>
221 28 Julien Enselme
222 28 Julien Enselme
* Créer le fichier test.html dans /chemin/dossier_site  et mettre dedans <pre><h1>TITI</h1></pre>
223 28 Julien Enselme
* Ajouter l’entrée titi.local dans le fichier /etc/hosts
224 1 Florent Torregrosa
<pre>
225 28 Julien Enselme
127.0.0.1        titi.local
226 1 Florent Torregrosa
</pre>
227 4 Florent Torregrosa
228 28 Julien Enselme
* Redémarrer apache :
229 28 Julien Enselme
230 28 Julien Enselme
 * Fedora >= 15 (basées sur systemd) : @systemctl restart httpd@
231 28 Julien Enselme
 * Fedora < 15, CentOS… <code>service httpd restart</code>
232 28 Julien Enselme
* Consulter  titi.local/test.html
233 28 Julien Enselme
234 4 Florent Torregrosa
h2. Pour Mageia 3
235 4 Florent Torregrosa
236 33 Julien Enselme
* Dans /etc/httpd/conf/sites.d/ créer un fichier _nom_du_fichier.conf_ dont le contenu est :
237 1 Florent Torregrosa
<pre>
238 29 Florent Torregrosa
<VirtualHost *:80>
239 29 Florent Torregrosa
  ServerAdmin webmaster@localhost
240 4 Florent Torregrosa
241 29 Florent Torregrosa
  ServerAlias alias_du_site_dans_le_ficher_hosts
242 4 Florent Torregrosa
243 29 Florent Torregrosa
  DocumentRoot /chemin/dossier_site
244 29 Florent Torregrosa
  <Directory /chemin/dossier_site>
245 29 Florent Torregrosa
    Options FollowSymLinks Includes ExecCGI MultiViews
246 29 Florent Torregrosa
    AllowOverride All
247 29 Florent Torregrosa
    Order allow,deny
248 29 Florent Torregrosa
    allow from all
249 29 Florent Torregrosa
    Satisfy any
250 29 Florent Torregrosa
    deny from none
251 29 Florent Torregrosa
  </Directory>
252 4 Florent Torregrosa
253 29 Florent Torregrosa
  ErrorLog /var/log/httpd/nom_du_site-error.log
254 29 Florent Torregrosa
  CustomLog /var/log/httpd/nom_du_site-access.log combined
255 4 Florent Torregrosa
256 29 Florent Torregrosa
  # Possible values include: debug, info, notice, warn, error, crit,
257 29 Florent Torregrosa
  # alert, emerg.
258 29 Florent Torregrosa
  LogLevel warn
259 29 Florent Torregrosa
</VirtualHost>
260 2 Florent Torregrosa
</pre>
261 1 Florent Torregrosa
262 1 Florent Torregrosa
* créer un dossier (avec un Drupal dedans) appelé dossier_site dans /chemin/
263 1 Florent Torregrosa
* restart apache
264 1 Florent Torregrosa
<pre>
265 29 Florent Torregrosa
sudo systemctl restart httpd.service
266 1 Florent Torregrosa
</pre>
267 1 Florent Torregrosa
268 29 Florent Torregrosa
* consulter  alias_du_site_dans_le_ficher_hosts