Skocz do zawartości
eRIZ

FreeBSD - php-fpm @ chroot i problem z Imagick

Polecane posty

Postawiłem sobie środowisko z PHP na FreeBSD via php-fpm z chrootowaniem do katalogu użytkownika.

 

Skompilowałem z obsługą imagick. I tu zaczynają się problemy, bo wykonanie nawet najprostszego kodu:

 

 

try{
 $img = new Imagick('img.jpg');
}catch(ImagickException $ex){
 var_dump($ex);
}

 

Wysypuje mi całość:

 

object(ImagickException)#2 (7) {
["message":protected]=>
string(87) "NoDecodeDelegateForThisImageFormat `magick-VO6fZKY8' @ error/constitute.c/ReadImage/532"
["string":"Exception":private]=>
string(0) ""
["code":protected]=>
int(1)
["file":protected]=>
string(23) "/chroot/script.php"
["line":protected]=>
int(8)
["trace":"Exception":private]=>
array(1) {
[0]=>
array(6) {
["file"]=>
string(23) "/chroot/script.php"
["line"]=>
int(8)
["function"]=>
string(11) "__construct"
["class"]=>
string(7) "Imagick"
["type"]=>
string(2) "->"
["args"]=>
array(1) {
[0]=>
string(11) "img.jpg"
}
}
}
["previous":"Exception":private]=>
NULL
}

 

Ok, myślę sobie, brak odpowiednich libów. ldd na imagick.so, kopiuję biblioteki do /lib względem katalogu "więziennego":

 

cp /usr/local/lib/libMagickWand.so.5 libMagickWand.so.5
cp /usr/local/lib/libMagickCore.so.5 libMagickCore.so.5
cp /lib/libthr.so.3 libthr.so.3
cp /lib/libc.so.7 libc.so.7
cp /usr/local/lib/liblcms2.so.2 liblcms2.so.2
cp /usr/local/lib/libtiff.so.4 libtiff.so.4
cp /usr/lib/liblzma.so.5 liblzma.so.5
cp /usr/local/lib/libjbig.so.1 libjbig.so.1
cp /usr/local/lib/libjpeg.so.11 libjpeg.so.11
cp /usr/local/lib/liblqr-1.so.3 liblqr-1.so.3
cp /usr/local/lib/libglib-2.0.so.0 libglib-2.0.so.0
cp /usr/local/lib/libintl.so.8 libintl.so.8
cp /usr/local/lib/libiconv.so.3 libiconv.so.3
cp /usr/local/lib/libpcre.so.0 libpcre.so.0
cp /usr/local/lib/libfftw3.so.6 libfftw3.so.6
cp /usr/local/lib/libfontconfig.so.1 libfontconfig.so.1
cp /usr/local/lib/libfreetype.so.9 libfreetype.so.9
cp /usr/local/lib/libexpat.so.6 libexpat.so.6
cp /usr/lib/libbz2.so.4 libbz2.so.4
cp /lib/libz.so.5 libz.so.5
cp /usr/local/lib/libltdl.so.7 libltdl.so.7
cp /lib/libm.so.5 libm.so.5

 

Niestety, skutek jest identyczny - wysypuje wyjątek, choć wszystkie biblioteki są (a przynajmniej powinny być) dostępne.

 

Poguglałem, niestety - nic interesującego nie znalazłem, a mi pomysły się już skończyły.

 

--

edit: ścieżki do obrazka, ale w rzeczywistym środowisku są ok.

Edytowano przez eRIZ (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie kopiowałem w to samo, tylko w ogólnodostępne (binarka nie odwołuje się wewnętrznie do ścieżek bezwzględnych).

 

Problemem było cache'owanie bibliotek przez php-fpm (nie przeładowywałem po dodaniu bibliotek), ale nie wpadłbym na to, gdybyś mnie nie nakierował na przetestowanie via chroot. [:

 

Problem rozwiązany.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×