kriege cgi nciht zum laufen

Apache, Lighttpd, nginx, Cherokee
evilh
Posts: 126
Joined: 2004-03-25 17:45
Contact:
 

kriege cgi nciht zum laufen

Post by evilh »

ich bekomme perl scripte über den webbrowser einfach nciht zum laufen.

system: suse 8.1
installiertes perl: 5.8.0
apache 2.0.50

folgendes kleine script sol ausgeführt werden:

Code: Select all

#!/perl/bin/perl
print "Content-type: text/htmlnn"; 
print "Perl Test !"; 
das script liegt im cg-bin verzeichnis und hat die rechte 755.
ein aufruf von der shell zeigt die ausgabe auch korrekt an.

wenn ich das script vom browser auf aufrufe, bekomme ich nen "internal server error".
error_log sagt:
"premature end of script headers"

folgender eintrag in der suexec_log:
user mismatch (wwwrun instead of www)

wobei der selbe fehler auftritt wenn ich den besitzer des scripts auf www oder wwwrun setze.

ein "suexec -v" bringt merkwürdigerweise "command not found" !?
wgot
Posts: 1675
Joined: 2003-07-06 02:03
 

Re: kriege cgi nciht zum laufen

Post by wgot »

Hallo,

suexec -V (großes V). suexec kann bei Dir auch suexec2 heißen, wenn das auch nicht klappt suexec suchen und mit Pfad aufrufen.

Zeige bitte die komplette Suexec-Fehlermeldung.

Das Script muß dem User gehören in dessen Vhost es läuft. Bei Confixx ist das webX. Es darf nicht dem Apacheuser gehören.

Der in Suexec eincompilierte Apacheuser (suexec -V verrät ihn) muß mit dem tatsächlichen Apacheuser übereinstimmen. Ist das nicht der Fall --> Suexec neu compilieren.

Gruß, Wolfgang
evilh
Posts: 126
Joined: 2004-03-25 17:45
Contact:
 

Re: kriege cgi nciht zum laufen

Post by evilh »

also apache läuft unter

Code: Select all

User wwwrun
Group www
die ausgabe von suexec -V:

Code: Select all


 -D AP_DOC_ROOT="/usr/local/apache2/htdocs"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www"
 -D AP_LOG_EXEC="/usr/local/apache2/logs/suexec_log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"
fehlermeldung von suexec_log:

Code: Select all

user mismatch (wwwrun instead of www)
sehe ich es richtig, dass ich suexec dann also mit dem user wwwrun neu kompilieren muss ?
reciht es hierbei suexec neu zu kompilieren oder msus ich dazu auchden apachen neu kompilieren ?
crasline
Posts: 121
Joined: 2002-05-11 18:39
 

Re: kriege cgi nciht zum laufen

Post by crasline »

#!/perl/bin/perl
ich denke mal nicht das da perl installiert ist ... standard ist /usr/bin/perl
evilh
Posts: 126
Joined: 2004-03-25 17:45
Contact:
 

Re: kriege cgi nciht zum laufen

Post by evilh »

ups, ja schuldigun, is auch richtig im script. habs falsch abgetippt...
script stimmt jedenfalls
wgot
Posts: 1675
Joined: 2003-07-06 02:03
 

Re: kriege cgi nciht zum laufen

Post by wgot »

Hallo,
evilh wrote:reciht es hierbei suexec neu zu kompilieren oder msus ich dazu auchden apachen neu kompilieren ?
bei Apache 1.3 reicht es den Apache configurieren, die Configurationsdatei von suexec editieren und suexec compilieren.

Bei 2.0 hab ich es nicht probiert.

Komplett configurieren und compilieren aber statt Installation nur die suexec rüberkopieren sollte auf jeden Fall klappen.

Gruß, Wolfgang
evilh
Posts: 126
Joined: 2004-03-25 17:45
Contact:
 

Re: kriege cgi nciht zum laufen

Post by evilh »

kannste mir bitte sagen welche config strings ich nehmen muss um den user von suexec zu ändern ? hab dazu nix gefunden

danke !
wgot
Posts: 1675
Joined: 2003-07-06 02:03
 

Re: kriege cgi nciht zum laufen

Post by wgot »

Hallo,

Apache holen und auspacken, in den Apachequellordner wechseln.

./configure

cd support

suexec.h bearbeiten

make suexec

Rechte und Owner der alten suexec notieren und alte suexec vorsichtshalber sichern.

Neue suexec über alte kopieren (falls die alte suexec2 heißt die neue umbenennen).

Rechte und Owner der neuen suexec kontrollieren.

Apache neu starten.

In der suexec.h alle Werte so setzen wie es suexec -V ausspuckt bzw ändern was nötig.

Erfolgreich ausprobiert, aber nur mit 1.3.

Gruß, Wolfgang
evilh
Posts: 126
Joined: 2004-03-25 17:45
Contact:
 

Re: kriege cgi nciht zum laufen

Post by evilh »

vielen dank erstmal für deine tolle hilfe !

allerdings komm ich hier nicht weiter:

.configure
cd ./support
suecex.h bearbeiten...

davor stand da:

Code: Select all

#ifndef AP_HTTP_USER
#define AP_HTTP_USER "www"
#endif
geändert in

Code: Select all

#ifndef AP_HTTP_USER
define AP_HTTP_USER "wwwrun"
#endif
make suexec

ein suexec -V gibt als user allerdings immer noch "www" statt "wwwrun" aus 8O
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: kriege cgi nciht zum laufen

Post by captaincrunch »

Brille aufsetzen oder mindestens zurechtrücken, genau lesen, dran halten und glücklich werden.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
evilh
Posts: 126
Joined: 2004-03-25 17:45
Contact:
 

Re: kriege cgi nciht zum laufen

Post by evilh »

jou, waren nochd ie dateien vom alten make drin, daran lags...

nun läuft suexec zumind. schon mal mit dem richtigen user...
beim aufruf von meinem script kriege ich nun folgende fehlermeldung in der suexec_log:

Code: Select all

uid: (131:web6) gid: (102/102) cmd:test.pl
command not in docroot (/home/www/web6/html/cgi-bin/test.pl)
[code]

what's next ?
wgot
Posts: 1675
Joined: 2003-07-06 02:03
 

Re: kriege cgi nciht zum laufen

Post by wgot »

Hallo,
evilh wrote:command not in docroot (/home/www/web6/html/cgi-bin/test.pl)
und weiter oben hast Du geschrieben:
-D AP_DOC_ROOT="/usr/local/apache2/htdocs"
also Doc_root anpassen und gleich nochmal compilieren.

Ersetze in der suexec.h

Code: Select all

#define AP_DOC_ROOT DEFAULT_EXP_HTDOCSDIR

durch

Code: Select all

#define AP_DOC_ROOT "/home/www"
.

Gruß, Wolfgang
antondollmaier
Posts: 485
Joined: 2004-03-30 10:06
 

Re: kriege cgi nciht zum laufen

Post by antondollmaier »

sorry, dass ich unwissender hier was einwerfe ...


suexec lässt sich doch wunderbar über das configure-skript einstellen??

zumindest hab ichs so gemacht, und läuft wunderbar ..

Code: Select all

--with-suexec-caller=wwwrun 
--with-suexec-docroot=/srv/www/htdocs 
--with-suexec-gidmin=96 
--with-suexec-uidmin=96 
--with-suexec-logfile=/var/log/httpd/suexec.log 
so is die config bei mir ...

suexec -V:

Code: Select all

 -D AP_DOC_ROOT="/srv/www/htdocs"
 -D AP_GID_MIN=96
 -D AP_HTTPD_USER="wwwrun"
 -D AP_LOG_EXEC="/var/log/httpd/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=96
 -D AP_USERDIR_SUFFIX="public_html"

mfg,
Anton
wgot
Posts: 1675
Joined: 2003-07-06 02:03
 

Re: kriege cgi nciht zum laufen

Post by wgot »

Hallo,

klar, das ist die Alternative, Apache wie von Dir beschrieben konfigurieren und den ganzen Apachen compilieren. Danach kann man ihn komplett installieren oder wieder nur suexec rauspicken.

Gruß, Wolfgang
evilh
Posts: 126
Joined: 2004-03-25 17:45
Contact:
 

Re: kriege cgi nciht zum laufen

Post by evilh »

das ist doch zum heulen...
jetzt diese fehlermeldung in suexec_log:

Code: Select all

target uid/gid (1313/102) mismatch with directory (1313/101) or program (1313/102)
wgot
Posts: 1675
Joined: 2003-07-06 02:03
 

Re: kriege cgi nciht zum laufen

Post by wgot »

Hallo,

cgi-bin hat die falsche Gruppe. Gruppe von test.pl feststellen, cgi-bin auf diese Gruppe setzen.

Gruß, Wolfgang
evilh
Posts: 126
Joined: 2004-03-25 17:45
Contact:
 

Re: kriege cgi nciht zum laufen

Post by evilh »

wenn ich ein chown -R web6:www cgi-bin mache, kommt folgende fehlermeldung in der suexec_log:

Code: Select all

uid: (1313/web6) gid: (102/102) cmd: testl.pl
ein chown -R web6:ftponly cgi-bin

suexec_log:

Code: Select all

target uid/gid (1313/102) mismatch with directory (1313/101) or program (1313/101)
am rande nochmals vielen herzlichen Dank für die Mühe die Du Dir hier machst und mich schritt für schritt weiterbringst !
evilh
Posts: 126
Joined: 2004-03-25 17:45
Contact:
 

Re: kriege cgi nciht zum laufen

Post by evilh »

habs hingekriegt ! vielen vielen dank nochmals !!
Anonymous
 

Benötige hilfe bez. des letzten Schrittes

Post by Anonymous »

Hi Leute,

habe exakt das gleiche Problem wie zum Schluss beschrieben wird.

Fehlermeldung:

[2004-12-08 00:06:52]: uid: (636/web0) gid: (102/102) cmd: test.cgi
[2004-12-08 00:06:52]: target uid/gid (636/102) mismatch with directory (0/0) or program (0/0)

Ich bin jedoch recht neu in der Apache-Administration und brauche wenn möglich wirklich ne Schritt für Schritt Anleitung.

Fehlermeldung der Apache error_log:

[Wed Dec 08 00:06:52 2004] [error] [client 213.23.49.219] Premature end of script headers: test.cgi


Auch wenn es für viele Personen Standard ist, ich weis die suexec Fehlermeldung einfach nicht zu deuten.

Habe einen 1&1 RootServer L, auf Suse 9.1, Apache 2, Kernel Version: k.A.

Ich freue mich über jede Lösung. Danke im Vorraus.


Gruß Micha
Anonymous
 

In aller bescheidenheit: Yeeeeeeeeehaaaaaaaa!

Post by Anonymous »

okay habs auch hinbekommen lol war doch einfacher als ich dachte :roll:
michaelkirst
Posts: 17
Joined: 2004-11-21 19:12
 

hallo

Post by michaelkirst »

ich hab jetzt mal diesen threat hier gelesen....
bin leider nicht ganz schlau geworden...

wenn ich das richtig mitbekommen habe, waren bisher alle fehlermeldungen bei puretec server vorgekommen. seltsam ist auch das datum der meldungen...
kann es sein, das einfach das yast update hier einiges kaputt gemacht hat?
denn wenn ich mir mein log anschaue, fällt mir auf, das es mal mit demselben user etc ging und aufeinmal fehlten die berechtigungen bzw. ist der docroot falsch.


[2004-12-04 18:11:36]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-04 18:13:11]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 01:09:29]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 01:09:31]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 01:09:31]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 01:09:38]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 01:09:57]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 01:10:16]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 01:10:47]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 01:11:33]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 20:01:27]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 20:01:29]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 20:01:29]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 20:01:38]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 20:01:57]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 20:02:34]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-07 20:03:19]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-11 17:53:34]: uid: (636/web0) gid: (636/636) cmd: awstats.pl
[2004-12-11 17:53:34]: command not in docroot (/home/htdocs/web0/html/cgi-bin/awstats.....

wie kann das passieren?
ich selbst habe diesen link inzwischen erstellt. das heisst der tipp im dir /srv/... ist jetzt ein verweis auf /home/ etc. drin. mit "mc" komm ich auch in das richtige verzeichnis.

eine antwort für einen "nicht linux admin" wäre hier sehr hilfreich. insbesondere, weil ich bis morgen nur zugriff habe und dann ein paar wochen unterwegs bin.
danke im voraus
micha
wgot
Posts: 1675
Joined: 2003-07-06 02:03
 

Re: kriege cgi nciht zum laufen

Post by wgot »

Hallo,
michaelkirst wrote:kann es sein, das einfach das yast update hier einiges kaputt gemacht hat?
wenn Yast den Apache aktualisiert gibt's ein neues Suexec.
eine antwort für einen "nicht linux admin" wäre hier sehr hilfreich.
Gerne: Laß es den Admin machen, der muß das können. :oops:

Ausgabe von suexec -V bzw suexec2 -V?
Was paßt nicht zu deinem Server?

Forumsuche quälen - das Thema gibt haufenweise und immer wieder.

Oder nimm einfach das alte suexec aus deinem Backup.

Gruß, Wolfgang
michaelkirst
Posts: 17
Joined: 2004-11-21 19:12
 

hallo wgot

Post by michaelkirst »

danke für deine hilfe.

ich hatte doch schon gesucht ;-)
den tipp mit der -V option hatte ich auch schon probiert. tatsächlich ist der pfad für die htdocs falsch, daraufhin habe ich dann dank eines anderen tips hier einen "link" auf den richtigen pfad gesetzt. leider half das nicht.

ich selbst hatte in dem zeitraum gar kein update mit yast oder so ausgeführt. das phämomen kam "auf einmal", nachdem ich einige tage nicht auf den server kam, da ich wegen job keinen i-net zugang hatte.
auch ging ich bisher auf, das automatisch ein backup gefahren wird, wenn system relevante dateien ausgetauscht werden. zumindest bin ich das so gewöhnt ;-)

trotzdem danke.

ich hatte gerade gelesen, das es bei puretec ein eigenes rpm gibt, wo finde ich das? und mit welchen parametern wird das installiert?

und dann noch die frage, du meinst den admin von 1&1? der soll das wieder fixen? ich meine, irgendjemand dort konfiguriert ja auch die ganzen abweichungen vom "original" :-)

grüße
micha
wgot
Posts: 1675
Joined: 2003-07-06 02:03
 

Re: hallo wgot

Post by wgot »

Hallo,
michaelkirst wrote:tatsächlich ist der pfad für die htdocs falsch
dann war's das Yast-Update (oder Du hast den Apachen selbst compiliert)
ich selbst hatte in dem zeitraum gar kein update mit yast oder so ausgeführt.
Yast macht von alleine keine Updates, und der Provider macht garnichts an Deinem Server.
auch ging ich bisher auf, das automatisch ein backup gefahren wird, wenn system relevante dateien ausgetauscht werden.
Yast macht kein Backup, das ist deine Aufgabe. Am besten regelmäßig ein Komplettbackup.
ich hatte gerade gelesen, das es bei puretec ein eigenes rpm gibt, wo finde ich das? und mit welchen parametern wird das installiert?
update.rootmaster.info - nur vom Server aus erreichbar.
und dann noch die frage, du meinst den admin von 1&1?
Ne, die machen nix. Ich meinte den Admin der deinen Server betreut, Du hattest doch geschrieben daß Du keiner bist.
irgendjemand dort konfiguriert ja auch die ganzen abweichungen vom "original"
Begrüßungeemail des Providers nochmal lesen, insbesondere die beiden Sätze die mit "Sie alleine haben Zugang" und "Sie alleine sind verantwortlich" beginnen.

Compiliere suexec korrekt, sichere das selbst compilierte suexec, mach öfter mal ein Komplettbackup und schau immer nach, was Yast / You aktualisieren will. Kritisch sind der Apache (wegen suexec) und der Kernel (wegen Netzzwerkkartentreiber).

Gruß, Wolfgang
Last edited by wgot on 2004-12-22 14:43, edited 1 time in total.
michaelkirst
Posts: 17
Joined: 2004-11-21 19:12
 

okidoki,

Post by michaelkirst »

werd mich mal in dem link umschauen.

klar hat ich die mail mit den hinweis der verantwortung gelesen, doch wie soll man verantwortung übernehmen können, wenn die software vom original abweicht? insbesondere dann die confixx anpassungen etc.
nach diesem fazit, müßte man den server komplett neu aufsetzen und mit eigenen originalen installieren und seine änderungen dokumentieren...
und diese doku scheint wohl kaum ein provider zu besitzen, denn sonst wären ja hier auch nicht so viele hilfeschreie....

also,
danke nochmal

micha
Post Reply