Prieteni,
Am configurat un chroot-jail cu nginx și phpfpm 7.4 de la packages.sury.org/php ca de obicei (pe Debian 5.10.103-1 bullseye).
Imagemagick eșuează:
<?php $im=new Imagick(__DIR__ . '/image.png');
ImagickException neprins: NoDecodeDelegateForThisImageFormat `PNG' @
error/constitute.c/ReadImage/575
<?php phpinfo()
„Numărul ImageMagick de formate acceptate: 0”
Versiunea instalată: php7.4-imagick 3.6.0-4+0~20220117.35+debian11~1.gbp149f82
Aș bănui că există o problemă de chroot, dar module PHP destul de bune sunt încărcate de procesul principal al PHP și nu necesită biblioteci în închisoarea chroot. gdlib funcționează. Din linia de comandă, imagick funcționează conform așteptărilor, așa că presupun că toate bibliotecile necesare sunt instalate. Am verificat de două ori închisoarea cu o închisoare care funcționează corect pe Debian buster, nu am găsit diferențe majore.
Nu am experimentat niciodată asta înainte. Ceva indicii?
Actualizați
Am observat o problemă suplimentară care ar putea fi conectată:
<?php system("/usr/bin/id)";
Cod rezultat: -1 error_get_last() ->Array (
[tip] => 2
[message] => system(): Imposibil de fork [/usr/bin/id]
[fișier] => /htdocs/test.php
[linie] => 198 )
Când schimb root de la linia de comandă cu chroot --userspec=myphpfpmuser...
comanda /usr/bin/id
returnează id-ul de utilizator corect. Procesul fpm rulează ca acest utilizator.
$ ulimit -a
timp de neblocare în timp real (microsecunde, -R) nelimitat
dimensiunea fișierului de bază (blocuri, -c) 0
dimensiunea segmentului de date (kbytes, -d) nelimitat
prioritate de programare (-e) 0
dimensiunea fișierului (blocuri, -f) nelimitată
semnale în așteptare (-i) 256246
memorie maximă blocată (kbytes, -l) 8205255
dimensiunea maximă a memoriei (kbytes, -m) nelimitată
deschide fișiere (-n) 1024
dimensiunea conductei (512 octeți, -p) 8
Cozi de mesaje POSIX (octeți, -q) 819200
prioritate în timp real (-r) 0
dimensiunea stivei (kbytes, -s) 8192
timp CPU (secunde, -t) nelimitat
max. procese utilizator (-u) 256246
memorie virtuală (kbytes, -v) nelimitată
blocări de fișiere (-x) nelimitate
Are cineva idei?