Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

serveur apache

Ou comment installer un serveur web.

ATTENTION !
Tuto en GRANDE PARTIE obsolète. smolski le 05/01/2013

Débutant, à savoir :

Toutes les commandes qui ne commencent pas par $ sont à faire dans un terminal root2).

Installation d'un serveur LAMP

Distribution utilisée: Debian stable

Pré-requis: 1 ordinateur ou une machine virtuelle avec le port TCP 80 ouvert sur le réseau local (LAN)

Paquetage à installer: apache2, php5, libapache2-mod-php5, mysql-server, mysql-client, php5-mysql

Note: On considérera que le réseau local est 192.168.0.0/24, et que l'adresse IP du serveur apache est 192.168.0.1

Installation de apache2 + mysql + php5

Mettez à jour la liste des paquetages et votre système:

apt-get update && apt-get upgrade

Tapez en console:

apt-get install apache2 mysql-server php5 libapache2-mod-php5 php5-mysql

Il faut ensuite confirmer les dépendances en tapant O ou Y selon la langue de votre système.

On vous demandera de définir un mot de passe pour l'administration du serveur de gestion de bases de données mysql. Renseignez-le à votre convenance.

Pour démarrer le serveur :

service apache2 start

Pour arrêter le serveur :

service apache2 stop

Pour redémarrer le serveur

À faire pour prendre en compte des modifications

service apache2 restart

Redémarrer un serveur en production intense

Relancer apache sans interrompre son fonctionnement, utile si vous voulez juste faire prendre en compte les modifications de configuration et que votre serveur est en production :

service apache2 reload

Installation de modules complémentaires pour php5

apt-get install php-pear php5-cli php5-gd php5-xsl php5-mcrypt php5-curl php5-imap

Vérification

Si vous êtes sur la machine locale, ouvrez votre navigateur internet et allez à l'URL :

ou

Et nous devons obtenir :

Tester php5

Nous allons tester l'installation de php5 en créant la page web phpinfo.

Avec la commande cat, créez le fichier /var/www/phpinfo.php ainsi :

cat > /var/www/phpinfo.php <<EOF
<?php
    phpinfo();
?>
EOF

Puis, vous relancez votre navigateur en indiquant l'adresse : http://localhost/phpinfo.php
Ce qui donne :

Quelques options du fichier php.ini

Editez le fichier de configuration /etc/php/apache2/php.ini ainsi :

 nano /etc/php/apache2/php.ini

Activer les variables globales :
Depuis la version 4.2.0 de PHP, cette option est par défaut initialisée à OFF et ce pour des raisons de sécurité.

Voici un lien expliquant la raison de cette désactivation :

 manuel php

en root et recherchez la ligne commençant par :

    register_globals

et remplacez off par on.



Ensuite :

    error_reporting  =  E_ALL & ~E_NOTICE

Avec cette configuration, seulement les avertissements dus à des erreurs seront affichés. Si vous voulez afficher tous les messages, enlevez le dernier paramètre ainsi :

    error_reporting  =  E_ALL

Utile lors du développement, mais préférable de le désactiver sur un serveur en prod.



    display_errors = On

Avec cette fonction activée, les erreurs sont affichées à l'écran. Pour ne plus afficher les erreurs, remplacer on par off.



    log_errors = On

Sur on, ce paramètre enregistrera toutes les erreurs dans un fichier.



    error_log = filename

Ici on définit le nom du fichier de log en remplaçant filename par le chemin complet vers le fichier à écrire. Pensez à dé-commenter la ligne pour activer la fonction.

Personnaliser les messages d'erreurs

Si vous voulez offrir autre chose que les traditionnelles :

    Not Found
    The requested URL /foru was not found on this server.

ou

    Forbidden
    You don't have permission to access /.htaccess on this server.

et ainsi de suite, vous pouvez demander à apache de rediriger le visiteur sur une page définie sur laquelle vous préciserez ce que vous voulez lorsqu'il générera une erreur. Pour ce faire, 2 possibilités s'offrent à nous : - Soit définir les pages à afficher dans le fichier /etc/apache2/httpd.conf,
- Soit dans un fichier .htaccess à placer à la racine du serveur pour qu'il agisse partout.
Pour ce faire, quelque soit la méthode choisie, on va utiliser la directive ErrorDocument. Exemple :

    ErrorDocument 404 /erreur/404.html

Ici, on redirige le visiteur vers une page nommée 404.html se trouvant dans le répertoire erreur lui même à la racine du serveur. On peut très bien mettre l'adresse d'une page externe en mettant son adresse complète genre http://www.lapage_a_afficher.html. Vous pouvez faire ceci pour chaque message d'erreur pouvant apparaître comme le 401, 402, 403, etc…

Activer la prise en compte des fichiers ''.htaccess'' :

Pour ce faire, nous allons modifier quelques fichiers afin d'ordonner au serveur apache de prendre en compte les fichiers htaccess. Premier fichier à éditer,

    /etc/apache2/sites-available/default

On va remplacer

    AllowOverride None

par :

    AllowOverride All

Ceci est à effectuer pour les 2 premières apparitions de cette directive, c'est à dire, pour ce qui concerne /var/www seulement. On fait la même chose pour le fichier :

    /etc/apache2/sites-enabled/000-default

Activer l'url rewriting

1) Avant toute chose, assurez vous d'avoir activé la prise en compte des fichiers htaccess. Cf plus haut.

Entrez simplement la ligne suivante :

a2enmod rewrite

Et redémarrer apache2

service apache2 restart

mysql

Voir :

phpmyadmin

Voir :

Installation de apache par compilation des sources

Il est intéressant d'installer son serveur web de façon manuelle, afin de bénéficier des dernières versions stables , et d'optimiser l'utilisation ou non de certains modules afin d'améliorer les performances en générale .

I. Téléchargement des sources

Commençons par télécharger les dernières sources disponibles depuis le site d'apache :

$ cd /usr/local/src/
$ wget http://mirror.mkhelif.fr/apache/httpd/httpd-2.2.11.tar.gz
$ tar xzf httpd-2.2.11.tar.gz
$ rm -f httpd-2.2.11.tar.gz
$ cd httpd-2.2.11/

II Configuration avant compilation

Il n'est pas nécessaire d'avoir tous les modules actifs , selon l'utilisation d'apache , vous pouvez spécifier quels sont les modules que vous souhaitez activer ou non , ainsi que de nombreux autres paramètres

Pour avoir la liste des paramètres lancez cette commande

./configure --help | less

Nous allons donc créer notre fichier de configuration , pour effectuer une compilation aux petits oignons

vim my_configure

Voici un exemple de ce fichier , je vous laisse lire la documentation d'apache , pour voir ce qui a été activé/désactivé , bien que le nom de ces paramètres sont assez parlant

#!/bin/sh
#optimisation pour la compilation
export CC="gcc"
export CFLAGS="-02"
#Config des sources pour l'env
./configure --prefix=/usr/local \
      --enable-rewrite \
      --enable-so \
      --enable-cache \
      --enable-mem-cache \
      --enable-alias \
      --enable-vhost-alias \
      --enable-ssl=shared \
      --disable-status \
      --disable-cgi \
      --disable-cgid \
      --enable-unique-id \
      --enable-ssl \

Nous allons ensuite changer le mode du fichier de configuration afin de pouvoir l'exécuter comme un script

chmod 700 my_configure

Enfin , nous allons exécuter notre petit script de configuration . En cas d'erreurs , il vous faudra peut être installer des librairies supplémentaires , celles-ci seront spécifiées dans le message d'erreur .

./my_configure

Si plus aucun message d'erreurs n'apparait , on peut passer à l'étape suivante.

III Compilation

Nous y sommes , l'étape finale de cette installation manuelle, pour finir , deux commandes suffisent

make

puis

make install

IV Après la compilation

Le fichier de configuration

Une fois installé , apache se trouve à l'endroit spécifié par la ligne prefix de notre fichier de configuration . Le fichier de configuration d'apache se trouve donc dans /usr/local/conf/httpd.conf

vim /usr/local/conf/httpd.conf

Lancer apache au démarrage du serveur

Le script apachectl est conçu pour fonctionner comme un script d'initialisation SysV standard; il accepte les arguments start, restart, et stop , nous allons donc pouvoir directement le mettre dans le répertoire init.d

ln -s /usr/local/bin/apachectl /etc/init.d/apache2
update-rc.d apache2 default

Installation par compilation de php

Sources et Remerciements

1) N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
doc/obsolete/apache.txt · Dernière modification: 21/04/2014 20:59 (modification externe)

Pied de page des forums

Propulsé par FluxBB