>  기사  >  CMS 튜토리얼  >  phpcms v9 통신이 실패하는 경우 수행할 작업

phpcms v9 통신이 실패하는 경우 수행할 작업

藏色散人
藏色散人원래의
2020-01-07 10:47:193207검색

phpcms v9 통신이 실패하는 경우 수행할 작업

phpcms v9 통신이 실패하면 어떻게 해야 하나요? Phpcms v9가 Phpsso와 통신하지 못하고 회원이 등록하거나 로그인할 수 없는 경우 어떻게 해야 합니까?

친구가 이렇게 말했습니다.

서버의 다른 구성은 정확하지만 항상 통신이 실패하는 이유를 발견했습니다.

방화벽이 있는 서버는 일반적으로 포트 매핑을 사용하므로 이로 인해 외부 네트워크에서 해당 서버에 액세스할 수 없게 됩니다. 내부 네트워크에서는 도메인 이름을 통해 웹사이트에 접속할 수 없습니다. v9과 phpsso 간의 통신 인터페이스 주소는 도메인 이름을 통해 연결되므로 항상 통신 실패로 이어집니다. 이는 v9 자체의 결함이며 개발자는 이를 충분히 고려하지 않았습니다.

공식에서 가능한 한 빨리 이 버그를 수정하길 바랍니다.

일부 친구들도 다음과 같이 말했습니다.

공식 다운로드한 설치 패키지의 phpsso_server 파일에는 해당 파일이 없습니다. 따라서 해결책은 v9의 phpcms/libs/classes/ 폴더에서 복사한 다음 phpsso_server/caches/ 파일 아래에 세션 디렉터리를 만드는 것입니다. 그렇지 않으면 파일을 쓸 수 없습니다.

물론 인터넷에 있는 방법도 있는데, session_mysql.class.php 파일의 21번째 줄에 session_start(); 를 앞 문장 앞에 넣는 방법도 있는데, 이 경우에도 해결이 됩니다. v9에서는 데이터베이스 저장소를 사용하지 않고 파일 저장소만 사용하며, 세션의 저장 위치는 system.php에 설정된 위치에 따라 저장되지 않습니다. php.ini 파일에 설정된 디렉터리에 저장됩니다.

해결책 제공:

phpcmsmodulesmemberclassesclient.class.php

$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);

의 361번째 줄을

$fp = stream_socket_client("tcp://".($ip ? $ip : $host).":".$port, $errno, $errstr, $timeout);

로 변경하세요. 테스트 후 성공적으로 로그인할 수 있습니다.

많은 친구들이 이 문제에 직면했지만 Linux Apache에서는 이 문제가 비교적 드뭅니다.

PHP 중국어 웹사이트, 수많은 무료 PHPCMS 튜토리얼, 온라인 학습을 환영합니다!

위 내용은 phpcms v9 통신이 실패하는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.