Joomla 용 인증 플러그 인을 작성하고 있습니다. 플러그인이 외부 사이트를 호출하여 사용자 이름과 비밀번호를 확인하고 있습니다.Joomla에서 사용할 때 fopen()이 매우 느립니다.
코드가 작동하지만 내 문제는 Joomla 플러그인에서 fopen()을 호출 할 때 응답하기 위해 매우 긴 시간 (63 초)이 소요된다는 것입니다.
서버에서 Joomla를 통하지 않고 동일한 코드를 실행하면 fopen() 호출은 0.1 초 걸립니다.
Joomla가 변경할 수있는 설정이있어 fopen() 호출이 오래 걸릴 수 있습니까? 또는 fopen() 대신 사용해야하는 다른 함수가 있습니까? (나는 file_get_contents()을 시도했지만 동일한 결과를 가지고있다)
(0120)$username = "admin";
$password = "1234" ;
$verb = 'GET'
$url = "https://xxx.xxx.xxx/api.phtml/login" ;
$params = array("username"=>$username, "password"=>$password);
$params = http_build_query($params);
$url .= '?' . $params;
$cparams = array('http' => array( 'method' => $verb,
'ignore_errors' => true));
$context = stream_context_create($cparams);
$fp = fopen($url, 'rb', false, $context);
allow_url_fopen이 활성화되어 있습니다.
줌라! 버전 : 줌라! 2.5.27 안정적
PHP 버전 : 5.2.6-1 + lenny10
나는 3 일 동안 이걸로 고생하고있어, 어떤 도움을 주시면 감사하겠습니다!
감사합니다.
암호를 get 매개 변수 (URL)로 전달하지 마십시오. 전혀 안전하지 않습니다. 그리고 서버가 응답하는 데 시간이 걸린다 고 생각합니다. 브라우저가 joomla 사이트를로드하는 데 걸리는 시간은 얼마나됩니까? – Jigar
내 플러그인을 사용 중지하면 로그인을 클릭하면 페이지가로드되기까지 1,16 초가 걸리며 플러그인을 사용하는 경우 페이지로드에는 1 분 4 초가 걸립니다. fopen() 호출 직전과 직후에'$ time = microtime (true);을 넣었습니다. 63 초가 걸렸습니다. https를 사용할 때 URL에 비밀번호를 전달하는 것에 대해 안전하다고 생각 했습니까? – Zero
https://xxx.xxx.xxx/api.phtml/login에 대해 webpagetest.org에서 runa 테스트를 수행 할 수 있습니까? DNS가 최근에 변경되었습니다. fopen 대신 curl을 시도하고 다른 호스팅 회사를 시도해보십시오. – jdog