Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Probleme mit FTP in PHP

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
pvdb
PostRank 5
PostRank 5
Beiträge: 321
Registriert: 16.01.2005, 22:37
Wohnort: Hannover

Beitrag von pvdb » 13.09.2007, 06:58

Hi,

ich habe eine Domain bei einen Webhoster liegen, wo ich ein PHP Script gebaut habe, was sich mit unseren eigenen Server connected und sich die neusten Daten zieht. Das Script läuft wunderbar. Um mein Problem zu schildern Zeige ich den Auschnitt der zu meinem Problem führt:

Code: Alles auswählen

// connect to ftp
$ftp = ftp_connect($server, $port);
$res = ftp_login($ftp, $user, $passwort);
   
if($ftp && $res)
{
   echo "connected to ftp<br>";
	  
   // get file list
   $list = ftp_nlist&#40;$ftp, "."&#41;;
	  
   echo "<pre>";
   print_r&#40;$list&#41;;
   echo "</pre>";
   
   // weiter ziehe ich mir die daten runter
   // ...
	  
   // disconnect
   ftp_quit&#40;$ftp&#41;;      
&#125;
else
&#123;
   echo "not connected<br>";
&#125;
Wenn ich mit dem Script so wie oben arbeite, ist alles traumhaft. Hier liegt also noch kein Problem vor.

Nun bekam ich eine Email vom Webhoster mit diesen Zeilen:
auf unseren Präsenzen ist die Verwendung von Programmen, die einen Port "binden", nicht erlaubt. Dies ist u.a. auch bei FTP im active mode der
Fall. Bitte passen Sie Ihr Script

/.../htdocs/domain.de/ordner/copy_sources.php

entsprechendn an (ftp_pasv).
Okay, ich kenne mich mit active mode, passive mode und so gar nicht aus und weiß auch nicht so genau was der Webhoster von mir will, aber ich vermute mal, dass ich den Befehl ftp_pasv mit einbauen soll. Ferner will ich es auch so umbauen, dass ich da keine Probleme verursache. Okay, ich habe meinen Quellcode so umgebaut:

Code: Alles auswählen

// connect to ftp
$ftp = ftp_connect&#40;$server, $port&#41;;
$res = ftp_login&#40;$ftp, $user, $passwort&#41;;
   
$mode = ftp_pasv&#40;$ftp, true&#41;; 
   
if&#40;$ftp && $res && $mode&#41;
&#123;
   echo "connected to ftp<br>";
	  
   // get file list
   $list = ftp_nlist&#40;$ftp, "."&#41;;
	  
   echo "<pre>";
   // show file list
   print_r&#40;$list&#41;;
   echo "</pre>";
	  
   // disconnect
   ftp_quit&#40;$ftp&#41;;      
&#125;
else
&#123;
   echo "not connected<br>";
&#125;
habe quasi nur ftp_pasv eingebaut und den if befehl um ein statement erweitert. Ist der Umbau so korrekt mit ftp_pasv und dem Parameter true?

Wenn ich das Script nun ausführe, läuft es und läuft, wie in einer endlosschleife. Der Befehl ftp_nlist scheint nichts zurückzugeben. wenn ich ftp_nlist auskommentiere, zeit das script mir wenigstens an, das er connected ist. wenn ich das mit dem ftp_nlist einfach laufen lasse, kommt irgendwann diese meldung:

"Warning: ftp_nlist() [function.ftp-nlist]: php_connect_nonb() failed: Operation now in progress (115) in ...."

funktionieren tut das script dadurch jedoch nicht.

Das gleiche Script ausgeführt auf einer Domain auf unseren eigenen Server (der gleiche Server zu dem sich FTP connected) da funktioniert es.

Meine Fragen Quasi:

1. Habe ich das Problem vom Webhoster in meinen PHP Script richtig gelöst, damit es keinen Port mehr bindet?

2. Wenn das erste Script richtig ist, kann es dann eine Einstellung an unseren Server sein, dass es so nicht geht? Immerhin geht es ja, wenn ich es direkt vom Server aufrufe. Was für eine Einstellung könnte es sein, dass es nicht mehr geht? Unser Server läuft soweit auf OS X.


Phil

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


SISTRIX
PostRank 9
PostRank 9
Beiträge: 1255
Registriert: 01.09.2003, 20:57
Wohnort: Bonn

Beitrag von SISTRIX » 13.09.2007, 08:02

pvdb hat geschrieben:2. Wenn das erste Script richtig ist, kann es dann eine Einstellung an unseren Server sein, dass es so nicht geht? Immerhin geht es ja, wenn ich es direkt vom Server aufrufe. Was für eine Einstellung könnte es sein, dass es nicht mehr geht? Unser Server läuft soweit auf OS X.
Wenn der Server des Webhosters jetzt nicht mehr der aktive Teil der FTP-Verbindung sein kann, so muss es ja euer Server sein. Der muss dafür einen Port aufmachen, den der Webserver erreichen kann. Unterstützt euer lokaler FTP-Server Active-FTP und sind die Ports von außen erreichbar und nicht eventuell hinter einem Router oder so?
SISTRIX Suchmaschinen Blog
SEO- und SEM-Tools: [url=httpss://tools.sistrix.de/toolbox/?tid=lnk_foren_abk]SISTRIX Toolbox[/url]
Linktausch für PR9 und 10 gesucht!

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag