So, schön der Reihe nach:
Jetzt kämpfe ich noch ein wenig mit dem Linux Server im lokalen Netzwerk, damit ich später keinen Krampf mit dem 1&1 Server haben werde - hoffentlich.
Ich habe seit Tagen hier in meinem kleinen Palast Linux 8.0 laufen. Die Installation war einfach und auch Apache läuft schön. Schwierigkeiten machen mir aber die Scripte, wen wundert's. Um genau zu sein, ich konnte kein einiziges je ausführen.
Es kommt immer der Fehler: 
(2)No such file or directory: exec of /usr/local/httpd/cgi-bin/gserverinfo.cgi
Premature end of script headers: /usr/local/httpd/cgi-bin/gserverinfo.cgi
Um Fehlerquellen zu minimieren habe ich nach der Installation des Betriebssystems kaum Ã?nderungen vorgenommen. Derzeit sind folgende Einstellungen in der httpd.conf gültig:
User wwwrun
Group httpd
(httpd habe ich mit YAST - shame on me! - angelegt. Dieser Gruppe gehört nur wwwrun und der user web1 an. Dieser wiederum ist der Besitzer des Verzeichnisses /usr/local/httpd und dessen Unterverzeichnisse.)
DocumentRoot "usr/local/httpd/htdocs"
   ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/"                                                                                                                                  
                                                                                                                                                                                       
<IfModule mod_perl.c>                                                                                                                                                                  
    # Provide two aliases to the same cgi-bin directory,                                                                                                                               
    # to see the effects of the 2 different mod_perl modes.                                                                                                                            
    # for Apache::Registry Mode                                                                                                                                                        
    ScriptAlias /perl/          "/usr/local/httpd/cgi-bin/"                                                                                                                            
    # for Apache::Perlrun Mode                                                                                                                                                         
    ScriptAlias /cgi-perl/      "/usr/local/httpd/cgi-bin/"                                                                                                                            
</IfModule>                                                                                                                                                                            
    #                                                                                                                                                                                  
    # "/usr/local/httpd/cgi-bin" should be changed to whatever your ScriptAliased                                                                                                      
    # CGI directory exists, if you have that configured.                                                                                                                               
    #                                                                                                                                                                                  
    <Directory "/usr/local/httpd/cgi-bin">                                                                                                                                             
        Order allow,deny                                                                                                                                                               
        Allow from all                                                                                                                                                                 
    </Directory>                                                                                                                                                                       
                                                                                                                                                                                       
</IfModule>                                                                                                                                                                            
# End of aliases.                                                                                                                                                                      
                                                                                                                                                                                       
                                                                                                                                                                                       
#                                                                                                                                                                                      
# set /cgi-bin for CGI execution                                                                                                                                                       
#                                                                                                                                                                                      
<Location /cgi-bin>                                                                                                                                                                    
AllowOverride None                                                                                                                                                                     
Options +ExecCGI -Includes                                                                                                                                                             
SetHandler cgi-script                                                                                                                                                                  
</Location>     
Dem Verzeichnis /usr/local/httpd/cgi-bin und der Datei gserverinfo.cgi habe ich natürlich über chmod 755 die entsprechenden Rechte gegeben. Besitzer und Gruppe von Verzeichnis und Script sind web1:httpd.
Soweit der Zustand. Nun gibt es ja in den FAQ dieses Forums genau für meine Fehlermeldung einen Hinweis http://www.rootforum.de/faq/index.php?s ... =006&id=61:
Mutig und froh bin ich also diesen kleinen Leitfaden durchgegangen:
1. Syntax - heißt es - sei OK
2. Aber es kommt die Meldung: 'bash: Bad Interpreter: File not found'.
Nochmals Check-Liste: Script wurde im ASCI-Modus auf den Server befördert und der Interpreterpfad von Perl '/usr/bin/perl' stimmt auch, sagt zumindest 'whereis perl'. 
Mein Script beginnt mit: 
#!/usr/bin/perl                                                                                                                                                            
###########################################################################################                                                                                
# gserverinfo.cgi                                                                                                                                                          
# GEOs ServerInfo V. 1.11 - 01. April 2000                                                                                                                                 
Ich weiß, das ist viel Lesearbeit hier. Aber mir will einfach nicht in den Kopf, was nicht stimmen könnte. Ich kann das Buch von Herrn Kabir fast auswändig, fiinde aber keine Lösung. Ich vermute aber, es könnte mit der Benutzer- und der Gruppen-Zuordnung (web1:httpd) zusammenhängen. Oder ist die Dokumentauszeichnung im Script nicht korrekt. Ich habe gelesen, dies nähme Apache sehr ernst, nur weiß ich nicht, was damit gemeint ist.
suEXEC habe ich für den Moment erst mal rausgeschmissen, damit es leichter wird, den Fehler zu finden.
Habt ihr eine Idee, wie ich bei der Fehlersuche systematisch vorgehen könnte. Zeit habe ich und Geduld eigentlich auch. Eigentlich gute Voraussetzungen, oder?
			
			
									
						
										
						Sand im Getriebe: 'Premature end of script headers'
- 
				onekilometer
- Posts: 5
- Joined: 2003-03-18 19:41
- Location: Köln
- 
				onekilometer
- Posts: 5
- Joined: 2003-03-18 19:41
- Location: Köln
Jetzt geht's
Nun funktionieren meine Scripte. Kann der Fehler dieser gewesen sein:
Der in Linux angelegte User web1, dem das Script gehört, war auch Mitglied der Gruppe zu der der Apache-User wwwrun gehörte?
			
			
									
						
										
						Der in Linux angelegte User web1, dem das Script gehört, war auch Mitglied der Gruppe zu der der Apache-User wwwrun gehörte?