2

gd関数を含むコードをWebサイトにインストールしました。デバッグした後、私は次の結論に達しました

$src = imagecreatefrompng($s);

コードを次のように変更しても、サーバーは「接続がリセットされました」と応答します。

$src = @imagecreatefrompng($s);

同じエラーが発生します。PHPのバージョンを確認し、gdライブラリがインストールされて有効になっているかどうかを確認しましたが、すべて問題ありません。error_logには何もありません。また、ファイルパスは問題なく、ファイルは存在し、他の関数(fopenやfile_get_contentsなど)がファイルにアクセスできるため、権限に問題はありません。

誰かアイデアがありますか?

編集:ファイルはローカルサーバー上にあります。

4

1 に答える 1

1

うーん、コマンドラインからサーバーにアクセスできない場合、これを追跡するのに頭が痛いかもしれません。心に浮かぶ2つのこと:

  1. 可能性は低いですが、 libpngがインストールされていないか、gdが PNG サポート付きでコンパイルされていない可能性があります。ブラウザからphpinfo()を実行し、 gdセクションを探します。PNG サポートが「有効」になっているはずです。
  2. 画像が PNG 画像ではない可能性があります。私はそれが奇抜であることを知っていますが、これらのことが起こる可能性があります.pngファイルに名前を付けるだけではPNGファイルは作成されません. ImageMagickをお持ちの場合は、 identifyプログラムを使用して確認できます。これは私のラップトップから実行したものです。

    $ 識別 ~/transparent-pixel.png ~/transparent-pixel.png PNG 1x1 1x1+0+0 8 ビット DirectClass 2.79KB 0.010u 0:00.009

画像が実際にPNGであることを確認するために使用できる他のプログラムがおそらくいくつかあります。

最後に、VM などのサーバーをシミュレートするローカル環境でスクリプトを動作させることをお勧めします。これは、サーバー上の問題を追跡するのに役立ちます。頭痛の種はそれほど多くありません。

于 2012-01-29T18:45:45.387 に答える