Gary: Alles erledigt!

Beitrag lesen

Abend Jean-Max und Tom

Da ein wirklich ausführlicher Bericht "How to install a apache-server on an ubuntu-system with full ssi- cgi- perl- and shtml- support" diesen ehe schon viel zu langen thread sprengen würde, hier die grobe Zusammenfassung.

Vorweg: Ich habe zunächst wieder den Urzustand hergestellt (apache und alle mods deinstalliert + Restart).....

1. apache2 neu installiert
   2. index.html in var/www/ abgelegt
   3. ssi-test.shtml in var/www/ abgelegt
   4. Perl-Test.pl in usr/lib/cgi-bin abgelegt
   5. Ordnerrechte auf 0755 eingestellt
   6. group auf www-data gesetzt
   7. mich mit aduser grp hinzugefügt
   8. apache restart
   9. sudo a2enmod include ausgefürt
  10. etc/apache2/sites-available/default +includes eingesetzt
  11. etc/apache2/sites-available/default AddType text/html .shtml
  12. etc/apache2/sites-available/default AddOutputFilter INCLUDES .shtml
  13. etc/apache2/sites-available/default AddHandler cgi-script .cgi .pl

Die etc/apache2/sites-available/default wie folgt abgeändert:
----------------------------------------------------------------
<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www  
<Directory />  
	Options FollowSymLinks  
	AllowOverride None  
</Directory>  
<Directory /var/www/>  
	Options Indexes FollowSymLinks MultiViews +Includes  
	AllowOverride None  
	Order allow,deny  
	allow from all  
        AddType text/html .shtml  
        AddOutputFilter INCLUDES .shtml  

</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

<Directory "/usr/lib/cgi-bin">  
	AllowOverride None  
	Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch  
	Order allow,deny  
	Allow from all  

AddHandler cgi-script .cgi .pl
        </Directory>

ErrorLog /var/log/apache2/error.log  

# Possible values include: debug, info, notice, warn, error, crit,  
# alert, emerg.  
LogLevel warn  

CustomLog /var/log/apache2/access.log combined  

Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>
----------------------------------------------------------------

Nachdem es dann immer noch nicht funktionierte, nahm ich mir die Testprogramme vor. Nachdem die aber im Standalone-Betrieb gingen, blieb mir nur noch eine Möglichkeit--> Das Error-Logfile!
Un dort stand dann drin:
--------------------------------------------------------------
malformed header from script. Bad header=<html>: Perl-Test.pl
--------------------------------------------------------------

D.h., wenn der apache eine generierte Homepage nicht genau 100% Fehlerfrei serviert bekommt, streikt er einfach "wortlos". Was lernen wir daraus? Ein Error-Logfile ist nicht einfachh wachsender Ballast in einem System, nein - es kann auch eine Hilfe sein, wenn man mal nicht weiter weis!

Wer übrigens Testprogramme braucht für solche Zwecke-> Hier mal meine treuen Informanten...

Server-Test - ob Html erkannt und ausgeliefert wird:
-----------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<p>Ich liege im Verzeichnis var/www und bin ein ganz normales HTML-Dokument!</p>
</body>
</html>
-----------------------------------------------------------------

Server-Test - ob ssi korrekt arbeitet:
-----------------------------------------------------------------
<html>
  <head>
    <title>SSI Test Page</title>
  </head>
  <body>
    <!--#echo var="DATE_LOCAL" -->
  </body>
</html>
-----------------------------------------------------------------

Und hier wohl das kürzeste shtml-Dokument der Welt um Perlaktivierung zu testen:
-----------------------------------------------------------------
<!--#exec cgi="/cgi-bin/Perl-Test.pl" -->
-----------------------------------------------------------------

Und zu letzt noch ein kleines PerlScript, das dem Browser sagt, wenn es funktioniert:
-----------------------------------------------------------------
#!/usr/bin/perl -w

use strict;
use CGI -no_xhtml;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);

print CGI->header('text/html');

print qq(<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">),"\n";

print qq(<meta http-equiv="Content-Language" content="de">),"\n";
print qq(<meta http-equiv="Content-Type" content="text/html; charset=utf-8">),"\n";

print qq(<html>),"\n";
print qq(<head>),"\n";
print qq(</head>),"\n";
print qq(<body>),"\n";
print qq(<title>Perl-Tester</title>),"\n";
print qq(<p>Wenn sie das lesen können, hat SSI und CGI korrekt funktioniert!</p>),"\n";
print qq(</body>),"\n";
print qq(</html>),"\n";
-----------------------------------------------------------------

Mist, jetzt ist die kurze Erklärung doch noch etwas länger geworden *g*

Hoffe das es einem Zukünftigem Leser mit gleichem Problem weiter hilft. Man lernt auf jedenfall in welchem Verzeichnis was zu liegen hat...

Grüße und Dank

Gary