개발! 딱 깔끔하고 센스있게!

PHP 에서 안전FTP 서버로 연결 본문

개발 스크랩 메모/PHP

PHP 에서 안전FTP 서버로 연결

렉사이 2020. 12. 19. 23:54

이 문제와 이 문제는 일치한다.

나는 안전한 FTP 서버에 연결하려고 시도했으나, 연결할 수 없었고, wierd 부분은 내가 ssh 와 연결할 수 있었지만, php 코드에서 몇 가지 다른 방법을 사용하려고 시도했으나, 작용을 하지 않았다

방법:

  1. FTP Wrappers
  2. ftp_connect & ftp_login
  3. ftp_ssl_connect
  4. ssh2_sftp
  5. ssh2-scp-send & ssh2-scp-receive -- Have not tried this approach yet but recommended in comments portion and so would work on this and will post updates later.

방법 1 코드:

$ftp_server = "ftp://username:[email protected]:21/{$log_file_name}"; $opts = array('ftp' => array('overwrite' => TRUE)); $context = stream_context_create($opts); $put_file = file_put_contents($ftp_server, $response, LOCK_EX,$context); 

여기에도 안전한 FTP 서버에 연결할 수 없습니다.

왜 연결이 안 되는 건의가 있습니까?

방법 2의 코드:

ftp_server = 'www.server.com'; $conn_id = ftp_connect($ftp_server) or die ("Cannot connect to host"); //Program dies out here and give error message "Cannot connect to host", //but why ftp_login does not work here, Any Suggestions ? $ftp_user_name = "login"; $ftp_user_pass = "password"; // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // check connection and login result if ((!$conn_id) || (!$login_result)) { echo "FTP connection has encountered an error!"; echo "Attempted to connect to $ftp_server for user $ftp_user_name...."; //exit; } else { echo "Connected to $ftp_server, for user $ftp_user_name"."....."; } 

방법 3의 코드:

여기에 방법 1 과 같은 코드 를 사용하지만 ftpu connnect 이 아니라 ftpu sslu connnect

4코드 입력:

$connection = ssh2_connect('www.server.com', 22); ssh2_auth_password($connection, 'login', 'password'); $sftp = ssh2_sftp($connection); //exit(); $stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r'); 

내가 왜 이런 방법으로 안전FTP 서버에 연결할 수 있는지 누가 알려 줄 수 있을까. 그러나 여전히 ssh 를 사용하여 안전FTP 서버에 연결할 수 있을까?

Php을 사용하여 안전FTP 서버에 연결할 수 있는 방법이 있습니까?

업데이트:

일사분기.나는 다시 ftpu connnect 사용을 시도했지만, 사라졌는데, 왜 사라졌는지, 어떤 상황에서 ftpu connnect가 사라졌을까?

문제우리가 이런 방법만 서버에 연결할 수 있을까, 아니면 다른 방법이 실현될 수 있을까?

문제이 php 언어는 안전한 FTP 연결을 지원하지 않나요?또는 다른 php 을 사용하는 방법도 있다.

만약 그렇다면 다른 방법을 제공하는 것은 도움이 될 것이다.

업데이트 1:

나는 이 문제에 있어서 구글이 더 많아 ftpu가연결되지 않으면 방화벽이 원인일 것 같다.

나는 이것이 맞는지 전혀 확실치 않지만, 나는 그것을 연구하고 있으며, 여기에 업데이트를 붙이면, 만약 내가 어떤 유용한 것을 발견한다면.

가능한 해결 방안:

문제

만약 내가 '또는 죽음' 을 삭제한다면 오류를 얻을 것입니다.

홈페이지에서 실행할 때:

Warning: ftp_login() expects parameter 1 to be resource, boolean given in /var/www/ftp_test.php on line 28

var dump ($connnu id); bool (false) 로 되돌아가다.

명령행/usr/bin/php/var/www/ftpu test.php

var dump ($connnu id), 유형 (FTP 완충구) 의 자원 (4)

스크립트가 완성되었습니다.

해결 방안

해결 방안일 수 있습니다:

selinux, 다음은 방법이나 검색: 일시적이거나 종료할 수 있는 selinux

해결 방안

selinux 완전히 닫기 싫으면 setsebol 명령만 사용하여 httpd-can-u-network-connnect으로 필요한 내용을 얻을 수 있다.

확인하기 전에'닫기'로 설정getsebool httpducanu 네트워크 연결

열: 설정

setsebool httpd_can_network_connect=1 

다시 selinux 열기:강제 설정

httpd 에서 실행할 때 php ftpu connnect를 확인하는 데 효과가 있습니다.

전략(-P) 을 'on' 으로 설정합니다.

다시 시작할 때 계속 실행:

setsebool -P httpd_can_network_connect=1 

해결 방안

회사 방화벽도 문제가 있을 수 있다.

올바른 설정과 접근 권한이 올바른 설정을 확보하십시오.

해결 방안

다른 방법은 cURL: libcurl 을 사용합니다.

연결과 통신이 많은 다른 여러 종류의 서버를 사용할 수 있기 때문입니다.

해결 방안

PHP Secure Communication Library (phpspeclib) 의 원본 프로젝트도 FTP 서버의 안전 연결을 만들 수 있다.

대답

이 페이지에 네가 찾으려는 것이 있다.

http:kevin.vanzonneveld.net/techblog/article/makeusshuconnectionsu php

이것은 수첩 페이지이다

http:php.net/manual/en/book.ssh2.php

Comments