Hallo,
na dann los: Lade Dir die neusten Pakete von PHP und apache herunter, baue Dir am besten vorher einen eigenen apachen,
Da taucht schon die erste Frage auf. Bisher geht ja der Apache wunderbar. Wenn ich den jetzt neu kompilieren will, muss ich den alten erst einmal deinstallieren? Bei PHP genau die gleiche Frage. Dann noch wenn irgendwie was schief geht, wie kriege ich die kaputten halbkompilierten Teile wieder runter und die alten drauf?
Es muß nichts deinstalliert werden - ganz im Gegenteil solltest Du den apachen und auch PHP unberührt lassen. Beim Kompilieren kann auch immer mal etwas schief gehen. Es wäre also nicht wirklich gut gleich auf Verdacht, daß es funktionieren könnte, alles zu deinstallieren. Damit es zu keinen Überschneidungen der Programme kommt, ist es natürlich ratsam, wenn Du Dir einne eigenes Verzeichnis dafür erstellst; beispielsweise /home/jeena/selfserver
entpacke PHP, führe ./configure --help an der Konsole aus und mache Dir eine Liste, welche Module Du brauchst.
Wocher weiß ich welche Module ich brauche? Das was ich genau weiß ist halt dieses domxml und mysql dann wäre noch diese gdlib oder wie das teil für die bearbeitung von Bildern heißt, aber was brauche ich noch zum reibungslosen ablauf?
Oh, oh ;) PHP scheint nicht Dein Lieblingskind zu sein. Das Manual unterteilt sich in 141 Erweiterungen (von Apache-spezifische Funktionen bis Zlib Komprimierungsfunktionen). Etwas mehr als die Hälfte (80 nämlich) können modular oder statisch eingebunden werden. Welche Du davon brachst, hängt von Dir ab. Einfach mal das Manual an einem gemütlichen Abend bei einem warmen Tee Funktionsreferenz für Funktionsreferenz durchgehen anschauen, welche Funktionsgruppen Du noch nie im Leben gebraucht hast.
CFLAGS="Deine Wunscheinstellungen von gcc" ./configure \
Wie könnten diese misteriösen Wunscheinstellungen zum beispiel aussehen?
http://gcc.gnu.org/ Meiner sehen an der Maschine, von der aus ich jetzt schreibe so aus:
CFLAGS="-O3 -march=athlon -fomit-frame-pointer"
-03 Options That Control Optimization
-march=athlon Intel 386 and AMD x86-64 Options
-fomit-frame-pointer fomit-frame-pointer
--prefix=WUNSCHPFAD \
keine Ahnung was das darstellen soll.
configure ist ein Shell-Script, was Sourcen von Programmen konfiguriert und auf Konsistenz prüft (also, ob benötigte Pakete zum kompilieren benötigt werden). Der Übergabeparameter --prefix bestimmt dabei, wohin das Programm (und abhängig davon seine Benötigten Bibliotheken, Module, Erweiterungssourcen, Hilfsprogramme und Configurationsdatein) zu installieren ist.
--with-apxs2=PFAD_zur_Datei_apxs2 \
was ist apxs2 und wo kann ich diese Datei finden?
apxs2 ist ein PERL-Script, was beim kompilieren von apache, als Hilfsscript in das Standardverzeichnis /pfad/zu/apache/bin gleichfalls erstellt wird. Diese Angabe ist wichtig für das Bauen eine externen Handlers von apache. Allgemein empfele ich Dir zum kompilieren die Beschreibung von Christoph http://aktuell.de.selfhtml.org/artikel/server/apacheconf/apconf04.htm Vermutlich wird es das Beste sein, Du kopierst Dir später dann nur noch die httpd.conf Deines jetzigen apachen unter angabe eines anderen Ports.
--with-config-file-path=WUNSCHPFAD \
Ist das da wo ich das tarball entpackt habe?
Das ist das Verzeichnis, in dem Du Deine php.ini lagern willst.
--with-config-file-scan-dir=SERVER_DOCROOT \
hier einfach /var/www/ ?
Wenn das Deine im DocumentRoot im jetzigen apachen ist, dann solltest Du dies auch angeben. Diese kleine Angabe wird so gut wie nie bei den üblichen Hostern verwendet. Ich persönlich mag es nicht PHP aus der.htaccess heraus zu konfigurieren, sonder bevorzuge, in jedes Verzeichnis .htaccess-gleich eine php.ini zu packen, um verzeichnisweite Einstellungen vornehmen zu können.
--disable-all \
wieso warum will ich denn alles ausschalten?
So ist sicher, das alles, was Du nicht braucht, in PHP auch wirklich nicht einkompiliert wird.
--disable-short-tags \
Ah endlich etwas was ich verstehe ;-)
--enable-cli \
was ist cli und für was brauche ich so etwas?
http://de3.php.net/manual/de/features.commandline.php PEAR beispielsweise kräht danach. Aber es ist ein für die Konsole bestimmtes Programm zum Parsen von PHP-Scripten. (Persönlich mache ich auf einem Linuxsystem verschiedenste Aufgaben sehr gerne mit PHP, anstatt sie mit anderen Programmen zu erledigen.)
--enable-maintainer-zts \
auch noch nie gehört wozu soll das teil gut sein?
Das soll eigentlich dafür sogen, das die Module von PHP Thread Safety ausgeführt werden. (phpinfo() steht in der sersten Tablelle der Ausgabe)
--enable-memory-limit \
Ja da kann ich mir zumindest etwas vorstellen
i686-pc-linux-gnu
Das kenne ich wiederum :-)
Diese Angabe muß zwingend am Ende der Konfigurationsanweisungen stehen, andernfalls nutze --host=i686-pc-linux-gnu
make
make install
make clean
die drei verstehe ich auch.
Wie Du siehst, bevorzuge ich PHP im ersten Schritt bar jedem Moduls.
Also ohne Module.
Keine Module und keinerlei Extensions; sozusagen: PHP-pure ;)
(Sogut wie jeden anderen Kram kann man alleine mit PHP programmieren; nur es macht aus Faulheit, oder muß ich jetzt sagen "aus Überlegungen des neu erfundenen Rades ;)", kaum einer.)
Diese Baue ich mir nach Bedarf mit phpize zusammen.
Ist das irgendein Programm? machst du die dann aus quellcode, wenn ja woher den quellcode nehmen?
Das ist ein Hilfsprogramm, das beim kompilieren auch gebaut wird. Die Sourcen, die PHP für seine 80 Extensions benötigt, sind nach dem entpacken PHPs alle im Verzeichnis "ext". Viele brauchen aber noch die eigentlichen Programme! MySQL beispielsweise muß auf dem System mit den entsprechenden Developer-Scouren installiert sein.
Wenn man vor einem blanken System bei NULL anfängt, muß man sehr oft ./configure ~ make ~ make install ausführen ;)
Aber dazu kommen wir später. Versuche mal diese Schritte (Apache, PHP) praktisch nachzuvollziehen; denn ich denke Du wirst hierbei schon genug Fragen haben, die hier im Forum geklärt werden können.
Jo die Fragen stehen jetzt schon da ;-)
Keine Angst!
Das sagst du so einfach, bisher habe ich einen Rechner auf dem nur xml nicht funktioniert, wenn ich anfange und nicht weiterweiß dann habe ich einen Rechner auf dem kein Apatche und kein PHP läuft und dann stehe ich nämlich da :-)
Naja ^^ Meine Email hast Du ja (Gott sei Dank - Briefbomben als Attachments werden voher von base64_encode() unscharf gemacht *g*)
Gruß aus Berlin!
eddi