Competences techniques apache et drupal » Historique » Version 34
Julien Enselme, 14/08/2013 17:12
syntaxe
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 | 34 | Julien Enselme | |
90 | 15 | Julien Enselme | * exporter |
91 | * options personnalisées |
||
92 | * choisir que les tables qui vous intéressent |
||
93 | * laisser les autres options |
||
94 | * enregistrer |
||
95 | * ç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 | |||
101 | # sur le sas, pour le site des annales par exemple : |
||
102 | <pre> |
||
103 | <code>dump_site annales</code> |
||
104 | <code>cd Desktop/dump_individuels</code> |
||
105 | </pre> |
||
106 | *ou si le site est dans une base de données séparée :* |
||
107 | <pre> |
||
108 | <code>cd DOSSIER DU SITE</code> |
||
109 | <code>drush sql-dump > fichier.sql</code> |
||
110 | </pre> |
||
111 | # sur sa machine : |
||
112 | <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 | |||
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 | # Télécharger les fichiers et la base de donnée du site en question |
||
120 | # Injecter la dbb en local (utiliser le phpmyadmin en local ou mysql -u root -pmotdepasse nomdelabase < fichier.sql) |
||
121 | # Modifier le settings.php du site en question pour donner les informations de connection mysql et modifier $base_url |
||
122 | # Pour aller plus vite, renommer le dossier du site en default |
||
123 | # Désactiver le mode maintenance @drush vset maintenance_mode 0@ et les urls simplifiées si besoin @drush vset clean_url 0@ |
||
124 | # Activer éventuellement les rapports d’erreurs @drush vset error_level NB@ |
||
125 | # 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 | |||
132 | 33 | Julien Enselme | h1. Exécuter correctement le script de mise à jour |
133 | 1 | Florent Torregrosa | |
134 | * lire la doc de drush sup |
||
135 | * 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 | |||
145 | {{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 | |||
151 | 1 | Florent Torregrosa | h2. Pour les distributions basées sous Debian |
152 | |||
153 | 28 | Julien Enselme | * Dans /etc/apache2/sites-available/ créer un fichier titi. Le contenu de titi est : |
154 | |||
155 | 1 | Florent Torregrosa | <pre> |
156 | <VirtualHost *:80> |
||
157 | 28 | Julien Enselme | ServerAdmin webmaster@localhost |
158 | ServerName titi.local |
||
159 | 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 | Options Indexes FollowSymLinks MultiViews |
||
165 | AllowOverride All |
||
166 | Order allow,deny |
||
167 | allow from all |
||
168 | </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 | # alert, emerg. |
||
174 | LogLevel warn |
||
175 | 1 | Florent Torregrosa | |
176 | 28 | Julien Enselme | CustomLog ${APACHE_LOG_DIR}/titi.access.log combined |
177 | 1 | Florent Torregrosa | </VirtualHost> |
178 | </pre> |
||
179 | 28 | Julien Enselme | |
180 | * Créer le fichier test.html dans /chemin/dossier_site et mettre dedans <pre><h1>TITI</h1></pre> |
||
181 | * Activer le site : @sudo a2ensite titi@ |
||
182 | * *ou* |
||
183 | * 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 | |||
185 | * <code>cd /etc/apache2/sites-enabled/</code> |
||
186 | * <code>ln -s ../sites-available/titi .</code> |
||
187 | |||
188 | * 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 | |||
193 | 28 | Julien Enselme | * Redémarrer apache : <code>sudo service apache2 restart</code> |
194 | * Consulter titi.local/test.html |
||
195 | |||
196 | h2. Pour Fedora et les distributions basées sur RHEL (CentOS, Scientific Linux…) |
||
197 | |||
198 | * Dans /etc/httpd/cond.d/ créer un fichier titi.conf. Le contenu de titi est : |
||
199 | |||
200 | 1 | Florent Torregrosa | <pre> |
201 | 28 | Julien Enselme | <VirtualHost *:80> |
202 | ServerAdmin webmaster@localhost |
||
203 | ServerName titi.local |
||
204 | ServerAlias titi.local |
||
205 | |||
206 | DocumentRoot /chemin/dossier_site |
||
207 | |||
208 | <Directory /chemin/dossier_site/> |
||
209 | Options Indexes FollowSymLinks MultiViews |
||
210 | AllowOverride All |
||
211 | Order allow,deny |
||
212 | allow from all |
||
213 | </Directory> |
||
214 | |||
215 | # Possible values include: debug, info, notice, warn, error, crit, |
||
216 | # alert, emerg. |
||
217 | LogLevel warn |
||
218 | |||
219 | </VirtualHost> |
||
220 | 4 | Florent Torregrosa | </pre> |
221 | 28 | Julien Enselme | |
222 | * Créer le fichier test.html dans /chemin/dossier_site et mettre dedans <pre><h1>TITI</h1></pre> |
||
223 | * 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 | |||
230 | * Fedora >= 15 (basées sur systemd) : @systemctl restart httpd@ |
||
231 | * Fedora < 15, CentOS… <code>service httpd restart</code> |
||
232 | * Consulter titi.local/test.html |
||
233 | |||
234 | 4 | Florent Torregrosa | h2. Pour Mageia 3 |
235 | |||
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 | 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 | <Directory /chemin/dossier_site> |
||
245 | Options FollowSymLinks Includes ExecCGI MultiViews |
||
246 | AllowOverride All |
||
247 | Order allow,deny |
||
248 | allow from all |
||
249 | Satisfy any |
||
250 | deny from none |
||
251 | </Directory> |
||
252 | 4 | Florent Torregrosa | |
253 | 29 | Florent Torregrosa | ErrorLog /var/log/httpd/nom_du_site-error.log |
254 | 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 | # alert, emerg. |
||
258 | LogLevel warn |
||
259 | </VirtualHost> |
||
260 | 2 | Florent Torregrosa | </pre> |
261 | 1 | Florent Torregrosa | |
262 | * créer un dossier (avec un Drupal dedans) appelé dossier_site dans /chemin/ |
||
263 | * restart apache |
||
264 | <pre> |
||
265 | 29 | Florent Torregrosa | sudo systemctl restart httpd.service |
266 | 1 | Florent Torregrosa | </pre> |
267 | |||
268 | 29 | Florent Torregrosa | * consulter alias_du_site_dans_le_ficher_hosts |