เพื่อน,
ฉันได้ตั้งค่า chroot-jail ด้วย nginx และ phpfpm 7.4 จาก package.sury.org/php ตามปกติ (บน Debian 5.10.103-1 bullseye)
Imagemagick ล้มเหลว:
<?php $im=new Imagick(__DIR__ . '/image.png');
Uncaught ImagickException: NoDecodeDelegateForThisImageFormat `PNG' @
ข้อผิดพลาด/constitute.c/ReadImage/575
<?php phpinfo()
"จำนวนรูปแบบที่รองรับ ImageMagick: 0"
รุ่นที่ติดตั้ง: php7.4-imagick 3.6.0-4+0~20220117.35+debian11~1.gbp149f82
ฉันสงสัยว่ามีปัญหา chroot บางอย่าง แต่โมดูล PHP ที่เกี่ยวข้องนั้นถูกโหลดโดยกระบวนการหลักของ PHP และไม่จำเป็นต้องมีไลบรารี่ใด ๆ ภายในคุก chroot gdlib ใช้งานได้ จาก commandline imagick ทำงานตามที่ excpected ดังนั้นฉันคิดว่ามีการติดตั้ง libs ที่จำเป็นทั้งหมดแล้ว ตรวจสอบคุกอีกครั้งด้วยคุกที่ใช้งานได้ดีกับ Debian buster ไม่พบความแตกต่างที่สำคัญ
ไม่เคยมีประสบการณ์เช่นนี้มาก่อน คำแนะนำใด ๆ
อัปเดต
สังเกตเห็นปัญหาเพิ่มเติมที่อาจเชื่อมต่อ:
<?ระบบ php("/usr/bin/id)";
รหัสผลลัพธ์: -1 error_get_last() ->Array (
[ประเภท] => 2
[ข้อความ] => system(): ไม่สามารถแยก [/usr/bin/id]
[ไฟล์] => /htdocs/test.php
[บรรทัด] => 198 )
เมื่อฉันเปลี่ยนจาก commandline ด้วย chroot --userspec=myphpfpmuser ...
คำสั่ง /usr/bin/id
ส่งคืนรหัสผู้ใช้ที่ถูกต้อง กระบวนการ fpm กำลังทำงานในฐานะผู้ใช้รายนี้
$ ulimit -ก
เวลาที่ไม่ปิดกั้นตามเวลาจริง (ไมโครวินาที, -R) ไม่จำกัด
ขนาดไฟล์หลัก (บล็อก, -c) 0
ขนาด data seg (kbytes, -d) ไม่จำกัด
การจัดลำดับความสำคัญ (-e) 0
ขนาดไฟล์ (บล็อก, -f) ไม่จำกัด
สัญญาณที่รอดำเนินการ (-i) 256246
หน่วยความจำสูงสุดที่ล็อกไว้ (kbytes, -l) 8205255
ขนาดหน่วยความจำสูงสุด (kbytes, -m) ไม่จำกัด
เปิดไฟล์ (-n) 1024
ขนาดไปป์ (512 ไบต์, -p) 8
คิวข้อความ POSIX (ไบต์, -q) 819200
ลำดับความสำคัญตามเวลาจริง (-r) 0
ขนาดสแต็ก (kbytes, -s) 8192
เวลาซีพียู (วินาที, -t) ไม่จำกัด
กระบวนการของผู้ใช้สูงสุด (-u) 256246
หน่วยความจำเสมือน (kbytes, -v) ไม่จำกัด
ล็อคไฟล์ (-x) ไม่จำกัด
ใครมีความคิดใด ๆ ?