PHP スクリプトを 60 秒以上実行する必要がある場合、常に 504 ゲートウェイ エラーが発生します。
私は専用サーバーの Media Temple にいます。私は Media Temple に連絡しました。このファイルを編集するように言われました。
/etc/httpd/conf.d/fcgid.conf
私が持っている...以下を参照してください
LoadModule fcgid_module modules/mod_fcgid.so
<IfModule mod_fcgid.c>
<IfModule !mod_fastcgi.c>
AddHandler fcgid-script fcg fcgi fpl
</IfModule>
FcgidIPCDir /var/run/mod_fcgid/sock
FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm
FcgidIdleTimeout 300
FcgidMaxRequestLen 1073741824
FcgidProcessLifeTime 10000
FcgidMaxProcesses 64
FcgidMaxProcessesPerClass 15
FcgidMinProcessesPerClass 0
FcgidConnectTimeout 600
FcgidIOTimeout 600
FcgidInitialEnv RAILS_ENV production
FcgidIdleScanInterval 600
</IfModule>
私はできる限りすべてを最大化しようとしました。これをテストするために、以下の関数を実行しています。
function test504(){
@set_time_limit(0);
sleep(60);
echo "true";
}
スリープは 60 秒未満の任意の値で機能しますが、それ以上になると 504 ゲートウェイ エラーが発生します
私の phpinfo(); 出力
max_execution_time 600
max_input_time 180
fastcgi_connect_timeout 設定の増加に関する投稿をいくつか見ましたが、Media Temple のどこでこれを見つけることができるかわかりません。
誰でも助けることができますか?ありがとう。
** アップデート **
サポートとチャットした後、nginx.conf を編集する必要があると言われ、この投稿に誘導されましたhttp://blog.secaserver.com/2011/10/nginx-gateway-time-out/
サーバー設定に値が見つかりません。client_header_timeout client_body_timeout send_timeout fastcgi_read_timeout
私のnginx.confファイルは次のようになります
#error_log /var/log/nginx/error.log info;
#pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 120;
#tcp_nodelay on;
#gzip on;
#gzip_disable "MSIE [1-6]\.(?!.*SV1)";
server_tokens off;
include /etc/nginx/conf.d/*.conf;
}
** アップデート **
私はこれを整理し、どのように修正したかについてのブログ投稿を追加しました。
http://devsforrest.com/116/boost-settings-on-media-temple-for-maximum-settings