quarzsnoopy
[Free|Net]BSD - User
Ich hatte ein wunder schönes datenbankbasiertes Adressbuch auf meinem Server (FreeBSD 5.2.1p11) mit Postgresql und Apache 2.0.50_1 laufen. Alles funktionierte schon seit fast 2 Jahren unveränder (nur updates des OS und der Software; nicht die Scripte) und einwandfrei.
Jetzt bin ich durch aktuelle Updates vor ein paar Tagen auf den Apache 2.0.52_1 gekommen und die CGI's werden nicht mehr ausgeführt.
Ich habe nach drei Tagen und zwei Nächten aufgegeben und auf Apache 1.3.31_6 (heute) gewechselt... und das gleiche Problem.
Ich habe auch eine neue Funktion "UserDir" gesehen, die ich aber (glaube ich) ignorieren kann.
Weiss einer was sich da getan hat? Bin für jede Idee dankbar!!!
Meine httpd.conf ist immer unverändert (original, nur die Zeile "Include etc/apache2/Includes/*.conf" wurde unten angefühgt). Die vhost.conf sieht so aus:
Listen erde:80
<Directory "/">
AllowOverride AuthConfig
Order Deny,Allow
Allow from all
Options Indexes FollowSymLinks IncludesNoExec
</Directory>
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
<Directory "/usr/local/www/data">
AllowOverride AuthConfig
Options FollowSymLinks ExecCGI
AddOutputFilter Includes html
LanguagePriority de en fr es
ForceLanguagePriority Prefer Fallback
</Directory>
NameVirtualHost erde
<VirtualHost erde>
SuexecUserGroup adressen webusers
ServerAdmin adressen@quarz.de
DocumentRoot /usr/local/www/data/adressen/htdocs
ScriptAlias /cgi-bin/ "/usr/local/www/data/adressen/cgi-bin/"
ServerName adressen
ErrorLog "|/usr/local/sbin/rotatelogs /usr/local/www/data/adressen/log/error_log 2620800"
CustomLog "|/usr/local/sbin/rotatelogs /usr/local/www/data/adressen/log/access_log 2620800" common
</VirtualHost>
http://adressen/
=============
Die Fehlermeldungen die ich bekomme lauten im Browser (ich klicke z.B. auf den Knopf um eine neue Adresse einzutragen):
"500 Internal Server Error";
im /var/log/httpd-suexec.log:
[2004-10-21 03:05:02]: info: (target/actual) uid: (adressen/adressen) gid: (webusers/webusers) cmd: insertform.cgi
[2004-10-21 03:05:02]: emerg: cannot get docroot information (/usr/local/www/data)
obwohl der Pfad stimmt??? (Symlink: /usr/local/www/data -> /home/www)
im Log (/usr/local/www/data/adressen/log/error_log.1098115200):
Premature end of script headers: /usr/local/www/data/adressen/cgi-bin/insertform.cgi
Wenn ich allerdings den kompletten Pfad zum CGI-Script im Browser eingebe, dann der Quelltext des Scripts angezeigt (alle Scripte sind in "/bin/sh" geschrieben, habe aber genau das gleiche Problem mit Perlscripten):
http://adressen/cgi-bin/insertform.cgi
Ich habe gerade den 1,3-er drauf und hab auch schon mit
AddType application/x-httpd-cgi .cgi
AddHandler cgi-bin .cgi
versucht, hat dann die Fehlermeldung:
405 Method Not Allowed
The requested method POST is not allowed for the URL /cgi-bin/insertform.cgi.
bekommen.
habe dann auch folgende probiert:
<Limit GET POST PUT DELETE CONNECT OPTIONS PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order allow,deny
Allow From All
</Limit>
<LimitExcept GET POST PUT DELETE CONNECT OPTIONS PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order allow,deny
Allow From All
</LimitExcept>
und bekomme dann die gleiche Fehlermeldung (405) wieder. Das Script direkt als URL, wird nur angezeigt statt ausgeführt.
Was soll ich jetzt machen??? Ich habe keine Ahnung mehr... habe in den letzten drei Jahren alles mögliche mit dem Apache 1.3 und später Apache 2.0 hinbekommen, bin jetzt aber fast am verzweifeln.
Kann jemand weiterelfen, ist das Problem vielleicht bekannt? Ist das eine neue Sicherheitsoption? Wenn ja wie conft man das denn?
Bin für jede Hilfe dankbar, habe im Netz nichts dazu gefunden.
Jetzt bin ich durch aktuelle Updates vor ein paar Tagen auf den Apache 2.0.52_1 gekommen und die CGI's werden nicht mehr ausgeführt.
Ich habe nach drei Tagen und zwei Nächten aufgegeben und auf Apache 1.3.31_6 (heute) gewechselt... und das gleiche Problem.
Ich habe auch eine neue Funktion "UserDir" gesehen, die ich aber (glaube ich) ignorieren kann.
Weiss einer was sich da getan hat? Bin für jede Idee dankbar!!!
Meine httpd.conf ist immer unverändert (original, nur die Zeile "Include etc/apache2/Includes/*.conf" wurde unten angefühgt). Die vhost.conf sieht so aus:
Listen erde:80
<Directory "/">
AllowOverride AuthConfig
Order Deny,Allow
Allow from all
Options Indexes FollowSymLinks IncludesNoExec
</Directory>
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
<Directory "/usr/local/www/data">
AllowOverride AuthConfig
Options FollowSymLinks ExecCGI
AddOutputFilter Includes html
LanguagePriority de en fr es
ForceLanguagePriority Prefer Fallback
</Directory>
NameVirtualHost erde
<VirtualHost erde>
SuexecUserGroup adressen webusers
ServerAdmin adressen@quarz.de
DocumentRoot /usr/local/www/data/adressen/htdocs
ScriptAlias /cgi-bin/ "/usr/local/www/data/adressen/cgi-bin/"
ServerName adressen
ErrorLog "|/usr/local/sbin/rotatelogs /usr/local/www/data/adressen/log/error_log 2620800"
CustomLog "|/usr/local/sbin/rotatelogs /usr/local/www/data/adressen/log/access_log 2620800" common
</VirtualHost>
http://adressen/
=============
Die Fehlermeldungen die ich bekomme lauten im Browser (ich klicke z.B. auf den Knopf um eine neue Adresse einzutragen):
"500 Internal Server Error";
im /var/log/httpd-suexec.log:
[2004-10-21 03:05:02]: info: (target/actual) uid: (adressen/adressen) gid: (webusers/webusers) cmd: insertform.cgi
[2004-10-21 03:05:02]: emerg: cannot get docroot information (/usr/local/www/data)
obwohl der Pfad stimmt??? (Symlink: /usr/local/www/data -> /home/www)
im Log (/usr/local/www/data/adressen/log/error_log.1098115200):
Premature end of script headers: /usr/local/www/data/adressen/cgi-bin/insertform.cgi
Wenn ich allerdings den kompletten Pfad zum CGI-Script im Browser eingebe, dann der Quelltext des Scripts angezeigt (alle Scripte sind in "/bin/sh" geschrieben, habe aber genau das gleiche Problem mit Perlscripten):
http://adressen/cgi-bin/insertform.cgi
Ich habe gerade den 1,3-er drauf und hab auch schon mit
AddType application/x-httpd-cgi .cgi
AddHandler cgi-bin .cgi
versucht, hat dann die Fehlermeldung:
405 Method Not Allowed
The requested method POST is not allowed for the URL /cgi-bin/insertform.cgi.
bekommen.
habe dann auch folgende probiert:
<Limit GET POST PUT DELETE CONNECT OPTIONS PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order allow,deny
Allow From All
</Limit>
<LimitExcept GET POST PUT DELETE CONNECT OPTIONS PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order allow,deny
Allow From All
</LimitExcept>
und bekomme dann die gleiche Fehlermeldung (405) wieder. Das Script direkt als URL, wird nur angezeigt statt ausgeführt.
Was soll ich jetzt machen??? Ich habe keine Ahnung mehr... habe in den letzten drei Jahren alles mögliche mit dem Apache 1.3 und später Apache 2.0 hinbekommen, bin jetzt aber fast am verzweifeln.
Kann jemand weiterelfen, ist das Problem vielleicht bekannt? Ist das eine neue Sicherheitsoption? Wenn ja wie conft man das denn?
Bin für jede Hilfe dankbar, habe im Netz nichts dazu gefunden.
Zuletzt bearbeitet: