Apache für PHP konfigurieren

Bodo

Aktives Mitglied
Thread Starter
Dabei seit
09.11.2001
Beiträge
655
Reaktionspunkte
0
Da ich mich mit PHP beschäftigen möchte, hab ich mich mal im Netz kundig gemacht, wie unter Mac OS X der Apache zu konfigurieren ist. Hier mal die Zusammenfassung:


1. Das Starten und Konfigurieren des Apache (Web Sharing) für grundlegende Nutzung

Auf der Festplatte unter der Adresse http://127.0.0.1/manual/ findet sich das Online-Handbuch für den Apache-Server. Die Adresse im Browser eingeben, und schon wird die Startseite geöffnet (127.0.0.1 , oder localhost, verweist auf den eignen Mac, nicht ins Internet).

Der Apache Web Server, der Teil des Mac OS X Packets ist, ist standardmäßig nicht konfiguriert, um PHP, MySQL, SSIs, CGIs, Symbolic Links oder die anderen Techniken auszuführen. Um Apache zu konfigurieren, gibt es leider kein grafisches Interface (das umsonst wäre, ich glaube Tenon bietet eines an). Hierfür muss das Terminal gestartet werden.

Um die Konfigurations-Dateien editieren zu können, wird ein Texteditor benötigt. Um die Änderungen durchführen zu können, ist es notwendig, sich als root einzuloggen. Ist root noch nicht aktiviert, so muss dieser mit NetInfo Manager erst freigeschalten werden.

Nun als root einlogen. Die zu editierenden Dateien sind normalerweise unsichtbar. Entweder man verwendet den Editor bbedit (oder vergleichbar) oder einfach TextEdit.

Nun öffnet man das Terminal und den Editor. In das Terminal tippt man folgende Zeile ein: open /etc/httpd und schließt diese mit Return ab.

(Der Ordner httpd liegt im Privat-Folder auf dem Startlaufwerk)

Daraufhin öffnet sich ein neues Finder-Fenster. Dieses zeigt den Inhalt des Ordners httpd. Eine Sicherungskopie der Datei httpd.conf erstellen (etwa indem einfach eine Kopie auf den Desktop gezogen wird, oder man plaziert eine Kopie davon im httpd-Verzeichnis - "httpd.conf Kopie").

Nun die (originale) Datei httpd.conf auf das Ikon des Editors im Dock ziehen. Die Datei wird nun folgendermaßen geändert:
a.) etwa um Zeile 440:
DirectoryIndex index.html
abändern in
DirectoryIndex index.html index.htm index.shtml index.php default.php

b.) Beginnend mit der Zeile 818:
Die Auskommentierungen (am Anfang der Zeile ein #) entfernen vor
AddType application/x-httpd-php .php und AddType application/x-httpd-php-source .phps,
auch von
AddHandler cgi-script .cgi,
sowie von
AddType text/html .shtml
und
AddHandler server-parsed .shtml

Die Datei httpd.conf abspeichern, und zwar ohne Resources oder sonstige Formatierung.

Möchte man lokal auf WebSites zu greifen, die nicht im /User/Sites/-Ordner abgelegt worden sind:
Dazu öffnet man im Finderfenster /httpd/ den Ordner users und sichert zuerst wieder die eigene .conf Datei auf dem Schreibtisch oder in einem anderen Ordner. Dann zieht man die config-Datei auf den Editor und ändert folgende Zeile

Options Indexes MultiViews
AllowOverride None


ab auf

Options Indexes MultiViews FollowSymLinks
AllowOverride Options


Der Apache Webserver muss neu gestartet werden, damit die Änderungen greifen.

Das Starten des Apache Webservers erfolgt über das Terminal mit den Befehlen
apachectl graceful,
welcher im Terminal Meldungen ausgibt, die Rückschlüsse darüber geben, ob der Server hochgefahren ist und ob die Optionen aktiviert wurden.

Ist diese Hürde anstandslos genommen, kann künftig der Webserver wieder über >Systemeinstellungen..>Sharing>Web Sharing ist deaktiviert>Start hochgefahren werden.

Ob PHP nun funktioniert, kann man dann ganz einfach testen, in dem man eine index.html-Datei im Ordner /Users/~eigener_Kurzname/ in index.php umbenennt.




Ach ja, Copyright by mir ;-)
 
Zuletzt bearbeitet:
hey ganau das brauch ich,

genau solche beschreibungen brauch ich kurz und buendig aber idioten sicher :rolleyes: . also fuer anfaenger in sachen webserver. ich habe oftmals gar nicht die zeit mich mit den speziefischen sachen zu beschaeftigen, ich brauche einfach nur ein system was laeuft und/oder eine software die das fuer mich erledigt ohne ein studium von buechern und software-docus die mich eigentlich nicht wirklich interessieren sonden nur um, wie in diesem fall, einen webserver einzurichten, der dann immer im hintergrund laeuft und hoffentlich nie aerger macht, den hat man ja schon mit nicht zahlenden kunden und dem finanzamt. ausserdem reicht ja schon wenn ich mich mit typographie, html & co, sowie druckvorstufe beschaeftigen muss denn das macht ausser der eigentlichen arbeit ja schon arbeit und lernaufwand genug. wenn mein monitor oder drucker defekt ist frage ich ja auch nicht nach einem schaltplan mit loetanleitung sondern bringe ihn in die fachwerkstatt-oder?

...danke Bodo

euer appel :D
 
Webmin?

Hallo,

kennt ihr Webmin? Das soll ein Freeware-Tool zur Administration des Apache-Servers per HTML (Browser) sein? :D (Falls sich jemand damit beschäftigt... --> unbedingt hier posten! :D)

Lieben Gruß, Vevelt.
 
Korrektur

Mac OS X Apache für PHP konfigurieren (Korrektur)

Dies ist eine überarbeitete Version meines ersten Postings. Diese wurde nötig, da ich selber bei weiteren Versuchen in ziemliche Konfusion geraten bin, was somit zur Überarbeitung der Anleitung führte:

Das Starten und Konfigurieren des Apache (Web Sharing) für grundlegende Nutzung

Auf der Festplatte unter der Adresse http://127.0.0.1/manual/ findet sich das Online-Handbuch für den Apache-Server. Die Adresse im Browser eingeben, und schon wird die Startseite geöffnet (127.0.0.1, oder localhost, verweist auf den eignen Mac, nicht ins Internet).

Da ich mir beim letzten Mal wohl zuviel auf einmal vorgenommen habe, soll jetzt wirklich erstmal nur PHP aktiviert werden.

Wichtig: root-Rechte erforderlich.

TextEdit und das Terminal starten. Im Terminal eingeben:
open /etc/httpd (Leerzeichen nach "open"), Return.

Aus dem nun geöffneten Finder-Fensters des Verzeichnisses httpd die Datei httpd.conf auf TextEdit ziehen.

Nun die Datei httpd.conf auf das Ikon des Editors im Dock ziehen. Die Datei wird nun folgendermaßen geändert (Zum Auffinden hilft dabei das "Suchen"-Menü von TextEdit):

a.)
DirectoryIndex index.html
abändern in
DirectoryIndex index.html index.htm index.php default.php

b.)
Die Auskommentierungen (am Anfang der Zeile ein #) entfernen vor
AddType application/x-httpd-php .php
und
AddType application/x-httpd-php-source .phps

c.)
Ebenfalls entfernen muss man das Kommentarzeichen(#) vor den Zeilen:

# LoadModule php4_module libexec/httpd/libphp4.so
# AddModule mod_php4.c

Die Datei httpd.conf abspeichern, und zwar ohne Resources oder sonstige Formatierung.


Damit die Änderungen greifen, muss Apache neu gestartet werden (>Systemeinstellungen..>Sharing>Web Sharing ist deaktiviert>Start).

Gibt man dann im Terminal
tail /var/log/httpd/error_log
ein, dann wird einem mitgeteilt, ob Apache das PHP-Modul geladen hat. Die Meldung sieht dann in etwa so aus:
[notice] Apache/1.3.22 (Darwin) PHP/4.0.6 configured -- resuming normal operations

Der ultimative Test ist nun, im eigenen Home-Verzeichnis in den Ordner Sites eine Datei mit folgendem Inhalt zu legen:

<html><body>
<h1>Jetzt wolle mer abe mal sehen</h1>
<? phpinfo()?>
</body></html>


Man kann sie index.php oder test.php benennen.

In meinem Fall starte ich jetzt den Browser und gebe die URL http://127.0.0.1/~bodo/test.php
ein.

Als Ergebnis wird mir eine umfangreiche Seite mit Statusangaben zu PHP ausgegeben.

Sollte das alles zu Verwirrungen und schlaflosen Nächten begleitet von Flüchen geführt haben (wie bei mir selbst), so möchte ich mich entschuldigen. Da aber niemand da ist, der einen an der Hand nimmt, bleibt nur "doing it the hard way".
 
Zuletzt bearbeitet:
hi

sehr gut beschrieben und ubersichtlich.die sachen habe ich auf anhieb gefunden... jedoch weiss nicht wie ich mich als root eillogen soll. mit su in der konsole bekomme ich ein sorry nach der passwd eingabe. hm wie setzte ich ein root passwd an oder ist eins als standard eingerichtet??? unter netinfo users root die zeile passwd editiert jedoch ohne ein sichtbares erfolg!!! was mache ich verkehrt?

hoffe auf hilfe
thx im vorraus

bondiblue
 
hi

mit NetInfo Manager (/Applications/Utilities) im Menue Domain > Sicherheit > root-Benutzer aktivieren.

wenn du das zum ersten mal machst, könnte der MenuePunkt anders (aber ähnlich - habe das leider vergessen) heissen. Du wirst dann auch aufgefordert ein root-Kennwort anzulegen.

macige Grüsse
ThomasWolf
 
was aber auch sehr wichtig ist...

Deaktiviere über Systemsteuerung/Anmeldung/Anmeldefenster die Option "Automatisch anmelden" und aktiviere "alle anderen Benutzer...". Anschließend klappt es auch mit der Ruth(root)!
 
Noch mehr Infos über MySQL und PHP...

findet ihr hier. Ich hab' mal ein paar nützliche Links zu jenen Themen zusammengestellt... :D

Gruß, Vevelt.
 
Apache

Na Prima,
ich hab alles so gemacht, aber ich glaube ich hab mir den Server abgeschossen.
Ich krieg immer die folgende Meldung:
"
[localhost:~] root# apachectl graceful
/usr/sbin/apachectl graceful: httpd not running, trying to start
Processing config directory: /private/etc/httpd/users
Processing config file: /private/etc/httpd/users/.DS_Store
Syntax error on line 2 of /private/etc/httpd/users/.DS_Store:
Invalid command '? perhaps mis-spelled or defined by a module not included in the server configuration
/usr/sbin/apachectl graceful: httpd could not be started
[localhost:~] root#
"
Wer kann helfen ?
 
Da kann ja alles mögliche passiert sein, aber aus eigener leidvoller Erfahrung hier ein paar Tips zum Debuggen:

1. Ich kann nur dazu raten, die Finger vom root-Account zu lassen. So ziemlich alles läßt sich mit sudo erledigen, und es birgt nicht so viele Gefahren. Mit der root kennung kann man sich eine Installation komplett zerlegen, da hilft dann nur noch der Backup, oder die Neuinstallation.
2. Da editieren der httpd.conf geht hervorragend mit BBEdit (ob auch mit der Lite-Version, weiss ich nicht, sollte aber möglich sein). Über den Befehl "Open Hidden" kommt man an die httpc.conf ran (alternativ: Im Finder den Menupunkt "Gehe zum Ordner" wählen und in das Dialogfeld /private/etc/httpd eintragen, dann die Datei httpd.conf auf ein Alias von BBEdit oder das Programm selber ziehen)
3. Hilfreich ist immer das error_log. Das liegt in der Regel unter /var/log/httpd. Zum debuggen ein Terminalfenster öffnen, folgendes eingeben:
cd /var/log/httpd
tail -f error_log

Dies zeigt kontinuierlich das Ende des logs an, zum Beenden ctrl+C drücken
4. Eine Sicherungskopie der httpd.conf liegt ebenfalls unter /private/etc/httpd als httpd.conf.bak und die default-Konfiguration als httpd.conf.default.
Zur Not kann man die default-Konfiguration durch ein Überschreiben der httpd.conf mit der httpd.conf.default wieder herstellen.

5. Es empfiehlt sich immer, Veränderungen in der httpd.conf schrittweise vorzunehmen und funktionierende Konfigrationen als Sicherungskopie zu behalten.

So, genug des allgemeinen Geschwafels.
In deinem Fall scheint das Problem darin zu bestehen, das der Apache Server die .DSStore als Konfigurationsdatei zu prozessieren versucht, was natürlich nicht geht. Wahrscheinlich liegt der Fehler in der Direktive für das handling der .DSStore-Dateien (das ist eine Sicherheitslücke in der Apple Apache Installation).
Eine korrekt Direktive sollte so aussehen.

<FilesMatch "^\.[Dd][Ss]_[Ss]">
Order allow,deny
Deny from all
</FilesMatch>

Ist aber nur so eine Vermutung, denn ohne konkrete Kenntnis deiner htpd.conf läßt sich aus der ferne schwer sagen, was da schief gelaufen ist. Der Server ist aber auf gar keinen Fall zerschossen, im worst case mußt Du wieder von vorne anfangen.

HTH
W
 
Immer locker bleiben

...und den Ball flach halten.
Wie man vielleicht weiß, legt OS X (normalerweise unsichtbar) so komische .DS_Store Dateien für jedes Verzeichnis an, indem die finderspezifischen Informationen vorgehalten werden (wegen kompatibilität in heterogenen Netzwerken.

In @Georg Mayers fall ist nichts anderes passiert, als da der Finder in das Verzeichnis httpd eben eine solche Datei angelegt hat.

Abhilfe:
Terminal starten, in das Verzeichnis httpd/users navigieren,
rm .DS_Store
eingeben,
Server neu starten,
und alles ist gut...;-)

Grüße

Bodo
 
Merci Woulion und Bodo,

darauf wäre ich alleine nie gekommen.
Es stimmt der Mac legt diese komischen .DS_Quatsch - dateien an.
Wenn man sich Mac verzeichnisse auf einem Windows rechner ansieht kann man die sehen und auch getrost löschen.

Es hat funktioniert ! danke euch beiden.

:)
 
Re

Ich kann nicht mal den Webserver starten wenn ich in der Systemeinstellung unter Sharing auf Personal Websharing gehe und start drücke dann startet er nicht. Wenn ich es über das Terminal versuche dann kommt zwar gestartet aber ich bekomme diese meldung wenn ich auf http://127.0.0.1 gehe:


RTSP/1.0 400 Bad Request Server: QTSS/4.1.1 (Build/412.38; Platform/MacOSX) Cseq: Connection: Close
 
localhost/~user tot

habe wie oben beschrieben versucht, php zum laufen zu bringen. wenn ich jetzt den webserver starte, kann ich zwar auf localhost zugreifen, aber nicht mehr auf das user-verzeichnis http://localhost/~userXYZ. hab ich irgendwas übersehen oder falsch gemacht?

habe jetzt meine alte httpd.conf zurückkopiert, aber er geht immer noch nicht.

auf ein tail des error_log bekommen ich folgende meldung
[Tue Feb 11 18:15:37 2003] [error] [client 127.0.0.1] File does not exist: /Users/userXYZ/public_html

hat's mir irgendwo einen symbolischen link zerschossen?

kann mir jemand helfen?

danke,
moon.
 
Hi

Eigentlich sollte Apache auf

/Users/Userxyz/sites/

zugreifen, und nicht auf

/Users/userXYZ/public_html


Hast Du mal die Userverzeichnisse via Netinfo verschoben?

W
 
/usr/sbin/apachectl stop: httpd stopped

moin,

habe mich sehr ueber diesen thread gefreud, aber geschafft habe ich es dann doch nicht, php zumlaufen zu kriegen. jetzt will auch httpd nicht mehr.
siehe auch:

/usr/sbin/apachectl stop: httpd stopped
Syntax error on line 2 of /etc/httpd/httpd.conf:
Invalid command 'od_status.so', perhaps mis-spelled or defined by a module not included in the server configuration
/usr/sbin/apachectl start: httpd could not be started

bin heute zum ersten mal bei osx (10.2.6) "unterm rock" und eigentlich nur icon-klicker seid os 6

hoffe, hier kann mir jemand wieder auf die beine helfen

dank und grusz

rocky g
 
Keine Panik

Hab den Ultimativen link von entropy:

Hat mir auch prima geholfen , du lädst das neue php paket und startest den server neu (Graceful !)
einfach nur copy und paste in die shell, kann nix passieren.

Übrigens ne Sicherheitskopie der httpd.conf beruhigt ungemein.


Ich hoffe es hilft


-.-

G.
 
vielen dank fuer den link. habe zwischenzeitlich das komplette programm nochmal abgespult ... und siehe da - php läuft. aber um postnuke zu installieren, mustte ich auch mysql installieren und jetzt habe ich ganz andere probleme ;-)

grusz

rockyg
 
Zurück
Oben Unten