Competences techniques apache et drupal » Historique » Version 13
Julien Enselme, 29/05/2013 14:28
1 | 1 | Florent Torregrosa | {{toc}} |
---|---|---|---|
2 | 1 | Florent Torregrosa | |
3 | 7 | Julien Enselme | h1. Compétences techniques apache et drupal |
4 | 1 | Florent Torregrosa | |
5 | 7 | Julien Enselme | h2. 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 | 8 | Julien Enselme | h3. 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 | 8 | Julien Enselme | h3. 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 | 8 | Julien Enselme | h3. 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 | 8 | Julien Enselme | h3. 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 | 7 | Julien Enselme | h2. 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 | 1 | Florent Torregrosa | h2. Savoir ajouter/activer des modules pour le serveur apache (notamment le module pour les url-simplifiées) |
42 | 1 | Florent Torregrosa | |
43 | 1 | Florent Torregrosa | * sudo a2enmod mod_rewrite |
44 | 7 | Julien Enselme | * sudo a2ensite NOM_DU_SITE |
45 | 1 | Florent Torregrosa | |
46 | 1 | Florent Torregrosa | |
47 | 7 | Julien Enselme | h2. Savoir installer drush et les bibliothèques php |
48 | 7 | Julien Enselme | |
49 | 7 | 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. |
50 | 1 | Florent Torregrosa | * savoir où est installé drush : drush config |
51 | 7 | Julien Enselme | * sudo apt-get install curl libcurl3 libcurl3-dev php5-curl |
52 | 1 | Florent Torregrosa | |
53 | 3 | Florent Torregrosa | h2. Pouvoir utiliser un nom de domaine en local |
54 | 1 | Florent Torregrosa | |
55 | 11 | 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 : ajouter la ligne |
56 | 7 | Julien Enselme | <pre>127.0.0.1 assos.centrale-marseille.fr</pre> |
57 | 11 | Julien Enselme | |
58 | 11 | 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 si oui ou non elle a un vhost qui la concerne). On peut vérifier avec le module Firefox _show ip_ qui donne l’IP du site sur lequel on ai. |
59 | 7 | Julien Enselme | |
60 | 1 | Florent Torregrosa | h2. Pouvoir créer des vhost à la pelle |
61 | 1 | Florent Torregrosa | |
62 | 1 | Florent Torregrosa | Exemple : créer le domaine titi.local |
63 | 1 | Florent Torregrosa | |
64 | 1 | Florent Torregrosa | * Pour les distributions basées sur Debian |
65 | 1 | Florent Torregrosa | * Pour Mageia 3 |
66 | 1 | Florent Torregrosa | * Pour Fedora |
67 | 1 | Florent Torregrosa | |
68 | 7 | Julien Enselme | * Exemple : créer deux domaines assos.fun.local et titi.local |
69 | 7 | Julien Enselme | Exemple pour titi.local : |
70 | 7 | Julien Enselme | |
71 | 7 | Julien Enselme | * dans /etc/apache2/sites-available/ créer un fichier titi. Le contenu de titi est : |
72 | 7 | Julien Enselme | |
73 | 7 | Julien Enselme | <pre> |
74 | 7 | Julien Enselme | <VirtualHost *:80> |
75 | 7 | Julien Enselme | ServerAdmin webmaster@localhost |
76 | 7 | Julien Enselme | ServerName titi.local |
77 | 7 | Julien Enselme | ServerAlias titi.local |
78 | 7 | Julien Enselme | |
79 | 7 | Julien Enselme | DocumentRoot /chemin/dossier_site |
80 | 7 | Julien Enselme | |
81 | 7 | Julien Enselme | <Directory /chemin/dossier_site/> |
82 | 7 | Julien Enselme | Options Indexes FollowSymLinks MultiViews |
83 | 7 | Julien Enselme | AllowOverride All |
84 | 7 | Julien Enselme | Order allow,deny |
85 | 7 | Julien Enselme | allow from all |
86 | 7 | Julien Enselme | </Directory> |
87 | 7 | Julien Enselme | |
88 | 7 | Julien Enselme | ErrorLog ${APACHE_LOG_DIR}/titi.error.log |
89 | 7 | Julien Enselme | |
90 | 7 | Julien Enselme | # Possible values include: debug, info, notice, warn, error, crit, |
91 | 7 | Julien Enselme | # alert, emerg. |
92 | 7 | Julien Enselme | LogLevel warn |
93 | 7 | Julien Enselme | |
94 | 7 | Julien Enselme | CustomLog ${APACHE_LOG_DIR}/titi.access.log combined |
95 | 7 | Julien Enselme | </VirtualHost> |
96 | 7 | Julien Enselme | </pre> |
97 | 7 | Julien Enselme | |
98 | 7 | Julien Enselme | * créer le fichier test.html dans /chemin/dossier_site et mettre dedans <pre><h1>TITI</h1></pre> |
99 | 7 | Julien Enselme | * ajouter un lien symbolique dans /etc/apache2/sites-enabled qui pointe sur le fichiet titi qui est dans /etc/apache2/sites-available/ |
100 | 7 | Julien Enselme | |
101 | 7 | Julien Enselme | * <code>cd /etc/apache2/sites-enabled/</code> |
102 | 7 | Julien Enselme | * <code>ln -s ../sites-available/titi .</code> |
103 | 7 | Julien Enselme | * ajouter l’entrée titi.local dans le fichier /etc/hosts |
104 | 7 | Julien Enselme | <pre> |
105 | 7 | Julien Enselme | 127.0.0.1 titi.local |
106 | 7 | Julien Enselme | </pre> |
107 | 7 | Julien Enselme | |
108 | 7 | Julien Enselme | * Redémarrer apache : <code>sudo service apache2 restart</code> |
109 | 7 | Julien Enselme | * Consulter titi.local/test.html |
110 | 7 | Julien Enselme | |
111 | 1 | Florent Torregrosa | h2. Pouvoir reproduire en local un site en particulier |
112 | 1 | Florent Torregrosa | |
113 | 7 | Julien Enselme | h3. Par Florent |
114 | 7 | Julien Enselme | |
115 | 1 | Florent Torregrosa | * pouvoir télécharger en local juste le minimum de fichiers |
116 | 1 | Florent Torregrosa | * le minimum c’est tout le htmltest sauf le dossier sites |
117 | 1 | Florent Torregrosa | * dans sites/ il faut ne prendre que le dossier default et le dossier du site qui nous concerne. |
118 | 1 | Florent Torregrosa | * pouvoir se démerder (script ou suite de ligne de commande ou …) pour pouvoir faire ça efficacement (une suite de commande scp n’est pas une mauvaise idée) |
119 | 1 | Florent Torregrosa | * rsync -lr --exclude nom_fichier_ou_dossier_a_exclure assos@sas1.centrale-marseille.fr:chemin_vers_dossier/* . |
120 | 1 | Florent Torregrosa | * sur sa machine se faire un dossier d6 et un dossier d7 |
121 | 1 | Florent Torregrosa | |
122 | 1 | Florent Torregrosa | * exemple dans d6 : |
123 | 1 | Florent Torregrosa | <pre> |
124 | 1 | Florent Torregrosa | cd d6 |
125 | 1 | Florent Torregrosa | rsync -lr --exclude sites assos@sas1.centrale-marseille.fr:html/* . |
126 | 1 | Florent Torregrosa | mkdir sites |
127 | 1 | Florent Torregrosa | cd sites |
128 | 1 | Florent Torregrosa | rsync -lr assos@sas1.centrale-marseille.fr:html/sites/default . |
129 | 1 | Florent Torregrosa | rsync -lr assos@sas1.centrale-marseille.fr:html/sites/assos.centrale-marseille.fr.annales . (étape longue) |
130 | 1 | Florent Torregrosa | </pre> |
131 | 1 | Florent Torregrosa | |
132 | 7 | Julien Enselme | h3. Par Jenselme |
133 | 7 | Julien Enselme | |
134 | 7 | Julien Enselme | * pouvoir télécharger en local juste le minimum de fichiers. Le minimum c’est : |
135 | 7 | Julien Enselme | |
136 | 7 | Julien Enselme | * tout le htmltest sauf le dossier sites |
137 | 7 | Julien Enselme | * dans sites/ il faut ne prendre que le dossier default et le dossier du site qui nous concerne. |
138 | 7 | 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) |
139 | 7 | Julien Enselme | |
140 | 7 | Julien Enselme | * sur sa machine : se faire un dossier d6 et un dossier d7 |
141 | 7 | Julien Enselme | * <code>cd d6</code> |
142 | 7 | Julien Enselme | * _Exemple pour le site des annales, à apapter_ : <code>rsync -lr --exclude sites assos@sas1.centrale-marseille.fr:html/* .</code> |
143 | 7 | Julien Enselme | * <code>mkdir sites</code> |
144 | 7 | Julien Enselme | * <code>cd sites</code> |
145 | 7 | Julien Enselme | * <code>rsync -lr assos@sas1.centrale-marseille.fr:html/sites/default .</code> |
146 | 7 | Julien Enselme | * <code>rsync -lr assos@sas1.centrale-marseille.fr:html/sites/assos.centrale-marseille.fr.annales .</code> (étape longue) |
147 | 7 | Julien Enselme | |
148 | 1 | Florent Torregrosa | h2. Pouvoir télécharger la base de donnée d’un seul site en particulier |
149 | 2 | Florent Torregrosa | |
150 | 1 | Florent Torregrosa | * savoir faire ça avec phpmyadmin, dans phpmyadmin : |
151 | 1 | Florent Torregrosa | > * exporter |
152 | 1 | Florent Torregrosa | > * options personnalisées |
153 | 1 | Florent Torregrosa | > * choisir que les tables qui vous intéressent |
154 | 1 | Florent Torregrosa | > * laisser les autres options |
155 | 1 | Florent Torregrosa | > * enregistrer |
156 | 1 | Florent Torregrosa | > * ça enregistre dans votre dossier de téléchargements sur votre machine |
157 | 2 | Florent Torregrosa | |
158 | 1 | Florent Torregrosa | * savoir le faire avec drush car parfois le fichier téléchargé par phpmyadmin est trop gros |
159 | 1 | Florent Torregrosa | |
160 | 1 | Florent Torregrosa | > * sur le sas : |
161 | 7 | Julien Enselme | > > <pre>dump_site annales (pour une base de données isolée, se placer dans le dossier du site puis drush sql-dump > nom_du_fichier.sql) |
162 | 1 | Florent Torregrosa | cd Desktop/dump_individuels</pre> |
163 | 4 | Florent Torregrosa | |
164 | 1 | Florent Torregrosa | > * sur sa machine : |
165 | 1 | Florent Torregrosa | > > </pre>@scp assos@sas1.centrale-marseille.fr:Desktop/dump_individuels/annales....</pre> |
166 | 1 | Florent Torregrosa | |
167 | 1 | Florent Torregrosa | h2. Monter un site en local |
168 | 1 | Florent Torregrosa | |
169 | 1 | Florent Torregrosa | * monter un seul vhost pour assos.centrale-marseille.fr (il sera valable pour tous les sous sites, il ne sera jamais édité) |
170 | 1 | Florent Torregrosa | * télécharger les fichiers et la base de donnée du site en question |
171 | 1 | Florent Torregrosa | * injecter la dbb en local (utiliser le phpmyadmin en local ou sudo mysql -u root -pmotdepasse nomdelabase < fichier.sql) |
172 | 7 | Julien Enselme | * modifier le settings.php du site en question pour donner les informations de connection mysql et modifier $base_url |
173 | 7 | Julien Enselme | * pour aller plus vite, renommer le dossier du site en default |
174 | 1 | Florent Torregrosa | |
175 | 13 | Julien Enselme | h2. Installer le script drush de mise à jour |
176 | 1 | Florent Torregrosa | |
177 | 13 | Julien Enselme | * suivre la procédure d’installation donnée "ici":http://drupal.org/project/drush_sup |
178 | 1 | Florent Torregrosa | * critère de validation : la commande suivante marche : drush sup |
179 | 1 | Florent Torregrosa | |
180 | 1 | Florent Torregrosa | h2. Exécuter correctement le script de mise à jour |
181 | 1 | Florent Torregrosa | |
182 | 1 | Florent Torregrosa | * lire la doc de drush sup |
183 | 1 | Florent Torregrosa | * exécuter drush sup avec les bons arguments |
184 | 7 | Julien Enselme | |
185 | 7 | Julien Enselme | h2. Alias drush |
186 | 7 | Julien Enselme | |
187 | 7 | Julien Enselme | |
188 | 7 | Julien Enselme | TODO (dans la doc drush ?) |
189 | 7 | Julien Enselme | installer dom, xml (paquet php) |
190 | 1 | Florent Torregrosa | |
191 | 3 | Florent Torregrosa | h1. Annexe : Nom de domaine |
192 | 1 | Florent Torregrosa | |
193 | 5 | Julien Enselme | Normalement, toutes les unix reposent sur le même principe. Ajouter l’entrée suivante dans /etc/hosts : @127.0.0.1 assos.centrale-marseille.fr@ |
194 | 1 | Florent Torregrosa | |
195 | 3 | Florent Torregrosa | h1. Annexe : Vhosts |
196 | 1 | Florent Torregrosa | |
197 | 1 | Florent Torregrosa | h2. Pour les distributions basées sous Debian |
198 | 1 | Florent Torregrosa | |
199 | 3 | Florent Torregrosa | * Dans /etc/apache2/sites-available/ créer un fichier titi dont le contenu est : |
200 | 3 | Florent Torregrosa | <pre> |
201 | 3 | Florent Torregrosa | <VirtualHost *:80> |
202 | 3 | Florent Torregrosa | ServerAdmin webmaster@localhost |
203 | 3 | Florent Torregrosa | ServerName titi.local |
204 | 3 | Florent Torregrosa | ServerAlias titi.local |
205 | 2 | Florent Torregrosa | |
206 | 3 | Florent Torregrosa | DocumentRoot /chemin/dossier_site |
207 | 1 | Florent Torregrosa | |
208 | 3 | Florent Torregrosa | <Directory /chemin/dossier_site/> |
209 | 3 | Florent Torregrosa | Options Indexes FollowSymLinks MultiViews |
210 | 3 | Florent Torregrosa | AllowOverride All |
211 | 3 | Florent Torregrosa | Order allow,deny |
212 | 3 | Florent Torregrosa | allow from all |
213 | 3 | Florent Torregrosa | </Directory> |
214 | 3 | Florent Torregrosa | |
215 | 3 | Florent Torregrosa | ErrorLog ${APACHE_LOG_DIR}/titi.error.log |
216 | 3 | Florent Torregrosa | |
217 | 3 | Florent Torregrosa | # Possible values include: debug, info, notice, warn, error, crit, |
218 | 3 | Florent Torregrosa | # alert, emerg. |
219 | 3 | Florent Torregrosa | LogLevel warn |
220 | 3 | Florent Torregrosa | |
221 | 3 | Florent Torregrosa | CustomLog ${APACHE_LOG_DIR}/titi.access.log combined |
222 | 3 | Florent Torregrosa | |
223 | 3 | Florent Torregrosa | </VirtualHost> |
224 | 3 | Florent Torregrosa | </pre> |
225 | 3 | Florent Torregrosa | * créer le fichier test.html dans /chemin/dossier_site et mettre dedans @<h1>TITI</h1>@ |
226 | 3 | Florent Torregrosa | * ajouter un lien symbolique dans /etc/apache2/sites-enabled qui pointe sur le fichier titi qui est dans /etc/apache2/sites-available/ : |
227 | 3 | Florent Torregrosa | > * Manuellement : |
228 | 4 | Florent Torregrosa | > <pre> |
229 | 3 | Florent Torregrosa | cd /etc/apache2/sites-enabled/ |
230 | 3 | Florent Torregrosa | ln -s ../sites-available/titi . |
231 | 3 | Florent Torregrosa | </pre> |
232 | 3 | Florent Torregrosa | > * Avec la commande apache : |
233 | 4 | Florent Torregrosa | > <pre> |
234 | 3 | Florent Torregrosa | sudo service a2ensite titi |
235 | 3 | Florent Torregrosa | </pre> |
236 | 3 | Florent Torregrosa | * ajouter l’entrée titi.local dans le fichier /etc/hosts : |
237 | 1 | Florent Torregrosa | <pre> |
238 | 1 | Florent Torregrosa | @127.0.0.1 titi.local@ |
239 | 3 | Florent Torregrosa | </pre> |
240 | 4 | Florent Torregrosa | * restart apache |
241 | 3 | Florent Torregrosa | <pre> |
242 | 4 | Florent Torregrosa | sudo service apache2 restart |
243 | 1 | Florent Torregrosa | </pre> |
244 | 1 | Florent Torregrosa | * consulter titi.local/test.html |
245 | 1 | Florent Torregrosa | |
246 | 1 | Florent Torregrosa | h2. Pour Mageia 3 |
247 | 4 | Florent Torregrosa | |
248 | 4 | Florent Torregrosa | {{warning(la partie pour mageia permet pour l'instant d'atteindre le site via localhost/nom_du_site, pas encore bien connecté avec le fichier Hosts)}} |
249 | 4 | Florent Torregrosa | |
250 | 4 | Florent Torregrosa | * Dans /etc/httpd/conf/sites.d/ créer un fichier nom_du_fichier.conf dont le contenu est : |
251 | 4 | Florent Torregrosa | <pre> |
252 | 4 | Florent Torregrosa | # Drupal configuration |
253 | 4 | Florent Torregrosa | Alias /nom_du_site /chemin/dossier_site |
254 | 4 | Florent Torregrosa | |
255 | 4 | Florent Torregrosa | <Directory /chemin/dossier_site/> |
256 | 4 | Florent Torregrosa | Require local granted |
257 | 4 | Florent Torregrosa | Options -Indexes +FollowSymlinks +Multiviews |
258 | 4 | Florent Torregrosa | AllowOverride None |
259 | 4 | Florent Torregrosa | |
260 | 4 | Florent Torregrosa | # Protect files and directories from prying eyes. |
261 | 4 | Florent Torregrosa | <FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$"> |
262 | 4 | Florent Torregrosa | Order allow,deny |
263 | 4 | Florent Torregrosa | </FilesMatch> |
264 | 4 | Florent Torregrosa | |
265 | 4 | Florent Torregrosa | # Don't show directory listings for URLs which map to a directory. |
266 | 4 | Florent Torregrosa | Options -Indexes |
267 | 4 | Florent Torregrosa | |
268 | 4 | Florent Torregrosa | # Follow symbolic links in this directory. |
269 | 4 | Florent Torregrosa | Options +FollowSymLinks |
270 | 4 | Florent Torregrosa | |
271 | 4 | Florent Torregrosa | # Make Drupal handle any 404 errors. |
272 | 4 | Florent Torregrosa | ErrorDocument 404 /index.php |
273 | 4 | Florent Torregrosa | |
274 | 4 | Florent Torregrosa | # Set the default handler. |
275 | 4 | Florent Torregrosa | DirectoryIndex index.php index.html index.htm |
276 | 4 | Florent Torregrosa | |
277 | 4 | Florent Torregrosa | # Override PHP settings that cannot be changed at runtime. See |
278 | 4 | Florent Torregrosa | # sites/default/default.settings.php and drupal_environment_initialize() in |
279 | 4 | Florent Torregrosa | # includes/bootstrap.inc for settings that can be changed at runtime. |
280 | 4 | Florent Torregrosa | |
281 | 4 | Florent Torregrosa | # PHP 5, Apache 1 and 2. |
282 | 4 | Florent Torregrosa | <IfModule mod_php5.c> |
283 | 4 | Florent Torregrosa | php_flag magic_quotes_gpc off |
284 | 4 | Florent Torregrosa | php_flag magic_quotes_sybase off |
285 | 4 | Florent Torregrosa | php_flag register_globals off |
286 | 4 | Florent Torregrosa | php_flag session.auto_start off |
287 | 4 | Florent Torregrosa | php_value mbstring.http_input pass |
288 | 4 | Florent Torregrosa | php_value mbstring.http_output pass |
289 | 4 | Florent Torregrosa | php_flag mbstring.encoding_translation off |
290 | 4 | Florent Torregrosa | </IfModule> |
291 | 4 | Florent Torregrosa | |
292 | 4 | Florent Torregrosa | # Requires mod_expires to be enabled. |
293 | 4 | Florent Torregrosa | <IfModule mod_expires.c> |
294 | 4 | Florent Torregrosa | # Enable expirations. |
295 | 4 | Florent Torregrosa | ExpiresActive On |
296 | 4 | Florent Torregrosa | |
297 | 4 | Florent Torregrosa | # Cache all files for 2 weeks after access (A). |
298 | 4 | Florent Torregrosa | ExpiresDefault A1209600 |
299 | 4 | Florent Torregrosa | |
300 | 4 | Florent Torregrosa | <FilesMatch \.php$> |
301 | 4 | Florent Torregrosa | # Do not allow PHP scripts to be cached unless they explicitly send |
302 | 4 | Florent Torregrosa | # cache headers themselves. Otherwise all scripts would have to |
303 | 4 | Florent Torregrosa | # overwrite the headers set by mod_expires if they want another |
304 | 4 | Florent Torregrosa | # caching behavior. This may fail if an error occurs early in the |
305 | 4 | Florent Torregrosa | # bootstrap process, and it may cause problems if a non-Drupal PHP |
306 | 4 | Florent Torregrosa | # file is installed in a subdirectory. |
307 | 4 | Florent Torregrosa | ExpiresActive Off |
308 | 4 | Florent Torregrosa | </FilesMatch> |
309 | 4 | Florent Torregrosa | </IfModule> |
310 | 4 | Florent Torregrosa | |
311 | 4 | Florent Torregrosa | # Various rewrite rules. |
312 | 4 | Florent Torregrosa | <IfModule mod_rewrite.c> |
313 | 4 | Florent Torregrosa | RewriteEngine on |
314 | 4 | Florent Torregrosa | |
315 | 4 | Florent Torregrosa | # Block access to "hidden" directories whose names begin with a period. |
316 | 4 | Florent Torregrosa | # This includes directories used by version control systems such as |
317 | 4 | Florent Torregrosa | # Subversion or Git to store control files. Files whose names begin with |
318 | 4 | Florent Torregrosa | # a period, as well as the control files used by CVS, are protected by |
319 | 4 | Florent Torregrosa | # the FilesMatch directive above. |
320 | 4 | Florent Torregrosa | # |
321 | 4 | Florent Torregrosa | # NOTE: This only works when mod_rewrite is loaded. Without mod_rewrite, |
322 | 4 | Florent Torregrosa | # it is not possible to block access to entire directories from |
323 | 4 | Florent Torregrosa | # .htaccess, because <DirectoryMatch> is not allowed here. |
324 | 4 | Florent Torregrosa | # |
325 | 4 | Florent Torregrosa | # If you do not have mod_rewrite installed, you should remove these |
326 | 4 | Florent Torregrosa | # directories from your webroot or otherwise protect them from being |
327 | 4 | Florent Torregrosa | # downloaded. |
328 | 4 | Florent Torregrosa | RewriteRule "(^|/)\." - [F] |
329 | 4 | Florent Torregrosa | |
330 | 4 | Florent Torregrosa | # If your site can be accessed both with and without the 'www.' prefix, |
331 | 4 | Florent Torregrosa | # you can use one of the following settings to redirect users to your |
332 | 4 | Florent Torregrosa | # preferred URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY |
333 | 4 | Florent Torregrosa | # one option: |
334 | 4 | Florent Torregrosa | # To redirect all users to access the site WITH the 'www.' prefix, |
335 | 4 | Florent Torregrosa | # (http://example.com/... will be redirected to http://www.example.com/...) |
336 | 4 | Florent Torregrosa | # uncomment the following: |
337 | 4 | Florent Torregrosa | # RewriteCond %{HTTP_HOST} !^www\. [NC] |
338 | 4 | Florent Torregrosa | # RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] |
339 | 4 | Florent Torregrosa | # |
340 | 4 | Florent Torregrosa | # To redirect all users to access the site WITHOUT the 'www.' prefix, |
341 | 4 | Florent Torregrosa | # (http://www.example.com/... will be redirected to http://example.com/...) |
342 | 4 | Florent Torregrosa | # uncomment the following: |
343 | 4 | Florent Torregrosa | # RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] |
344 | 4 | Florent Torregrosa | # RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301] |
345 | 4 | Florent Torregrosa | |
346 | 4 | Florent Torregrosa | # Modify the RewriteBase if you are using Drupal in a subdirectory or in a |
347 | 4 | Florent Torregrosa | # VirtualDocumentRoot and the rewrite rules are not working properly. |
348 | 4 | Florent Torregrosa | # For example if your site is at http://example.com/drupal uncomment and |
349 | 4 | Florent Torregrosa | # modify the following line: |
350 | 4 | Florent Torregrosa | RewriteBase /nom_du_site |
351 | 4 | Florent Torregrosa | # |
352 | 4 | Florent Torregrosa | # If your site is running in a VirtualDocumentRoot at http://example.com/, |
353 | 4 | Florent Torregrosa | # uncomment the following line: |
354 | 4 | Florent Torregrosa | # RewriteBase / |
355 | 4 | Florent Torregrosa | |
356 | 4 | Florent Torregrosa | # Pass all requests not referring directly to files in the filesystem to |
357 | 4 | Florent Torregrosa | # index.php. Clean URLs are handled in drupal_environment_initialize(). |
358 | 4 | Florent Torregrosa | RewriteCond %{REQUEST_FILENAME} !-f |
359 | 4 | Florent Torregrosa | RewriteCond %{REQUEST_FILENAME} !-d |
360 | 4 | Florent Torregrosa | RewriteCond %{REQUEST_URI} !=/favicon.ico |
361 | 4 | Florent Torregrosa | RewriteRule ^ index.php [L] |
362 | 4 | Florent Torregrosa | |
363 | 4 | Florent Torregrosa | # Rules to correctly serve gzip compressed CSS and JS files. |
364 | 4 | Florent Torregrosa | # Requires both mod_rewrite and mod_headers to be enabled. |
365 | 4 | Florent Torregrosa | <IfModule mod_headers.c> |
366 | 4 | Florent Torregrosa | # Serve gzip compressed CSS files if they exist and the client accepts gzip. |
367 | 4 | Florent Torregrosa | RewriteCond %{HTTP:Accept-encoding} gzip |
368 | 4 | Florent Torregrosa | RewriteCond %{REQUEST_FILENAME}\.gz -s |
369 | 4 | Florent Torregrosa | RewriteRule ^(.*)\.css $1\.css\.gz [QSA] |
370 | 4 | Florent Torregrosa | |
371 | 4 | Florent Torregrosa | # Serve gzip compressed JS files if they exist and the client accepts gzip. |
372 | 4 | Florent Torregrosa | RewriteCond %{HTTP:Accept-encoding} gzip |
373 | 4 | Florent Torregrosa | RewriteCond %{REQUEST_FILENAME}\.gz -s |
374 | 4 | Florent Torregrosa | RewriteRule ^(.*)\.js $1\.js\.gz [QSA] |
375 | 4 | Florent Torregrosa | |
376 | 4 | Florent Torregrosa | # Serve correct content types, and prevent mod_deflate double gzip. |
377 | 4 | Florent Torregrosa | RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1] |
378 | 4 | Florent Torregrosa | RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1] |
379 | 4 | Florent Torregrosa | |
380 | 4 | Florent Torregrosa | <FilesMatch "(\.js\.gz|\.css\.gz)$"> |
381 | 4 | Florent Torregrosa | # Serve correct encoding type. |
382 | 4 | Florent Torregrosa | Header set Content-Encoding gzip |
383 | 4 | Florent Torregrosa | # Force proxies to cache gzipped & non-gzipped css/js files |
384 | 4 | Florent Torregrosa | # separately. |
385 | 4 | Florent Torregrosa | Header append Vary Accept-Encoding |
386 | 4 | Florent Torregrosa | </FilesMatch> |
387 | 4 | Florent Torregrosa | </IfModule> |
388 | 4 | Florent Torregrosa | </IfModule> |
389 | 4 | Florent Torregrosa | |
390 | 4 | Florent Torregrosa | </Directory> |
391 | 4 | Florent Torregrosa | </pre> |
392 | 4 | Florent Torregrosa | {{tip(Pour ce fichier de configuration, se baser sur celui fournit par Mageia lors de l'installation d'un Drupal depuis la logithèque de Mageia.)}} |
393 | 4 | Florent Torregrosa | |
394 | 4 | Florent Torregrosa | * créer un dossier (avec un Drupal dedans) appelé dossier_site dans /chemin/ |
395 | 4 | Florent Torregrosa | * restart apache |
396 | 4 | Florent Torregrosa | <pre> |
397 | 4 | Florent Torregrosa | sudo service httpd stop |
398 | 4 | Florent Torregrosa | sudo service httpd start |
399 | 4 | Florent Torregrosa | </pre> |
400 | 4 | Florent Torregrosa | |
401 | 4 | Florent Torregrosa | * consulter localhost/nom_du_site |
402 | 4 | Florent Torregrosa | |
403 | 2 | Florent Torregrosa | |
404 | 2 | Florent Torregrosa | h2. Pour Fedora |