2017-04-06 71 views
-2

我對win7的安裝nginx1.10和php5.6,運行PHP發現無法捲曲請求的同一端口的PHP腳本。PHP錯誤:手術後35007毫秒0字節超時收到

http://localhost/a.php curl請求http://localhost/phpinfo.php,錯誤提示Error:Operation timed out after 35007 milliseconds with 0 bytes received

server { 
    listen 80; 
    server_name localhost; 
    root d:/localhost; 
    index index.html index.htm index.php; 
    autoindex on; 
    autoindex_localtime on; 

    location ~ \.php$ { 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include  fastcgi_params; 
    } 
} 

http://localhost/a.php

<?php 
function makeRequest($url, $params, $method = 'GET') 
{ 
    $ch = curl_init(); 
    if ($method == 'GET') { 
     $url .= '?' . http_build_query($params); 
    } else { 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 
    } 

    if (substr($url, 0, 6) == 'https:') { 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
    } 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'ApiClient/v1.0'); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 35); 


    $result = curl_exec($ch); 
    $info = curl_getinfo($ch); 
    $error = curl_error($ch); 

    curl_close($ch); 
    print_r($info); 
    var_dump($error); 
    return $result; 
} 


$url = 'http://localhost/phpinfo.php'; 
makeRequest($url, []); 

輸出:

Array 
(
    [url] => http://localhost/phpinfo.php? 
    [content_type] => 
    [http_code] => 0 
    [header_size] => 0 
    [request_size] => 96 
    [filetime] => -1 
    [ssl_verify_result] => 0 
    [redirect_count] => 0 
    [total_time] => 35.007 
    [namelookup_time] => 0.016 
    [connect_time] => 0.219 
    [pretransfer_time] => 0.219 
    [size_upload] => 0 
    [size_download] => 0 
    [speed_download] => 0 
    [speed_upload] => 0 
    [download_content_length] => -1 
    [upload_content_length] => -1 
    [starttransfer_time] => 0 
    [redirect_time] => 0 
    [redirect_url] => 
    [primary_ip] => 127.0.0.1 
    [certinfo] => Array 
     (
     ) 

    [primary_port] => 80 
    [local_ip] => 127.0.0.1 
    [local_port] => 55978 
) 

D:\localhost\a.php:37:string 'Operation timed out after 35007 milliseconds with 0 bytes received' (length=66) 

我發現,如果使用不同的端口,發起請求使用該端口的PHP,並請求的PHP響應使用另一個端口,以及執行超時不會發生。

+0

因爲PHP,CGI是不是PHP-FPM,PHP,CGI不會自動啓動新的進程,所以一旦佔領將被鎖定 – Mario7

回答

0

我知道爲什麼,因爲php-cgi不是php-fpm,php-cgi不會自動啓動新進程,所以一旦被佔用就會被鎖定。

相關問題