一、nginx、php-fpm修改
#修改Nginx配置:
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
fastcgi_connect_timeout 1200s;#原设置为300s
fastcgi_send_timeout 1200s;#原设置为300s
fastcgi_read_timeout 1200s;#原设置为300s
fastcgi_buffer_size 512k;
fastcgi_buffers 6 512k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;
fastcgi_intercept_errors on;
client_max_body_size 100m;
client_body_buffer_size 1024k;
client_header_buffer_size 256k;
#修改php配置文件
php.ini:
max_execution_time = 300s;PHP 脚本的最大执行时间,但是,在 php-cgi(php-fpm) 中,该参数不会起效。
php-fpm:
request_terminate_timeout = 0; #设置单个请求的超时中止时间.设置为0 即一直执行下去直到程序结束 不会超时
memory_limit = 128M; 改为512M
最后在php函数里 添加了这样一行:
set_time_limit(0);
二、php代码修改
1. curl_init() 和 curl_exec()之间,添加:
curl_setopt($ch, CURLOPT_FILE, fopen($strTempFile, 'w'));
把数据读进这个strTempFile里,然后再从这个文件读数据
2. curl_setopt($ch, CURLOPT_TIMEOUT, 300) ;
设置超时时间
三、 具体参考API说明文档:
https://www.php.net/manual/en/function.curl-setopt.php