# Tipps zu Apache, Postgre, Python



## ZodiacXP (19. September 2009)

So 0815-Fertigprodukte wie XAMPP etc. gehen mir langsam auf den Nerv, da sie nicht immer ganz aktuell sind und auch nicht mehr das bieten was ich erwarte (Python, Postgre, usw.). Daher habe ich Apache selbst aufgesetzt mit allen Modulen die ich brauche.

Gibt es Dinge die ihr mir empfehlen könnt für die Konfiguration oder gar weitere Module, so dass es sicher und schnell arbeitet?

Es läuft: Apache 2.2.13, Python (2.5 weil das Modul es so will), Postgre 8.2, PHP 5.3.

Bisher habe ich dies gefunden:
http://httpd.apache.org/docs/1.3/misc/security_tips.html
http://www.petefreitag.com/item/505.cfm


----------



## Enumerator (19. September 2009)

'n Abend!



ZodiacXP hat gesagt.:


> Gibt es Dinge die ihr mir empfehlen könnt für die Konfiguration oder gar weitere Module, so dass es sicher und schnell arbeitet?


 Was hast Du denn vor? 
Oft bedeutet "weitere Module" eher das Gegenteil von schneller und/oder sicherer...





ZodiacXP hat gesagt.:


> Es läuft: Apache 2.2.13, Python (*2.5 weil das Modul es so will*), Postgre 8.2, PHP 5.3.


 Bin zwar nicht gerade Fachmann für Python, aber ist es vielleicht möglich dass Du die Versionsnummern von mod_python und Python "itself" in einen Topf wirfst?

Gruß
Enum


----------



## ZodiacXP (19. September 2009)

Enumerator hat gesagt.:


> Was hast Du denn vor?
> Oft bedeutet "weitere Module" eher das Gegenteil von schneller und/oder sicherer...


 Einen Webserver für etwas größere Anwendungen. Hab die Zahl der Module schon reduziert. Aber caching module kenn ich noch keine und Tricks für Sicherhet / Performance fehlen noch 



Enumerator hat gesagt.:


> Bin zwar nicht gerade Fachmann für Python, aber ist es vielleicht möglich dass Du die Versionsnummern von mod_python und Python "itself" in einen Topf wirfst?



Ne. Das Problem ist, dass das Modul des Apache nur mit dieser Version arbeiten kann und mit höheren (über 2.5.x) nicht klar kommt. Traurig aber wahr.


----------



## Enumerator (20. September 2009)

Hi!



ZodiacXP hat gesagt.:


> Einen Webserver für etwas größere Anwendungen. Hab die Zahl der Module schon reduziert. Aber caching module kenn ich noch keine und Tricks für Sicherhet / Performance fehlen noch


 Und wieder stellt sich die Frage, was genau Du eigentlich vorhast. Ansonsten kann man die Frage nur viel zu allgemein beantworten.

Dennoch, zum Caching lässt sich was sagen - zumal du PHP verwendest: *Vergiss mod_php, go XCache!*
Das ist ein sog. Opcode-Cache der u.a. deinen Code vor der Ausführung Optimiert und anschließend das kompilierte Resultat im Speicher behält - solange bis Du deinen Code änderst. Das Ergebnis ist ein enormer Gewinn an Performance. Außerdem kann XCache fast alles mit einem *$* davor zwischenspeichern...

Außerdem wäre da noch memcache(d) zu erwähnen, schert sich zwar nicht um deinen Code, kann dafür aber z.B. auf einem anderen Rechner als der Server laufen. Oder auf 20 anderen Rechnern verteilt. Außerdem kann nicht nur PHP auf memcache zugreifen - es gibt Client-Implementierungen in vielen Sprachen - auch in Python. So kannst Du z.B. komplexe SQL-Abfragen bzw. deren Ergebnisse in memcached ablegen und sowohl mit PHP als auch mit Python darauf zugreifen...

Um PostgreSQL intensiver zu nutzen, solltest Du unbedingt ein bisschen C lernen... Denn man kann ihm ohne Einkompilieren neue Datentypen beibringen, neue Operatoren, Funktionen usw... 

Soo, dann hast Du ja erstmal zu tun... 
Viel Spaß!

Gruß
Enum

[edit]: Um der Frage vorzubeugen:
Ja, XCace und memcached kann man ohne Probleme gemeinsam einsetzen...


----------



## ZodiacXP (23. September 2009)

Ich weis nich, aber es scheint so als hast du genau die Sachen die ich immer gesucht habe. Freue mich bis heute noch über dein Tip zu PostgreSQL. Das ist wirklich viel toller als mySQL!

Danke also nun für diese Infos zu PHP. Die ganzen Sachen kamen direkt auf die "MustHave-Liste" für meine künftigen Server  C ist kein Ding, nur noch weiteres einarbeiten. Außer das Programmieren neuer Module, so dass das URL-Rewriting schneller hinhaut 

Zu Python habe ich herausgefunden, das mod_python nicht so schnell arbeitet wie mod_wsgi. Deswegen stelle ich im Moment alles darauf um.


----------



## Enumerator (23. September 2009)

Hi!



ZodiacXP hat gesagt.:


> Freue mich bis heute noch über dein Tip zu PostgreSQL. Das ist wirklich viel toller als mySQL!


Ich bin mir selbst nicht sicher, warum mySQL so viel mehr Resonanz zu erzeugen scheint. Ich vermute es liegt zu 50% einfach am Namen. Die andere Hälfte teilen sich der einfachere Einstieg, die Tatsache das sich PostgreSQL Datenbanken bis vor einigen Versionen nur mit Kommerziellen Erweiterungen zuverlässig auf mehreren Servern replizieren ließen und... naja, ich weiß es nicht. Spätestens wenn es an komplexere Applikationen geht stößt man mit MySQL schnell an Grenzen, die sich nur mit extremer Trickserei oder Auslagerung in den Quellcode der Applikation lösen lassen.*
Hinzu kommt sicherlich, dass irgendwann einmal ein paar WebSpace-Anbieter angefangen haben, Pakete mit Skriptsprache und DB zu schnüren. Das die Wahl dabei auf PHP und MySQL gefallen ist kann man sehr gut nachvollziehen: populäre Sprache, einfach zu erlerndendes Datenbank-System mit tollem Namen... war ein richtiger Verkaufsschlager, den alle anderen Anbieter sofort kopierten. Dannach fragte man nicht mehr, welche Datenbank. Es hieß eigentlich nur noch: MySQL?!
Das ist das gleiche wie mit MS Windows und MS Office. Wenn sich bei uns jemand bewirbt (außerhalb der IT-Abteilung) heißt es immer "...umfangreiche Kenntnisse im Umgang mit dem PC, Textverarbeitung, Tabellenkalkulation..." und gemeint ist eigentlich... naja, ist ja wohl klar. Setz' so einen mal vor OpenOffice's writer und verlange, die Seitenränder auf 1,5 cm einzustellen.
Aber ich schweife ab.



ZodiacXP hat gesagt.:


> C ist kein Ding, nur noch weiteres einarbeiten. Außer das Programmieren neuer Module, so dass das URL-Rewriting schneller hinhaut


 Also, für simples Rewriting ist man mit mod_rewrite eigentlich ganz gut bedient. Aber du beziehst dich sicherlich auf das dynamische Rewriting aus dem anderen Thread? 



ZodiacXP hat gesagt.:


> Zu Python habe ich herausgefunden, das mod_python nicht so schnell arbeitet wie mod_wsgi. Deswegen stelle ich im Moment alles darauf um.


 Wie gesagt, Python ist nicht so mein Fall. Aber wenn ich das richtig verstanden habe, hat WSGI sehr große Ähnlichkeiten mit FastCGI - und das ist wirklich ein Schatz den es zu entdecken gilt...

Aber mal 'ne Frage: Willst Du Server administrieren oder Applikationen schreiben? 

Gruß
Enum


 Das ist meine ganz persönliche Meinung, ich möchte niemandem auf die Füße treten und lasse mich auch gern eines Besseren belehren... viel Erfolg.


----------



## ZodiacXP (23. September 2009)

Enumerator hat gesagt.:


> Also, für simples Rewriting ist man mit mod_rewrite eigentlich ganz gut bedient. Aber du beziehst dich sicherlich auf das dynamische Rewriting aus dem anderen Thread?



Jop. Dort hast du gesagt ihr hab eine Klasse in C++, was ich nun auch anstrebe, da es ersichtlich schneller seien wird als eine Lösung nur in PHP / Python etc.



Enumerator hat gesagt.:


> Wie gesagt, Python ist nicht so mein Fall. Aber wenn ich das richtig verstanden habe, hat WSGI sehr große Ähnlichkeiten mit FastCGI - und das ist wirklich ein Schatz den es zu entdecken gilt...



Was nutzt du denn? Ich wollte mir Python ansehen, aus verschiedenen Gründen. Der wichtigste Grund ist, dass Brin und Page von Google zum Beginn sehr auf Performance achteten, später Python nutzten und darüber auf C++ und JAVA Applikationen zugreifen. Das ist nun auch mein Ziel - zu wissen wie - denn serverseitige Performance ist mir sehr wichtig und ich vertraue deren Maßnahmen einfach mal 



Enumerator hat gesagt.:


> Aber mal 'ne Frage: Willst Du Server administrieren oder Applikationen schreiben?



Mittlerweile beides. Immer schön zu wissen was passiert. Das schreiben kann ich zumindest in PHP schon. Einen Server zu administrieren interessierte mich nun auch, vor allem weil ich fast schon gezwungen war selbst einen aufzusetzen um PHP, Python und PostgreSQL unter eine Haube zu kriegen, da es scheinbar keine Fertiglösung im Netz gab (wie XAMPP etc. - wahrscheinlich aus den Gründen die du zu mySQL aufgeführt hast  ). Bin froh da endlich Durchblick zu kriegen.


----------

