
問題の説明:
ASTERISK AGI PHPスクリプトを使用して画像を生成しますimagick
。
installed:php-imagick/oldstable,now 3.4.4+php8.0+3.4.
AGI PHPスクリプトは2つの部分で構成されています。
1電話番号などの発信者情報を含む画像を作成し、電話番号に基づいて適切なパスポート写真を作成します。
2この画像を携帯電話に転送します。
PHPスクリプトは何をしますか?
2:既存の画像を携帯電話に送信します。
既存の画像を使用すると、携帯電話に転送され、問題なく表示されます。
PHPスクリプトで動作しないもの:
1: imagickが画像を作成していません。
Asterisk CLIでは、スクリプトはを使用して実行されるため、0
エラーメッセージがないことがわかります。
スクリプトをrootとして起動すると、/usr/share/asterisk/agi-bin
すべてがうまく機能します。 Imagickは画像を生成して携帯電話にきれいに配信します。
php script.php 01234567
ただし、スクリプトが imagick を呼び出すと、次のように動作が停止します。 $foto = new Imagick("/path/to/image/image.png");
私が試したこと:
1他の画像ジェネレータを使用してください:gdimage
とgmagick
、しかし同じ問題があります。
2chown 777 script.php
3 AGIコマンドを使用して、Asteriskが正しい変数を渡していることを確認します(うまくいきます)。
4他のユーザー()imagickでCLIでPHPスクリプトを実行してもsu otheruser
機能しません。
imagickがAsteriskのAGIで画像を生成しない理由について正しい方向を知らせる人はいますか?
アップデート:いいですね。若干の進展がありました。私はこれが読み取りおよび書き込み権限の状況だと思います。 / tmpに書き込むとスクリプトは停止せず、イメージは実際には/ tmpに書き込まれます。画像を読むと、まだ問題が発生します。ずっと探していました。
答え1
まあ、少し悩みの終わりに安全であることを望む解決策を見つけました。 www-dataグループにアスタリスクを追加しましたが、imagickを含むアスタリスクのphp agiを使用すると、問題なく画像を書き込んで携帯に簡単に送信できます。すべてが正常に動作します。
(提供してくれたウォーチナーに感謝!)