Probleme mit PHP Installation

L

Lynn

Mitglied
Thread Starter
Dabei seit
09.04.2005
Beiträge
38
Reaktionspunkte
0
Hallo Leute,

also ich wollte mit hilfe der Anleitung von Wega mein PHP aktivieren, habe dies allerdings mit TextEdit getan und es hat nicht funktioniert. Als ich's jemandem erzählt habe, ging's gleich "huch, hättest du nicht machen sollen." Sicher nicht, denn als ich wieder in den Ordner geschaut habe, sind da plötzlich drei httpd-Dateien zu finden: httpd.conf.applesaved, httpd.conf.bak und httpd.conf.default
Alle drei haben noch die Konfiguration wie am Anfang, aber vorher gab es meines Erachtens nur zwei Dateien. Ich nehme mal an, dass applesaved die ist, die ich verändert habe und demnach die default ändern sollte, bin mir aber nicht sicher. Kann mir bitte jemand helfen?
Ach ja, ich habe einen iMac G5 mit Mac OS X 10.9.3

Mit vielen Grüßen,
Lynn
 
10.9 - Wahnsinn - ich bin erst bei 10.4 :D

Ne, im Ernst.
Dir fehlt die normale "httpd.conf".
Kann es sein, dass Du die mit Textedit irgendwo anders hin gesichert hast (Wobei das Original dann immer noch da sein müsste)?

[edit]
Es gibt tatsächlich eine *default, eine *bak und eine *applesaved in Panther.
 
Ja, mei, ich hab's net so mit Zahlen :D Bin zwar Mathe-Leistungskurs, aber der Abistress, bin eben ferienreif ^.-

Hab die normale gefunden, muss ich die anderen löschen? Oder nicht, oder was?
 
Wenn die Datei dann so geändert wurde, müsste ich die PHP-Dateien doch eigentlich in Safari öffnen können, oder nicht?
 
Die anderen musst Du nicht löschen.
Wie Du die Datei geändert hast, weiss ich nicht.
Hast Du denn den Server nach der Änderung neu gestartet?
Was sagt ein
Code:
apachectl configtest
im Terminal?
 
Processing config directory: /private/etc/httpd/users/*.conf
Processing config file: /private/etc/httpd/users/caro.conf
Processing config file: /private/etc/httpd/users/family.conf
Syntax OK

Das sagt es... Kann ich dann eigentlich die Dateien auch offline anschauen in Safari? Weil ich es ja sonst auch immer hochladen kann, aber das geht eben auf die Internetrechnung (leider keine Flatrate -.-).
 
PHP-Dateien müssen von einem Webserver interpretiert werden, erst deren Resultat sind Webseiten die per Browser betrachtet werden können. Dazu muß auch lokal ein Web-Server laufen. Bei Deiner Konfiguration fehlt eindeutig die

/private/etc/httpd/httpd.conf

nimm eine Deiner Backupdateien aus dem ersten Posting:
httpd.conf.applesaved, httpd.conf.bak und httpd.conf.default

copiere Sie nach httpd.conf (die Datei muß genau so heißen und an genau obigem Pfad stehen) und aktiviere dort das PHP-Modul. Welche Zeilen dazu auszukommentieren sind, steht hier mehrfach im Forum ( Load Module, Add Module und noch ein paar mehr...)


Gruß wegus
 
Also, ich habe jetzt die httpd.conf-Datei in besagtem Ordner, LoadModule und AddModule sind auskommentiert (hab deine Erklärung nochmal genauestens befolgt), aber es funktioniert immer noch nicht. :( Bin ich eigentlich so doof? :( Na ja, vielleicht sollte ich einfach mal rumprobieren...
 
Hab mal ins error_log geschaut:

[Sun May 14 21:25:20 2006] [notice] Apache/1.3.33 (Darwin) PHP/4.4.1 configured -- resuming normal operations
[Sun May 14 21:25:20 2006] [notice] Accept mutex: flock (Default: flock)
[Sun May 14 21:25:27 2006] [error] [client 88.73.176.188] File does not exist: /Library/WebServer/Documents/favicon.ico
[Sun May 14 21:46:30 2006] [error] [client 69.140.255.29] File does not exist: /Library/WebServer/Documents/scripts/nsiislog.dll
[Sun May 14 22:06:53 2006] [notice] caught SIGTERM, shutting down

Sagt das irgendjemandem was?
 
[Sun May 14 21:25:27 2006] [error] [client 88.73.176.188] File does not exist: /Library/WebServer/Documents/favicon.ico
[Sun May 14 21:46:30 2006] [error] [client 69.140.255.29] File does not exist: /Library/WebServer/Documents/scripts/nsiislog.dll

Da wollte doch glatt jemand Dateien aufrufen, die Du nicht hast ;).
Hat aber jetzt nichts mit dem Thema hier zu tun.

Mein Vorschlag:
Geh das Ganze doch mal etwas strukturierter an.
wegus hat Dir ja schon einige Hinweise gegeben.
Wenn Du das gemacht hast, erzeugts Du eine primitive php Datei und rufst sie über Deinen Webserer mit dem Browser auf, um zu prüfen, ob alles okay ist.
 
"Wenn ich mal groß bin, heirate ich dich." ;)

Zumindest kann ich die simple php-Datei öffnen... die include() Funktion funktioniert zwar noch nicht, aber das kriegen wir schon irgendwie hin.
Es lag übrigens (mal wieder) am TextEdit. Nachdem ich die Datei mit TextWrangler bearbeitet hatte, hat es funktioniert.
 
Lynn schrieb:
"Wenn ich mal groß bin, heirate ich dich."

ich mach gern den Trauzeugen ;)

Textwrangler oder SubEthaEdit sind in der Tat am ehesten geeignet für PHP! Bei Textwrangler ist die Funktion Zap-Gremlins ganz nützlich, die unnötige (nicht sichtbare) Steuerzeichen entfernt und so manch scheinbar korrektes PHP-Skript dann zum laufen bewegt. Auch läßt sich die Online-Hilfe von Textwrangler leicht von ADC auf www.php.net/manual umlenken ( dazu habe ich hier auch mal nen thread gestartet).

Gruß wegus
 
Das hab ich mir fast gedacht :lol: Danke erstmal :D

Nun habe ich doch nochmal eine Frage. Ich habe eine php-Datei mit include() Funktionen, zwei Stück um genau zu sein. Witzigerweise funktioniert die index-Datei gar nicht (es öffnet sich also nichts) und die anderen Dateien mit diesen Funktionen öffnen diese Funktionen nicht, wenn ich die Datei mit Doppelklick öffne. Wenn ich allerdings von hinten durch die Brust ins Auge über die Systemeinstellungen übers Internet meine "Webseite" öffne, funktioniert es. Warum?
 
Weil include den Pfad per Dateisystem auflöst und nicht per Web-URL! Deine Include-Dateien können auch völlig außerhalb des htdocs-Verzeichnisses liegen, Hauptsache der www-user kann die Dateien lesen, dann werden sie auch includiert und ausgeführt. Nur ist eben der Web-Pfad

http://localhorst/pfad/include.php

im Dateisystem:

/Library/Webserver/Documents/pfad/include.php

sind also 2 Paar Schuhe
 
Oh, okay, das leuchtet ein. Hauptsache, es klappt dann online. ^^

Danke für eure Hilfe! *knuffs*
 
Bei PHP-Projekten immer eine Variable mit dem Pfad zum Hauptverzeichnis definieren ( falls nicht schon vorhanden) und dann immer von dort aus relativ verlinken und Dateien includen. Dann ist es egal, wo das PHP-Programm liegt. Absolute Zugriffe sind das Ende der Portabilität!
 
soooo lange bin ich noch nicht damit bekannt... -.-
kannst du das nochmal erklären, bitte?
 
Angenommen Du hast eine Verzeichnisstruktur wie folgt:

Code:
|-Project
  |- Include
  |- Pages
  |- Images
  |- CSS
  |- Javascript

dann kann diese mal auf nem Apple liegen:

include ('/Library/Webserver/Documents/Project/Include/dateixyz.php')

oder auf nem Suse-Linux:

include ('/srv/www/Project/Include/dateixyz.php')

oder auf nem Debian:

include ('/usr/local/httpd/htdocs/Project/Include/dateixyz.php')

oder ...


Wenn Du zig Includes hast und alle sind absolute Pfadangaben, mußt Du bei einem Wechsel ALLE ändern. Wenn Du jedoch den Pfad zum Projekt in eine Variable tust:

$PROJEKT_ROOT="/usr/local/httpd/htdocs/project/"

dann brauchst Du die nur einmal anzupassen und kannst überall mit

include ($PROJEKT_ROOT+"include/dateixyz.php")

darauf zugreifen. Eine Änderung an einer Stelle und alle Includes passen! Das meinte ich damit!!! Es gibt übrigens auch Server-Variablen die dabei helfen, aber dies hier reicht denke ich erstmal aus um solche Fehlr zu vermeiden!
 
Zurück
Oben Unten