場景簡述
window系統下使用phpstudy搭建集成開發環境,使用的是PHP5.6+Nginx組合,在本地項目中執行curl_exec()請求時,提示:
Maximum execution time of 30 seconds exceeded
但奇怪的是使用apache服務器卻可以正常執行。
原因:
windows 下 nginx+php環境,並不支持併發。
解決方案:
windows下不支持自動拉起子進程實現併發,那麼要實現併發,只能通過手動進行子進程拉起操作。實現步驟如下:
- 在配置nginx vhost時,增加fastcgi_pass的監聽端口號
http {
# 其他配置省略,增加以下代碼
upstream fastcgi_backend {
server 127.0.0.1:9000;
server 127.0.0.1:9001;
}
}
- 在對應的sever配置中修改請求轉發配置:
server{
//其他配置省略,在server對應的轉發配置修改如下
location ~ \.php(.*)$ {
fastcgi_pass fastcgi_backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
#fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
#fastcgi_param PATH_INFO $fastcgi_path_info;
#fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
}
}
- 通過cmd啓動多個php-cgi進程
- 打開cmd 或bash 命令行運行:
<path>/php-cgi.exe -b 127.0.0.1:9000 -c <path>/php.ini
- 打開新的命令行窗口
<path>/php-cgi.exe -b 127.0.0.1:9001 -c <path>/php.ini
其中