Comment définir config=valeur en php.ini avec de Marionnettes?
Je suis en train de faire mes premiers pas dans Marionnettes et a couru dans un problème. J'ai installé PHP sur un serveur Linux et je veux faire un petit peu de changements à php.ini
fichier. Je ne veux pas remplacer l'ensemble de la ini
fichier avec l'un de référentiel, il suffit de modifier/créer une simple valeur de configuration.
Je veux m'assurer que la propriété upload_max_filesize
dans php.ini
a la valeur de 10M
.
Comment puis-je y parvenir?
Comme une mise à jour, ça ressemble à de marionnettes comprend maintenant ou a la disposition de quelque chose appelé augeas qui est spécifiquement conçu pour faire ce genre de chose. Je n'ai pas réellement utilisé moi-même, donc pas sûr de savoir comment il est facile de travailler avec.
OriginalL'auteur mibutec | 2012-05-29
Vous devez vous connecter pour publier un commentaire.
Il y a 3 options:
Utilisation augeas soutien de la marionnette (vous aurez besoin du ruby augeas bibliothèques installées) comme:
Vous pouvez utiliser "augtool ls /fichiers/etc/php.ini" pour voir les articles de comprendre comment augeas est de l'analyse du fichier et l'utiliser pour travailler sur les chemins que vous avez besoin.
Vous pouvez utiliser un "exec". Quelque chose comme:
Malheureusement, cette solution n'est pas de comprendre les sections en php.ini, l'ajout d'une variable qui n'est pas déjà nécessiterait un effort supplémentaire. Cela va faire la mauvaise chose si une variable apparaît dans plus d'une section (mais les exemples que je suis à la recherche semblent avoir tous les noms de variables). Cela devrait fonctionner pour une variable qui est présent mais commenté par un point-virgule.
source => 'puppet:///...'
oucontent => template(...)
à remplacer totalement le fichier, comme vous l'avez indiqué que vous préférez ne pas le faire.Cette marionnette module fera l'affaire. Ce que je voulais dire, cependant, n'était pas la marionnette module, mais le rubis de la bibliothèque. Selon votre système, un paquet avec un nom comme "ruby-augeas", "rubygem-ruby-augeas" ou "libaugeas-ruby". La marionnette module que vous avez trouvé sur rubyforge semble s'installer correctement les personnes, tant et aussi longtemps que vous incluez dans le maître et les configurations de client, il va fonctionner.
J'ai installé le module que j'ai mentionnés et est d'essayer d'utiliser la augeas que dans ce fichier: db.tt/CZMgwmuF s'il vous Plaît examiner cette question et de l'ombre de la lumière, je ne suis pas à comprendre pourquoi cela ne fonctionne pas, aussi, à mon nœud de test de Fichier de ressources est en cours d'exécution, mais le Augeas n'est pas, encore une chose, c'est que depuis Augeas n'est pas travailler, je ne suis pas d'obtenir la mise à jour du fichier de configuration.
Vous devriez vraiment poser une nouvelle question. Ce que vous faites dans cet exemple ne fonctionnera pas bien parce que vous avez dit la marionnette de faire deux choses contradictoires avec le même fichier.
OriginalL'auteur freiheit
Mon option préférée serait de laisser php.ini seul, et ont de marionnettes créer un fichier en php conf.d annuaire pour remplacer les valeurs que vous souhaitez modifier.
Le moins de modifications que vous apportez à php.ini, plus il est facile de voir ce qui se passe quand vous avez besoin de fusionner vos modifications avec le paquet de fournisseurs de changements lorsque vous mettez à niveau php.ini dans le futur.
Bien que cette approche n'est pas indépendant du système d'exploitation.
quel système d'exploitation(es) pensez-vous?
Mauvais commentaire avant. Probablement correct dans l'OS. A été porté sur un autre problème. Merci pour la mention
Sur Debian/Ubuntu, vous devriez appeler le fichier
upload_limits.ini
et puis l'activer parphp5enmod upload_limits
.OriginalL'auteur mc0e
Vous pouvez également utiliser la file_line ressources trouvées dans la stdlib module.
Puisque cela aura pour effet d'ajouter la ligne dans le fichier si une correspondance exacte, il n'existe pas, et depuis la dernière instance d'une valeur de configuration prend la priorité sur celles précédemment dans le fichier, il va fonctionner. C'est la façon dont je le fais quand je n'ai qu'un couple de choses à changer.
match
paramètre defile_line
pour s'assurer qu'une seule ligneupload_max_filesize=...
existe. Voir la documentationOriginalL'auteur ryanneufeld
Une approche alternative, si vous utilisez Apache comme serveur web, est de définir la variable php dans votre virtualhost Apache fichier (qui sera probablement quelque part dans votre Marionnette se manifeste répertoire).
Par exemple:
Cela ne change en fait php.ini, mais - selon votre set-up peut être un moyen simple d'atteindre le même effet.
OriginalL'auteur Nick F