>백엔드 개발 >PHP 튜토리얼 >PHP 치명적인 오류: 잡히지 않은 오류: 정의되지 않은 함수 ssh2 솔루션 호출()

PHP 치명적인 오류: 잡히지 않은 오류: 정의되지 않은 함수 ssh2 솔루션 호출()

WBOY
WBOY원래의
2023-06-22 19:43:35942검색

최근 SSH 연결을 위해 PHP를 사용할 때 일부 개발자는 다음과 같은 오류 메시지를 보게 됩니다:

PHP 치명적인 오류: Uncaught Error: Call to undefine function ssh2_connect()

또는

PHP Fatal error: Uncaught Error: Call to unundefined function ssh2_shell()

이 오류의 주된 이유는 PHP에 ssh2 확장 라이브러리가 없기 때문입니다. 이 기사에서는 이 문제를 해결하는 방법을 설명합니다.

  1. PHP ssh2 확장 라이브러리 활성화

먼저 PHP 설치 디렉터리 아래 ext 폴더에서 php_ssh2.dll 파일을 찾은 다음 php.ini에서 구성합니다.

extension=php_ssh2.dll

그런 다음 다시 시작하세요. Apache 서버일 뿐입니다. php -m 명령 실행 후 ssh2 모듈이 있다면 ssh2 확장 라이브러리가 성공적으로 오픈되었음을 의미합니다.

  1. PECL을 사용하여 ssh2 확장 라이브러리 설치

PHP 버전이 5.3.0 미만이고 ssh2 확장 라이브러리가 제공되지 않는 경우 PECL을 사용하여 설치해야 합니다.

먼저 다음 명령을 사용하여 libssh2를 설치합니다.

yum install libssh2 libssh2-devel

그런 다음 PECL을 사용하여 ssh2 확장 라이브러리를 설치합니다.

pecl install ssh2-1.0

마지막으로 다음 구성 정보를 추가합니다. php.ini:

extension=ssh2.so

그런 다음 Apache 서버를 다시 시작하세요.

  1. ssh2 확장 라이브러리 구성 파일

또한 ssh2 확장 라이브러리는 ssh2의 경로를 구성해야 합니다. 이때 /etc/php.d/ssh2.ini에 다음 구성 정보를 추가해야 합니다.

extension=ssh2.so
ssh2.config=/usr/local/lib

일반적으로 실제 상황에 맞게 ssh2.config의 경로를 수정해야 합니다.

  1. libssh2 설치 확인

리눅스에서는 ssh2 라이브러리를 인식하지 못하는 경우가 매우 흔한 것 같습니다. 여전히 문제가 있는 경우 libssh2 패키지가 설치되어 있는지 확인해야 합니다. 다음 명령을 사용하여 libssh2 패키지를 설치할 수도 있습니다.

yum install libssh2

마지막으로 디버깅 중에 SSH 연결 문제를 발견하려면 PHP 프로그램에 다음 디버깅 정보를 추가하는 것이 좋습니다.

error_reporting(E_ALL); //모든 오류 메시지 출력
ini_set('display_errors', 'on') //오류 표시 켜기

위 내용은 PHP 치명적인 오류: 잡히지 않은 오류: 정의되지 않은 함수 ssh2 솔루션 호출()의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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