Server Support Forum
Anzeige:

  #1  
Alt 25.02.2009, 01:11
Registered User
 
Registriert seit: 11.2003
Beiträge: 7.293
Suexec nachträglich einbinden?

Hallöchen,

Ich hab ein Problem mit einem Linux Server, der mit Confixx 3.3.4 arbeitet.

Per default war Confixx mit suPHP für Apache2 installiert. Das hat jedoch hinten und vorne bei mir nicht so geklappt wie ich mir das vorgestellt hab. Dann hab ich wieder auf mod_php gewechelt, da ich damit die besseren Erfahrungen gemacht hatte.

Jetzt tut sich allerdings noch ein Problem auf: Der Apache läuft mit dem User "www-data" und wenn jetzt ein Confixxkunde Sachen per HTTP hochläd / erstellt, beispielsweise Fotoupload oder Ähnliches, dann werden diese Dateien natürlich mit dem User / der Gruppe: www-data erstellt. Was zwar funktioniert doch spätestens wenn ein User "seine" Dateien per FTP bearbeiten will kommen schon die Probleme auf.

Um dieses Problem zu umgehen arbeitet Confixx ja eigentlich mit suEXEC. Allerdings, lautet jetzt die Frage: Wie bekomme ich Confixx dazu das auch zu nutzen? Wenn ich mir die Vhost Datei eines beliebigen Confixxusers anschaue fehlen dort die entsprechenden Eintragungen, auch mit der admin.pl von Confixx kann ich nichts derartiges finden. Die Manual sagt auch recht wenig zu diesem Thema. Das Modul suexec selbst ist im Apache enabled und läuft auch.

Hilfe...?
Mit Zitat antworten

  #2  
Alt 25.02.2009, 02:25
Benutzerbild von chris085
Registered User
 
Registriert seit: 12.2005
Ort: Stuttgart
Alter: 26
Beiträge: 794
chris085 eine Nachricht über ICQ schicken

Zwar nicht genau dass was du suchst, aber ein anhaltspunkt.
http://serversupportforum.de/forum/f...ro-domain.html
Mit Zitat antworten
  #3  
Alt 25.02.2009, 16:43
Registered User
 
Registriert seit: 11.2004
Ort: Berlin
Beiträge: 191
net-spacy eine Nachricht über ICQ schicken net-spacy eine Nachricht über MSN schicken net-spacy eine Nachricht über Skype™ schicken

Hallo Rick,

eine nachträgliche Umstellung von mod_php auf suPHP ist eigentlich ohne großen Probleme möglich!

Zwischenfrage: Welche Distri. läuft? Debian? SuSE? Gentoo? etc.?

Wichtig ist, dass man suPHP & suExec als Modul ( Apache ) lädt, und mod_php anschließend in der Confixx-Admin-Datei auf suPHP ändert.

Wichtig ist, dass man nach der Änderung ein "update" durchführt!

Standartpfad:
Zitat:
/root/confixx/admin/updates
In diesem Verzeichnis dann die Datei:
Zitat:
./update_3.x.pl
ausführen! Achtung: hier werden ALLE Einsetllungen überschrieben, wenn hier manuelle Änderungen in den webX.conf´s vorgenommen wurden, sind nach diesem Upate weg.

Gruß

Dennis Kühn
__________________
Net-Spacy Computer- und Internetdienstleistungen, Inh. Dennis Kühn
Tel.: 030 / 895 621 - 16 | Fax: 030 / 895 621 - 17 | Vanity: 0700 - NETSPACY
Webspace - Domains - Root-/Managed & V-Server - SSL - DNS - Administration
Mit Zitat antworten
  #4  
Alt 25.02.2009, 18:39
Registered User
 
Registriert seit: 11.2003
Beiträge: 7.293

Hallo,

Sorry hab ich vergessen: Ubuntu ist die Distribution.

Ich bin mir mitlerweile nicht mal mehr sicher ob ich auch wirklich "suexec" meine. Also mein Problem ist, dass alle Dateien die zB per PHP Script erstellt werden den Nutzer "www-data" haben, was sie natürlich nicht haben sollten.

Ist das ein suexec Problem? Oder sollte ich eher da an setzen, dass ich webX in die Gruppe www-data verschiebe?

Und: Ich möchte von suPHP nach mod_php, nicht anders rum

Und: Ja ich weiss: DIE SICHERHEIT! Aber für die Sicherheit des Servers ist bereits anderweitig sehr gut gesorgt und ich suPHP bringt auf diesem, doch relativ schwachen Server, nicht die gewünschte Performance, deswegen möchte ich auf mod_php zurück.
Mit Zitat antworten
  #5  
Alt 25.02.2009, 19:04
Registered User
 
Registriert seit: 11.2006
Beiträge: 3.467

mod_php läuft immer im Benutzerkontext des Apache httpd, in deinem Fall also www-data. Das lässt sich auch durch SuExec nicht ändern.

Wenn dir SuPHP zu langsam ist und du trotzdem die PHP-Skripte in einem anderen Benutzerkontext ausführen willst, sieh dir die gängigen FastCGI+SuExec Lösungen an. Siehe auch http://wiki.rootforum.de/scripting/p...php_vs_php-cgi
Mit Zitat antworten
  #6  
Alt 25.02.2009, 19:12
Registered User
 
Registriert seit: 11.2004
Ort: Berlin
Beiträge: 191
net-spacy eine Nachricht über ICQ schicken net-spacy eine Nachricht über MSN schicken net-spacy eine Nachricht über Skype™ schicken

Nabend Rick,

wenn es dir um die Performance geht, dann solltest du dich, wie mein VorRedner schon geschrieben hat, für FastCGI/FCGI & suexec entscheiden.
__________________
Net-Spacy Computer- und Internetdienstleistungen, Inh. Dennis Kühn
Tel.: 030 / 895 621 - 16 | Fax: 030 / 895 621 - 17 | Vanity: 0700 - NETSPACY
Webspace - Domains - Root-/Managed & V-Server - SSL - DNS - Administration
Mit Zitat antworten
  #7  
Alt 25.02.2009, 21:18
dev dev ist offline
Registered User
 
Registriert seit: 09.2008
Beiträge: 775

Ich habe php so seit Oktober auf mehreren Maschinen laufen und finde das Konzept (trotz erhöhtem Installationsaufaufwand) super. Kann mich also beiden Vorpostern anschliessen

Eine gute Anleitung gibt es hier: http://www.aaron-spettl.de/ubuntu/de...cgi-suexec.php
Mit Zitat antworten
  #8  
Alt 25.02.2009, 21:44
Registered User
 
Registriert seit: 11.2003
Beiträge: 7.293

FastCGI sieht ja genau nachdem aus, was ich haben möchte.

Wenn ich das richtig sehe, werden die jeweiligen Benutzer / Gruppen über "SuexecUserGroup xxx xxx" definiert, richtig?

Sprich: Funktioniert es problemlos mit Confixx zusammen?
Mit Zitat antworten
  #9  
Alt 25.02.2009, 22:00
Registered User
 
Registriert seit: 11.2004
Ort: Berlin
Beiträge: 191
net-spacy eine Nachricht über ICQ schicken net-spacy eine Nachricht über MSN schicken net-spacy eine Nachricht über Skype™ schicken

Bei uns läuft das genau problemlos, genau wie bei unseren Kunden.

Sollte nach nen bisschen längeren konfigurieren ( Installation ) problemlos laufen.
__________________
Net-Spacy Computer- und Internetdienstleistungen, Inh. Dennis Kühn
Tel.: 030 / 895 621 - 16 | Fax: 030 / 895 621 - 17 | Vanity: 0700 - NETSPACY
Webspace - Domains - Root-/Managed & V-Server - SSL - DNS - Administration
Mit Zitat antworten
  #10  
Alt 25.02.2009, 22:58
Benutzerbild von chris085
Registered User
 
Registriert seit: 12.2005
Ort: Stuttgart
Alter: 26
Beiträge: 794
chris085 eine Nachricht über ICQ schicken

Jop und sogar Plesk 9 hat diese PHP Konfiguration neuerdings integriert.
Ich wüsste nicht welcher große Provider noch mit mod_php arbeitet.
Mit Zitat antworten
  #11  
Alt 26.02.2009, 11:26
Registered User
 
Registriert seit: 11.2003
Beiträge: 7.293

Ich werde es heute Abend mal testen und dann berichten
Mit Zitat antworten
  #12  
Alt 26.02.2009, 16:15
Registered User
 
Registriert seit: 11.2003
Beiträge: 7.293

Also ich hab mich jetzt mal daran versucht, und mir diese Anleitung zu Herzen genommen:
http://www.aaron-spettl.de/ubuntu/de...cgi-suexec.php

Nachdem ich das alles schön installiert habe, bekomme ich zunächst die Meldung:
Code:
Invalid command 'php_admin_value', perhaps misspelled or defined by a module not included in the server configuration
Was mir irgendwie sagt: PHP funktioniert nicht.

Dann habe ich noch eine Frage zu dem Tutorial: Da wird ja für jedes Projekt ein PHP-Starter Angelegt und dies auch in den jeweiligen VirtualHost gelegt: Wie mache ich das für Confixx? Muss ich mir da ein Bashscript schreiben, welches das automatisch macht?
Mit Zitat antworten
  #13  
Alt 26.02.2009, 18:12
Registered User
 
Registriert seit: 11.2006
Beiträge: 3.467

Zitat:
Zitat von djrick Beitrag anzeigen
Was mir irgendwie sagt: PHP funktioniert nicht.
Nein, das sagt dir nur, dass mod_php nicht geladen ist...
Mit Zitat antworten
  #14  
Alt 26.02.2009, 18:17
Registered User
 
Registriert seit: 11.2003
Beiträge: 7.293

Zitat:
Zitat von Roger Wilco Beitrag anzeigen
Nein, das sagt dir nur, dass mod_php nicht geladen ist...
Ja, das solls ja auch nicht....oder doch? Was muss ich in Confixx einstellen? Mod_PHP oder suPHP? Weil Fcgi gibts ja nicht
Mit Zitat antworten
  #15  
Alt 27.02.2009, 02:47
Registered User
 
Registriert seit: 11.2003
Beiträge: 7.293

Zitat:
Zitat von djrick Beitrag anzeigen
Ich werde es heute Abend mal testen und dann berichten
So hier mein Testbericht:

Nachdem es, wie oben beschrieben, zunächst nicht geklappt hat, hier meine entgültige Lösung zum Nachmachen

Grundlagen auf die ich mich stütze:
1.) Confixx mit fcgid • puzich.com :: I took the blue pill
2.) http://www.puzich.com/wp-content/sun...er_create.phps
3.) http://www.aaron-spettl.de/ubuntu/de...cgi-suexec.php

Step 1:
PHP FCGI und Konsorten installieren:
Code:
apt-get install php5-cgi apache2-mpm-worker libapache2-mod-fcgid
Danach will Debian / Ubuntu wahrscheinlich mod_php und den Prefork deinstallieren...das geht soweit in Ordnung

Step 2:
In den Confixx Scripts alles auf suPHP umstellen:
Code:
/pfad/zu/confixx/admin/admin.pl
Dort unter Punkt 2, Webserver: mod_php ausschalten, suPHP anschalten.
Den Adminbereich verlassen.
Danach:
Code:
/pfad/zu/confixx/admin/updates/update_3x.pl
(das dauert was)

Step 3:
Apache2 anpassen:
Code:
vim /etc/apache2/apache2.conf
Am Ende einfügen:
Code:
Include /etc/apache2/confixx_special_vhost.conf

AddHandler fcgid-script .php
AddHandler fcgid-script .php4
AddHandler fcgid-script .php5
AddHandler fcgid-script .phtml
Die o.g. *.conf Datei erstellen:
Code:
touch /etc/apache2/confixx_special_vhost.conf
Step 4:
PHP Fcgi Wrapper Scripte anpassen.
Wir nehman dazu das Script von dieser Seite:
http://www.puzich.com/wp-content/sun...er_create.phps

Wir kopieren also den Inhalt der Webseite in die Datei:
Code:
/usr/local/bin/confixx_fcgi.php
Für den Gebrauch mit Confixx hab ich die Datei etwas abgeändert:
Code:
$conf_path      = '/var/www/';
Da bei mir alle Kunden unterhalb von /var/www liegen. Also /var/www/web1 etc.
Aus:
Code:
// user-dir exists?
 if ( !file_exists($user_path) ) {
Wird:
Code:
// user-dir exists?
 if ( file_exists($user_path) ) {
Weil die Schleife sonst dort abricht, aber die Verzeichnisse bestehen ja schon.

Die darauffolgenden Zeilen kommentieren wir aus:
Code:
   // mkdir($user_path);
   // chown($user_path, $data['kunde']);
   // chgrp($user_path, $data['kunde']);
   // chmod($user_path, 0755);
Dann, aus:
Code:
 fwrite($fh, '<Directory "/home/httpd/htdocs/' . $data['kunde'] . '/html">'."\n");
Wird:
Code:
fwrite($fh, '<Directory "/var/www/' . $data['kunde'] . '/html">'."\n");
Und aus:
Code:
fwrite($fh, '  FCGIWrapper /home/httpd/php-fcgi-scripts/' . $data['kunde'] . '/php5-fcgi-starter .php'."\n");
wird:
Code:
fwrite($fh, '  FCGIWrapper /var/www/' . $data['kunde'] . '/php5-fcgi-starter .php'."\n");
Damit sind wir schon mit dem Bearbeiten des Scripts fertig. Somit liegen die Startscripte für den Wrapper jetzt in dieser Form vor:
Code:
/var/www/web1/php5-fcgi-starter
Jetzt könnte man einweden: "Ja toll und was ist wenn ein Confixx Kunde per FTP die Datei löscht?" Antwort: Kann nichts passieren, da das Erstell-Scripte diese Dateien mit dem "immutable bit" sichert. Sprich: Die Datei gehört zwar dem jeweiligen User, aber sie und selbst der root können die Datei nicht löschen. (Lediglich der Root kann dieses Bit durch chattr -i ... wieder entziehen und dann löschen).

Soweit so gut...fertig für einen ersten Testlauf?
Code:
php /usr/local/bin/confixx_fcgi.php
/etc/init.d/apache2 force-reload
(oder halt neustarten, wenn er zuvor beendet wurde).

Jetzt sollte alles wieder laufen. Wenn dem so ist, müssen wir jetzt nur noch sicherstellen, dass bei der Erstellung eines neuen Users, auch die Wrapperscripte angelegt werden etc.

Das macht man am besten, indem man das Script per Cronjob aufruft. Sollte jemand hier an diesem Punkt einen besseren Vorschlag haben: Bitte immer her damit. Eigentlich braucht das Script ja lediglich bei dem Ereignis "on new confixx user" laufen

Anmerkung: Wir müssen das Script umändern, so dass die Wrapperscripte unterhalb des jeweiligen Confixxusers liegen, weil es sonst zu dem suEXEC Fehler kommt: "cannot get docroot information (/var/www)", da /var/www und andere Sachen nicht dem jeweiligen User gehören die gerade das Script ausführen wollen sondern root oder sonst wem.

Anmerkung 2: Sollte ich das vllt. in der Howto Sektion posten? Weil im Web gibts keine vergleichbare Anleitung zum Thema fcgi und Confixx. Allerdings würde ich das ganze dann vorher noch mit den Experten hier im Board abgleichen ob ich irgendwo in meinem Howto vllt. einen Fehler gemacht hab oder ob man noch was besser machen könnte.

Geändert von djrick (27.02.2009 um 02:53 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Apache2 + php5: fastCGI _ohne_ suexec? dev Webserver 17 30.01.2011 11:55
[HowTo] PHP5 installieren server4downs FAQs & Anleitungen 218 19.01.2010 19:13
[HowTo] PHP4/PHP5 als CGI - gepatcht (deutsches HowTo) server4downs FAQs & Anleitungen 188 24.11.2008 15:34
Mini HowTo: suexec neukompilieren server4downs FAQs & Anleitungen 12 26.11.2007 07:36
[HowTo] PHP5 als CGI in den Apache einbinden + SUEXEC fixxen Freel@ncer14 FAQs & Anleitungen 0 19.08.2006 21:24





Powered by vBulletin® Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Content Relevant URLs by vBSEO ©2011, Crawlability, Inc.