Manchmal kommt man in eine Situation, daß man dazu gezwungen wird, eine Option
selbst zu kompilieren, die von der Linux Distribution nicht mitgebracht wird.
Bei meinem Beipiel handelt es sich um eine Fedora Core 3 Distribution wo Standardmäßig
nur eine PHP Version 4.3.10 oder kleiner beiliegt. Auch über das Online
Update per "yum" war keine aktuellere mitgeliefert. Nun also aus den Quellen selber kompilieren.
Erstmal ein schwieriges Unterfangen wenn man das noch nicht gemacht hat. In kurzen knappen Stichworten
wird das ganze mal beschrieben:
- GCC Compiler muss installiert sein. ggf. nachinstallieren.
- Die "devel" Pakete zu den Optionen die man kompilieren will, sollten installiert sein.
- PHP Quellen besorgen PHP Sourcecode. Beispiel: php-5.0.3.tar.gz
- Sourcen auspacken mit beispielsweise "tar -xfzv php-5.0.3.tar.gz -C /opt"
- Dann ins neu einstandene Verzeichnis "/opt/php-5.0.3" wechseln.
- Für das kompilieren muss man dem Compiler die Konfigurationsoptionen per Kommandozeile mitteilen.
- Das könnte dann so aussehen:
"./configure --with-apxs2=/usr/sbin/apxs --with-mysql --with-gd --with-jpeg-dir --with-zlib-dir --with-exif --with-png-dir --with-tiff-dir --with-pdflib"
Es würden dann folgende Optionen vorbereitet: mod_php5, mod_mysql, mod_gd, mod_exif, mod_pdflib.
Die anderen Parameter sind aus Abhängingkeiten hinzugekommen.
Der "./configure" Befehl ist mit dem Parameter "--with-gd" nicht ohne Fehler durchgelaufen wenn kein "--with-jpeg-dir" gesetzt wurde. Und so ergeben sich die anderen Parameter.
- Ist der "./configure" Befehl durchgelaufen und hat keine nennenswerten Fehlerausgaben verursacht ist es Zeit für das Kompilieren.
- Es folgt nun das "make". Das Kompilieren kann schon einige Minuten dauern.
- Wenn das Kompilieren beendet ist dann folgt ein "make install"
- Nun folgt das Bearbeiten der Apache Konfigurationsdateien (httpd.conf / php.conf).
Bei Fedora FC3 wäre das in "/etc/httpd/conf"
bzw. "conf.d" Verzeichnis
- Zuerst editieren wir die Datei: "/etc/httpd/conf/httpd.conf"
Ab Zeile 147 etwa kommt ein Block wo die Module des Apache Webservers geladen werden. Dort hat
unser Kompilat einen Eintrag hinzugefügt. Der muss aber wieder auskommentiert werden. Denn wir
tragen den Eintrag in der externen Datei: "/etc/httpd/conf.d/php.conf".
...
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule php5_module /usr/lib/httpd/modules/libphp5.so
...
Die vom PHP Kompilat erzeugte Eintrag sollte dann so aussehen wie in diesem Beipiel oben (die Zeile mit dem # davor !).
- Nun wir die Die Datei: "/etc/httpd/conf.d/php.conf" bearbeitet. Direkt oben in der Datei ist der Eintrag für
das PHP Modul zu finden.
Der Original Eintrag lautet:
"LoadModule php4_module modules/libphp4.so"
und sollte auskommentiert oder gelöscht werden.
Anschließend sollte dort nur noch ein
"LoadModule php5_module modules/libphp5.so" stehen
- Fertig !!! Alles abspeichern und den Webserver neu starten.
- Noch ein "service httpd restart oder ein "apachectl graceful"
Man kann sich im Root Verzeichnis des Webservers noch eine kleine Testdatei erzeugen um zu testen ob die Arbeit
auch erfolgreich war. Einfach mit einem Editor im Verzeichnis "/var/www/html" ein info.php erzeugen mit folgendem Inhalt:
<?php
phpinfo();
?>
Dann abspeichern als "info.php". Mit dem Browser und der Adresse "http://localhost/info.php" kann man sein
Werk nun begutachten. Erscheinen sollte eine Testseite wo sich PHP5 ein wenig vorstellet. Es sollten die Module die man als
Kompileparameter mitgegeben hat auch in der Liste der Module weiter unten auftauchen. Wenn alles da ist, ist soweit alles klar.
PHP5 kann beginnen !