Projet

Général

Profil

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