Projet

Général

Profil

Competences techniques apache et drupal » Historique » Version 25

Julien Enselme, 02/06/2013 19:29
Monter un site en local : *-> #

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