Installer Apache 2.4.3 et PHP 5.4.8

Retour

Installation d’un serveur Web avec les sources Apache 2.4.3 et PHP 5.4.8

Installation de Apache et PHP uniquement. MySQL n’est pas installé sur ce serveur.
Cette installation prévoit donc un serveur de base de données externe (mysql).

Installation du serveur Debian

Installation Debian Squeeze en « netinstall« . (noyau 2.6.32-5-amd64).

 # Proposition de partitionnement du disque dur (ext3) pour un disque de 20Gb :
 # /boot    primaire    100 Mb
 # /        primaire    5Gb
 # /usr     logique     12.8Gb
 # swap     logique     3Gb

 Choix d'installation de base, sans interface graphique

Paquets à installer

apt-get install linux-headers-2.6.32-5-amd64 openssh-server rssh ntpdate
#on synchronise l'heure
ntpdate-debian
apt-get install make

Configuration de SSH

Changement de port : sécurité accrue.

  • Dans fichier /etc/ssh/sshd_config
    • changement du port d’écoute (défaut = 22) à :
    • Se renseigner sur les ports non assignés (par précaution) et en choisir un … (ici, 28, 30 ou 32 par exemple)
# What ports, IPs and protocols we listen for
 Port 28

Désactivation de la connexion en root

PermitRootLogin no

Désactivation du X11 forwarding

X11Forwarding no
  • Indiquer à sshd où se trouve sftp-server: sftp-server est appelé par sshd, et gère les requêtes sftp. Généralement, le chemin est déjà renseigné …
Subsystem sftp /usr/lib/openssh/sftp-server

Configuration RSSH

L’intérêt de rssh est de donner à chaque utilisateur du serveur un shell réduit. Dans notre cas, ce shell sera réduit à sftp, c’est à dire aux commandes :
{cd lcd chgrp chmod chown help get lls ln lmkdir lpwd ls lumask mkdir put exit quit rename rmdir rm symlink version ! command ! ? }

  • On fait une copie du fichier original provisoirement …
cp /etc/rssh.conf /etc/rssh.conf.ori
  • Dans /etc/rssh.conf
logfacility = LOG_USER
 allowscp # module à décommenter
 allowsftp # module à décommenter
umask = 022

Attention  !

  • Redémarrer le service ssh pour que tous les paramétrage soient pris en compte.
/etc/init.d/ssh restart



Installation des paquets Apache

# Serveur HTTPd Apache Version 2.4.3
# Documentation : http://httpd.apache.org/docs/2.4/

HTTPd

cd /home
 wget http://apache.websitebeheerjd.nl//httpd/httpd-2.4.3.tar.gz
 gzip -d httpd-2.4.3.tar.gz
 tar xvf httpd-2.4.3.tar

APR

  • à mettre ensuite dans /home/httpd-2.4.3/srclib/apr :
cd /home
 wget http://apache.crihan.fr/dist//apr/apr-1.4.6.tar.gz
 gzip -d apr-1.4.6.tar.gz
 tar xvf apr-1.4.6.tar

APR-Util

  • à mettre ensuite dans /home/httpd-2.4.3/srclib/apr-util  :
cd /home
 wget http://apache.crihan.fr/dist//apr/apr-util-1.5.1.tar.gz
 gzip -d apr-util-1.5.1.tar.gz
 tar xvf apr-util-1.5.1.tar

Les développeurs qui téléchargent une version non officielle de l’arborescence des sources d’Apache HTTPd devront disposer de autoconf et libtool et exécuter buildconf avant de passer à l’étape suivante. Comme c’est une Debian et que les paquets sont des rpm, {je suppose mais je peux me tromper qu’}il ne s’agit pas de version officielle, donc par précaution, je fais à la mano … . Ca ne coûte rien et on est rassuré ! ou alors on peut essayer avec alien, mais ce n’est pas le cas ici.

apt-get install libtool autoconf
cd /home
 cp -r apr-1.4.6 /home/httpd-2.4.3/srclib/
 cp -r apr-util-1.5.1 /home/httpd-2.4.3/srclib/
 cd /home/httpd-2.4.3/srclib
 mv apr-1.4.6/ apr # enlever les numeros de version avant la compilation
 mv apr-util-1.5.1/ apr-util # enlever les numeros de version avant la compilation

cd /home/httpd-2.4.3/
./buildconf

La configuration se construit …

Sélection des modules Apache

  • Les modules disponibles sont listés sur le site web de APACHE ci-dessous :

http://httpd.apache.org/docs/2.2/programs/configure.html

  • Commande pour activer les modules à la main :
 ./configure [OPTION]... [VAR=VALUE]...

Dans mon cas,

  • Les modules dont j’ai besoin pour cette installation, qui font partie des modules non activés par défaut, et doivent donc être activés à la main sont :
  • –prefix=/usr/local/apache2 # par défaut
  • –enable-cache
  • –enable-deflate
  • –enable-session
  • –enable-expires
  • –enable-file-cache
  • # Ces headers doivent etre ensemble
    • –enable-headers
    • –enable-logio
  • –enable-info
  • –enable-mem-cache
  • –enable-rewrite
  • –enable-so # à activer en static
  • –enable-charset_lite
  • –with-apr=DIR|FILE
  • –with-apr-util=DIR|FILE
  • –with-z=DIR # module zlib à installer pour le –enable-mod-deflate
  • Si zlib doit être utilisé pour compresser les pages web (mod_deflate), installer les paquets zlib et zlib-dev
apt-get install zlib1g libghc6-zlib-dev
# Pour les modules sélectionnés ci-dessus, libpcre3-dev est requis, donc :
 apt-get install libpcre3-dev

Compilation de APACHE SERVER

  • Un script potentiellement valable listant les modules dont j’ai besoin ci-dessous :
./configure \
--with-mpm=worker \
--enable-cache=shared \
--enable-deflate=shared \
--enable-session=shared \
--enable-expires=shared \
--enable-file-cache=shared \
--enable-headers=shared \
--enable-logio=shared \
--enable-info=shared \
--enable-mem-cache=shared \
--enable-rewrite=shared \
--enable-charset_lite=shared \
--enable-so=static
  • –with-z est activé automatiquement car deflate est dans la liste des modules à activer
  • –with-apr est activé automatiquement car le dossier a été placé dans les sources de httpd ( /home/httpd-2.4.3/srclib/apr/ )
  • de même pour –with-apr-util, ( /home/httpd-2.4.3/srclib/apr-util/ ) donc pas besoin de les mentionner ici
  • –prefix n’est pas utile ici, si le répertoire d’installation est /usr/local/apache2 .
  • La commande se résume à :
cd /home/httpd-2.4.3
./configure --with-mpm=worker --enable-mods-shared="cache deflate session expires file-cache headers logio info mem-cache rewrite charset_lite" --enable-so=static

Compilation

make

Installation

make install

Personnalisation avec httpd.conf

cd /usr/local/apache2
nano conf/httpd.conf
# Décommenter la ligne ci-dessous et indiquer le nom du serveur, ainsi que le port
# Evite le message "could not reliably determine the server's fully qualified domain name for servername..."
ServerName localhost:80

# Si un fichier .htaccess est utilisé (déconseillé),
# Modifier l'option AllowOverride None à : 
AllowOverride All

Pour plus de détails, voir

Commandes de démarrage / arrêt du serveur Web Apache2

 /usr/local/apache2/bin/apachectl -k start
/usr/local/apache2/bin/apachectl -k stop

Voir aussi :



Installation des paquets PHP

PHP5

Pour plus de détails : http://fr2.php.net/manual/fr/install.unix.apache2.php

cd /home
 wget http://fr2.php.net/get/php-5.4.8.tar.bz2
 bzip2 -d php-5.4.8.tar.bz2
 tar xvf php-5.4.8.tar
  • Installation de la bibliothèque libxml++22.6-dev
apt-get install libxml++2.6-dev

Compilation de PHP

cd /home/php-5.4.8
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-zlib=/home/php-5.4.8/ext/zlib --with-pear=/home/php-5.4.8/pear
make
make test
make install
cp php.ini-development /usr/local/lib/php.ini
# ou
cp php.ini-production /usr/local/lib/php.ini

Httpd.conf

  • Éditer le fichier httpd.conf pour charger le module PHP. Le chemin spécifié à droite de la chaîne LoadModule, doit correspondre au chemin système du module PHP. L’étape « make install » ci-dessus devrait avoir réalisé cette opération. (cf. fr2.php.net)
LoadModule php5_module modules/libphp5.so
  • Indiquer à Apache d’analyser ces extensions comme étant des scripts PHP,
    ajouter :
<FilesMatch "\.ph(p[2-6]?|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
<Files *.php>
  SetOutputFilter PHP
  SetInputFilter PHP
  LimitRequestBody 9524288
</Files>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
  • Ajouter index.php dans la section dir_module
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

Php.ini

  • Si on utilise les short open tags, il convient ensuite de modifier le php.ini (situé dans /usr/local/lib/php.ini)
;;;;;;;;;;;;;;;;;;;;
; language options ;
;;;;;;;;;;;;;;;;;;;;

short_open_tag = On
  • Modifier la taille max de fichier pour l’upload si nécessaire
Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 64M
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Paris
  • Démarrer le serveur Web.
/usr/local/apache2/bin/apachectl start
  • Le serveur devrait être accessible depuis son adresse IP, dans un navigateur …
ifconfig # pour récupérer son adresse, car le serveur est en dhcp pour l'instant ...

Installer l’accès FTP

Voir l’article

Autres liens à consulter également :

Retour