Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 << zurück
C von A bis Z von Jürgen Wolf
Das umfassende Handbuch für Linux, Unix und Windows
– 2., aktualisierte und erweiterte Auflage 2006
Buch: C von A bis Z

C von A bis Z
1.116 S., mit CD, Referenzkarte, 39,90 Euro
Galileo Computing
ISBN 3-89842-643-2
gp Kapitel 26 CGI mit C
  gp 26.1 Was ist CGI?
  gp 26.2 Vorteile von CGIs in C
  gp 26.3 Andere Techniken der Webprogrammierung
  gp 26.4 Das dreistufige Webanwendungsdesign
    gp 26.4.1 Darstellungsschicht
    gp 26.4.2 Verarbeitungsschicht
    gp 26.4.3 Speicherschicht
  gp 26.5 Clientseitige Programmierung
    gp 26.5.1 JavaScript
    gp 26.5.2 Java-Applets
  gp 26.6 Serverseitige Programmierung
  gp 26.7 Der Webserver
    gp 26.7.1 Das Client/Server-Modell des Internets
    gp 26.7.2 Serverimplementierung
    gp 26.7.3 Hosting-Services
    gp 26.7.4 Schlüsselfertige Lösung
    gp 26.7.5 Weitere Möglichkeiten
    gp 26.7.6 Apache
  gp 26.8 Das HTTP-Protokoll
    gp 26.8.1 Web-Protokolle
    gp 26.8.2 Wozu Protokolle?
    gp 26.8.3 Was ist ein Protokoll?
    gp 26.8.4 Normen für die Netzwerktechnik
    gp 26.8.5 Das OSI-Schichtenmodell
    gp 26.8.6 Die Elemente einer URL
    gp 26.8.7 Client-Anfrage – HTTP Request (Browser-Request)
    gp 26.8.8 Serverantwort (Server-Response)
    gp 26.8.9 Zusammenfassung
  gp 26.9 Das Common Gateway Interface (CGI)
    gp 26.9.1 Filehandles
    gp 26.9.2 CGI-Umgebungsvariablen
    gp 26.9.3 CGI-Ausgabe
  gp 26.10 HTML-Formulare
    gp 26.10.1 Die Tags und ihre Bedeutung
  gp 26.11 CGI-Eingabe
    gp 26.11.1 Die Anfrage des Clients an den Server
    gp 26.11.2 Eingabe parsen
  gp 26.12 Ein Gästebuch
    gp 26.12.1 Das HTML-Formular (guestbook.html)
    gp 26.12.2 Das CGI-Programm (auswert.cgi)
    gp 26.12.3 Das HTML-Gästebuch (gaeste.html)
    gp 26.12.4 Das Beispiel ausführen
  gp 26.13 Ausblick


Galileo Computing - Zum Seitenanfang

26.7 Der Webserver  downtop


Galileo Computing - Zum Seitenanfang

26.7.1 Das Client/Server-Modell des Internets  downtop

Das Internet oder genauer das World Wide Web wurde nach dem Client/Server-Prinzip entwickelt. Der Webbrowser ist in dieser Architektur der Client. Geben Sie z.B. in den Webbrowser die Adresse http://www.pronix.de/ ein, ruft der Browser Dienste im Web ab. In diesem Fall wird eine HTTP-Anforderung über das Netzwerk verschickt. Mit dem HTTP-Protokoll haben Sie jetzt Zugriff auf Dateien von Servern in Netzwerken. Der Server oder genauer der Webserver verarbeitet nun die Anfrage des Clients. Wobei der Standort des Webservers egal ist. Dieser kann sich im selben Gebäude, auf der anderen Seite der Erde oder auch auf demselben Computer befinden. Meistens besteht die Aufgabe des Webservers im Internet darin, ein angefordertes Dokument an den Client zurückzuschicken, beispielsweise HTML-Daten zur Darstellung einer Webseite. Der Webserver wird häufig auch als HTTP-Dämon (Hypertext Transfer Protocol Daemon) bezeichnet. Hier der Vorgang einer solchen Transaktion bildlich:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.2   Transaktion einer HTTP-Anfrage


Hinweis   Ein Webserver ist nichts anderes als ein Programm bzw. eine Anwendung (meist in C geschrieben) ohne visuelle Oberfläche auf dem Server. Das Programm können Sie nicht sehen. Es nimmt über Ports (meistens Port 80) einen Auftrag entgegen und führt diesen aus, zumeist das Anzeigen einer HTML-Seite. Häufig wird irrtümlicherweise der Server als Hardware mit dem Serverprogramm darauf gleichgesetzt, wobei die Beziehung hier so eng ist, dass dies auch wieder nicht ganz verkehrt ist.



Galileo Computing - Zum Seitenanfang

26.7.2 Serverimplementierung  downtop

Bevor Sie sich, sei es privat oder für eine Organisation, für eine Webpräsenz entscheiden, müssen Sie zunächst überlegen, wie oder mit wem Sie ins Web gehen. Entscheidend für die Organisationsstrategie werden wohl die Kosten und der Zweck Ihrer Präsenz sein.

In der Regel werden Sie sich für eine der zwei gebräuchlichsten Strategien zur Webserverimplementierung entscheiden:

gp  Hosting-Service – Der Webserver wird remote über den Internet Service Provider (ISP) unterstützt.
gp  Schlüsselfertige Lösungen – Eine komplette Soft- und Harwarelösung, die lokal am physischen Standort verwaltet wird.

Galileo Computing - Zum Seitenanfang

26.7.3 Hosting-Services  downtop

Auf die meisten Anwender dürfte diese Lösung zutreffen. Dabei geht der Kunde im Zusammenhang mit einem Web Service Provider (kurz WSP) ins Netz. Verwechseln Sie aber den WSP nicht mit dem Internet Service Provider (kurz ISP). Mit dem ISP wählen Sie sich ins Internet ein, mit einem WSP richten Sie Ihre Internetpräsenz ein. Wobei heute viele ISPs auch schon Hosting-Services anbieten. Sie bekommen z.B. bei großen ISPs wie AOL oder T-Online auch schon 10 MB Platz für eine Internetpräsenz. Dabei müssen Sie aber auf Extras und eine eigene Domain wie www.mein_wunschname.de verzichten.

Unter den vielen Hosting-Services, die es mittlerweile im Netz gibt, ist es schon schwer, einen Überblick zu bekommen. Da Sie wahrscheinlich die Beispiele im Buch erst einmal am lokalen Rechner testen, müssen Sie sich jetzt noch keine Gedanken darüber machen, wo Sie Ihre Webseite hosten. Aber Sie sollten, falls Sie eigene Skripte auf dem Webserver hochladen wollen, darauf achten, dass in Ihrem Paket Dinge dabei sind wie: eigene CGIs ausführen, PHP ausführen, Zugriff auf eine MySQL-Datenbank haben. Solche Hosting-Services kosten so in etwa 10 bis 20 Euro monatlich. Geben Sie einfach in einer Suchmaschine den Begriff »Hosting-Service« ein und Sie bekommen unzählige Ergebnisse zurück.

Die Vorteile solcher Hosting-Services sind ganz klar der günstige Preis, dass Sie keinerlei Verwaltungsaufgaben und Aufwand haben und somit über keinerlei technische Erfahrung mit Webservern verfügen müssen. Ebenso ist ein enormer Vorteil, dass die meisten Hosting-Services eine Bereitschaft rund um die Uhr, sieben Tage in der Woche bieten.


Galileo Computing - Zum Seitenanfang

26.7.4 Schlüsselfertige Lösung  downtop

Bei einer schlüsselfertigen Lösung handelt es sich um eine vollständige in sich geschlossene Soft- und Hardwarelösung. Der Vorteil gegenüber dem Hosting-Service liegt darin, dass Sie bei einem technischen Problem nicht vom WSP abhängig sind. Haben Sie ein Problem, müssen Sie erst beim WSP nachfragen. Es wird dabei praktisch nur noch ein Server am Netzwerk und am Stromnetz angeschlossen, und Sie sind im Web. Dabei ist aber schon ein gewisses Maß an Know-how notwendig. Solche Server-Applikationen sind vorwiegend für kleinere bis mittlere Organisationen gedacht. Die Konfiguration des Webservers wird meistens über den Client, den Webbrowser, vorgenommen, der mit einer einfach zu bedienenden Oberfläche ausgestattet ist. Oft wird bei der Software Linux als Betriebssystem und Apache als Webserver verwendet, da bei beiden kaum lizenzrechtliche Bestimmungen beachtet werden müssen.


Galileo Computing - Zum Seitenanfang

26.7.5 Weitere Möglichkeiten  downtop

Theoretisch haben Sie aber auch die Möglichkeit, einen Server von zu Hause aus zu betreiben. Dabei installieren Sie einen Webserver auf Ihrem PC. Danach wählen Sie sich ins Internet ein und bekommen meist eine dynamische IP-Adresse. Unter dieser IP-Adresse können jetzt die Surfer Ihre Webseite ansteuern und das Internetangebot auch nutzen. Der Vorteil: Diese Lösung kostet keinen Cent. Aber bei einer ständig wechselnden IP-Adresse Ihrer Webseite dürfte wohl kaum ein Websurfer Ihre Seite finden. Dies können Sie theoretisch mit kostenlosen Diensten wie www.dyndns.org beheben. Damit können Sie sich auch ohne DENIC eine Webadresse einrichten lassen. Wobei logischerweise die Bandbreite der Besucher, die sich gleichzeitig auf Ihrer Seite tummeln können, beschränkt ist. Aber probieren macht gewöhnlich Spaß, und so lernen Sie auch noch einiges dabei.

Eine weitere Möglichkeit stellt das Intranet dar, ob nun privat oder geschäftlich. Wenn Sie das Glück haben, in einer Firma ein größeres Intranet zu betreiben, können Sie schalten und walten, wie Sie wollen.


Hinweis   Wenn Sie die folgenden Beispiele lokal auf Ihrem System testen wollen, wird ein (Web-)Server benötigt. Die folgenden Beispiele wurden mit dem Apache als Serversoftware getestet.



DENIC   Die DENIC ist in Deutschland für das Vergeben von *.de-Domänen zuständig. Wenn Sie also eine eigene Domäne registrieren lassen möchten, so muss dies bei der DENIC geschehen. Die meisten WSPs kümmern sich in der Regel für den Kunden darum.



Galileo Computing - Zum Seitenanfang

26.7.6 Apache  toptop

1995 schlossen sich mehrere Entwickler zusammen, um den damals dominierenden, aber sehr fehlerhaften Webserver NCSA weiterzuentwickeln. Was dabei herauskam, wurde wegen der vielen Fehlerbehebungen »a patchy Server« (Patches) oder einfach Apache genannt.

Warum Apache?

Warum in diesem Kapitel der Apache-Webserver verwendet wird, lässt sich recht einfach erklären. Der Apache ist für viele Systeme erhältlich, und ist für ein System einmal keine Binary-Version vorhanden, können Sie den Quellcode, der in C geschrieben wurde und frei vorliegt, auf dem System anpassen und übersetzen (kompilieren) lassen. Natürlich können Sie sich auch auf gängigen Systemen Ihre eigene Version des Apaches zusammenbasteln. Der zweite Grund: Apache liegt in freier Form vor. In freier Form heißt, der Quellcode liegt offen, somit werden Sicherheitslücken schneller gefunden als bei Webservern, bei denen Sie sich auf den Hersteller verlassen müssen. Und der dritte Grund ist auch der ausschlaggebende: Der Apache ist der am meisten verwendete Webserver im Internet, wie folgende Auswertung von der Webseite http://www.netcraft.com/survey zeigt:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.3   Verwendete Webserver im Internet

And last, but not least: Apache ist kostenlos. Der Webserver finanziert sich durch die Apache Software Foundation, wo große Firmen wie IBM gewisse Beträge spenden und so die Weiterentwicklung des Webservers unterstützen. Firmen und Entwickler, die dieses Projekt unterstützen wollen, sind immer erwünscht. Mehr dazu unter http://www.apache.org.

Apache installieren und testen

Damit Sie in den folgenden Abschnitten die Beispiele auf Ihrem lokalen Rechner testen können, müssen Sie zunächst Apache auf dem System installieren, sofern dies noch nicht geschehen ist. Es empfiehlt sich im Allgemeinen, die CGI-Anwendungen zuerst auf einem lokalen Rechner zu testen, ehe sie im Web der Öffentlichkeit vorgestellt werden.

Der Vorgang der Installation wird anhand der Binary-Version des Apache vorgenommen, da dies wohl die meist verwendetste Installationsart der Leser ist. Für eine Beschreibung, wie Sie mit dem Sourcecode einen persönlichen Apache erstellen können, sei die Homepage http://www.apache.org empfohlen.

Windows

In der Regel kann der Apache auf jeder Windows-Version ohne Probleme betrieben werden. In der folgenden Tabelle finden Sie einige Versionen, mit denen es Probleme geben könnte, und Hinweise, wie Sie Abhilfe schaffen.


Tabelle 26.1   Abhilfe bei Problemen mit Apache unter Windows

Version Problemlösung
Windows95 Winsock2-Umgebung installieren
Windows NT 4.0 Update auf Servicepack SP6a
Windows 2000 Update auf Servicepack 2

Sie können sich jetzt die aktuellste Version des Apache von der Apache-Webseite herunterladen.

Um den Apache zu installieren, benötigen die Windows-Versionen Windows 95, Windows 98, Windows 98SE und Windows NT 4.0 mit Microsoft Installer, Version 1.10, den Sie auf der Webseite http://www.microsoft.com herunterladen können. Bei Windows ME, Windows 2000 und Windows XP ist dieser Installer bereits vorhanden.

Doppelklicken Sie jetzt apache_2.x.xx-win32-x86-no_ssl.msi und folgen den typischen Anweisungen der Installation (wobei x.xx für eine Versionsnummer steht). Bei allen Fenstern bis auf das folgende können Sie einfach weiterklicken (siehe Abbildung 26.4).

Verwenden Sie dieselben Einstellungen wie in der Abbildung. Für den Netzwerk-Domainnamen und den Servernamen geben Sie localhost ein. Die E-Mail-Adresse bleibt Ihnen überlassen.

Wenn die Installation beendet ist, öffnen Sie den Webbrowser, mit dem Sie auch im Internet unterwegs sind, und geben als Adresse http://localhost ein, dann drücken Sie (¢). Wenn alles glatt verlief, sollte folgende Seite erscheinen (siehe Abbildung 26.5).

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.4   Eingabe von Serverinformationen

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.5   Erfolgreiche Installation des Apache-Webservers

Sollten Sie keinen Apache im Webbrowser sehen, vergewissern Sie sich, ob der Apache überhaupt gestartet wurde (siehe »Apache starten und stoppen«).

Bei den Windows Versionen, die eine »echte« Benutzerverwaltung haben (z.B. NT, 2k etc.) empfiehlt es sich, einen extra Benutzer einzurichten, unter dessen Namen der Apache als Dienst läuft.

Linux

Die Installation unter Linux gestaltet sich recht einfach, da der Apache-Webserver in der Regel mit der Distribution mitgeliefert wird. Das heißt, Sie müssen nur noch das Paket von Ihrer Linux-Distribution nachinstallieren.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.6   Paketeauswahl bei der SuSE-Distribution mit YAST2

Natürlich können Sie sich auch die neueste Version des Apache herunterladen und installieren, was allerdings für den Verlauf dieses Buchs nicht nötig ist. Die Beispiele wurden u.a. auch mit dem Apache der Version 1.3 getestet. Als Nächstes müssen Sie den Webserver in einer Konsole mit folgendem Befehl starten:

/apache2/bin/apachectl start

Sollte dies nicht funktionieren, müssen Sie einmal kurz den Superuser (su) geben, um Apache zu starten. Dann sollte es mit folgendem Aufruf klappen:

apachectl start

Starten Sie jetzt den Webbrowser Ihrer Wahl und geben Sie die URL http://localhost ein und drücken (¢). Danach sollten Sie vom Apache-Webserver begrüßt werden, wie in der folgenden Abbildung unter SuSE-Linux mit dem Browser Mozilla dargestellt:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.7   Der Apache-Webserver läuft

Bei einem UNIX/Linux-System möchte man sich auch gern einmal die Funktion der Change-root-Umgebung ansehen. In diesem Fall bekommt der Apache eine eigene Umgebung, was den Betrieb sicherer gestaltet.

htdocs-Verzeichnis

Die Begrüßungsseite in den verschiedensten Sprachen finden Sie im htdocs-Verzeichnis. Dieses finden Sie unter MS-Windows z.B. in C:\Programme\Apache Group\Apache2\, bei SuSE 8.2 in /srv/www/ und bei Red Hat sollte sich dieses Verzeichnis im Pfad /etc/apache/ oder /etc/httpd/ befinden.

Wenn Sie jetzt eine HTML-Seite auf dem lokalen Webserver speichern und mit einem Webbrowser betrachten wollen, müssen Sie dazu nur die Webseiten, Bilder und, falls benötigt, weitere Unterordner im htdocs-Verzeichnis des Apache-Servers ablegen.

Erstellen Sie z.B. eine HTML-Seite mit dem Namen »testseite.html« und speichern diese im htdocs-Verzeichnis, dann können Sie diese Seite mit einem Browser über die URL »http://localhost/testseite.html« aufrufen.

Apache starten und stoppen

Bei Windows befindet sich in der Statuszeile rechts unten eine Feder. Klicken Sie diese an, und es öffnet sich folgendes Fenster:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.8   Der Apache Service Monitor unter Windows

Damit können Sie Apache starten, stoppen und wieder neu starten. Sollten Sie nicht wollen, dass Apache bei jedem Systemstart automatisch gestartet wird, können Sie unter Systemsteuerung Dienste oder unter Systemsteuerung Verwaltung Dienste die Konfiguration von automatisch auf manuell umändern. Damit können Sie Apache in Zukunft von Hand starten.

Unter Linux können Sie das Shell-Skript apachectl verwenden. Mit welchem Parameter dabei Apache gesteuert wird, können Sie der folgenden Tabelle entnehmen.


Tabelle 26.2   Steuern des Apache mit dem Shellskript apachectl (Linux)

Befehl Bedeutung
apachectl start Startet den Apache
apachectl stop Stoppt den Apache
apachectl restart Neustart des Apache mit der HUP-Methode
apachectl graceful Neustart des Apache mit der USR1-Methode

In den meisten Fällen wird Apache bereits beim Boot-Vorgang automatisch gestartet. Leider gibt es mittlerweile so viele Linux-Distributionen und auch Apache-Versionen, dass es kaum möglich ist, Ihnen eine pauschale Anleitung zum Starten und Stoppen des Apache-Webservers zu vermitteln. Dafür sei die Dokumentation für die entsprechende Apache-Version auf der Webseite http://httpd.apache.org/docs-project/ empfohlen. Das Steuerskript apachectl ist die empfohlene Methode, um den Apache zu steuern. Weitere Möglichkeiten zum Starten von Apache sind:


Tabelle 26.3   Weitere Möglichkeiten den Apache zu starten (Linux)

Distribution Befehl zum Starten
SuSE Linux /sbin/init.d/apache start
Red Hat Linux /etc/rc.d/httpd start

Apache für CGI-Anwendungen konfigurieren

Um den Apache zu konfigurieren, muss die Datei httpd.conf mit einem Texteditor geöffnet werden. Unter Windows sollte sich diese Datei im Verzeichnis C:\Programme\Apache Group\Apache2\conf befinden. Bei SuSE Linux 8.2 befindet sich diese Datei in /etc/httpd und bei Red Hat Linux im Verzeichnis /etc/httpd/conf. Beachten Sie außerdem, dass Sie eventuell Root-Rechte auf diese Datei benötigen, wenn Sie diese ändern wollen. Sollten Sie vorhaben, die CGI-Anwendungen im vorgegebenen cgi-bin-Verzeichnis auszuführen, müssen Sie in der Regel nichts an der Datei httpd.conf ändern. Dann können Sie munter die erste CGI-Anwendung in Ihrem Webbrowser starten, welche gleich erstellt werden soll. Hier der Quellcode dazu:

/* time.c */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* Die Kopfzeile eines Standard-HTML-Dokuments
 * Titel: String, der als Titel erscheinen soll
 */
void print_html_header(char *titel) {
   printf("<html><head>\n");
   printf("<title>%s</title>\n",titel);
   printf("</head><body>\n");
}
/* Das Ende eines HTML-Dokuments */
void print_html_end(void) {
   printf("</body></html>\n");
}
/* Damit überhaupt ein HTML-Dokument ausgegeben wird */
void print_header(void) {
   printf("Content-Type: text/html\n\n");
}
void print_time(void) {
   time_t zeit;
   time(&zeit);
   printf("Aktuelle Systemzeit: ");
   printf("%s\n",ctime(&zeit));
}
int main(void) {
   print_header();
   print_html_header("Hallo Welt in CGI mit Zeit\n");
   print_time();
   print_html_end();
   return EXIT_SUCCESS;
}

Die Funktion print_html_header() enthält die Kopfdaten eines HTML-Dokuments. Der String, den Sie der Funktion übergeben, wird als Titel der HTML-Seite verwendet. Und die Funktion print_html_end() enthält das Ende eines HTML-Dokuments. Zur Zeile print_header() erfahren Sie später mehr. Mit der Funktion print_time() wird die aktuelle Systemzeit ausgegeben. Da sich diese zwischen den Funktionen print_html_header() und print_html_end() befindet, also im Body-Teil des HTML-Dokuments, stellt die Ausgabe praktisch den Inhalt der HTML-Seite dar. Jetzt soll dieses CGI-Programm mit dem Webbrowser Ihrer Wahl aufgerufen werden.

Ein CGI-Programm erstellen und starten Sie in den folgenden Schritten (der Programmname sei time.c):

gp  Übersetzen Sie den Quellcode wie gewohnt.
gp  Verändern Sie die Extension der ausführbaren Datei. Bei Linux hat diese binäre Datei keine Extension und Sie sollten eine hinzufügen. Aus time wird hierbei time.cgi. Unter Windows läuft dies ähnlich ab, aus time.exe machen Sie time.cgi. Es kann dabei vorkommen, dass Ihr System Sie warnt, das Programm sei danach nicht mehr ausführbar. Das können Sie ignorieren.
gp  Kopieren Sie die übersetzte Datei in das cgi-bin-Verzeichnis des Webservers. Unter Windows finden Sie dieses Verzeichnis gewöhnlich in C:\Programme\Apache Group\Apache2\. Bei Linux SuSE 9.1 in /srv/www/ und bei Red Hat sollte dies der Pfad /etc/apache/ oder /etc/httpd/ sein. Außerdem werden Sie bei Linux Superuser-Rechte (su) benötigen, um auf dieses Verzeichnis schreibend zuzugreifen.
gp  Unter Linux müssen Sie noch die Zugriffsrechte der Datei time.cgi ändern. Ein einfaches chmod go+rx time.cgi sollte dabei reichen (voraussichtlich werden Superuser-Rechte dazu benötigt).
gp  Jetzt können Sie einen Webbrowser Ihrer Wahl starten und, falls nicht schon geschehen, den Apache-Webserver ebenfalls.
gp  Jetzt wird es Zeit, die CGI-Anwendung zu starten. Geben Sie in der Adressleiste Ihres Browser folgende URL ein:
http://localhost/cgi-bin/time.cgi

Wenn alles richtig verlaufen ist, müssten Sie folgende Ausgabe auf Ihrem Bildschirm erhalten (siehe Abbildungen 26.9 und 26.10).


Tipp   Unter Linux können Sie sich das Verändern der Extension ersparen, wenn Sie der ausführbaren Datei gleich beim Übersetzen diese Extension übergeben: gcc –o time.cgi time.c.


Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.9   Ausgabe der Systemzeit mit Internet Explorer (Windows)

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.10   Ausgabe der Systemzeit mit Mozilla (SuSE Linux)

Troubleshooting

Sollten Sie die CGI-Anwendung nicht zum Laufen bekommen, sehen Sie in der folgenden Checkliste nach, welche möglichen Ursachen dies haben könnte:

gp  Haben Sie die Zugriffsrechte auf die CGI-Anwendung richtig gesetzt? Wenn Sie keine Rechte auf die Datei haben, sollten Sie dies nachholen.
gp  Ein Fehler im Programm? Meistens bekommen Sie dabei von Ihrem Webbrowser einen Fehler mit der Nummer 500 zurück.
gp  Führen Sie das Programm in der Kommandozeile aus und achten Sie auf die Ausgabe.
gp  Haben Sie die richtige URL im Browser eingegeben?
gp  Testen Sie nochmals, ob der Webserver richtig oder überhaupt läuft (http://localhost/).
gp  Ein Blick ins apache log kann auch nicht schaden. In der Regel ist dies in /var/log/apache/ zu finden. Interessant sind hier die Dateien error.log und access.log. Gerade beim Testen von neuen CGIs sollten Sie durch Eingabe in einer Konsole tail –f /var/log/apache/error.log mitlaufen lassen. Alle Fehlermeldungen, die dann über stderr ausgegeben werden, tauchen im log auf.

Bevor Sie jetzt weitere CGI-Anwendungen erstellen, benötigen Sie noch ein wenig Grundwissen zum HTTP-Protokoll.

 << zurück
  
  Zum Katalog
Zum Katalog: C von A bis Z
C von A bis Z
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-Programmierung


Zum Katalog: C/C++






 C/C++


Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Reguläre Ausdrücke






 Reguläre Ausdrücke


Zum Katalog: Linux






 Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de