Ein CGI-Programm, welches mit C++ entwickelt und mit dem Linux-Compiler gcc kompiliert wurde, kann nach dem Kopieren auf den Webserver einen "Error 500" im Browserfenster anzeigen. Während man im Browser wenig Möglichkeiten hat, den Fehler zu sehen, hilft ein Login per SSH auf dem Webserver. Starten Sie das fehlerhafte Programm per Hand.
Von Zugriffsrechteproblemen abgesehen (loggen Sie sich als root ein, wenn Sie können) könnte auch die Fehlermeldung
"segmentation fault" erscheinen - nichts weiter.
Was ist die Ursache dieses Fehlers ? Auf Ihrem Testrechner funktionierte das Programm ja problemlos. Möglicherweise haben Sie die Datei versehentlich als ASCII übertragen. Ein in C++ geschriebenes und mit gcc kompiliertes Programm ist jedoch eine binäre Datei und muß auch bei der Übertragung so behandelt werden.
Ändern Sie die Übertragungsart in Ihrem FTP-/SSH-Clienten und kopieren Sie die Datei erneut auf den Server. Bei korrekten Zugriffsrechten usw. wird das Programm fehlerfrei starten und auch im Browserfenster werden Sie die Ausgaben Ihrer Webapplikation sehen.
Ein weiterer Fehler, welcher jedoch ein schwerwiegender Programmierfehler ist, kann ebenfalls auftreten: Ihr C-Programm benötigt zum korrekten Arbeiten einen Parameter (Variablenwert), welcher planmäßig per CGI vom Browser an den Webserver übergeben werden soll. Wird dieser Variablenwert nicht definiert, ergibt das ebenfalls einen Segmentation fault. Der Wert dieser Variable sollte im Quelltext hart codiert werden, damit das Programm zum korrekten Abarbeiten einen "Default-Wert" zur Verfügung hat.
Ist das unerwünscht, hilft nur eine korrekt programmierte Fehlerbehandlungsroutine, welche ggf. zum kontrollierten Programmende führt.