Current time: 11-30-2024, 12:58 PM Hello There, Guest! (LoginRegister)


Post Reply 
Ich dreh noch durch .... Suexec, Perl, PHP, Mail Probleme...
Author Message
just_me Offline
Newbie
*

Posts: 6
Joined: May 2011
Reputation: 0
Post: #1
Ich dreh noch durch .... Suexec, Perl, PHP, Mail Probleme...
Also, fangen wir zunächst mit dem Anfang an: Ich habe einen Root-Server, mit vorinstalliertem Lenny und ISPCP, ebenfalls vorinstalliert.

Und nun das Ende:
Teil 1:
default-error.log
[Fri May 13 19:38:59 2011] [warn] (104)Connection reset by peer: mod_fcgid: read data from fastcgi server error.
[Fri May 13 19:38:59 2011] [error] [client 111.111.111.111] Premature end of script headers: index.php
[Fri May 13 19:42:24 2011] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
in /var/log messages steht was von: May 13 17:38:59 ffm223 kernel: php5-cgi[14900]: segfault at ffffffff ip b7c3e7e5 sp bfa86350 error 6 in libpthread-2.7.so[b7c37000+15000]

Ich kann für eine bestimmte Domain keine PHP Dateien ausführen, wenn ich das Script direkt aufrufe, dann habe ich den weissen Adler auf weissen Grund.
Im suexec.log steht leider nix.

Jedoch meldet die Seite (erstaunlicherweise nur beim Aufruf von http://meineseite.de): Fatal error: ini_set(): Cannot use both zlib.output_compression and output_handler together!! in Unknown on line 0
In der phpini unter fcgi steht:
;zlib.output_compression = off
output_handler = ob_gzhandler
Ja, ich habe das mehrfach gegengeprüft und den Apachen neu gestartet, der Fehler bleibt jedoch.

Bei dem Aufruf von http://www.meineseite.de bekomme ich einen 403er File not found, obwohl die Datei(en)vorhanden sind


Teil 2:
Ich habe für einen Domainalias eine Emailadresse angelegt, und obwohl ich den mehrfach neu angelegt habe, Passwort mehrfach geändert, sowohl im ispcp, und das gleiche Passwort auch im Outlook verwendet habe, kommt er mir im Maillog mit LOGIN FAILED.... Ich gehe davon aus, daß ich auch Emailadressen mit Aliases anlegen kann, oder?

Teil 3:
Ich habe einen Sack voll Perl Scripte, die ich gerne unter ISPCP zum laufen bekommen möchte. Mittlerweile habe ich verstanden, daß ich die auf alle Fälle unter /var/www/irgendwo installieren muss, mit /usr/lib komme ich da nicht weit, soweit sogut, auch die 755er Rechte mit vu2000:vu2000 habe ich kapiert und angepasst. Jedoch scheint das Masterscript die notwendigen Module nicht zu finden, obwohl diese installiert sind, suexec zeigt nix, und im apache.log findet sich darüber auch nix....

Ich bin leicht am Ende und ja:

[x] ich habe gefühlte Ewigkeiten bei Tante Gockel gewühlt
[x] ich habe mich mit der Suchfunktion dieser Seite beschäftigt und die tollsten Posts gefunden, aber nichts wirklich hilfreiches, am ehesten was wie folgt:
OP: Ich habe das Problem gelöst!
AW: Schön für Dich. Und wie?
OP: <keine Antwort>
Schade eigentlich.

Naja, vielleicht hat ja einer eine zündende Idee...

Grüßle

j_m
Ok, Teil 2 kann gerne ignoriert werden. Ich habe den Fehler gefunden (wenn nur alles so einfach wäre...) Und ich verrate ja trotzdem die Lösung boah ey:
Also, mit zunehmenden Alter werden die Augen schlechter und die Brillen stärker.
Nachdem nicht sein kann, was nicht sein darf, habe ich in der Emailadresse immer.doofer@meinedomain.de in Outlook,jedoch imner.doofer@meinedomain.de stehen gehabt (in ispcp) und das Dumme war, daß ich mich bei der Neuanlage des Emailkontos immer darauf verlassen hatte, daß die Autoausfüllfunktion vom Firefox das richtig einträgt, was er vielleicht sogar gemacht hätte, wenn, ja wenn, ich es nicht beim ersten Mal falsch eingetragen hätte.
Tja, vielleicht sollte doch jemand mal nach der Mikrobe der menschlichen Dummheit suchen...
Immerhin ist nun Teil 2 erledigt, beliben noch 1 und 3 ...
j_m
(This post was last modified: 05-14-2011 07:18 AM by just_me.)
05-14-2011 07:08 AM
Find all posts by this user Quote this message in a reply
brusau Offline
Junior Member
*

Posts: 83
Joined: Feb 2010
Reputation: 2
Post: #2
RE: Ich dreh noch durch .... Suexec, Perl, PHP, Mail Probleme...
Teil 1:beim anlegen PHP-Unterstützung aktiviert ?
gehen andere Domains?

Teil 3: cgi sollten afaik /var/www/virtual/***/cgi-bin/ es sei den du hast das geändert.
Rechte sollte das Script die Besitzrechte vom Benutzer haben
Leg doch mal ein einfachstes PerlSkript rein und schau ob das geht?
Auch hier die Frage: CGI-Unterstützung aktiviert ?
05-14-2011 09:45 PM
Find all posts by this user Quote this message in a reply
joximu Offline
helper
*****
Moderators

Posts: 7,024
Joined: Jan 2007
Reputation: 92
Post: #3
RE: Ich dreh noch durch .... Suexec, Perl, PHP, Mail Probleme...
Hallo j_m

zu Teil 1: teste doch mal ob ein einfaches php-Skript funktioniert. zB. dieser Einzeiler in einer test.php:
<?php echo 3*5; ?>
und dann deinedomain.de/test.php aufrufen.

Allenfalls muss ein error-log für php eingerichtet werden (in /var/www/fcgi/<domain>/php5/php.ini - um das Problem in den Griff zu bekommen.
ggf. dort auch mal phpinfo zulassen (ist normal aus), damit du da mal die Einstellungen nachprüfen kannst.


zu Teil 3:
Du willst die Perlskripte in der ispcp-Domain aufrufen? also ich habe zB mailqueue u.a. so eingebunden:
in der 00_master.conf von apache:
Code:
ScriptAlias /mailgraph/ /var/www/ispcp/cgi-bin/mailgraph/
    <Directory /var/www/ispcp/cgi-bin/mailgraph>
        AllowOverride None
        Options ExecCGI
#        DirectoryIndex mailgraph.cgi
        Order allow,deny
        Allow from all
    </Directory>

und dann dort:
ls -l /var/www/ispcp/cgi-bin/mailgraph/
-rwxr-xr-x 1 vu2000 vu2000 6940 4. Aug 2008 mailgraph.cgi

aus dem debian mailgraph kopiert... dann noch ggf. Dateirechte in /var/lib/mailgraph angepasst (Schreibrechte für vu2000)....

Gruss
Joxi
05-14-2011 11:21 PM
Visit this user's website Find all posts by this user Quote this message in a reply
just_me Offline
Newbie
*

Posts: 6
Joined: May 2011
Reputation: 0
Post: #4
RE: Ich dreh noch durch .... Suexec, Perl, PHP, Mail Probleme...
(05-14-2011 09:45 PM)brusau Wrote:  Teil 1:beim anlegen PHP-Unterstützung aktiviert ?
gehen andere Domains?

ja.

(05-14-2011 09:45 PM)brusau Wrote:  Teil 3: cgi sollten afaik /var/www/virtual/***/cgi-bin/ es sei den du hast das geändert.
Rechte sollte das Script die Besitzrechte vom Benutzer haben
Leg doch mal ein einfachstes PerlSkript rein und schau ob das geht?
Auch hier die Frage: CGI-Unterstützung aktiviert ?

Also,

hier die .conf aus dem ispcp Ordner im /etc/apache2

AliasMatch ^/test/[^/]+\.pl /var/www/test/script.pl
Alias /test/ /var/www/test/
AddHandler cgi-script .pl
<Directory /var/www/test>
AllowOverride All
Options ExecCGI Includes FollowSymlinks
Order Allow,Deny
Allow from All
</Directory>

<DirectoryMatch /var/www/test/users>
Order Deny,Allow
Deny from All
</DirectoryMatch>

Sowie ich die conf verstanden habe, ist der Perlhandler aktiv, und Perl läuft prinzipiell.

Das Hauptproblem war, daß diese Applikation mit stapelweisen Symlinks arbeitet; und das Programm script.pl spricht die Module direkt an, ohne die Symlinks zu verwenden. Soweit ich weiß, lassen sich Symlinks nicht verwenden, trotz dem FollowSymlinks, da die bei diesem Server nicht zugelassen sind.

Danke sehr für die Hilfe, ich weiß mittlerweile nicht mehr weiter; das andere Problem ist, daß ich überhaupt keine Ahnung von ispcp habe, aber diese Applikation zum spielen bringen muss (leider müssen zwei Programme auf dem gleichen Server laufen; sonst hätte ich den Kram längst auf eine andere Kiste ausgelagert).

j_m


(05-14-2011 11:21 PM)joximu Wrote:  Hallo j_m

zu Teil 1: teste doch mal ob ein einfaches php-Skript funktioniert. zB. dieser Einzeiler in einer test.php:
<?php echo 3*5; ?>
und dann deinedomain.de/test.php aufrufen.

Allenfalls muss ein error-log für php eingerichtet werden (in /var/www/fcgi/<domain>/php5/php.ini - um das Problem in den Griff zu bekommen.
ggf. dort auch mal phpinfo zulassen (ist normal aus), damit du da mal die Einstellungen nachprüfen kannst.
Hallo Joxi,

Ich bin wieder ein bisschen weitergekommen, für das dort zu installierende Programm existiert nur eine Fedora Installationsanleitung; jedoch habe ich ein Debian, und mir fehlen dabei wohl zwei Pakete, und zwar diese:
php-pecl-apc php-xml; ich habe versucht die entsprechenden Pakete in Debian zu finden, aber da hatte ich keinen Erfolg :-(

(05-14-2011 11:21 PM)joximu Wrote:  zu Teil 3:
Du willst die Perlskripte in der ispcp-Domain aufrufen? also ich habe zB mailqueue u.a. so eingebunden:
in der 00_master.conf von apache:
Code:
ScriptAlias /mailgraph/ /var/www/ispcp/cgi-bin/mailgraph/
    <Directory /var/www/ispcp/cgi-bin/mailgraph>
        AllowOverride None
        Options ExecCGI
#        DirectoryIndex mailgraph.cgi
        Order allow,deny
        Allow from all
    </Directory>

Mein Serverbereitsteller hat mir bei Todesstrafe (bzw. Essensverbot bei Dunkelheit, was das gleiche ist) verboten, etwas an der master conf vom Apachen zu machen...
Zu meinen Apache conf einstellungen im ispcp Ordner siehe mein Post weiter oben.

(05-14-2011 11:21 PM)joximu Wrote:  und dann dort:
ls -l /var/www/ispcp/cgi-bin/mailgraph/
-rwxr-xr-x 1 vu2000 vu2000 6940 4. Aug 2008 mailgraph.cgi

aus dem debian mailgraph kopiert... dann noch ggf. Dateirechte in /var/lib/mailgraph angepasst (Schreibrechte für vu2000)....

Gruss
Joxi

Den Rest habe ich, ehrlich, nicht verstanden. Also sind wir uns über folgendes einig:

1. bei ISPCP Einsatz und Perlscripten muss chown vu2000:vu2000 auf alle Perlscripte ausgeführt werden.
2. Die Rechte der Perlscripte sollten meiner Information nach 755 sein, das ist auch die mailgraph.cgi in Deinem Beispiel. Aber Schreibrechte hatja nur der Owner, und so soll es ja sein, oder?
3. Wenn ich suexec abschalte, dann funktioniert der Dings, der Bums, der wie heisst er noch, ISPCP nicht mehr?

Wenn ich die erste Direktive (AliasMatch) deaktiviere dann habe ich Fehler 500. Mist, oder?

Mein suexec log zeigt dann folgendes an:

Code:
[2011-05-15 19:21:25]: uid: (2000/vu2000) gid: (2000/vu2000) cmd: login.pl
[2011-05-15 19:21:25]: cannot stat program: (login.pl)
Und mein default-error.log:

Code:
[Sun May 15 19:21:02 2011] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
[Sun May 15 19:21:02 2011] [notice] Apache/2.2.9 (Debian) mod_ssl/2.2.9 OpenSSL/0.9.8g mod_perl/2.0.4 Perl/v5.10.0 configured -- resuming normal operations
suexec policy violation: see suexec log for more details
[Sun May 15 19:21:25 2011] [error] [client 87.180.33.140] Premature end of script headers: login.pl

Habe ich das Script zum umgehen der Symlinks aktiv, also die Aliasmatch Direktive im .conf, bekomme ich diese Meldung...

Code:
[Sun May 15 19:29:19 2011] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
[Sun May 15 19:29:19 2011] [notice] Apache/2.2.9 (Debian) mod_ssl/2.2.9 OpenSSL/0.9.8g mod_perl/2.0.4 Perl/v5.10.0 configured -- resuming normal operations

Suexec sagt dann dieses:

Code:
[2011-05-15 19:29:31]: uid: (2000/vu2000) gid: (2000/vu2000) cmd: script.pl
[2011-05-15 19:29:31]: uid: (2000/vu2000) gid: (2000/vu2000) cmd: script.pl
[2011-05-15 19:30:04]: uid: (2000/vu2000) gid: (2000/vu2000) cmd: php5-fcgi-starter

Also ich verstehe das alles irgendwie überhaupt nicht.

Vielen Dank für die Hilfe!
(This post was last modified: 05-16-2011 05:21 PM by just_me.)
05-16-2011 03:08 AM
Find all posts by this user Quote this message in a reply
joximu Offline
helper
*****
Moderators

Posts: 7,024
Joined: Jan 2007
Reputation: 92
Post: #5
RE: Ich dreh noch durch .... Suexec, Perl, PHP, Mail Probleme...
Hi

also, ispcp ist prinzipiell nicht sehr speziell - es hilft bei der Konfiguration für Kundenbereiche... (Web, Maile etc). Aber es benutzt die normalen Möglichkeiten des OS.

Es kommt nun drauf an, ob due das perl skript in der ispcp-domain (admin.servername) laufen lassen möchtest oder in einem anderen virtuellen Hostnamen...
Das bestimmt mal, welcher Systembenutzer diese dateien aufrufen können muss...

Also ist es schlussendlich nicht ein Problem von ispcp, sondern vom Zusammenspiel apache, fcgid/fastcgi, perl, suexec etc etc...

Ich mache auch einiges mit Symlinks, das klappt eigentlich gut (und meine Originaldaten sind dann root:root)...

Zumindest bringen die letzten zwei obigen Log-Auszüge keine Fehler...

suexec dient dazu, dass apache gewisse Dinge (cgi-Sachen) mit den angegebenen Benutzerrechten machen kann - daher muss php dann auch via cgi laufen (fcgid/fastcgi). Auch die anderen CGI-Programme (zB. Perl-Skripte) laufen dann mit den Benutzerrechten des angegebenen Users (vu2000:vu2000 für admin.servername), vu2001:vu2001 für die domains des ersten Benutzers... etc).

Wenn es falsche Besitzer/Rechte sind, dann steht es in der suexec.log - andere Fehler sind woanders zu suchen...

Wenn du die master.conf nicht ändern darfst, dann muss wohl ein eigener virtueller apache-host her...



zu den php-Paketen: php-pecl-apc php-xml
ich weiss grad nicht, was die beinhalten. pecl ist aber etwas, was auf deinem Server bei der Installation kompiliert wird. und php-xml gibt es im Zusammenhang mit pear-Paketen oder dann XML-RPC...

Gruss J
05-16-2011 07:58 PM
Visit this user's website Find all posts by this user Quote this message in a reply
just_me Offline
Newbie
*

Posts: 6
Joined: May 2011
Reputation: 0
Post: #6
RE: Ich dreh noch durch .... Suexec, Perl, PHP, Mail Probleme...
So,
zu 1: Habe nun das ganze scriptverzeichnis von /var/www/scripts nach /var/www/meinedomain/htdocs/scripts verschoben und die Pfade angepasst. Ausserdem habe ich die Alias Matchdirektive rausgenommen und siehe da, ich konnte die Admin-Oberfläche öffnen. (hier handelt es sich auch um ein echtes Perl-Programm). Wenn ich allerdings login.pl aufrufen will, welches ein Symlink ist, dann kommt Fehler 500 und in der suexec.log steht dann:

Code:
[2011-05-16 12:35:25]: cannot stat program: (login.pl)
Das bedeutet anscheinend, daß er keinen Zugriff auf die entsprechende Datei hat, denn die ist ja in Symlink:

Code:
lrwxrwxrwx  1 vu2002 vu2002     8 10. Mai 13:51 login.pl -> admin.pl

Frage: Was kann ich tun? Gibts noch irgendwo eine Direktive, die ich verwenden könnte damit das dann funzt?

Vielen Dank!
Noch eine Anmerkung zu den PHP Paketen: Dann schmeisse ich den alten virtuellen Host weg und mache die Installationvon vorne, vielleicht löst das ja das Problem....

Grüße
j_m
Noch ein Versuch nach weiterem googlen: mit SymlinksIfOwnerMatch funktioniert es ebenfalls nicht.
Frage: Kann ich für einen bestimmten virtuellen Host suexec abschalten?
(This post was last modified: 05-16-2011 09:43 PM by just_me.)
05-16-2011 08:57 PM
Find all posts by this user Quote this message in a reply
ephigenie Offline
Project Leader
*******
Administrators

Posts: 1,578
Joined: Oct 2006
Reputation: 15
Post: #7
RE: Ich dreh noch durch .... Suexec, Perl, PHP, Mail Probleme...
Versteh ich das jetzt richtig :

admin.pl geht ... login.pl als symlink auf admin.pl aber nicht ?
Hast du für das Directory

Code:
Options FollowSymlinks

gesetzt ? Wenn nicht, dann kommt normalerweise diese Fehlermeldung.
05-17-2011 06:07 AM
Visit this user's website Find all posts by this user Quote this message in a reply
just_me Offline
Newbie
*

Posts: 6
Joined: May 2011
Reputation: 0
Post: #8
RE: Ich dreh noch durch .... Suexec, Perl, PHP, Mail Probleme...
(05-17-2011 06:07 AM)ephigenie Wrote:  Versteh ich das jetzt richtig :

admin.pl geht ... login.pl als symlink auf admin.pl aber nicht ?
Hast du für das Directory

Code:
Options FollowSymlinks

gesetzt ? Wenn nicht, dann kommt normalerweise diese Fehlermeldung.


Jetzt guten Abend,

also: als gar nix ging, hatte ich folgende .conf:

Code:
#AliasMatch ^/test/[^/]+\.pl /var/www/test/script.pl
Alias /test/ /var/www/test/
AddHandler cgi-script .pl
<Directory /var/www/test>
AllowOverride All
Options ExecCGI Includes FollowSymlinks
Order Allow,Deny
Allow from All
</Directory>

<DirectoryMatch /var/www/test/users>
Order Deny,Allow
Deny from All
</DirectoryMatch>

Nun habe ich:

Code:
#AliasMatch ^/test/[^/]+\.pl //var/www/virtual/meinedomain.com/htdocs/test/script.pl
Alias /test/ /var/www/virtual/meinedomain.com/htdocs/test/
AddHandler cgi-script .pl
<Directory /var/www/virtual/meinedomain.com/htdocs/test>
AllowOverride All
Options ExecCGI Includes FollowSymlinks
Order Allow,Deny
Allow from All
</Directory>

<DirectoryMatch /var/www/virtual/meinedomain.com/htdocs/test/users>
Order Deny,Allow
Deny from All
</DirectoryMatch>

Und da tut es zwar mit admin.pl im Direktaufruf, aber login.pl als Symlink auf admin.pl tut nicht. Das ist, so glaube ich, das suexec

Habe es auch im Verzeichnis /var/www/virtual/meinedomain.com/cgi-bin probiert.

<seuuffzzzz>

Herzlichen Dank für die Hilfe, aber das wars leider nicht...
05-17-2011 06:27 AM
Find all posts by this user Quote this message in a reply
joximu Offline
helper
*****
Moderators

Posts: 7,024
Joined: Jan 2007
Reputation: 92
Post: #9
RE: Ich dreh noch durch .... Suexec, Perl, PHP, Mail Probleme...
wie sieht der Symlink aus?

ls -la /var/www/virtual/meinedomain.com/htdocs/test/

hm, aber ich habs mit meinem mailgraph mal ausprobiert: ein Symlink m.cgi auf mailgraph - tut nicht...
auch wenn ich dem Symlink denselben Owner setze (chown -h) - und FollowSymlink für das cgi aktiviere - es wird nicht gefunden....
[2011-05-17 01:23:35]: uid: (2000/vu2000) gid: (2000/vu2000) cmd: m.cgi
[2011-05-17 01:23:35]: cannot stat program: (m.cgi)

Hm - scheint mit php anders zu sein als mit anderen cgi...


Vielleicht musst du einen harten Link machen (ln ./mailgraph.cgi ./h.cgi - dann konnte ich h.cgi aufrufen).

Gruss J
05-17-2011 09:33 AM
Visit this user's website Find all posts by this user Quote this message in a reply
just_me Offline
Newbie
*

Posts: 6
Joined: May 2011
Reputation: 0
Post: #10
RE: Ich dreh noch durch .... Suexec, Perl, PHP, Mail Probleme...
Hallo,
das ist die Ausgabe von ls -la var/www/usw

lrwxrwxrwx 1 vu2002 vu2002 8 10. Mai 13:51 login.pl -> admin.pl
(selbes Ergbnis wie ls -al?)

Wie kann ich den Symlink umbennen?
Grüße
j_m
05-17-2011 03:55 PM
Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)