<?php //v1.0 by Romain Bourdon require 'config.inc.php'; $httpdFileContents = @file_get_contents($c_apacheConfFile ) or die ("httpd.conf file not found" // on remplace la ligne if ($_SERVER['argv'][2] == 'on') { $findTxt = 'LoadModule '.$_SERVER['argv'][1]; $replaceTxt = '#LoadModule '.$_SERVER['argv'][1]; } else { $findTxt = '#LoadModule '.$_SERVER['argv'][1]; $replaceTxt = 'LoadModule '.$_SERVER['argv'][1]; } $httpdFileContents = str_replace($findTxt,$replaceTxt,$httpdFileContents); $fphttpd = fopen($c_apacheConfFile ,"w" fwrite($fphttpd,$httpdFileContents); fclose($fphttpd); ?>1) j'ai voulu "switcher" sur un LoadModule de nom "cache". En fait le nom entier est "cache_module".
$findTxt = 'LoadModule '.$_SERVER['argv'][1].'_module'; $replaceTxt = '#LoadModule '.$_SERVER['argv'][1].'_module';
Citation
(1) Même Windows ne prévient pas lorsque l'on arrête un service dont dépendent d'autres fonctions ou services.
// ************************ // modules Apache $myhttpd = @file($c_apacheConfFile) or die ("httpd.conf file not found" ) ; foreach($myhttpd as $line) { if (preg_match('|^#LoadModule|',$line)) { $mod_table = explode(' ', $line) ; $mod_name = $mod_table[1]; $mod[$mod_name] = '0'; } elseif (preg_match('|^LoadModule|',$line)) { $mod_table = explode(' ', $line) ; $mod_name = $mod_table[1]; $mod[$mod_name] = '1'; } } $httpdText = ";WAMPAPACHE_MODSTART "; foreach ($mod as $modname=>$modstatus) { if ($mod[$modname] == 1) $httpdText .= 'Type: item; Caption: "'.$modname.'"; Glyph: 13; Action: multi; Actions: apache_mod_'.$modname.' '; else $httpdText .= 'Type: item; Caption: "'.$modname.'"; Action: multi; Actions: apache_mod_'.$modname.' '; }par
// ************************ // modules Apache //[modif oto] - Ajout liste de tous les modules Apache //Détection des lignes Loadmodule sans fichier /modules/module.so // (Affichage avec carré rouge dans menu modules Apache) //Détection des /modules/module.so sans ligne Loadmodule associée // (Affichage avec triangle Attention dans menu modules Apache) $myhttpd = @file($c_apacheConfFile) or die ("httpd.conf file not found" ) ; $recherche = array("modules/","\n","\r\n" ) ; $mod_load = array() ; foreach($myhttpd as $line) { if (preg_match('|^#LoadModule|',$line)) { $mod_table = explode(' ', $line) ; $mod_name = $mod_table[1]; $mod[$mod_name] = '0'; $load_module = str_replace($recherche,'',$mod_table[2]) ; $mod_load[$mod_name] = $load_module; } elseif (preg_match('|^LoadModule|',$line)) { $mod_table = explode(' ', $line) ; $mod_name = $mod_table[1]; $mod[$mod_name] = '1'; $load_module = str_replace($recherche,'',$mod_table[2]) ; $mod_load[$mod_name] = $load_module; } } // on recupere la liste des modules présents dans le répertoire /modules/ $modDirContents = array() ; if ($handle = opendir($c_apacheConfFile = $c_apacheVersionDir.'/apache'.$wampConf['apacheVersion'].'/modules/')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && strstr($file,'.so')) $modDirContents[] = $file; } closedir($handle) ; } //[modif oto] - On croise les tableaux $exceptions = array('php5_module') ; //Détection présence du module xxxxxx.so demandé par Loadmodule foreach ($mod as $modname=>$value) { if(in_array($modname,$exceptions)) continue; if(!in_array($mod_load[$modname], $modDirContents)) $mod[$modname] = -1 ; } //Détection de Loadmodule dans httpd.conf pour chaque module dans /modules/ foreach($modDirContents as $module) { if(!in_array($module, $mod_load)) { $modname = str_replace(array("mod_",".so" ),array("","_module" ),$module) ; $mod[$modname] = -2 ; } } ksort($mod) ; $httpdText = ";WAMPAPACHE_MODSTART "; foreach ($mod as $modname=>$modstatus) { if ($modstatus == 1) $httpdText .= 'Type: item; Caption: "'.$modname.'"; Glyph: 13; Action: multi; Actions: apache_mod_'.$modname.' '; elseif ($modstatus == -1) $httpdText .= 'Type: item; Caption: "'.$modname.'"; Action: multi; Actions: apache_mod_'.$modname.' ; Glyph: 11; '; elseif ($modstatus == -2) $httpdText .= 'Type: item; Caption: "'.$modname.'"; Action: multi; Actions: apache_mod_'.$modname.' ; Glyph: 19; '; else $httpdText .= 'Type: item; Caption: "'.$modname.'"; Action: multi; Actions: apache_mod_'.$modname.' '; }