2009-08-20 8 views
1

J'essaie de définir une option (xdebug.profiler_enable) dans mon fichier php.ini en utilisant l'objet ConfigParser de python. voici le code: section dans le fichier php.ini im essayant de modifieroption de configuration dans le fichier de configuration en utilisant SafeConfigParser

[xdebug] 
;XDEBUG SETTINGS 
;turn on the profiler? 
xdebug.profiler_enable=0 
xdebug.profiler_append=1  
xdebug.profiler_enable_trigger=0 
xdebug.trace_output_name="%R" 
xdebug.profiler_output_dir="/home/made_up_user/www/cachegrind/" 

Python

import sys 
import ConfigParser 

if __name__ == '__main__':    
    phpIniLocation = "/home/made_up_user/Desktop/phpinicopy.ini"; 
    phpIni = ConfigParser.RawConfigParser(); 
    phpIni.read(phpIniLocation); 

    xdebugSetting = phpIni.getboolean("xdebug", "xdebug.profiler_enable"); 

    if xdebugSetting: 
     phpIni.set("xdebug", "xdebug.profiler_enable", "0");     

    else: 
     phpIni.set("xdebug", "xdebug.profiler_enable", "1"); 

Environnement: Ubuntu 9.04, python 2.6 Tout semble fonctionner très bien. La variable xdebugSetting renvoie correctement la valeur booléenne de l'option, je peux analyser la section et récupérer chacune des valeurs correctes des options, et la méthode set ne lance aucune exception, mais lorsque je vérifie le fichier, les options n'ont pas été modifiées. J'ai utilisé RawConfigParser, ConfigParser et SafeConfigParser tous avec le même résultat. Le script s'exécute avec des autorisations racines. Y a-t-il quelque chose qui me manque? Comment puis-je faire fonctionner la méthode set?

+0

Qu'est-ce qui vous fait penser qu'un analyseur de configuration va mettre à jour un fichier de configuration? Où avez-vous lu ça? –

Répondre

2
phpIni.write(open(phpIniLocation, 'w')) 

docs.

+0

merci, j'aurais dû lire la documentation de manière plus approfondie. –

+0

@unknown (google): Si c'est la bonne réponse, ne dites pas "merci" (bien que ce soit une bonne chose à faire). Cliquez sur le crochet vert "accepter cette réponse" (c'est encore plus agréable). –

Questions connexes