환경:
운영 체제: Linux
서버 소프트웨어: nginx/1.1.16PHP/5.3.27
MySQL 버전 :5.5.34-log
PHPCMS 프로그램 버전: Phpcms V9.5.7 릴리스 20140625
문제:
로컬: 로컬 디버깅 모든 것이 정상입니다
서버에서: PHPCMS에서 PHPSSO 통신이 성공했습니다. 계정 등록 및 로그인을 수행할 수 없습니다. 추적 코드를 통해 다음 코드에서 반환된 $fp가 null 값인 것으로 확인되었습니다.
$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
보안 알림 공지 웹사이트: http://www.xrnet.cn/store/2012-01-10.html
해결 방법:
fsockopen 교체 및 pfsockopen 함수와 stream_socket_client
예 다음과 같습니다
수정 전:
$fp = fsockopen($host, 80, $errno, $errstr, 30);
$fp = fsockopen($host, $port, $errno, $errstr, $connection_timeout);
$fp = stream_socket_client("tcp://".$host."80", $errno, $errstr, 30);
$fp = stream_socket_client("tcp://".$host.":".$port, $errno, $errstr, $connection_timeout);
참고: DISCUZ 통신 실패도 이유가 될 수 있습니다!
위의 내용을 포함하여 PHPCMS에 로그인하고 등록할 수 없는 것에 대해 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.