Christoph Schnauß: Noch ein Problem mit PHP unter Linux

Beitrag lesen

morgens,

doch da ist er bei der Konfiguration immer hängengeblieben
Mit welcher Fehlermeldung?
Mit gar keiner. Es stand einfach "Setting up php4 (4.3.3-1) ..." Und das habe ich auch die ganze Nacht so gelassen und nichts ist passiert.

Oh. Da bin ich etwas ratlos, weil ich so etwas noch nicht erlebt habe. Es kann mit deinem System zusammenhängen oder aber damit, daß da noch irgendwas aus früheren Installationsversuchen irgendwo herumliegt. Du müßtest aber mindestens in var/log/messages irgendeinen Hinweis finden können.

Hast du dir deine Verzeichnisse nach der Deinstallation durchgesehen und wirklich alles entfernt, was mal PHP war (mit Ausnahme der php.ini)?
Nein, denn ich muss leider zugeben, dass ich gar nicht weiß was wo hin und ob überhaupt, installiert wurde.

Falls du eine grafische Oberfläche hast (KDE), gibts da eine nette Suchfunktion. Du kannst dich aber natürlich auch mit grep von der Konsole aus auf die Suche machen.

Natürlich habe ich in der /etc/apache/httpd.conf die Zeile mit php auskomentiert
Oh. Warum denn das, und welche Zeile meinst du?

AddType application/x-httpd-php3 .php3
    AddType application/x-httpd-php3-source .phps
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

Die beiden letzten Zeilen gehören unbedingt wieder aktiviert. "php3" ist eigentlich "dprecated", das solltest du, wenn du dein PHP neu einrichtest, auch nicht mehr benötigen, mußt du aber selbst entscheiden.

Außerdem fand ich da nirgendwo diese Zeile (auch nicht mit php3 oder php):
<IfDefine PHP4>
  LoadModule php4_module                 /usr/lib/apache/1.3/libphp4.so
</IfDefine>

Stimmt. Diese Zeile steht auch nicht "default" in deiner httpd.conf drin, daher mußt du genau das von Hand nachtragen und aktivieren, falls du denn diese "Modul-Variante" haben möchtest  -  wobei darauf zu achten ist, daß du diese "libphp4.so" tatsächlich in dem angegebenen Pfad stehen hast (bei mir unter FreeBSD ist es /usr/apache/modules/libphp4.so  -  aber ich hab mir den Kram selber kompiliert).

PHP muss aber laufen, denn wenn ich php4 -f dateiname.php eingebe dann gibt er mir das bearbeitete File, also nur HTML auf dem Bildschirm aus, ohne php Code.

Sehr gut. Ja, dann ist dein PHP vorhanden und mag auch arbeiten, und wenn du jetzt in der php.ini auch für PHP noch ein log definiert hast (solltest du tun, wenn es Probleme gibt), kriegst du dort nochmal konkrete Einträge, die sich ausschließlich auf dein PHP beziehen.
Wenn du PHP problemlos von der Konsole aus aufrufen kannst, brauchst du dich um dein PHP nicht mehr zu kümmern, sondern mußt an deinen Apache heran.

debian:/home/jeena# apache -l
  Compiled-in modules:
    http_core.c
    mod_so.c
    mod_macro.c

Hm. Das ist mehr oder weniger die "Standard-Anzeige". Du hast deinen Apache nicht selber kompiliert. Macht nix. Diese Anzeige liefert dir die Liste der statisch eingebundenen Module. Sie sagt nichts darüber aus, was du deinem Apache noch dynamisch übergibst. Ich halte es auch nicht für eine gute Idee, den Apache in einem ~home-Verzeichnis zu installieren, er soll schließlich systemweit laufen und gegebenenfalls auch anderen Benutzernamen zur Verfügung stehen, vor allem im Netzwerk  -  aber das mußt du selber wissen.

Das heißt anscheinend nein. Muss ich es dann selbst kompilieren, und das extra angeben?

Du mußt nicht. Ich würde allerdings immer empfehlen, sich für ein LINUX den Apache selbst zusammenzukompilieren. Die Sourcen bekommst du ja problemlos, und in einigen Textdateien stehen dort auch kurze Hinweise, wie das geht. Bekommst du Probleme mit deinem Apache, weißt du wenigstens, daß du sie selber verbockt hast ;-)

http://localhost/server-info zeigt an:
Not Found

Dachte ich mir beinahe ;-) Das muß nämlich ebenfalls in der httpd.conf aktiviert werden, wenn du es haben möchtest. In dem Fall hilft dir mein Artikel http://aktuell.de.selfhtml.org/artikel/server/apacheconf/apconf062.htm weiter, dafür gibt es vorgefertigte Einträge, die auch bei Apache 1.3.28 noch default drinstehen. "server-info" ist ganz nützlich, wenn man sich noch mit der Serverkonfiguration herumplagen muß. Es liefert dir eine ausführliche Darstellung der dynamisch eingebundenen Module.

Wenn ich wüsste aus welchen Logs.

Die error.log ist in diesem Fall gemeint.

http://home.arcor.de/maedchen.schluckt.net/mp3/httpd.conf

Ja, damit kann dein Apache tatsächlich kein PHP ausführen lassen und es _muß_ zu den von dir beschriebenen Problemen kommen. Es gehört unbedingt noch eine Zeile
 Action application/x-httpd-php "Pfad zu PHP"
hinein (und das ist in meinem Artikel bisher nicht erwähnt). Womit du es dann möglicherweise bereits geschafft hast.

Übrigens hast du auch CGI noch nicht zugelassen, das solltest du aber tun  -  auch wenn das mit deinem PHP-Problem nichts zu tun hat. Außerdem hast du mod_perl aktiviert, das gute Stück aber möglicherweise gar nicht mitinstalliert, die entsprechenden Zeilen würde ich vorerst wieder auskommentieren.

Grüße aus Berlin

Christoph S.