php에서 https로의 소켓 접속을 하려면
fsockopen($host, $port)함수를 사용하면 되는데, $port=443이고 $host는 ssl://로 시작하도록 접두어를 붙여야 한다.
좀더 구체적으로 예를 들면
fsockopen("ssl://some.site.addr", 443)
이 경우 PHP는 openSSL이 설치되어 있어야 제대로 동작한다. 직접 확인해본 결과도 ssl즉 https로의 접속이 문제없이 잘 되었다.
만일 설치되어 있지 않으면? "Unable to find the socket transport ssl did you forget to enable it when you configured PHP" 이라는 에러 메시지가 나온다.
Plesk를 사용한 서버는 미리 openSSL을 설치해 둔 것같다. 굳이 버전을 확인해보지는 않았으나 PHP에서 접속이 되는 것으로 보아 openSSL이 설치된 것으로 여기고 확인하지는 않았다.
<참고>
fsockopen함수가 아닌 curl함수계열을 써서 접속하는 예제도 많이 있으나 fsockopen이 단순하고 http접속을 공유화 할 수 있기 때문에 편리하다고 본다.
만일 openSSL 모듈이 설치되어 있지 않다면 다운로드하여 설치해야 한다.
========================================================================
* fsockopen 함수 사용 테스트
테스트 파일 만들기
<?
$fp = fsockopen('www.oh7.co.kr',80,$errno,$errstr,10);
if ( $fp ) {
$send = 'GET /main/index.php HTTP/1.0'."\r\n";
$send.= 'Host: oh7.co.kr'."\r\n";
$send.= 'Connection: Close'."\r\n\r\n";
fwrite($fp,$send);
$content = '';
while ( !feof($fp) ) $content.= fread($fp,1024);
$content = substr($content,strpos($content,"\r\n\r\n")+4);
fclose($fp);
file_put_contents('test.html',$content);
}
?>
-> 위 예제해서 해당 도메인은 환경에 맞게 변경 한다.
-> 권한은 777
-> 해당 도메인에 있는 index.php를 불러와서 정적인 test.html 변환하는 짧은 예제.
'OS' 카테고리의 다른 글
mysql log 설정 총 정리 (0) | 2014.09.15 |
---|---|
mysql master-slave 설정 ( mysql replication ) (0) | 2014.09.15 |
mysql lock 걸리는 부분 (0) | 2014.09.14 |
scan ssh (0) | 2014.09.14 |
Windows 세션 및 PID 확인 -> netstat (0) | 2014.09.14 |