LAMP:Apache

From aldeid
Jump to navigation Jump to search

Installation d'Apache

Téléchargement des sources, compilation et installation

cd /usr/local/src/
wget http://apache.cict.fr//httpd/httpd-2.2.18.tar.gz
tar xzvf httpd-2.2.18.tar.gz
cd http-2.2.18
./configure \
  --with-apxs2=/usr/local/apache2/bin/apxs \
  --enable-dom \
  --enable-mbregex \
  --with-mysql \
  --with-gd \
  --with-zlib \
  --with-mcrypt \
  --enable-mbstring \
  --enable-calendar \
  --with-pdo-mysql \
  --enable-rewrite \
  --with-freetype-dir=/usr/local/include/freetype2/freetype \
  --enable-module=so \
  --enable-unique-id \
  --enable-headers \
  --enable-deflate
make
sudo make install
Note
Pour vérifier si un module est installé, utilisez la syntaxe suivante : /usr/local/apache2/bin/apachectl -t -D DUMP_MODULES

Création des répertoires nécessaires

Pour le stockage par défaut des sources PHP :

mkdir /var/www

Pour les logs apache :

mkdir -p /var/log/apache2

Paramétrage d'Apache

Fichier httpd.conf

Editez le fichier httpd.conf :

vim /usr/local/apache2/conf/httpd.conf

Puis modifiez-le comme suit :


Après la ligne :
  ServerRoot "/usr/local/apache2"
Insérer la ligne suivante : 
  PidFile /var/run/apache2.pid

Remplacer la ligne :
  DocumentRoot "/usr/local/apache2/htdocs"
par :
  DocumentRoot "/var/www"

Après les lignes :
  # Example:
  # LoadModule foo_module modules/mod_foo.so
Insérer :
  LoadModule php5_module     modules/libphp5.so
Note
Attention, à la fin de l'installation de PHP, cette ligne doit normalement être ajoutée automatiquement. Vérifiez que cette ligne n'est pas ajoutée en doublon à la fin de l'installation de PHP, avant de lancer Apache.

Remplacer la ligne :
  <Directory "/usr/local/apache2/htdocs">
par :
  <Directory "/var/www">

Remplacer le contenu suivant :
  <IfModule dir_module>
      DirectoryIndex index.html
  </IfModule>
par :
  <IfModule dir_module>
      DirectoryIndex index.html index.php
  </IfModule>

Sous les lignes suivantes :
   AddType application/x-compress .Z
   AddType application/x-gzip .gz .tgz
Insérer :
   AddType application/x-httpd-php .php

Remplacer le contenu suivant :
   ErrorLog "logs/error_log"
par :
   ErrorLog "/var/log/apache2/error.log"

Après la ligne :
   LogLevel warn
Insérer le contenu suivant :
   ServerTokens Prod
   TraceEnable off

Remplacer la ligne :
   CustomLog "logs/access_log" common
par :
   CustomLog "/var/log/apache2/access.log" common

Remplacer la ligne :
   #Include conf/extra/httpd-vhosts.conf
par :
   Include conf/extra/httpd-vhosts.conf

A la fin du fichier, insérer (uniquement si AWSTATS)
   #
   # Directives to allow use of AWStats as a CGI
   #
   Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
   Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
   Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
   ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
   
   #
   # This is to permit URL access to scripts/files in AWStats directory.
   #
   <Directory "/usr/local/awstats/wwwroot">
       Options None
       AllowOverride None
       Order allow,deny
       Allow from all
   </Directory>

Fichier extra/httpd-vhosts.conf

Dans le fichier extra/httpd-vhosts.conf, ajouter les lignes suivantes entre les balises <Directory /> et </Directory> :

# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
  \.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary

Automatisation du démarrage d'Apache

L'automatisation du démarrage d'Apache peut être réalisée à l'aide d'un script stocké dans le répertoire /etc/init.d.

cd /etc/init.d/
vim apache

Ajouter le contenu suivant :

#!/bin/sh
/usr/local/apache2/bin/apachectl start

Rendez ensuite le script exécutable puis ajoutez-le aux répertoires /etc/rc?.d :

chmod +x apache
update-rc.d apache defaults 99