Comment démarrer apache sur le port 80 ?

Pkgi est écrit dans un but de lancer l'application sous un user unix non root. Ceci est un gros avantage en terme de sécurité et de maintenance. Cependant l'inconvénient est qu'il n'est pas possible d'écouter sur un port < 1024 et en particulier, le serveur apache ne pourra pas écouter sur le port 80.

Si vous souhaitez absolument lancer le serveur apache sur le port 80 (c'est le cas si vous ne disposez pas de reverse proxy en amont) alors il existe une solution plus propre que de lancer l'application tout entière en tant que root. La solution passe par une utilisation restreinte de la commande sudo :

  1. donner les droits root à votre utilisateur uniquement pour la commande /usr/sbin/apache2ctl (utilisée pour contrôler le démon apache)
  2. surcharger le wrapper pkgi de cette commande pkgi/apache/usr/sbin/apache2ctl

Configurer sudo

Je suppose ici que votre utilisateur applicatif se nomme monappli. Ajoutez la ligne suivante dans le fichier /etc/sudoers pour lui donner les droits root uniquement sur la commande /usr/sbin/apache2ctl :

monappli   ALL = NOPASSWD: /usr/sbin/apache2ctl

Surcharger le wrapper pkgi

Intervenez de préférence dans votre module pkgi applicatif et surchargez le fichier suivant :

pkgi/apache/usr/sbin/apache2ctl

Rajoutez alors sudo en début de ligne comme ceci :

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

Relancez ensuite ./pkgi/build et lancez votre serveur ./etc/init.d/apache2 start

 
faq/apache-start-port-80.txt · Dernière modification: 2010/10/14 18:18 par parmentf
Recent changes RSS feed Powered by PHP Hosted on Debian Driven by DokuWiki Deployed by Pkgi