Installation unter Apache (Linux)
Tom
- php
0 Florian Munz0 Tom0 Heiko Schütz0 Tom
Hallo Forum
Ich habe bei der PHP-Installation auf einem Linux-Server ein merkwürdiges Problem, bei dem ich trotz Suche bis jetzt noch nicht den richten Hinweis gefunden habe. Vielleicht weiss jemand von Euch Rat ;-)
Ich habe hier einen Suse-Linux-Server (7.0 prof.) aufgesetzt. Bei dessen Installation habe ich gleich Apache, PHP (PHP 3 + PHP4) mit installieren lassen.
Anschliessend wollte ich gleich ein Web-Projekt anlegen und habe alle Dateien in ein neues Verzeichnis gelegt, nennen wir das Verzeichnis "usr/local/kunde". Damit das ganze auch vom Apache-Server erkannt wird, habe ich in der httpd.conf die Direktive "DocumentRoot" auf den Pfad geändert und auch die entsprechende <Directory>-Direktive angepasst.
Soweit funktionierte alles wunderbar.
Als ich anschliessend die PHP-Dateien einspielte, funktionierten diese im neuen Verzeichnis nicht.
Im alten (Original-)Verzeichnis der Suse-Installation ("/usr/local/httpd/htdocs") werden die Dateien jedoch problemlos ausgeführt.
Im neuen Verzeichnis werden die Dateien jedoch nur als reiner HTML-Code mit den PHP-Tags an den Browser übermittelt, sprich der PHP-Prozessor parst die PHP-Dateien in diesem neuen Verzeichnis nicht.
Wo muss ich dem PHP-Prozessor angeben, welche Dateien, bzw. Verzeichnisse geparst werden sollen?
Die Mime-Einträge für PHP sind korrekt in der httpd.conf eingetragen und die PHP-Module werden auch tatsächlich geladen. Ebenso habe ich die Rechte auf allen Dateien geprüft.
Kann mir irgend jemand einen Tipp geben, wieso Apache, bzw. der PHP-Prozessor die PHP-Files nur im Standard-Installationsverzeichnis "usr/local/httpd/htdocs" parst?
Grüsse und schönes Wochenende
Tom
Hallo Tom,
Wo muss ich dem PHP-Prozessor angeben, welche Dateien, bzw. Verzeichnisse geparst werden sollen?
hmm, eigentlich sollte php überall geparst werden, aber ich weiss nicht, was suse aus deiner httpd.conf gemacht hat. poste doch mal ein paar wichtige sachen (php als cgi?; <directory>-einträge) oder schick mir die httpd.conf mal per mail, dann kann man mehr sagen.
grüße,
Florian
Hallo Florian
Erst einmal besten Dank für Dein Angebot, mir bei diesem Problem zu helfen :-)
Inzwischen habe ich weitergesucht und festgestellt, dass eigentlich ein anderes Problem vorliegt :-((
Der Server führt nämlich nur *.php- und *.php4-Files aus, jedoch nicht die *.php3-Files.
Das ist insofern logisch, da suf dem Server nur das Modul für PHP4 installiert. Leider habe ich das Problem, dass ich "gekaufte" PHP-Dateien habe, die alle auf php3 enden und auch stark querverlinkt sind.
Kann ich dem Apache-Server beibringen, dass er auch für die php3-Files ebenfalls den PHP4-Prozessor verwendet?
Hast Du eine Idee, wie das gehen könnte?
Ich wäre für einen guten Tip dankbar ;-)
Mit freundlichen Grüssen
Thomas Häny
Hallo Thomas,
Das ist insofern logisch, da suf dem Server nur das Modul für PHP4 installiert. Leider habe ich das Problem, dass ich "gekaufte" PHP-Dateien habe, die alle auf php3 enden und auch stark querverlinkt sind.
Kann ich dem Apache-Server beibringen, dass er auch für die php3-Files ebenfalls den PHP4-Prozessor verwendet?
bei mir sieht es folgendermassen aus: Suse 6.3, Apache 1.3.9, PHP 3.0.12
In der httpd.conf gibt es bei mir einen Abschnitt
<IfDefine PHP>
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3-source .phps
AddType application/x-httpd-php3 .phtml
</IfDefine>
Das heißt, das PHP3-Modul hat z.B. keine Dateien mit der Endung .php ausgeführt. Dazu musste ich folgende Zeile ergänzen:
AddType application/x-httpd-php3 .php
Folgendes müsste auch gehen (alle Dateitypen in einer Zeile):
AddType application/x-httpd-php3 .phtml .php .php3
Analog müsste es eigentlich bei Dir unter PHP4 mit den .php3-Dateien laufen, hoffe ich.
Viele Grüße,
Heiko
Hallo Heiko
Danke, mit dem folgendem Eintrag klappts einwandfrei
#
# And for PHP 4.x, use:
#
<IfDefine PHP4>
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php-source .phps
</IfDefine>
Was ich trotzdem nicht verstehe, wieso der Modul-Aufruf im Apache-Server über MIME-Types gesteuert wird. Diese sind doch als Content-Types für die Übermittlung der Daten an den Browser gedacht.
Wo legt man die Zuordnung Mime-Type zu Modul fest (z.B. application/x-httpd-php = mod_php)?
Nun ja, lassen wir die philosophischen Gedanken. Es läuft jetzt.
Danke vielmals an Heiko und Florian.
Grüsse
Tom