| Das FTP-Protokoll bietet Datei-Management über das Internet. | Häufigste Anwendung ist die Synchronisation von Webs. |
PHP
|
PHP Hypertext Processor |
| FTP | Was ist FTP und wozu wird es verwendet ? |
| Entwicklung | Die empfohlene Entwicklungs-Umgebung für 'FTP mit PHP' |
| Alternativen | Datei-Transfer mit Kermit, Telnet, SSH, die Dienste NFS und SMB |
| FTP mit PHP | Nutzung von FTP durch PHP-Programme |
Aufbau der Verbindung (connect) mit einem FTP-Server |
|
Dateiliste, Eigenschaften von Dateien |
|
Wechsel des Verzeichnisses |
|
Upload und Download - Kopieren von Dateien |
|
Directory |
Erzeugung und Löschen von Verzeichnissen |
| Links |
Ausgewählte
|
File Transfer Protokoll - FTP |
|
|
FTP ist ein vergleichsweise "altes" Internet-Protokoll. Heute wird es vorwiegend zur Synchronisation von Webs verwendet. |
Die Seiten des Kapitels "FTP" demonstrieren die Steuerung von FTP-Funktionen mit PHP. |
|
►
Ein typisches Web wird auf einem lokalen PC entwickelt.
Alle verwendeten Dateien (Webseiten, Bilder, ...) befinden sich innerhalb
eines "Web-Verzeichnisses" (z.B. C:\meinweb\) ► Web-Editoren (z.B. Dreamweaver, Golive, Frontpage, ...) verwalten dieses Verzeichnis: Die Links aller Webseiten werden automatisch an Dateinamen und -Pfade angepasst. ► Im Laufe der Entwicklung werden die Webseiten lokal getestet. Statische Seiten (*.htm) können direkt mit einem Browser geöffnet werden. (Adresse file:... oder C:\....) |
►
Bei PHP-Seiten muss ein Webserver auf das Web-Verzeichnis zugreifen. Solche Seiten
können ebenfalls lokal getestet werden, müssen jedoch über
den Webserver geöffnet werden. (Adresse http://... ) ► Nach Fertigstellung und Test wird der "Upload" auf den eigentlichen Webserver durchgeführt: Alle neuen und geänderten Dateien werden vom lokalen PC in ein Verzeichnis des Webservers kopiert. Der Upload wird bei FreeWeb-Providern meist manuell auf eigenen Werkzeug-Webseiten ausgeführt. Professionelle Provider bieten FTP-Upload. Dieser Dienst bietet wesentlich bequemere Handhabung und die Möglichkeit der Automatisierung. |
|
Auf Linux verwenden sie ein Shell-Fenster, auf Windows das Programm 'Eingabeaufforderung' (C:\Windows\system32\cmd.exe) Der Befehl zum Programmstart lautet einfach ftp Auf allen Betriebssystemen sind alternative FTP-Konsolen-Programme verfügbar, die mehr Komfort bieten. Konsolen-FTP-Programme werden hauptsächlich zur Entwicklung und zum Debuggen eigener FTP-Programme verwendet.
►
FTP-Anwendungs-Programme sind in allen Betriebssystemen verfügbar, viele auch als
FreeWare oder ShareWare, z.B. FileZillaSie verfügen über einen Site-Manager, auf welchem die Zugangsdaten (Adresse, Name, Passwort) für mehrere FTP-Verbindungen eingestellt werden können. Nach Verbindung (connect) werden 2 Fenster angezeigt: Links die Ansicht eines lokalen Verzeichnisses, rechts diejenige des entfernten Servers. Mit Menübefehlen, Buttons oder einfach durch "Drag & Drop" werden Dateien zwischen den beiden Fenstern kopiert. |
Häufig verwendete FTP-Anweisungen: LIST .. Anzeige der Dateiliste (lokal oder entfernt) eines Verzeichnisses PUT .. Upload, d.h. Kopieren einer Datei vom lokalen PC auf den entfernten Server. GET .. Download, d.h. Kopieren einer Datei vom entfernten Server auf den lokalen PC. DELETE .. Löschen einer Datei CHDIR .. Wechsel in ein Unterverzeichnis MKDIR .. Erstellen eines Unterverzeichnisses RMDIR .. Löschen eines Unterverzeichnisses CHMOD .. Änderung der Zugriffsrechte auf ein Verzeichnis oder eine Datei. |
Entwicklungs-Umgebung |
|
| Theoretisch können Sie PHP-Webseiten mit jedem Text-Editor erstellen, auf einen entfernten Webserver laden und anschliessend verwenden. Das klappt jedoch nur in ganz einfachen Fällen. | Eine realistische Entwicklungs-Umgebung umfasst alle Einrichtungen zur PHP-Entwicklung, zusätzlich einen FTP-Server und ein FTP-Programm. |
|
Entwicklung von Webseiten:
► Web-Editor
zum Verwalten des Webs und zum Erstellen der Webseiten.
Alle gängigen Editoren können nicht nur HTML-Seiten erzeugen sondern auch PHP-Seiten.► Web-Browser zum Test der erstellten Webseiten. Ideal sind mehrere Browser, damit sie unabhängige Tests ihrer Webseiten ausführen können (z.B. Firefox, Konqueror, M$IE, Mozilla, Navigator, Opera, ...). |
►
Ein Webserver (z.B.
→ Apache) stellt auf "Anfrage" von Browsern Webseiten mit dem
HTTP-Protokoll zur Verfügung.
Statische Webseiten ( *.html ) werden von der entsprechenden
Text-Datei gelesen und an den Browser gesendet. Bei dynamischen Webseiten
(*.php) wird am Server-PC ein PHP-Script-Programm ausgeführt
und dessen Ausgabe-Text an den Browser gesendet. ► Am Webserver muss mindestens ein Verzeichnis zum FTP-Upload eingerichtet sein: In diesem Verzueichnis muss der User (d.i. der Webserver-Dienst, nicht menschliche AnwenderInnen) über alle Rechte verfügen. |
|
PHP muss funktionsfähig geladen sein.
Die benötigten Funktionen befinden sich im Modul 'ftp'. Details zu PHP-Modulen finden sie in einem eigenen Kapitel. |
$ftp_ok=0;
Live-if (extension_loaded("ftp") {$ftp_ok=1;} |
|
FTP-Client-Programme:
►
Jedes Betriebssystem bietet FTP als Konsolen-Befehl (mit integrierter Hilfe) an.
Die Bedienung erfordert etwas Übung, das ist jedoch zum Debuggen eigener Entwicklungen
'sehr empfehlenswert'.► Zusätzlich sollten sie über ein übliches FTP-Anwendungsprogramm verfügen. Sie sind zahlreich auch als Freeware und Shareware verfügbar. Viele dieser Programme sind mit Scripts (leider nicht standardisiert) programmierbar. Sie werden daher nicht nur für den manuellen Upload verwendet, sondern auch zur automatischen Synchronisation von Verzeichnissen. Die Erstellung eigener FTP-Programme macht nur Sinn, wenn die Anforderungen über die Möglichkeiten von FTP-Client-Programmen hinausgehen. |
FTP-Server:
►
Ein FTP-Server reagiert auf Anfragen eines FTP-Client-Programms.
Zahlreiche Server-Programme werden angeboten, darunter auch Freeware und Shareware.Die Einstellung eines experimentellen FTP-Servers ist denkbar einfach. Im professionellken Betrieb sind allerdings zahlreiche Maßnahmen zur Sicherung notwendig, die einige Einarbeitung erfordern. ► Der FTP-Server verfügt normalerweise über alle Zugriffsrechte auf das Arbeitsverzeichnis des Webservers. Nur in diesem Fall können lokale Dateien mit FTP-Upload auf den Webserver gelangen. Diese Funktion muss geschützt werden. Zusätzlich ist es üblich, anonymen BesucherInnen ein Verzeichnis "public" zum Download (readonly) anzubieten. |
|
Checkliste vor Beginn der Entwicklung: ► Wenn sie mit FTP & PHP experimentieren wollen, dann sollten sie manuell einige Tests ausführen, die sicherstellen, dass ihre PHP-Programme überhaupt funktionieren können: ► Diese Tests sollten sowohl mit dem Konsolenbefehl FTP als auch mit einem Client-FTP-Programm funktionieren: ► Die Checkliste sollten sie sowohl mit dem eigenen experimentellen FTP-Server durchgehen als auch mit einem entfernten FTP-Server |
■
Verbindung (connect) mit dem FTP-Server ■ Anmeldung (login) mit Name und Passwort ■ Anzeige einer Dateiliste ■ Upload einer Datei ■ Download einer Datei ■ Löschen einer entfernten Datei ■ Erstellen eines Verzeichnisses am entfernten Server ■ Wechsel in ein Verzeichnis und Anzeige der Dateiliste ■ Löschen eines entfernten Verzeichnisses. |
|
Firewall und Proxy
Wenn sie in einem lokalen Netzwerk (LAN) arbeiten, dann kann es vorkommen,
dass sie zwar mit einem lokalen FTP-Server verbinden können,
nicht jedoch mit einem entfernten FTP-Server.Die Ursache ist meist, dass der FTP-Zugriff durch Firewall oder Proxy unterbunden wurde. Sie können das mit WebFTP (rechts) verifizieren. Mit PHP können sie Programme erstellen, die FTP nutzen. Wenn diese Programme auf einem entfernten Webserver laufen, dann können sie FTP sozusagen 'hinter dem Rücken' ihres Firewall problemlos verwenden. |
Test: Versuchen sie, mit dem entfernten FTP-Server via WebFTP (z.B. http://www.webftp.at) Verbindung aufzunehmen. In diesem Fall verwenden sie das HTTP-Protokoll zum "Durchdringen" des Firewall. Wenn das funktioniert, jedoch nicht die direkte FTP-Verbindung, dann verhindert ihr Firewall jeden FTP-Zugriff. Abhilfe kann nur der Firewall-Administrator verschaffen. |
Alternativen zu FTP |
|
| FTP ist nicht die einzige Möglichkeit, Dateimanagement über das Internet zu betreiben. | FTP hat jedoch den Vorteil. unabhängig von Betriebssystemen, Herstellern und Hardware zu arbeiten. FTP ist ein Offener Standard, zu dessen Nutzung keine Lizenzen benötigt werden. |
|
Kermit
Dieses Protokoll wurde in den 1980er-Jahren entwickelt und diente zum Austausch von
Dateien über die Barierre verschiedener Hardware und Betriebssysteme hinweg.
Kermit war eines der ersten OpenSource-Programme.Kermit arbeitet über ganz unterschiedliche technische Verbindungen, u.a. auch über serielle Leitungen. |
Obwohl heute für alle Betriebssysteme Kermit-Programme kostenlos und lizenzfrei
zur Verfügung stehen, wird es nur mehr selten verwendet.
Gut geeignet für das Debuggen, insbesondere bei exotischen und Hardware-nahen Problemen. Mit Developer-Kits können sie sehr schlanke Kermit-Programme für jeden Mikroprozessor-Chip selbst erstellen. Link: Columbia University |
|
Copy
Wenig bekannt, aber im Notfall sehr hilfreich:Über eine einfache serielle Leitung kann man Daten zwischen 2 PC austauschen. Ältere PC sind immer mit 1-2 seriellen Schnittstellen (RS-322, RS-422) ausgestattet. |
Syntax für die WinDOS-Konsole: Sender: C:\> COPY C:\TEST.DAT COM1:
Empfänger:
C:\> COPY COM1: C:\TEST.DAT
|
|
Telnet
Ist wie FTP ein "altes" Protokoll. Gut geeignet für die Fernsteuerung
entfernter PC und anderer Geräte, auch für den Austausch von Dateien.Telnet verwendet das Client-Server-Prinzip: Jedes Betriebssystem enthält in der Grundausstattung das → Konsolen-Programm telnet als Telnet-Client. Telnet-Server sind als Freeware oder Shareware erhältlich. |
Telnet transportiert seine Anweisungen und Daten unverschlüsselt im Klartext ! Wegen der geringen Sicherheit und den gefährlich umfangreichen Möglichkeiten wird geraten, keinen Telnet-Server sondern den sicheren Nachfolger ↓ SSH zu verwenden. |
|
SSH
Ist der "sichere" Nachfolger von Telnet. SSH wird auf Linux häufig
als Konsole zum Fernsteuern verwendet
(OpenSSH),
es gibt jedoch auch SSH-Programme für Windows
(OpenSSH-Windows,
FreeSSHD).
|
Auf Linux kann man die normale Shell-Konsole als SSH-Client verwenden. Bekannte und bewährte SSH Client-Programme für Windows sind PuTTY und WinSCP. Geeignet für Fernsteuerung und den Austausch von Dateien, insbesondere über verschiedene Betriebssysteme hinweg. |
|
NFS
Ist ein Standard-Dienst auf Linux. Damit werden Dateisysteme von entfernten PC verknüpft.
NFS verwendet das Client-Server-Prinzip. Normalerweise ist jeder PC im Netz NFS-Client,
Datei-Server sind zusätzlich NFS-Server, d.h. sie "exportieren" Teile
ihres Verzeichnis-Baums.
|
Entfernte (NFS)-Verzeichnisse werden transparent in ein lokales Linux-Verzeichnis integriert. Die entfernten Dateien sind damit für alle Programme zugänglich, und zwar ohne jeden Unterschied zu lokalen Dateien. Selbstverständlich gelten auch für entfernte Dateien die vergebenen Zugriffsrechte. |
|
SMB
Ist der Dateiserver-Dienst auf Windows. Win-Fileserver und PC verwenden SMB,
um gemeinsam genutzte Volumes oder Verzeichnisse anzubieten.
Sie können mit entsprechenden Zugriffsrechten als "Netzlaufwerke"
verbunden werden und verhalten sich dann genauso wie lokale Volumes.Die Verwendung von SMB ist zwar vielen Win-AnwenderInnen geläufig, allerdings ist die Technik veraltet und gegenüber NFS im Nachteil: Die Adressierung als 'Volume' verhindert eine fugenlose Einbindung in den lokalen Verzeichnisbaum. Da jedes Volume einen eigenen "Laufwerks-Buchstaben" benötigt, ist die mögliche Anzahl solcher Netzlaufwerke für übliche Lokale Netzwerke (LANs) bereits zu klein. |
Linux-Fileserver verwenden das Standardprogramm
Samba,
um gemeinsam genutzte Daten für Windows-PC anzubieten.
Samba ist sehr schnell und außerordentlich stabil.
Das SMB-Protokoll ist nicht öffentlich, sondern im Eigentum von M$,
allerdings fallen für Samba keine Lizenzgebühren an.Ein Samba-Server gehört zur Grundausstattung aller gängigen Linux-Distributionen und → LAMP-Server. Aktuelle Versionen kann man kostenfrei aus dem Internet laden. Samba übernimmt auf Wunsch auch die Funktionen eines Domain Controllers. ♦ Details zum Samba FileServer |
|
|
| Dynamic Webpages (de) - FTP-Funktionen | Webftp - Datei-Transfer mit dem Browser |
|
Letzte Änderung dieser Seite: 2011-12-01 09:25:36
|