2012-06-27 4 views
0

documentation for the Plesk API *는 다음과 같은 cURL 기능을 제공합니다.Plesk API의 비정상적인 HTTP 헤더

function curlInit($host, $login, $password) 

{ 

    $curl = curl_init(); 

    curl_setopt($curl, CURLOPT_URL, "https://{$host}:8443/enterprise/control/agent.php"); 

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

    curl_setopt($curl, CURLOPT_POST,   true); 

    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 

    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 

    curl_setopt($curl, CURLOPT_HTTPHEADER, 

     array("HTTP_AUTH_LOGIN: {$login}", 

       "HTTP_AUTH_PASSWD: {$password}", 

       "HTTP_PRETTY_PRINT: TRUE", 

       "Content-Type: text/xml") 

); 



    return $curl; 
} 

나는 몇 가지 질문이 있습니다.

  1. 나는 어디에도 다른 HTTP 헤더에 밑줄이 표시되어 있습니다. 설명서에 오류가 있습니까?

  2. 지구상의 정보는 무엇입니까 HTTP_PRETTY_PRINT? 이를 검색하면 Plesk 문서로 되돌아갑니다. 다른 곳에서는 볼 수 없습니다.

  3. CURLOPT_USERPWD 대신 HTTP_AUTH_LOGINHTTP_AUTH_PASSWD을 사용하면 어떤 문제가 발생합니까?

덧붙여서, 필자가 시도한 모든 옵션에 대해 Plesk로부터 다음과 같은 응답을 받았습니다.

HTTP/1.1 404 Not Found 
X-UA-Compatible: IE=EmulateIE7 
Content-Type: text/html 
Content-Length: 345 
Date: Wed, 27 Jun 2012 14:58:15 GMT 
Server: sw-cp-server 
<?xml version="1.0" encoding="iso-8859-1"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <title>404 - Not Found</title> 
</head> 
<body> 
    <h1>404 - Not Found</h1> 
</body> 
</html> 

*이 패러랠 Plesk를 패널 9.5 :: API RPC 프로토콜 개발자 가이드> 클라이언트 코드 샘플> PHP 클라이언트 응용 프로그램

답변

2

가 :

(404)는 파일 .../enterprise/control/agent.php을 의미는 서버에서 제거되었습니다. 패치가 출시되기 전에 보안 취약성으로부터 보호하기 위해 많은 사람들이 몇 달 전에 그것을하고있었습니다. /usr/local/psa/admin/logs/httpsd_access_log을 오류를 확인하고 파일의 가용성을 확인할 것을 권합니다. /usr/local/psa/admin/htdocs/enterprise/control/agent.php

2
  1. Plesk를 자체 헤더를 사용합니다. 사용자 정의 HTTP 요청에서 유효한 헤더를 추가 할 수 있습니다. 예를 들어, 일부 웹 서버는 'powered by : xxxx'와 같은 자체 헤더를 추가하므로 괜찮습니다.
  2. pretty 프린트 헤더는 예쁜 XML 출력에 필요합니다.
  3. HTTP_AUTH_LOGIN 헤더에는 패널 사용자 로그인 이름이 포함됩니다. HTTP_AUTH_PASSWD 헤더에 패널 사용자 비밀번호가 들어 있습니다. CURLOPT_USERPWD은 필요하지 않습니다. 이 옵션을 사용하여
  4. 시도 : 점 4

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8'); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $packet); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 1200); //wait 20min 
    $response = curl_exec($ch); 
    
+0

+1이 답변은 더 많은 정보를 가지고 있으며 진행하러 갈 경우 유용하지만 수락 된 답변은 실제 문제입니다. 이제 우리 관리자는 우리가 어쨌든이 일을 성가 시게하지 않을 것이라고 결정했습니다. – TRiG