> 데이터 베이스 > MySQL 튜토리얼 > PHP의 SSH 터널을 통해 원격 MySQL 서버에 안전하게 연결하는 방법은 무엇입니까?

PHP의 SSH 터널을 통해 원격 MySQL 서버에 안전하게 연결하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-29 03:33:14
원래의
296명이 탐색했습니다.

How to Securely Connect to a Remote MySQL Server via SSH Tunnel in PHP?

PHP를 사용하여 SSH를 통해 MySQL 서버에 안전하게 연결

SSH를 통해 원격 MySQL 서버에 연결하면 연결을 암호화하여 추가 보안이 제공됩니다. PHP에서는 mysqli_connect() 함수를 사용하여 SSH 터널링된 MySQL 서버에 연결할 수 있습니다. 그러나 ssh2_tunnel()을 사용하여 연결을 설정하려고 하면 개발자는 "mysqli_connect()에서 매개변수 6을 문자열로 예상하고 리소스가 제공되어야 합니다."라는 오류가 자주 발생합니다.

SSH 터널 구성

이 문제를 해결하기 위해 권장되는 접근 방식은 SSH 터널을 설정하는 것입니다. 명령줄 도구를 사용하여 SSH 터널을 생성하려면 다음 단계를 따르세요.

  1. SSH 클라이언트 열기: 선호하는 SSH 클라이언트(예: PuTTY)를 열고 원격 연결을 설정하세요. Linux 시스템.
  2. SSH 터널 생성: 로컬 워크스테이션 포트에서 터널을 생성하려면 다음 명령을 입력합니다. (예: 3307)을 MySQL 서버의 원격 IP 주소 및 포트(예: 10.3.1.55:3306)로(예: 10.3.1.55:3306):
ssh -fNg -L 3307:10.3.1.55:3306 username@ssh-jumpbox.com
로그인 후 복사
  1. SSH 서버 구성: 필요한 경우 다음을 편집하여 로컬 포트 ​​전달을 허용하도록 SSH 서버를 구성합니다. /etc/ssh/sshd_config 파일에 다음 줄을 추가합니다.
AllowTcpForwarding yes
로그인 후 복사
  1. SSH 서버를 다시 시작합니다. 변경 사항을 적용하려면 SSH 서버를 다시 시작합니다.
sudo systemctl restart sshd
로그인 후 복사

PHP 연결

SSH 터널이 설정되면 PHP를 사용하여 MySQL 서버에 연결할 수 있습니다.

$mysqli = new mysqli('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD', 'dbname', 3307);

if ($mysqli->connect_error) {
  die('Connect Error (' . $mysqli->connect_errno . ') '
      . $mysqli->connect_error);
}
로그인 후 복사

이 코드는 127.0.0.1:3307에서 호스팅되는 MySQL 데이터베이스에 연결됩니다. , 지정된 데이터베이스 사용자 이름, 비밀번호, 데이터베이스 이름 및 SSH 터널용으로 구성된 포트 번호를 사용합니다.

위 내용은 PHP의 SSH 터널을 통해 원격 MySQL 서버에 안전하게 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿