1

私は自分のアプリケーションで、いくつかの画像を取り、ユーザーに応じて 1 つの pdf にレンダリングする機能を開発しました。この機能はステージ サーバーでは問題なく動作していますが、本番環境では「サーバー エラー」が表示されます。

Apacheのエラーログを確認したところ、以下のエラーが見つかりました

libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area

Corrupt JPEG data: 234 extraneous bytes before marker 0xd9

アプリケーションは Cakephp で作成され、PDF をレンダリングするためのライブラリは tcpdg であり、ステージング サーバーとプロダクション サーバーは ubuntu にあります。私は何人かの先輩に相談しましたが、彼らは皆、これは GD の問題だと言っています。

ステージサーバーの環境

PHP 5.3.3-0.dotdeb.1 with Suhosin-Patch (cli) (built: Oct  1 2010 08:49:29)
Copyright (c) 1997-2009 The PHP Group

本番サーバーの環境

PHP 5.3.2-1ubuntu4.18 with Suhosin-Patch (cli) (built: Sep 12 2012 19:12:47)
Copyright (c) 1997-2009 The PHP Group

リスクのないソリューションをお勧めします。

4

2 に答える 2

1

なんらかの理由でイメージの終了後にいくつかのガベージ バイトがあり、動作が停止します。

回避策を実行して、EOI (画像の終わり) を表す画像バイト内の "\xFF\xD9" を見つけ、その後のバイトを切り刻むことができます。うまくいけば、これはうまくいくでしょう。

于 2012-11-29T19:18:57.373 に答える
1

この問題の診断中。ImageMagick モジュールがステージング サーバーにロードされていないことに気付きました。そのため、ステージング サーバーで動作していました。本番サーバーから無効にしましたが、機能します。それはGDとのいくつかの競合を引き起こしていました。

以下の拡張子をコメントアウトしました

extension=imagick.so

とにかく、ありがとう

于 2012-12-04T11:38:00.230 に答える