In ein Kundenprojekt hatten wir eine Backup-Funktion eingebaut, die per FTP Datenbank und Dateien auf einen anderen Server überträgt. Das funktionierte auch bestens für mehrere Wochen. Dann meldete sich 1&1:
[...] unseren Server-Überwachungs-Tools ist eine Ihrer Anwendungen auf Ihrer Internet-Präsenz aufgefallen die einen "Dienst" auf jeder IP-Adresse die auf dem Server eingerichtet ist, installiert:
/.../cron/ftpbackup.php
Dies kann z.B. dadurch passieren, wenn Sie in Ihrem Script aktives statt passivem FTP verwenden.
Die Datei enthält ein Script, dass die PEAR-Klasse Net_FTP verwendet. Wir haben zu dieser Klasse bereits an dieser Stelle etwas geschrieben.
Und weiter:
Bitte haben Sie Verständnis und konfigurieren Sie deshalb Ihre Anwendung einfach um und zwar ausschliesslich auf die Ihnen von uns zugewiese IP-Adresse (zu finden z.B. im Konfigmenü Ihrer Präsenz unter dem Punkt "Technische Daten"), bzw verwenden Sie bitte ausschliesslich passives FTP in ihren Scripten.
Nichts einfacher als das. Haben wir also im PHP-Script passives FTP aktiviert. Dabei ist uns allerdings ein kleiner Fehler unterlaufen, welcher in der – aus unserer Sicht – irreführenden Bezeichnung der entsprechenden Methode der FTP-Klasse lag (siehe den Abschnitt "Fußangel"). Resultat war, dass passives FTP nicht aktiviert wurde. Das wusste zu diesem Zeitpunkt jedoch niemand. So schrieb dann der Support von 1&1 am nächsten Tag auch:
[...]unserem Überwachnungstool ist abermals Ihr cronjob /.../cron/ftpbackup.php aufgefallen.
[...]
Von dem Tool wird wohl wieder der Passive Mode für FTP bemängelt. Könnten Sie bitte nochmals danach schauen?
Nachdem wir also nun – aus unserer Sicht – extra auf passiv umgestellt haben, sollte das jetzt Auslöser des Problems sein? Merkwürdig. Aber kein Problem, haben wir also auf aktives FTP umgeschaltet.
Das hat das Problem wohl auch nicht gelöst. Deshalb kam erneut Post von 1&1:
[...]bitte das Script auf passives FTP umstellen. Die Umstellung auf passives FTP war schon richtig, weil durch passives FTP nur der FTP-Standard-Port benutzt wird und kein anderer Port. Nur hat in Ihrem Script der Passive Mode wohl nicht richtig gegriffen, sonst wäre dem Überwachungstool es nicht aufgefallen.
Und hier war dann der Support von 1&1 wieder auf der richtigen Spur. Nachdem wir tiefer in die Funktionsweise der Klasse und der PHP-Funktion ftp_pasv() eintauchten, wurde deutlich, dass passives FTP tatsächlich nicht aktiviert worden war. Ein kurzer Handgriff und auch das war erledigt.
Danke hiermit an den Support von 1&1 für die Hilfe und die Geduld. :-)