Le blog de Jean David TECHER, un Réunionnais à Saint-Priest/Lyon

Aller au contenu | Aller au menu | Aller à la recherche


samedi 21 novembre 2009

[Lighttpd 1.5] Service au démarrage avec spawn-fcgi

J'ai installé lighttpd depuis l'arrivée de ma nouvelle machine monroe. Pour avoir lighttp automatiquement lancé au démarrage de la machine, il suffira de faire

root@monroe:/etc/init.d# ln -s /opt/scripts/lighttpd-manager.sh /etc/init.d/lighttpd-manager
root@monroe:/etc/init.d# chmod 744 /etc/init.d/lighttpd-manager
root@monroe:/etc/init.d#update-rc.d lighttpd-manager defaults
 Adding system startup for /etc/init.d/lighttpd-manager ...
   /etc/rc0.d/K20lighttpd-manager -> ../init.d/lighttpd-manager
   /etc/rc1.d/K20lighttpd-manager -> ../init.d/lighttpd-manager
   /etc/rc6.d/K20lighttpd-manager -> ../init.d/lighttpd-manager
   /etc/rc2.d/S20lighttpd-manager -> ../init.d/lighttpd-manager
   /etc/rc3.d/S20lighttpd-manager -> ../init.d/lighttpd-manager
   /etc/rc4.d/S20lighttpd-manager -> ../init.d/lighttpd-manager
   /etc/rc5.d/S20lighttpd-manager -> ../init.d/lighttpd-manager

Le contenu du script sera

#!/bin/bash

# Lighttpd Variables
####################
export LIGHTTPD_ROOT_PATH="/opt/lighttpd";
export LIGHTTPD_CONFILE="${LIGHTTPD_ROOT_PATH}/conf/lighttpd.conf";

# Oracle Variables 
##################
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/8.1.7
export ORA_NLS33=/u01/app/oracle/product/8.1.7/ocommon/nls/admin/data

test -f ${LIGHTTPD_CONFILE} || { echo "can not find '${LIGHTTPD_CONFILE}'";exit 1;} 

PATH=${LIGHTTPD_ROOT_PATH}/sbin:${LIGHTTPD_ROOT_PATH}/bin:${PATH};

function IsRunning() {
	pidof lighttpd > /dev/null;
	return $?;
}

function Msg() {
	echo -ne "\t$1";
}

function LaunchSpawnFcgi(){
	spawn-fcgi  -s /tmp/php-fastcgi.sock -f /usr/lib/cgi-bin/php -u lighttpd -g lighttpd -C 20 -P /var/run/spawn-fcgi.pid;
}	

case $1 in
	"status")
		IsRunning || runResult="not";
		Msg "lighttpd is ${runResult} running\n"; 
		exit 0;
	;;
	"start")
		IsRunning && { Msg "lighttpd is already running...\n"; exit 1;}
		Msg "starting spawn-fcgi...";
		LaunchSpawnFcgi;	
		Msg "starting lighttpd...";
		lighttpd -f ${LIGHTTPD_CONFILE};
		sleep 0.5;
		IsRunning && { echo "[OK]";}
		IsRunning || { echo "[KO]";}
	;;
	"stop")
		IsRunning || { Msg "nothing to stop...[KO]";exit 1;}
		IsRunning && { Msg "stopping lighttpd...";
				killall -9 lighttpd;
				sleep 0.5s;
				Msg "stopping spawn-fcgi...";
				killall -9 php;echo "[OK]"; 
				exit 0;}
		exit 0;
	;;
	"restart")
		Msg "Trying to restart lighttpd...\n";
		IsRunning && { Msg  "stopping lighttpd..."; 
				killall -9 lighttpd;
				sleep 1.5s;
				Msg "stopping spawn-fcgi...";
				killall -9 php;
				echo "[OK]";
				sleep 0.5;}
		IsRunning || { Msg "starting spawn-fcgi...";
				LaunchSpawnFcgi;
				Msg "starting lighttpd...";
				lighttpd -f ${LIGHTTPD_CONFILE};
			      }
		IsRunning && { echo "[OK]";}
		IsRunning || { echo "[KO]";}
	;;
	*)
		echo " (start|stop|restart|status)";
		exit 0;
	;;
esac

dimanche 1 novembre 2009

Arrivée de monroe sur le réseau - installation de squid3 et authentification LDAP

Monroe est arrivé sur le réseau ce vendredi soir à  la maison. Je l'ai pris au Carrefour de la Courtine d'Avignon. Je lui ai collé une Ubuntu Server 8.04.3 (edition server)

Ce dimanche, j'y ai installé mon squid pour mon petit réseau local. Ce qui donne maintenant ceci

Du coup pour avoir squid pour le réseau, depuis olivia,on effectue les mises à  jour suivantes:

if [ $OPEN_PORT_SQUID3 -eq 1 ]
then
        CorrectInfoMailToSend "Activation de Squid3"
#       On redirige ce qui n'est pas de monroe sur le port 80 vers monroe pour squid
        iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.2.16 -p tcp --dport 80 -j DNAT --to 192.168.2.16:3128        
else
        WarningInfoMailToSend "Squid3 est inactif!"
fi

C'est l'url http://www.fido-fr.net/linux_squid_iptables.shtml qui m'a été utile pour cette petite configuration

Pour l'authentification avec LDAP (sur olivia) il faut suivre les indications de http://arnofear.free.fr/linux/template.php?tuto=5&page=1 , il suffira d'ajouter

auth_param basic program /usr/lib/squid3/squid_ldap_auth -b ou=Users,dc=chezdavid,dc=local -f "uid=%s" ldap://192.168.2.1
auth_param basic children 5
auth_param basic realm Web-Proxy sur DavidGIS
auth_param basic credentialsttl 2 hours
acl ldapauth proxy_auth REQUIRED
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
http_access allow ldapauth
http_access deny all