The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"как изменить LD_LIBRARY_PATH в php?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"как изменить LD_LIBRARY_PATH в php?"  
Сообщение от charliez (ok) on 19-Апр-08, 00:33 
Иммется виртуальный хостинг (зенон) на котором можно компилировать свои модули для пхп и подключать их в собственный php.ini

был собран модуль ffmpeg.so, нюанс такой, что все требуемые им библиотеки при сборке положены так же в хоумдир (в $HOME/local/lib), и из-под shell все работает только при установленной переменной окружения LD_LIBRARY_PATH=/bhome/part3/03/saroot/local/lib

%ldd ffmpeg.so
ffmpeg.so:
        libavformat.so.52 => /bhome/part3/03/saroot/local/lib/libavformat.so.52 (0x2816e000)
        libavcodec.so.51 => /bhome/part3/03/saroot/local/lib/libavcodec.so.51 (0x281ff000)
        libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 (0x2866f000)
        libavutil.so.49 => /bhome/part3/03/saroot/local/lib/libavutil.so.49 (0x28677000)
        libz.so.3 => /lib/libz.so.3 (0x28683000)
        libm.so.4 => /lib/libm.so.4 (0x28694000)
        libmp3lame.so.0 => /bhome/part3/03/saroot/local/lib/libmp3lame.so.0 (0x286aa000)
        libvorbisenc.so.2 => /bhome/part3/03/saroot/local/lib/libvorbisenc.so.2 (0x28733000)
        libvorbis.so.3 => /bhome/part3/03/saroot/local/lib/libvorbis.so.3 (0x28832000)
        libogg.so.5 => /bhome/part3/03/saroot/local/lib/libogg.so.5 (0x28859000)
        libc.so.6 => /lib/libc.so.6 (0x2807d000)

если LD_LIBRARY_PATH убрать, то

%ldd ~/local/lib/ffmpeg.so
/bhome/part3/03/saroot/local/lib/ffmpeg.so:
        libavformat.so.52 => /bhome/part3/03/saroot/local/lib/libavformat.so.52 (0x2816e000)
        libavcodec.so.51 => /bhome/part3/03/saroot/local/lib/libavcodec.so.51 (0x281ff000)
        libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 (0x2866f000)
        libavcodec.so.51 => not found (0x0)
        libavutil.so.49 => not found (0x0)
        libz.so.3 => /lib/libz.so.3 (0x28677000)
        libm.so.4 => /lib/libm.so.4 (0x28688000)
        libmp3lame.so.0 => not found (0x0)
        libvorbisenc.so.2 => not found (0x0)
        libvorbis.so.3 => not found (0x0)
        libogg.so.5 => not found (0x0)
        libavutil.so.49 => not found (0x0)
        libmp3lame.so.0 => not found (0x0)
        libvorbisenc.so.2 => not found (0x0)
        libvorbis.so.3 => not found (0x0)
        libogg.so.5 => not found (0x0)
        libc.so.6 => /lib/libc.so.6 (0x2807d000)

что понятно, так как собственноручно собранные  либы не попадают в директории по умолчанию.


ffmpeg.so положен в $HOME/local/lib

прописал в ~/php4.ini
extension_dir = "/bhome/part3/03/saroot/local/lib"
extension=ffmpeg.so

из shell все нормально:

php -c ~/php4.ini -i | grep ffm
ffmpeg
ffmpeg support (ffmpeg-php) enabled
ffmpeg-php version 0.5.0
ffmpeg.allow_persistent 0

%php -c ~/php4.ini -m | grep ffm
ffmpeg


при попытке же открыть через веб, скрипт с phpinfo() информация о модуле отсутствует. При попытке подключить его динамически -

Warning: dl() [function.dl]: Unable to load dynamic library '/bhome/part3/03/saroot/local/lib/ffmpeg.so' - Shared object "libavcodec.so.51" not found, required by "libavformat.so.52" in /bhome/part3/03/saroot/domain/www/testtest/test3.php on line 21

подозреваю, что пхп не ищет либы /bhome/part3/03/saroot/local/lib, так как на него не распростряняются переменные окружения shell

Попытки экспортировать переменную LD_LIBRARY_PATH в скрипте ни к чему не привели.

Может быть, есть еще способ заставить пхп искать Shared object-ы  в другом месте?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "как изменить LD_LIBRARY_PATH в php?"  
Сообщение от angra (ok) on 19-Апр-08, 15:22 
Вообще такие вопросы лучше саппорту хостинга задавать, они лучше знают что и как у них организовано, а вариантов может быть много. Универсальным вариантом остается статическая сборка.  
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "как изменить LD_LIBRARY_PATH в php?"  
Сообщение от AlexX email(??) on 19-Апр-08, 20:05 
>Вообще такие вопросы лучше саппорту хостинга задавать, они лучше знают что и
>как у них организовано, а вариантов может быть много. Универсальным вариантом
>остается статическая сборка.

Вариант статической сборки действительно 100% сработает, т.к. собираться все будет уже непосредственно в shell.

а вообще, есть ещё такая штука: (для apache)
http://httpd.apache.org/docs/1.3/mod/mod_env.html

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "как изменить LD_LIBRARY_PATH в php?"  
Сообщение от charliez (ok) on 19-Апр-08, 20:37 
тарифный план не позволяет подключить к апачу mod_env

Но проблему удалось обойти, подключив PHP как CGI модуль к апачу :) Тему можно закрыть.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "как изменить LD_LIBRARY_PATH в php?"  
Сообщение от AlexX email(??) on 20-Апр-08, 14:58 
>тарифный план не позволяет подключить к апачу mod_env

когда он там изначально есть :))))
>
>Но проблему удалось обойти, подключив PHP как CGI модуль к апачу :)
>Тему можно закрыть.

"Труден путь из потемок к свету..." (с)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "как изменить LD_LIBRARY_PATH в php?"  
Сообщение от Максим (??) on 09-Фев-09, 04:35 
Доброго времени суток!

Та же проблема. Но использовать PHP как CGI не хотелось бы.

собрал fmpeg как ./configure --prefix=$HOME/local --enable-static --enable-shared
ffmpeg- ./configure --prefix=$HOME/local --with-php-config=$HOME/php-config --with-ffmpeg=$HOME/local

в $HOME/php-config тупейший перл-скрипт подменяющий --extension-dir на $HOME/local/phpext

в итоге

> ldd ~/local/phpext/ffmpeg.so

$HOME/local/phpext/ffmpeg.so:
        libavformat.so.52 => $HOME/local/lib/libavformat.so.52 (0x6a51000)
        libavcodec.so.51 => $HOME/local/lib/libavcodec.so.51 (0x6bee000)
        libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 (0x72cb000)
        libavcodec.so.51 => not found (0x0)
        libavutil.so.49 => not found (0x0)
        libz.so.3 => /lib/libz.so.3 (0x73d6000)
        libbz2.so.2 => /usr/lib/libbz2.so.2 (0x74ea000)
        libm.so.4 => /lib/libm.so.4 (0x75fa000)
        libavutil.so.49 => not found (0x0)
        libc.so.6 => /lib/libc.so.6 (0x6736000)

подскажите, пожалуйста, с какими ключами конфигурировать. чтобы сборка
было статической?

Премного буду благодарен.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру