apache

apache_logo.jpg Ce module permet de lancer un serveur Web basé sur apache2. Un des usages le plus courant est l'exécution de scripts php en utilisant conjointement le module php de pkgi.

Packages debian nécessaires : apache2

Module pkgi nécessaires : logrotate (facultatif)

Variables spécifiques pkgi :

  • APPNAME_APACHE_LISTEN_PORT : port d'écoute du démon (utilisez un port > 1024 si vous n'êtes pas root sur la machine)
  • APPNAME_APACHE_LISTEN_INTERFACE : interface réseau d'écoute du démon (0.0.0.0 signifie qu'on écoute sur toutes les interfaces réseau)
  • APPNAME_APACHE_URL_ROOT : permet d'indiquer explicitement l'URL racine de l'application visible par l'utilisateur et ainsi éviter les problèmes de calculs automatiques d'URL lorsque l'on dispose d'un reverse proxy en amont. (disponible depuis la version 2.39)
  • APPNAME_APACHE_MODS : la liste des modules apache à charger. La liste exhaustive dépend de ce qui est installé sur la machine, on peut le savoir en tapant :
    ls /etc/apache2/mods-available/
  • APPNAME_APACHE_OPTIONS : quelques réglages usuels spécifiques à apache pour faciliter la configuration par l'utilisateur
    • access-log : permet d'activer les log des accès (disponibles dans var/log/apache2/access.log)
    • htaccess : permet d'activer la possibilité de surcharger la configuration globale grâce à des fichiers .htaccess
  • APPNAME_APACHE_BEHIND_REVERSE_PROXY : si réglé à yes, cette option permet de régler la configuration d'apache et de php lorsque le site est derrière un reverse proxy.

Structure du module :

  • var/www/ : le répertoire correspondant à l'URL racine de votre serveur apache (DocumentRoot)
  • etc/init.d/apache2 : lanceur du démon
  • usr/sbin/a2enmod : script permettant de charger simplement un module apache (depuis pkgi 2.39)
  • usr/sbin/a2dismod : script permettant de désactiver simplement un module apache (depuis pkgi 2.39)
  • usr/sbin/a2ensite : script permettant d'activer simplement un site présent dans sites-enabled (depuis pkgi 2.39)
  • usr/sbin/a2dissite : script permettant de désactiver simplement un site (depuis pkgi 2.39)
  • etc/apache2/apache2.conf : configuration par défaut
  • etc/apache2/conf.d/ : configuration utilisateur (placez ici la config qui ne concerne pas un virtual host en particulier)
  • etc/apache2/mods-available/ : contient la liste de tous les modules systèmes disponible et activables par le script usr/sbin/a2enmod
  • etc/apache2/sites-available/ : contient la liste de tous les sites que l'on peut potentiellement activer (de préférence sous la forme de virtual hosts)
  • etc/apache2/sites-available/default : virtual hosts par défaut qui sera activé par apache. Il écoute sur l'interface et le port que vous avez spécifié dans les question pkgi.
  • etc/apache2/sites-enabled/ : contient la liste des sites activés. Ce sont des liens symbolique vers les fichiers du répertoire sites-available. Il est propre d'utiliser la commande usr/sbin/a2ensite et usr/sbin/a2dissite pour activer et désactiver les sites.
  • etc/apache2/ssl/ : certificats SSL (pour HTTPS)

Remarque : un virtual host par défaut est créé : 000-default. Il est réglé avec l'interface et le port que vous choisissez. Vous pouvez désactiver ce vhost simplement en réglant la valeur du port sur "none".

Comment optimiser "à la louche" votre serveur ?

Depuis pkgi 2.28, la variable APPNAME_OPTIMIZATION vous propose trois grands profils qui sont supportés par ce module apache autant pour le mode prefork et le mode worker :

  • normal : pour les sites ayant un maximum de 25 connexion simultanées.
  • big : pour les sites ayant un maximum de 128 connexion simultanées.
  • huge : pour les sites ayant un maximum de 1024 connexion simultanées.

Comment régler la priorité des processus

Surchargez dans votre module pkgi le fichier suivant :

pkgi/apache/usr/sbin/apache2ctl

Et rajoutez le réglage du nice juste avant d'appeler la commande (-19 = très grande priorité, 19 = très faible priorité) :

<?php echo '#!/bin/bash'; ?>
nice -n 19 /usr/sbin/apache2ctl -f <?php echo getenv('APPNAME_HOME') ?>/etc/apache2/apache2.conf $*

Remarque : si vous utilisez php avec votre serveur apache, tous les scripts PHP seront impactés par ce réglage de priorité par simple héritage de processus.

FAQ

Can't create unix socket dir

Si vous rencontrez ce type de message d'erreur dans les logs var/log/apache2/error.log :

[Wed Jun 02 11:47:33 2010] [error] mod_fcgid: Can't create unix socket dir

Vérifiez que vous lancez votre démon apache avec le bon user unix et le bon groupe dans le fichier pkgi.env

 
modules/apache.txt · Dernière modification: 2012/02/28 16:21 par kerphi
Recent changes RSS feed Powered by PHP Hosted on Debian Driven by DokuWiki Deployed by Pkgi