1

同様の質問で多くのトピックを見てきましたが、同様の状況ではありません.phpの設定が問題ではないようです.

現在の php.ini 設定は次のとおりです。

max_execution_time = 600
max_input_time = 600
memory_limit = 512M
post_max_size = 192M
upload_max_filesize = 192M

これらの設定は、ローカルの .htaccess によって上書きできません。

スクリプト スクリプトは PHP であり、次のことを行います。

ユーザーが動画ファイルをアップロードします (uploadify を使用)。アップロードが完了すると、スクリプトは ffmpeg を使用して、それを低品質の 480p flv ファイルに変換します。

問題 このスクリプトは常に機能していましたが、php 5.3.9 から 5.3.17 へのアップグレード以降、機能しなくなりました。アップロード部分は正常に動作します。1Mbから190mbのファイルで試しました。アップロードが完了すると、変換が開始され、スクリプトは常に正確に 46 秒で停止します。理由はわかりませんが、常に 46 秒です。

サーバー サーバーは xeon クアッドコア 16Gb RAM で、負荷平均は 0.62 (8 = 100% の CPU 使用率) です。

私は本当に問題が何であるか分かりません。スクリプトは正常に機能し、変更されていません。だから、それは新しい PHP か、おそらく Apache に関係しているに違いありませんが、私には手がかりがありません。

問題が何であるかについて誰か提案がありますか?

4

2 に答える 2

4

Apache のタイムアウト設定を確認するか、これを VirtualHost セクションに追加します。

TimeOut 2400

47 秒間スリープするスクリプトを作成することで、それが本当にタイムアウトなのか、それとも他の問題 (メモリなど) なのかを確認することもできます。

<?php

sleep(47);
echo "Hi I'm still alive!";
于 2012-10-12T08:49:14.497 に答える
1

解決

Nin のおかげで、Apache の error_log に何かが見つかり、修正できました。

WHM にログイン > Apache 構成 > インクルード エディタ > Post VirtualHost インクルード > すべて

そして追加

<IfModule mod_fcgid.c>
 FcgidProcessLifeTime 8200
 FcgidIOTimeout 8200
 FcgidConnectTimeout 400
 FcgidMaxRequestLen 1000000000 
</IfModule>

fcgiの問題のようです。

于 2012-10-12T09:27:38.607 に答える