Projet

Général

Profil

Competences techniques apache et drupal » Historique » Version 10

Julien Enselme, 29/05/2013 01:02

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