Page 1 of 2
kriege cgi nciht zum laufen
Posted: 2004-07-13 10:37
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" !?
Re: kriege cgi nciht zum laufen
Posted: 2004-07-13 11:21
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
Re: kriege cgi nciht zum laufen
Posted: 2004-07-13 16:11
by evilh
also apache läuft unter
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 ?
Re: kriege cgi nciht zum laufen
Posted: 2004-07-13 16:49
by crasline
#!/perl/bin/perl
ich denke mal nicht das da perl installiert ist ... standard ist /usr/bin/perl
Re: kriege cgi nciht zum laufen
Posted: 2004-07-13 17:42
by evilh
ups, ja schuldigun, is auch richtig im script. habs falsch abgetippt...
script stimmt jedenfalls
Re: kriege cgi nciht zum laufen
Posted: 2004-07-13 19:38
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
Re: kriege cgi nciht zum laufen
Posted: 2004-07-13 20:13
by evilh
kannste mir bitte sagen welche config strings ich nehmen muss um den user von suexec zu ändern ? hab dazu nix gefunden
danke !
Re: kriege cgi nciht zum laufen
Posted: 2004-07-13 20:40
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
Re: kriege cgi nciht zum laufen
Posted: 2004-07-13 23:06
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
Re: kriege cgi nciht zum laufen
Posted: 2004-07-13 23:13
by captaincrunch
Brille aufsetzen oder mindestens zurechtrücken, genau lesen, dran halten und glücklich werden.
Re: kriege cgi nciht zum laufen
Posted: 2004-07-13 23:29
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 ?
Re: kriege cgi nciht zum laufen
Posted: 2004-07-14 00:21
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
.
Gruß, Wolfgang
Re: kriege cgi nciht zum laufen
Posted: 2004-07-14 01:41
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
Re: kriege cgi nciht zum laufen
Posted: 2004-07-14 09:10
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
Re: kriege cgi nciht zum laufen
Posted: 2004-07-14 11:43
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)
Re: kriege cgi nciht zum laufen
Posted: 2004-07-14 14:25
by wgot
Hallo,
cgi-bin hat die falsche Gruppe. Gruppe von test.pl feststellen, cgi-bin auf diese Gruppe setzen.
Gruß, Wolfgang
Re: kriege cgi nciht zum laufen
Posted: 2004-07-14 16:11
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 !
Re: kriege cgi nciht zum laufen
Posted: 2004-07-14 16:39
by evilh
habs hingekriegt ! vielen vielen dank nochmals !!
Benötige hilfe bez. des letzten Schrittes
Posted: 2004-12-08 00:50
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
In aller bescheidenheit: Yeeeeeeeeehaaaaaaaa!
Posted: 2004-12-08 01:14
by Anonymous
okay habs auch hinbekommen lol war doch einfacher als ich dachte :roll:
hallo
Posted: 2004-12-21 05:46
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
Re: kriege cgi nciht zum laufen
Posted: 2004-12-21 15:48
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
hallo wgot
Posted: 2004-12-22 12:33
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
Re: hallo wgot
Posted: 2004-12-22 14:20
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
okidoki,
Posted: 2004-12-22 14:29
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