ошибка php exec()…Кто-нибудь знает, что это значит?

#php #linux #apache #ubuntu

#php #linux #апач #убунту #apache #ubuntu

Вопрос:

Я только что установил ffmpeg на ubuntu, используя это руководствоhttp://ubuntuforums.org/showthread.php?t=786095 , когда я выполняю команду ffmpeg, показанную ниже, она отлично работает в терминале, и она работает, когда я выполняю php-файл, который я использую, через терминал с помощью команды ‘php’.

Однако, когда я пытаюсь выполнить файл с помощью браузера, я получаю следующую ошибку в моем журнале ошибок apache. Если бы кто-нибудь мог дать мне рекомендации, я был бы очень признателен.

ОШИБКА

/usr/local/bin/ffmpeg: /opt/lampp/lib/libgcc_s.so.1: версия `GCC_4.2.0′ не найдена (требуется /usr /lib /i386-linux-gnu/libstdc .so.6)

PHP-код

define(‘FFMPEG_LIBRARY’, ‘/usr/local/bin/ ffmpeg’);

$command = shell_exec(‘/usr/local/bin/ffmpeg -i /home/ geoff/Desktop/cave.wmv -acodec libfaac -aq 100 -vcodec libx264 -предустановленное замедление -crf 22 -потоков 0 / home / geoff/ Desktop/newvideo.flv’);

Ответ №1:

У меня это сработало.

http://blog.codyjung.com/2011/05/29/problems-with-lampp-and-exec/

Я зашел в /usr / lib /i386-linux-gnu / gcc / i686-linux-gnu / 4.5.2

и скопировал libgcc_s.so в

/opt/lampp/lib и переименовал его в libgcc_s.so.1, чтобы перезаписать предыдущий файл

Комментарии:

1. Это тоже помогло мне, быстро и грязно. Конечно, было бы лучше не использовать /opt / lampp, но зачем менять (в противном случае) работающую систему?

2. Мне это тоже помогло… 1 для вас.

Ответ №2:

Похоже, у вас возникли некоторые проблемы с версией зависимости. Я предполагаю, что вы скопировали библиотеки с какого-то другого сервера, который использовал другую версию основных системных файлов, чем эта.

Лучше всего выполнять сборку из исходного кода на компьютере, с которого вы его используете. Это гарантирует, что ваши библиотеки не будут ссылаться на что-то, чего нет в вашей системе.

Редактировать
И на самом деле, ссылка на /opt / lampp заставляет меня думать, что вы не используете стандартную установку веб-сервера, которую вы обычно устанавливаете на сервере Ubuntu, а вместо этого используете lampp. Это может быть источником вашего конфликта — если материал lampp связан иначе, чем «обычные» системные библиотеки, то вы, возможно, не сможете использовать их вместе.

Комментарии:

1. Вы говорите о библиотеках FFMPEG? Я просто следовал руководству. Это потому, что я использовал git clone? Итак, вы говорите, что я должен удалить и использовать synaptic file manager для поиска в этих библиотеках? Что, если бы я использовал CentOS вместо Ubuntu? Как бы я тогда получил эти библиотеки? apt-get?

2. Какова стандартная установка веб-сервера? На моем домашнем компьютере я использую его для тестирования, поэтому я использую lampp? Есть ли другой способ?

Ответ №3:

Пользователь, под которым работает ваш веб-сервер, не имеет той же среды, что и пользователь вашего терминала. Вам нужно будет добавить / opt / lampp / lib в пользовательскую среду веб-сервера. Найдите /opt/lampp/lib в /etc/ld.so.conf и файлы в /etc/ld.so.conf.d. Если его там нет, создайте новый файл в /etc/ld.so.conf.d со строкой, содержащей только этот путь. Вам нужно будет перезапустить веб-сервер.

Комментарии:

1. Имеет ли значение, как называется файл?

2. Я создал файл с именем addir.conf в /etc / ld.so.conf.d со строкой /opt / lampp / lib и перезапустил сервер, и я все еще получаю ту же ошибку в своем журнале.

Ответ №4:

Просматривая этот пост:http://fedoraforum.org/forum/showpost.php?p=1375187amp;postcount=2

Я чувствую, что ваша проблема может быть решена, попробуйте установить PHP из APT-GET вместо LAMPP и посмотрите, решит ли это вашу проблему.

Вы можете получить PHP, APACHE и MySQL с помощью:

 sudo apt-get install apache2, libapache2-mod-php5, php5, mysql-client, mysql-common, mysql-server
- http://rakeshsankar.wordpress.com/2010/09/10/install-setup-debian-server/
  

Комментарии:

1. Невозможно просто скопировать и вставить отсутствующий файл? Я использую lampp только из-за его простоты использования и phpmyadmin. Как я буду администрировать свой сервер и базу данных mysql, если я только установлю пакеты?

2. Простите мое невежество. Как установка всего стека lamp решит проблему зависимости с ffmpeg?

3. Иногда версия стека LAMP, скомпилированная из исходного кода LAMPP, использовала бы старые библиотеки для компиляции (PHP, MySQL и т.д.). Эти зависимости могут быть устранены, если он установлен напрямую. Я вижу, что @Scarface решил проблему, скопировав файлы GCC — и то же самое произошло бы, если бы LAMP stack устанавливался отдельно.