Hallo!
Mal ein paar grundsätzliche Sachen:
- PHP + Apache2 + Worker-MPM sollte man lassen (einige von PHP verwendete 3rd-party Libs sind nicht threadsafe).
- PHP als Apache-Modul verwenden, am besten mit Opcode-Cache, ich verwende PECL::APC (PHP-Code wird direkt aus dem RAM ausgeführt)
- Nach Möglichkeit statische und dynamische Inhalte auf 2 verschiedene, optimierte Server-Instanzen verteilen, am besten auf 2 Maschinen.
- Server für "Statisches" mit keep-alive
- Server für "Dynamisches" ohne keep-alive
- evtl. einen Cache wie Squid einsetzen
- keine persistenten DB-Verbindungen verwenden, nach Möglichkeit MySQL auf anderen Server auslagern, sonst auf Unix-Sockets umstellen
- großzügigen Query-Cache für MySQL einrichten
- alle PHP- und Apache-Module die man nicht unbedingt braucht rausschmeißen (binarys werden kleiner)
- Caching-Header verwenden (mod_expires...), nach Möglichkeit auch für dynamische Inhalte!
- auf PHP-Ebene Cachen, z.B. PEAR::Cache_Lite
- einen Profiler (z.B. xdebug) installieren und die Scripte optimieren
folgende Artikel zum Thema Apache-Optimierung kann ich sehr empfehlen:
http://selfaktuell.teamone.de/artikel/s ... index.html
http://httpd.apache.org/docs-2.0/misc/perf-tuning.html
http://kris.koehntopp.de/artikel/webtune/
zum Thema PHP-Optimierung:
http://talks.php.net/show/acc_php/
http://phplens.com/lens/php-book/optimi ... ng-php.php
http://php.weblogs.com/tuning_apache_unix
und MySQL-Optimierung:
http://dev.mysql.com/doc/mysql/de/MySQL ... ation.html
Evtl. auch auf einen schnelleren und kleineren Webserver umstellen, z.B.:
http://jan.kneschke.de/projects/lighttpd/ (kann ich sehr empfehlen!)
Das einfachste wäre vermutlich die Hardware aufzurüsten, also sowas in Richtung Dual-Xeon oder Dual-Opteron, mit ordentlich RAM, oder auf mehrere langsame Maschinen verteilen.
Grüße
Andreas