Apache, PHP, etc. selbst kompilieren

  • Thread starter Thread starter Tobster
  • Start date Start date
T

Tobster

Guest
Ich frage mich was habe ich davon außer Arbeit die Programm selbstzukompilieren. Was empfehlt ihr mir?

Es geht schon um einen größeren Server mit einigen tausend Anfragen am Tag, der auch schon mal Ziel von Angriffen wird.
Würde mir auch schon mal viel helfen, wenn mir jemand die Vorteile und Nachteile von PHP als CGI/FastCGI aufzählen würde. Vielleicht auch noch die Mittel nennen die ich beim selbstkompilieren habe um mich zu schützen.

Was mich daran reizt ist die Möglichkeit nur Teile einzubauen die der Server auch braucht und so ein schlankere System zu bekommen. Aber ist es das Wert? Ich bräuchte da wirklich Entscheidungshilfe.
Mit einbeziehen möchte ich auch den Aufwand für das einspielen von Updates.
 
Was ein Gentoo-User dazu sagen würde, wüsste ich glaub ich... :)

Darf ich fragen welche Distribution du nutzt?
 
Am liebsten Debian. Ich lese halt viel das das gemacht wird und es da viele komplizierte HowTo's gibt aber den Sinn dahinter bzw. was daran so toll ist habe ich bis jetzt noch nicht völlig erfasst.
 
Debian hat einen Nachteil:
Die Packete sind nicht immer die aktuellsten. Deswegen greifen viele Sysadmins zu der Möglichkeit ihre Packete selbst neu zu kompilieren, weil sie auf Grund von Sicherheitsbedenken nicht solange warten wollen, bis eine neue zB PHP Version in die sources.list aufgenommen wird, sondern machen das lieber gleich direkt selbst.

Es gibt, meines Erachtens (man möge mich korregieren wenn ich mich irre), zwei Gründe die dafür sprechen:
1.) Man kannst selbst schnell bei Securityfixes reagieren und hat immer die neuste Version auf dem Server laufen
2.) Durch das Kompilieren auf dem eigenen Rechner, wird die Software speziell an deinen Rechner angepasst. Das ist auch der Grund warum Gentooleute, Gentoo eben so lieben. Es kostet viel Zeit und Rechenleistung das ganze zu kompilieren, aber es ist dann 100%ig auf dein System zugeschnitten => Performanter...wie groß der Unterschied zu fertigen Packeten ist, kann ich dir leider nicht sagen
 
Selbst kompilieren kann Vorteile haben, wenn man

- eigene Patches einspielen will
- spezielle Funktionen aktivieren oder deaktvieren will
- die Software auf einer seltenen Architektur einsetzen will
(- performancekritische Software mit Optimierungen für den eigenen Prozessor haben will)

Im Normalfall braucht man das nicht. Und wenn man es doch braucht, rate ich zu einer Distribution wie Gentoo. Da wird die Software gemäss den eigenen Optionen kompiliert, ohne dass man jeden configure-Parameter nachschauen und sich selbst über Updates informieren muss. Die Updates sind nämlich der heikelste Punkt der Sache. Wenn ich Apache als Paket auf einem Debian-System installiert habe, führe ich nach Bekanntwerden einer Sicherheitslücke "apt-get update && apt-get upgrade" aus und habe die Lücke geschlossen.

Wenn ich den Apache aber selbst kompiliert habe, muss ich mir die aktuellen Sourcen ziehen, mich an die configure-Optionen erinnern und die Software neu kompilieren. Aufwendige Arbeiten verschiebt man gerne mal auf später...

Zur Frage "PHP als CGI": PHP über mod_php auszuführen ist die schnellste Variante. Die Variante über CGI hat den Vorteil, dass PHP unter einem anderen User als Apache laufen kann, beispielsweise unter dem User, dem das entsprechende Verzeichnis gehört. Das geht mit mod_php nur über den Patch metuxmpm, der aber noch nicht fertig ist.
 
Debian hat einen Nachteil:
Die Packete sind nicht immer die aktuellsten.

Und das ist auch gut so. Innerhalb eines Release gibt es nur Sicherheitsupdates. Das kann nervig sein, wenn man beispielsweise PHP5 oder Apache 2.2 will. Aber der grosse Vorteil daran ist, dass sich die Funktionen nicht ändern. Man kann ohne Probleme alle verfügbaren Updates einspielen, ohne befürchten zu müssen, dass danach etwas nicht läuft.

Es gibt, meines Erachtens (man möge mich korregieren wenn ich mich irre), zwei Gründe die dafür sprechen:
1.) Man kannst selbst schnell bei Securityfixes reagieren und hat immer die neuste Version auf dem Server laufen

Bei Securityfixes reagiert mir Debian schnell genug. Bezüglich der aktuellen Versionen hast Du Recht. Aber die Frage ist, ob man immer die aktuellste Version einer Software haben will. Mir beispielsweise reicht Apache 2.0 völlig. Auf dem Desktop sieht es anders aus, da habe ich lange Gentoo eingesetzt, weil man neue Versionen schon am ersten Tag installieren konnte.

2.) Durch das Kompilieren auf dem eigenen Rechner, wird die Software speziell an deinen Rechner angepasst. Das ist auch der Grund warum Gentooleute, Gentoo eben so lieben. Es kostet viel Zeit und Rechenleistung das ganze zu kompilieren, aber es ist dann 100%ig auf dein System zugeschnitten => Performanter...wie groß der Unterschied zu fertigen Packeten ist, kann ich dir leider nicht sagen

Der Performancevorteil bewegt sich im einstelligen Prozentbereich. Gentoo hat aber noch andere Vorteile! Beispielsweise kann man durch deaktivieren aller nicht benötigten Funktionen ein sehr schlankes System bauen, das auf eine CF-Karte passt.
 
Hallo zusammen,

nach dieser Anleitung

LAMP Tutorial | www.baach.de habe ich vor einiger Zeit mal einen LAMP mit Unterstützung der IBM DB2 zusammengebastelt (ging eigentlich nur um PHP, aber war eine interessante Erfahrung, alles selbst zu stricken).

Gruß,
Bastelator
 
Zur Frage "PHP als CGI": PHP über mod_php auszuführen ist die schnellste Variante. Die Variante über CGI hat den Vorteil, dass PHP unter einem anderen User als Apache laufen kann, beispielsweise unter dem User, dem das entsprechende Verzeichnis gehört. Das geht mit mod_php nur über den Patch metuxmpm, der aber noch nicht fertig ist.

Und was ist "state of the art"?

Ich bin mit meiner Entscheidung was ich machen soll nur noch verwirrter.
  • Was ist denn der Vorteil von suexec, außer das es nicht mehr dazu kommt das eine Seite wegen mangelnder Rechte nicht ausgeführt werden kann?
  • Welche Möglichkeit bietet die größtmögliche Sicherheit?
  • Ist der Unterschied signifikant zwischen nicht eingeschalteten Apachemodulen und nicht einkompilierten?
  • Wie steht es mit modsecure?
  • Was empfiehlt das Apache-Projekt und was das PHP-Projekt?
  • Was ist von dem HowTo auf debianHowTo.de bezüglich PHP5 mit FastCGI zu kompilieren zu halten?
  • Wie macht es zum Beispiel ein größeres Projekt wie das Serversupportforum?
 
Und was ist "state of the art"?

Das kann ich Dir leider auch nicht sagen.

Was ist denn der Vorteil von suexec, außer das es nicht mehr dazu kommt das eine Seite wegen mangelnder Rechte nicht ausgeführt werden kann?

Kunde A kann mit seinen Scripts nicht auf das Verzeichnis von Kunde B zugreifen. Das geht mit mod_php und der Option open_basedir auch, aber die Implementierung hat hin und wieder Lücken. Den Zugriff direkt über die Filesystem-Rechte zu regeln ist sicherer.

Ist der Unterschied signifikant zwischen nicht eingeschalteten Apachemodulen und nicht einkompilierten?

IMHO werden nicht mehr so viele Module einkompiliert, sondern sie werden zur Laufzeit geladen und sind somit über die Konfigurationsdatei deaktivierbar.

Wie steht es mit modsecure?

Tolle Sache. Ersetzt nicht das Patchen der installierten Scripts, aber kann die Zeit zwischen dem Entdecken einer Lücke und dem Erscheinen des Patches überbrücken.

Wie macht es zum Beispiel ein größeres Projekt wie das Serversupportforum?

Ein Admin wird Dir die Frage sicher beantworten. Ich kann nur sagen, wie es die meisten Hoster machen: per mod_php. Weil es schneller ist und weniger RAM braucht als per CGI.
 
Sagen wir ich würde Debian 3.2/4.0 Etch oder wie auch immer es heißt einsetzen und die Pakete daraus benutzen. Kann ich dann modsecure einsetzen? Gibt es das als Paket oder installiere ich apache-dev und kompiliere mir nur das modsecure selbst?
Ich versuche irgendwie kosten nutzen und vorallem Sicherheit abzuwägen. Und mir die Serverdienste komplett selbst zu kompilieren drauhe ich mir schon zu.

Wie steht es mir SELinux und dem selbstkompiliertem apache?
 
Last edited by a moderator:
Back
Top