J'ai un script qui utilise PassThru () pour exécuter un commander. J'ai besoin de définir des variables d'environnement shell avant d'exécuter cette commande, sinon elle ne trouvera pas ses bibliothèques.
J'ai essayé ce qui suit: p> Utilisation putenv () ne semble pas propager à la commande que je cours. Il échoue à dire qu'il ne peut pas trouver les bibliothèques. Quand j'exécute J'ai également essayé ce qui suit (en vain): P> exporter ld_library_path = / chemin / vers / lib code> en bash, cela fonctionne bien. P>
exec("export LD_LIBRARY_PATH=/path/to/lib");
passthru($cmd);
3 Réponses :
Je ne suis pas à 100% familier avec la façon dont l'EXED fonctionne de PHP, mais avez-vous essayé: Je sais que cela fonctionne dans la plupart des coquillages, mais je ne sais pas comment PHP fait des choses. P>
Edit: En supposant que cela fonctionne, pour faire face à plusieurs variables, les séparez simplement par un espace: P>
EXEC ("LD_LIBRARY_PATH = / PATH / TO / LIB $ cmd") CODE> P>
exécu ("var1 = val1 var2 = val2 ld_library_path = / chemin / à / lib $ cmd") code> p> p>
Et si j'ai plus d'une variable? myvar = valeur; Ld_library_path = / chemin / to / lib $ cmd code>?
semble, au moins selon le lien Ubuntu, j'ai posté, bien que je n'ai jamais fait ça
Merci, cela fonctionne. J'ai dû spacer plusieurs variables d'environnement multiples.
Quelques choses viennent à l'esprit. L'un est pour $ cmd comme étant un script qui inclut la configuration de la variable d'environnement avant d'exécuter le programme actuel.
Une autre pensée est la suivante: je sais que vous pouvez définir une variable et exécuter un programme sur la même ligne, tels que: p> mais je ne sais pas si ça Travailler dans le contexte de PassThru code> P>
$ cmd est en fait une commande pour exécuter un fichier de construction de fourmis, ce script enveloppe la construction de cette commande.
Vous pouvez simplement préparer vos tâches variables à $ cmd.
Dupliqué possible de Stackoverflow.com/ Questions / 2002970 / ...
J'ai lu cette question, cela ressemble à la même chose, mais si vous le lisez, je demande comment réaliser quelque chose de différent.