2010-02-17 5 views
1

J'exécutais ffmpeg à partir de php exécuté à l'intérieur d'apache. J'ai l'habitude d'obtenir l'erreur "erreur lors du chargement des bibliothèques partagées: libavdevice.so.52: impossible d'ouvrir le fichier d'objet partagé: aucun fichier ou répertoire".Exécution de ffmpeg à partir de php fonctionnant sous Apache

Cela fonctionnait parfaitement si le script php était exécuté à partir de l'invite de commande ou si ffpmeg était directement appelé depuis l'invite de commande.

J'ai suivi les étapes ci-dessous pour corriger l'erreur apache:

Étape 1: Vérifiez si le fichier existe « de libavdevice.so.52" dans le serveur en utilisant la commande suivante.

find/-name « libavdevice.so *. »

Etape 2: Vous obtiendrez le répertoire dans lequel le fichier « libavdevice.so.52" existe à partir de la commande ci-dessus. Supposons que le répertoire soit "/ usr/local/lib /" dans cet exemple.

Étape 3: Vous devez ajouter le nom du répertoire dans le fichier "/etc/ld.so.conf".

Étape 4: Exécutez la commande "ldconfig". Comment faire ce qui précède a-t-il changé la donne à Apache?

Répondre

1

Si vous rencontrez des problèmes de commande ou de php, je rechercherais peut-être des permissions d'exécution de fichiers. www-data (ou quel que soit le PHP utilisé) est ce que FFMPEG supposera quand il sera exécuté par PHP.

Je n'ai pas rencontré ce problème par le passé, mais je vous suggère d'essayer de le faire car il fonctionne correctement depuis CLI.

+0

Merci pour cela. Btw, le problème est résolu avec les étapes que j'ai mentionnées, mais je veux savoir comment cela a fait une différence pour apache. Btw, j'avais vérifié les autorisations de fichiers et c'était pour tous (777). – foobar

0

Je ne comprends pas vraiment la question, il semble me répondre.

Vous avez fait 3 étapes, et la seule chose que vous avez fait là-bas qui aurait pu affecter apache est l'édition /etc/ld.so.conf. Je ne sais pas si c'est le cas (je n'ai aucune idée de ce que ce fichier est) mais si dans un cas lointain ce n'était pas le cas, c'était sûrement un processus de fond. find et ldconfig n'affectera pas apache de toute façon.

Questions connexes