Jump to content
Froxlor Forum

Archived

This topic is now archived and is closed to further replies.

  • 0
feiaweng

[solved] suexec fcgi a2dismod php5

Question

Hallo,

 

ich habe fcgi und suexec eingerichtet nach folgender Anleitung http://redmine.froxlor.org/projects/froxlor/wiki/FCGID_-_Handbuch

Nur den Punkt

addgroup --gid 9999 froxlorlocal

adduser --no-create-home --uid 9999 --ingroup froxlorlocal --shell /bin/false hab ich nicht gemacht.

Ebenso hab ich folgendes ?bersprungen, da sonst www-data keinen Zugriff mehr hat

chown -R froxlorlocal:froxlorlocal /var/www/froxlor

W mich auch verwundert ist, wenn ich folgendes eingebe, wie in der Anleitunga

2dismod php5

f?hrt der Apache logischerweise keine php-scripte mehr aus.

Hab ich was ?bersehen, oder ist das howto veraltet?

suexec und fcgi muss doch von Hand installiert werden,das kann man doch nicht ?ber das froxlor GUI machen.

Ich komme grad nicht weiter. K?nnt ihrmir helfen?

 

Gru? feiaweng

Share this post


Link to post
Share on other sites

Recommended Posts

Was genau geht denn nicht? Hast du den Froxlor-vHost manuell angelegt oder vor deinen Umbauarbeiten den Cron gestoppt und schon alles im Webinterface vorbereitet damit es vom Cron nach der Umstellung richtig generiert wird? Hast du bei Letzterem dann den Cron mittels --force aufgerufen damit alle Configs neu erstellt werden?

Share this post


Link to post
Share on other sites

Hallo,

 

ja den cron hatte ich gestoppt. Aber nicht mit --force aufgerufen. Sobald ich a2dismod php5 eingegeben habe, kann der Apache keine php-scripte mehr ausf?hren. Ich werde das ganze nochmal mit --force ausf?hren. Evtl. ist das der Knackpunkt. Muss man den User froxlorlocal anlegen?

Share this post


Link to post
Share on other sites

Ja nat?rlich - warum hast du den denn nicht gemacht? Steht doch alles im Handbuch EXAKT und EINDEUTIG beschrieben.

 

Wenn es weiterhin nicht geht musst du selbstverst?ndlich auch den Logeintrag aus der error.log der Domain und der suexec.log posten.

Share this post


Link to post
Share on other sites

Was steht exakt und eindeutig im Handbuch?

Cronjob --force oder den User froxlorlocal anlegen?

Von --force steht da nix, und vom User anlegen, steht da, man kann, kein muss.

Hast du das auch so gemacht? Ist es ein gro?es Sicherheitsloch wenn man den Apachen mit dem aktivierten php5 Modul laufenl?sst?

Share this post


Link to post
Share on other sites

 

Froxlor vHost einrichten

Da jetzt soweit alles eingerichtet ist, wird jetzt suexec f?r Froxlor aktiviert.

 

 

Wo steht da was von kann? Es ist essentieller Bestandteil der Anleitung sonst l?uft Froxlor ja nicht. Und ja du willst mod_php nicht aktiviert lassen.

Share this post


Link to post
Share on other sites

Hallo Sephiroth,

 

ich habe den Satz

 

Ein eigener Benutzer f?r Froxlor ist eine gute L?sung, da normalerweise kein FTP-Zugriff ben?tigt wird.

so verstanden, dass man das so machen kann, aber nicht muss. Ok ich habe mich geirrt.

Auf einem anderen Server habe ich das auch ohne froxlorlocal gemacht, daher dachte ich es geht auch ohne. Vielleicht stimmt die Installation dort auch nicht ganz. Check ich nachher mal.

Ich mache es nochmal exakt nach dem Handbuch.

Und schon habe ich den ersten Fehler:

/usr/lib/apache2/suexec -V liefert mir folgende Ausgabe:

-D SUEXEC_CONFIG_DIR=/etc/apache2/suexec/
 -D AP_GID_MIN=100
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 

Es ist kein AP_DOC_ROOT gesetzt.

Was kann denn der Fehler sein?

 

Danke

feiaweng

Share this post


Link to post
Share on other sites

Einen Ansatz habe ich schon mal.

Wenn ich apache2-suexec-custom deinstalliere, und stattdessen apache2-suexec installiere zeigt er mir auch eine AP_DOC_ROOT an:

<quote> -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"

<quote>

Ich dachte man soll apache2-suexec-custom nehmen. Aber gut, wenn es mit apache2-suexec geht, lasse ich das so.

 

Share this post


Link to post
Share on other sites

so habe jetzt alles nach Vorschrift gemacht.

Allerdings kann ich jetzt froxlor nicht mehr aufrufen. Da bietet er mir das php-script zum Download an. Andere php-seiten funktionieren.

Share this post


Link to post
Share on other sites

sorry, Kommando zur?ck. Es funktionieren keine php-seiten. Sobald ich das modul deaktiviere mit a2dismod php5 geht nichts mehr.

Der Debuglevel von Apache liefert auch nichts brauchnbares. Und ein suexec-Log habe ich nicht. Er legt keins kein. Auch manuelles Anlegen bringt nichts.

Jetzt f?llt mir grad nichts ein, was zur L?sung f?hren k?nnte.

Share this post


Link to post
Share on other sites

Ich habe jetzt alles exakt so gemacht wie es im Handbuch steht. Bekomme aberdas gleiche Ergebnis.

Wenn ich apache2-suexec installiere, und

/usr/lib/apache2/suexec -V

aufrufe bekomme ich eine AP_DOC_ROOT angezeigt.

Sobald ich apache2-suexec-custom installiere, und /usr/lib/apache2/suexec -V aufrufe, gibt es keinen Ap_DOC_ROOT mehr.

Kann sein, dass das normal ist. Wei? ich nicht. Was ist der Sinn davon, erst apache2-suexec zu installieren, und danach mit apache2-suexec-custom zu ersetzen?

Bei Eingabe von php-cgi -v bekomme ich auch (cgi-fcgi) in der Ausgabe angezeigt.

Sobald ich aber a2dismod php5 eingebe, f?hrt apache keine php-scripte mehr aus.

Ich habe keine Ahnung warum es nicht geht. Irgendwas muss falsch sein.

Was entsteht denn f?r ein Sicherheitsloch wenn ich mod_php5 im Apache aktiv lasse?

 

Danke und Gru?

Share this post


Link to post
Share on other sites

Hat doch mit Sicherheitsl?cken nichts zu tun, weisst du ?berhaupt wieso du FCGID nutzen willst? Wenn nicht, solltest du es vllt einfach nicht benutzen....

Share this post


Link to post
Share on other sites

Hallo d00p,

Im Hanfbuch steht:

Nachdem alles funktioniert muss noch sicher gestellt werden, das das Modul mod_php5 von Apache deaktiviert ist. Dies w?re ein Sicherheitsloch in der neuen Installation. Deswegen dachte ich, wenn das Modul aktiv bleibt, hat man ein Sicherheitsloch.

Suexec benutzt man, um den Apacheprozess mit der jeweiligen User-ID laufenzulassen, und damit es f?r den gleichnamigen FTP-User kein Rechteproblem gibt.

Da dies in Froxlor angeboten wird, dachte ich, man sollte das auch nutzen.

Ich bin ?berzeugt, dass euer Handbuch korrekt ist. Warum es bei mir nicht funktioniert, wei? ich ehrlich gesagt nicht.

Share this post


Link to post
Share on other sites

Das deaktivieren von mod_php ist nat?rlich nur sinnvoll, wenn du in den Einstellungen auch angegeben hast, das Froxlor (also nicht nur die kunden-vhosts) auch via fcgid/php-fpm erreichbar sein soll...daf?r auch der lokale user "froxlorlocal"....ansonsten braucht froxlor weiterhin mod_php

Share this post


Link to post
Share on other sites

Danke f?r die Info. Man kann also auch mod_php5 im Apache aktiv lassen, ohne ein Sicherheitsloch zu ?ffnen?

Aber irgendwo bei den Schritten die ich gemacht habe, muss ein Fehler sein, da es nicht funktioniert. Oder ich denke nur es funktioniert nicht. Wass aber nicht erkl?ren wurde, warum php-scripte zum Download angeboten werden, sobald ich mod_php5 im Apache deaktiviere. Das hei?t ja, suexec l?uft nicht. Das erkl?rt vllt auch warum das suexec.log leer ist. Hast du dann eine Idee?

Share this post


Link to post
Share on other sites

Ob die log gef?llt ist oder nicht ist nicht relevant. Du musst deine error_log pr?fen und uns ggfls mal die Fehlermeldungen nennen. Nur "geht nicht" hilft uns nicht dir zu helfen.

Share this post


Link to post
Share on other sites

Hallo,

 

sorry, ich war ein paar Tage beruflich unterwegs, und konnte es noch nicht testen.

Ich werde suexec und mod_fcgid nochmal genau nach Handbuch durchf?hren. Und dan berichten.

Im Grunde geht es um folgendes:

Wenn ich apache2-suexec installiere, und

/usr/lib/apache2/suexec -V

aufrufe bekomme ich eine AP_DOC_ROOT angezeigt. AP_DOC_ROOT=/var/www

Sobald ich apache2-suexec-custom installiere, und /usr/lib/apache2/suexec -V aufrufe, gibt es keinen Ap_DOC_ROOT mehr.

Kann sein, dass das normal ist. Wei? ich nicht. Was ist der Sinn davon, erst apache2-suexec zu installieren, und danach mit apache2-suexec-custom zu ersetzen?

Bei Eingabe von php-cgi -v bekomme ich auch (cgi-fcgi) in der Ausgabe angezeigt.

Sobald ich aber a2dismod php5 eingebe, f?hrt apache keine php-scripte mehr aus.

Ich denke es funktioniert nicht, weil kein AP_DOC_ROOT angezeigt wird. Und mod_fcgid funktioniert meines Erachtens nicht, weil suexec nicht l?uft. Deswegen f?hrt wohl a2dismod php5 zu dem Verhalten des Apaches.

Glaub ich.

Share this post


Link to post
Share on other sites

Entweder nutzt du apache2-suexec ODER apache2-suexec-custom. Froxlor kann wunderbar mit dem "Standard" (apache2-suexec) mit /var/www als docroot umgehen. Und bitte nicht nur sagen "Es geht nicht". Schau dir die entsprechenden Logs an, damit wir genau wissen, was da bei dir nicht geht, sonst k?nnen wir nur sehr schwer helfen

Share this post


Link to post
Share on other sites

Mit suexec-custom kannst du deine Webs halt auch in andere Verzeichnisse wie z.B. /home legen. Ob das AP_DOC_ROOT nun angezeigt wird oder nicht, ist ja im Prinzip wurst, so lang es tut. Wenn du das nicht machen willst, benutzt einfach die Standard Variante.

 

Der Grund warum der Apache keine PHP Scripts mehr ausf?hrt wenn du mod_php deaktivierst ist ja logisch. Apache findet kein PHP. Damit das funktioniert musst du sowohl unter Einstellungen im Froxlor FCGID aktivieren als auch den FCGID vhost f?r Froxlor aktivieren. Danach f?hrst du einfach den Cronjob von Froxlor mit --force auf.

 

Wenn es dann immer noch nicht geht, poste bitte mal einen Beispiel vHost der nicht funktioniert.

Share this post


Link to post
Share on other sites

ich habe jetzt nochmal Punkt f?r Punkt aus dem Handbuch durchgef?hrt. Jetzt hat es geklappt.

Auf einem frisch installierten System hab ich es hinbekommen.

Was ich diesmal anders gemacht habe, war folgendes:

Jedesmal wenn ich laut Handbuch einen Schritt im  Froxlor durchgef?hrt hatte, habe ich den Cronjob ausgef?hrt.

/usr/bin/nice -n 5 /usr/bin/php5 -q /var/www/froxlor/scripts/froxlor_master_cronjob.php --tasks 1> /dev/null

so wie es auch unter /etc/cron.d/froxlor gemacht wird.

Auf dem anderen System, das schon l?uft, habe ich es auch mal versucht, genauso zu machen.

Allerdings ohne Erfolg.

Es l?uft suexec, allersdings als Apachehandler, nicht als mod_fcgid. Hab noch nicht herausgefunden warum.

Alle Schritte wie im Handbuch http://redmine.froxlor.org/projects/froxlor/wiki/FCGID_-_Handbuchbeschrieben, funktionieren, bis zum Punkt

 

Damit das auch funktioniert, ist noch folgendes einzustellen:
In Froxlor einloggen, dann Einstellungen >> FCGID >> Konfiguration und dort die Checkbox ''Verwende FCGID im Froxlor Vhost'' aktivieren.

 

wenn ich dann

chown -R froxlorlocal:froxlorlocal /var/www/froxlor

ausf?hrevkann ich mich nicht mehr im Froxlor einloggen.Dann sagt mir Froxlor ich soll

chown -R www-data:www-data /var/www/froxlor eingeben weil er die lib/userdata.inc.php nicht lesen kann.

Hier ist irgendwie das Problem.

Im Log /var/log/apache/error.log finde ich keine Hinweise, nur andere Fehler:

<b>Deprecated</b>:  Directive 'register_long_arrays' is deprecated in PHP 5.3 and greater in <b>Unknown</b> on line <b>0</b><br />

oder

PHP:  syntax error, unexpected '(' in /var/www/fcgi/user/domain/php.ini on line 29
Zend Optimizer requires Zend Engine API version 220060519.
The Zend Engine API version 220090626 which is installed, is newer.
Contact Zend Technologies at http://www.zend.com/for a later version of Zend Optimizer.

Die Zeile 29 beinhaltet folgendes:

error_reporting(0);

Das ist aber wie ich gelesen habe, kein Fehler, der eine Auswirkung h?tte.

An welche Stelle k?nnte ich suchen, um den Fehler zu finden?

Debugmodus im Apache hab ich mal aktiviert, mal sehen was er ins Log schreibt.

Share this post


Link to post
Share on other sites

"error_reporting(0);" ist keine ini-anweisung. Wenn dann "error_reporting = 0".

Share this post


Link to post
Share on other sites

Hi,

 

ich habe jetzt nochmal alle Schritte durchgef?hrt. Leider ohne Erfolg.

Es kommt nach wie vor das gleiche Fehlerbild.

wenn ich

chown -R froxlorlocal:froxlorlocal /var/www/froxlor

ausf?hre kann ich mich nicht mehr im Froxlor einloggen.Dann sagt mir Froxlor ich soll

chown -R www-data:www-data /var/www/froxlor eingeben weil er die lib/userdata.inc.php nicht lesen kann.

Ich habe wie im Handbuch angegeben folgendes gemacht:

In Froxlor einloggen, dann Einstellungen >> FCGID >> Konfiguration und dort die Checkbox ''Verwende FCGID im Froxlor Vhost'' aktivieren.

Danach den cronjob ausgef?hrt

/usr/bin/nice -n 5 /usr/bin/php5 -q /var/www/froxlor/scripts/froxlor_master_cronjob.php --tasks 1> /dev/null

mal ohne mal mit --force.

danach kommt wieder die Meldung ich soll

chown -R www-data:www-data /var/www/froxlor eingeben weil er die lib/userdata.inc.php nicht lesen kann.

/ver/log/apache2/suexec.log

[2014-12-12 13:47:47]: uid: (10016/user) gid: (10016/user) cmd: php-fcgi-starter

 

suexec funktioniert ja, nur nicht mit mod_fcgid

im apache errorlog finde ich nur Meldungen ?ber Zend, die man ignorieren kann.

 

Zend Optimizer requires Zend Engine API version 220060519.
The Zend Engine API version 220090626 which is installed, is newer.

 

Komischerweise finde ich auch folgende Meldungen:

[Thu Dec 11 00:10:32 2014] [info] mod_fcgid: server localhost:/var/www/fcgi/user/domain/php-fcgi-starter(20125) started
Contact Zend Technologies at http://www.zend.com/for a later version of Zend Optimizer.

 

Also l?uft nun mod_fcgid oder nicht?

Wahrscheinlich ja, aber ?ber Apache.

 

Hat jemand eine Idee?

Share this post


Link to post
Share on other sites

1) Folgendes ist schlichtweg FALSCH

/usr/bin/nice -n 5 /usr/bin/php5 -q /var/www/froxlor/scripts/froxlor_master_cronjob.php --tasks 1> /dev/null
mal ohne mal mit --force.

Ein --force wird ALLEINE benutzt, ohne andere Parameter, auch sollst du nat?rlich um evtl. auftretende Fehler zu sehen, php nicht mit --quiet (-q) laufen lassen. Ebensowenig solltest du die Ausgabe des Befehls nach /dev/null umleiten, wie willst du denn an Infos kommen? Benutze bitte f?r das manuelle forcieren folgenden Befehl und nichts anderes:

/usr/bin/php5 /var/www/froxlor/scripts/froxlor_master_cronjob.php --force

2) wenn Froxlor sagt, dass es nicht unter dem user "froxlorlocal" ausgef?hrt wird, hat es wohl Recht, bitte nopaste doch mal die entsprechende Vhost-Config f?r froxlor (die, die mit 10_ anfangen), danach sehen wir weiter.

Share this post


Link to post
Share on other sites

×
×
  • Create New...