sh: /usr/bin/ffmpeg: pas trouvé
Je suis en train d'exécuter ffmpeg de PHP shell_exec ou exec, mais il échoue. Pourquoi cela peut-il être? La commande /usr/bin/ffmpeg
fonctionne à partir de la terminale, j'ai donc essayé
<?php
$cmd = "/usr/bin/ffmpeg";
exec($cmd." 2>&1", $out, $ret);
if ($ret){
echo "There was a problem!\n";
print_r($out);
}else{
echo "Everything went better than expected!\n";
}
?>
et j'obtiens toujours
There was a problem! Array ( [0] => sh: /usr/bin/ffmpeg: not found )
Toute aide serait grandement appréciée.
Permission sur le fichier exécutable sont
-rwxr-xr-x 1 root root 106552 Jun 12 09:53 ffmpeg
De course which /usr/local/bin/ffmpeg
en $cmd renvoie un Tableau vide.
Il fonctionne à partir du terminal sur votre ordinateur, ou à partir de l'enveloppe et de l'accès ssh sur le serveur? Tout le safe_mode restrictions, un chroot Apache, ou SELinux peut-être?
* et également les autorisations sur le fichier exécutable
Autorisations et elle fonctionne sur la coque/accès ssh sur le serveur. le safe_mode de php est à l'Arrêt.
Aussi $cmd = "php".
L'utilisateur php exécuté en tant que?
* et également les autorisations sur le fichier exécutable
Autorisations et elle fonctionne sur la coque/accès ssh sur le serveur. le safe_mode de php est à l'Arrêt.
Aussi $cmd = "php".
L'utilisateur php exécuté en tant que?
OriginalL'auteur Rio | 2012-11-06
Vous devez vous connecter pour publier un commentaire.
La réponse à votre question est peut-être plus simple que prévu. Vous êtes à la vérification dans les deux
/usr/local/bin
et/usr/bin
. Il y a plusieurs solutions à ce.Vous pouvez exécuter
$ whereis ffmpeg
et voir ce que vous obtenez. Sur la base des résultats, changer votre$cmd
variable. Siwhereis
ne retourne rien, alors votre système ne sais pas où il est. Vous pouvez l'ajouter à votre$PATH
variable d'environnement et essayer de nouveau.Vous pouvez essayer d'exécuter
$ find /usr -name "ffmpeg"
ou quelque chose de similaire. En veillant à ce que ce programme est installé, il va vous aider à résoudre cette rapide.Si il y a une sorte de restriction de nier apache la capacité de l'accès/l'utilisation de ffmpeg, vous pouvez toujours stocker dans un dossier bin dans la racine du document. (quelque chose comme /chemin/vers/doc/root/bin/ffmpeg) je l'ai fait avant, donc je sais que ça fonctionne.
Si vous trouvez que ffmpeg est en fait situé dans
/usr/local/bin
alors vous devriez juste essayer de changer votre$cmd
:en effet. Parfois (en fonction de votre serveur/hébergement env) c'est juste beaucoup plus facile de le faire. C'est la raison exactement la même, je l'ai fait de cette façon. Je suis content que tu ai résolu ce bien que! Question: Avez-vous appel à l'aide d'une intégrale de chemin d'accès absolu ou relatif?
OriginalL'auteur Yes Barry
Il y a un problème!
OriginalL'auteur Ariful Islam Masum