imagick 동적 이미징이 제대로 작동하지 않는 별표 pbx agi PHP 스크립트

imagick 동적 이미징이 제대로 작동하지 않는 별표 pbx agi PHP 스크립트

문제 설명:

ASTERISK AGI PHP 스크립트를 사용하여 이미지를 생성하고 imagick.

installed:php-imagick/oldstable,now 3.4.4+php8.0+3.4.

AGI PHP 스크립트는 두 부분으로 구성됩니다.

1 전화번호 등 발신자 정보가 포함된 이미지를 생성하고, 전화번호를 기준으로 해당 여권사진을 생성합니다.

2 이 이미지를 휴대폰으로 전송하세요.

PHP 스크립트는 무엇을 합니까?

2: 기존 이미지를 휴대폰으로 보냅니다.

기존 이미지를 사용하면 휴대폰으로 전송되어 문제 없이 표시됩니다.

PHP 스크립트에서 작동하지 않는 것:

1: imagick이 이미지를 생성하지 않았습니다.

Asterisk CLI에서는 스크립트가 를 사용하여 실행되므로 0오류 메시지가 없는 것을 볼 수 있습니다.


스크립트를 루트로 시작하면 /usr/share/asterisk/agi-bin모든 것이 잘 작동합니다. Imagick은 이미지를 생성하여 휴대폰에 깔끔하게 전달합니다.

php script.php 01234567

그러나 스크립트가 imagick을 호출하면 다음과 같이 작동이 중지됩니다: $foto = new Imagick("/path/to/image/image.png");

내가 시도한 것:

1 다른 이미지 생성기를 사용하십시오: gdimagegmagick, 그러나 동일한 문제가 있습니다.

2chown 777 script.php

3 AGI 명령을 사용하여 Asterisk가 올바른 변수를 전달하는지 확인합니다(잘 작동함).

4 다른 사용자( ) imagick으로 CLI에서 PHP 스크립트를 실행해도 su otheruser작동하지 않습니다.

imagick이 Asterisk의 AGI에서 이미지를 생성하지 않는 이유에 대해 올바른 방향을 알려줄 수 있는 사람이 있나요?

업데이트: 좋습니다. 약간의 진전이 있었습니다. 나는 이것이 읽기 및 쓰기 권한 상황이라고 생각합니다. /tmp에 쓸 때 스크립트가 중지되지 않고 이미지가 실제로 /tmp에 기록됩니다. 이미지를 읽으면 여전히 문제가 발생합니다. 나는 계속 찾고 있었다.

답변1

글쎄, 약간의 고민 끝에 안전하길 바라는 해결책을 찾았습니다. www-data 그룹에 별표를 추가했는데 이제 imagick이 포함된 별표 php agi를 ​​사용하면 문제 없이 이미지를 쓸 수 있고 내 휴대폰으로 쉽게 보낼 수 있습니다. 모든 것이 정상적으로 작동합니다.

(제보해주신 waltinator에게 감사드립니다!)

관련 정보