Bu soru this question, ben FTP Server güvenliğini bağlanmaya çalışıyorum ve bağlanmak mümkün değil uygun olduğunu, garip kısmı ben denediğimde ssh yapmak ve sunucuya bağlanmak mümkün ama olduğunu Birkaç farklı yaklaşımlar kullanılarak ama çalışmıyor php kod bunu yapmak için
Yaklaşımları:
- FTP Wrappers
ftp_connect
&ftp_login
a>ftp_ssl_connect
a>ssh2_sftp
a>ssh2-scp-send
&ssh2-scp-receive
a> - ama yorumlar kısmında önerilen henüz bu yaklaşımı denemedim ve bu yüzden bu konuda çalışacak ve daha sonra güncellemeleri yayınlayacağız.
Code for Approach 1:
$ftp_server = "ftp://username:password@192.168.1.1: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);
Burada da FTP Server güvenliğini bağlamak mümkün değilim, o bağlamak mümkün değil neden olarak herhangi bir öneriniz?
Code for Approach 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".".....";
}
Code for Approach 3:
Here am using same code as approach 1 but instead of ftp_connect, am using ftp_ssl_connect
Code for Approach 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');
Neden yaklaşımlar yukarıda kullanarak FTP Server güvenliğini bağlanmak mümkün değilim ama yine ssh kullanarak bunu yapmak mümkün duyuyorum kimse tavsiye?
Php kullanarak FTP Server güvenliğini bağlanmak için başka yaklaşımlar var mı?
UPDATE:
Q1. Ben ftp_connect kullanarak tekrar denedim ama sadece dışarı öldü ve neden ölür etmez ftp_connect ölür hangi senaryolar nelerdir?
Q2. sadece bu sunucuya bağlanmak için yaklaşımlar var mı yoksa biz uygulamak hangi başka var mı?
Q3. güvenli FTP bağlantısı desteklemiyor ilgili bu php dil midir? OR Bu kullanarak php yapmanın başka bir yolu çok yararlı olacağı gibi farklı yaklaşımlar sağlamak yapmak evet ise daha vardır.
UPDATE 1:
Ben bu konuda daha fazla google çalışıyordu ve ftp_connect güvenlik duvarı daha işe yaramazsa bunun için nedenlerden biri olabilir gibi görünüyor. Ben bu durumda ise tamamen emin değilim ama üzerinde daha fazla araştırma ve ben yararlı bir şey bulursam burada bir güncelleme yayınlayacağız ediyorum.
Possible Solution :
Problem
Ben "ya da öl" kaldırın o zaman hata alıyorum:
When running from a webpage: "Warning: ftp_login() expects parameter 1 to be resource, boolean given in /var/www/ftp_test.php on line 28"
var_dump ($ conn); iadeler bool (false).
Komut satırından / usr / bin / php / var / www / ftp_test.php
var_dump ($ conn); iadeler kaynak (4) tipi (FTP Buffer) arasında.
Komut tamamlar.
Solution 1
Bu bir olmak solution
em> olabilir:
Geçici veya kalıcı olarak kapatmak için selinux
and here is the way
or Search : How to disable selinux kapatmak için çalışın.
Solution 2
Tamamen SELinux'u kapatmak istemiyorsanız, size sadece setsebool komutunu kullanarak httpd_can_network_connect ayarlayarak ne gerek alabilirsiniz.
Verify that it was previously set to "off": getsebool httpd_can_network_connect
Set it to "on": setsebool httpd_can_network_connect=1
Turn selinux back on: setenforce 1
Httpd'de altında çalışırken hala çalışıyor emin php ftp_connect olmak için kontrol edin.
Set the policy (-P) to "on" so it persists over a reboot: setsebool -P httpd_can_network_connect=1
Solution 3
Ayrıca şirket güvenlik duvarı ile sorun var olabilir. Emin olun düzgün yapılandırılmış ve var olan erişim hakları düzgün ayarlanmış.
Solution 4
Diğer bir yaklaşım, bu protokoller çok farklı tipleri ile sunucuları birçok farklı türde bağlamak ve iletişim kurmak için kullanılabilir olarak cURL : libcurl kullanmaktır
Solution 5
PHP Secure Communication Library (phpspeclib), hangi zamanda FTP Server güvenli bağlantı kurmak için kullanılan sözde açık kaynak kodlu bir proje var.
Comments:
Google / bing yapıyor denedim ama herhangi bir verimli sonuçlar var değil ve SO Okuyucular :-) yardımcı olabilir eğer öyleyse kesinlikle seviniriz
Gerçekten cevap arıyorum.