senäh

17senäh und so…

Coding-Logo

PHP, Server & Config
19. Okt 2011
Kommentare: 72

Lokaler Webserver ohne MAMP, XAMPP & Co unter Mac OS X Lion und Mountain Lion

Kategorien: PHP, Server & Config | 19. Okt 2011 | Kommentare: 72

Nachdem ihr vor kurzem die erste Mission des Auftrags “Weg-von-den-All-in-One-Solutions” erfolgreich abgeschlossen habt, indem ihr euch einen lokalen Mailserver eingerichtet habt, geht es nun weiter. Diesmal wollen wir ohne die bekannten Hilfsmittel wie MAMP oder XAMPP einen lokalen Webserver zum Laufen bringen.

Warum ein richtiger lokaler Webserver? MAMP is doch cool!

Für das schnelle Einrichten und Testen reichen die Komplettlösungen, die in einem Rutsch PHP, MySQL und einen Apache Webserver installieren. Das Einrichten geht schnell von der Hand, vielleicht 10 Minuten und man ist am Ziel. Vor allem benötigt man keine tieferen Kenntnisse über die Funktionsweise der eingesetzten Komponenten. Und man braucht sich auch nicht mit dem gruseligen Terminal beschäftigen ;)

Möchte man jedoch mal etwas spezielles konfigurieren oder einfach ein wenig experimentieren, stößt man schnell an Grenzen. Zwar funktionieren vorgefertigte Lösungen out of the box, allerdings sind sie nicht für tiefere Einschnitte gebaut. Früher oder später kommt der Moment: “Aaaaaaach hättste, hättste, hättste…”.

Da irgendwann mein persönlicher Programmierer-Stolz von mir verlangte, den MAMP gefälligst runterzuschmeißen und gegen eine “native” Kombination aus Apache, PHP und MySQL zu tauschen, hatte ich Mut gefasst ;). Meine daraufhin gemachten Erfahrungen möchte ich hier gern mit euch teilen.

Zuerst: Apache installieren… NICHT!

Das schöne an Mac OS: der Apache kommt gleich mitgeliefert. Auch über das grafische Interface dazu seid ihr vielleicht schonmal gestolpert. Um den Apache zu aktivieren, geht einfach in die Systemeinstellungen und wählt den Punkt Freigaben aus. Jetzt nur noch die Checkbox unter Webfreigabe aktivieren und schon läuft euer Apache.

Aktivieren des Apache in den Freigaben

Aktivieren des Apache in den Freigaben

Ob das soweit erfolgreich war, könnt ihr mit einem Aufruf der URL http://localhost/ testen. Ein großes “It Works” sollte erscheinen.

UPDATE: Apple hat mit Mountain Lion das Webfreigabe-Panel entfernt. D.h. ihr müsst ins Terminal und euch folgende 3 Befehle einprägen:

  1. sudo apachectl start (startet Apache)
  2. sudo apachectl stop (stoppt Apache)
  3. sudo apachectl restart (startet Apache neu)

Kurze Anmerkung dazu: der letzte Buchstabe in apachectl ist ein klein geschriebenes L, keine 1 ;)

Wer nicht auf Terminal steht, kann mal hier und hier schauen für eine alternative Lösung.

Webseiten-Root setzen

Der nächste Schritt ist optional und davon abhängig, wo ihr eure Websites nachher ablegen möchtet. Ich habe diese gern im Ordner Webseiten, der in meinem Benutzerordner liegt. Um dem Apache mitzuteilen, wo er die Webseiten zu suchen hat, müssen wir ihm das in der sogenannten httpd.conf mitteilen. Dabei handelt es sich um eine Systemdatei. Für den Zugriff darauf müsst ihr sicherstellen, dass ihr unsichtbare Dateien sehen könnt. Entweder ihr benutzt den PathFinder und navigiert zu Darstellung → Unsichtbare Dateien anzeigen oder ihr besorgt euch ein kleines Programm wie InVisibles.

Also, bitte die Datei /private/etc/apache2/httpd.conf öffnen und per ⌘+F im Texteditor der Wahl die Zeile suchen, in der folgendes steht:

DocumentRoot "Library/WebServer/Documents"

Dort ersetzt ihr nun den Ordnerpfad. In meinem Fall ist das DocumentRoot "Users/Enno/Sites". Weiter unten findet ihr einen ähnlichen Block (sucht am besten nach <Directory), in dem ihr die Grundkonfiguration für euren Root-Ordner festlegt. Sollte am Ende ungefähr so aussehen (natürlich euer eigenes Website-Root einsetzen, so wie oben auch):

1
2
3
4
5
6
7
<Directory "/Users/Enno/Sites">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
    SetEnv APPLICATION_ENV development
</Directory>

Könnte euch an die Einrichtung eines vhosts erinnern. Änderungen werden immer erst beim nächsten Neustart des Apache wirksam. Also ggf. einfach nochmal in den Freigaben-Einstellungen die Webfreigabe deaktivieren und erneut aktivieren.

UPDATE: Yosemite-Nutzer müssen noch eine weitere Direktive anpassen. Schaut dazu in die Kommentare.

Next up: MySQL

Nachdem wir jetzt einen Apache-Server laufen haben, laden wir uns mal die aktuelle Version von MySQL runter (als DMG im 64-bit Format!). Notiz dazu: auch wenn ihr den Installer für Mac OS 10.6 ladet – es wird trotzdem mit Lion funktionieren.

Nachdem der Download abgeschlossen ist, einfach das DMG-Image (nicht das compressed tar archive) wie gewohnt doppelklicken und den gemounteten Paketinhalt begutachten. Dort bitte die Datei mysql-5.5.15-osx10.6-x86_64.pkg (oder so ähnlich) öffnen. MySQL wird nun auf eurem System installiert.

Solltet ihr MySQL als Prozess starten wollen, sobald euer System startet, könnt ihr nach erfolgreicher Installation noch die Datei MySQLStartupItem.pkg öffnen. Das empfiehlt sich dahingehend, um Sachen wie “Deswegen habe ich jetzt anderthalb Stunden an dieser Fehlermeldung gesessen?!?!” zu vermeiden ;)

Zu guter letzt müsst ihr noch das MySQL.prefPane doppelklicken. Schon habt ihr eure eigene MySQL-Sektion in den Systemeinstellungen.

UPDATE: Für eine kleine Ergänzung dazu mit Hinweisen zu MySQL, schaut mal in die Kommentare ;)

PHP

Auch die PHP-Binaries kommen bei Mac OS schon mit. Allerdings müsst ihr hier noch die php.ini anpassen bzw. überhaupt erstmal eine erstellen. Dazu die Datei /private/etc/php.ini.default suchen, duplizieren und den .default-Zusatz entfernen. Dann die Datei öffnen (wir müssen noch ein paar Sachen anpassen). Als erstes müssen wir den Ort der default-sockets anpassen. Dazu müssen wir jedes Vorkommen von /var/mysql/mysql.sock durch /tmp/mysql.sock ersetzen. Sollte in diesen drei Zeilen nötig sein:

1
2
3
pdo_mysql.default_socket = /tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

Außerdem müssen wir die MySQL-Biliothek aktivieren. Dazu vor den folgenden Zeilen das eventuell vorhandene Semikolon (“;”) entfernen:

1
2
3
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll

Dadurch werden diese Zeilen entkommentiert, d.h. aktiviert. Außerdem sollten wir noch die für die Fehlerausgabe verantwortlichen Werte aktivieren.

1
2
display_errors = On
display_startup_errors = On

UPDATE: Gelegentlich scheint außerdem das PHP-Modul standardmäßig deaktiviert zu sein. Ich zitiere mal meinen Kommentar dazu: “Öffne mal die httpd.conf und such nach dem Text LoadModule php5_module. Ist er da und nicht auskommentiert?”

UPDATE: Lukas hatte Probleme mit den Schreibberechtigungen und hat die Lösung dafür in einem eigenen Blogpost festgehalten.

Ein letztes Problem beseitigen

Es ist vollbracht. Fast. Ich bin auf ein Verhalten gestoßen, dessen Ursachenforschung und Beseitigung mich echt Zeit gekostet hat, obwohl die Lösung doch so einfach war. Zwar habt ihr die eigentlichen Serverkonfigurationen in der httpd.conf festgelegt (ihr erinnert euch?), jedoch können diese von einer benutzerspezifischen Datei überschrieben werden. Und genau diese existiert standardmäßig :( Also auf zum Ordner /private/etc/apache2/users und die dort vorhandene Datei (in meinem Fall Enno.conf) löschen.

Feddich

Jetzt dürft ihr euch ein Belohnungsgetränk eurer Wahl gönnen und bei Gefallen diesen Artikel weiterempfehlen ;)

Quellen:

Autor: Enno

Ich bin Enno. PHP ist mein Ding, aber auch alles Neue rund um die Themen HTML5, CSS3 & Co finde ich interessant. Ich mag es Leuten zu helfen und mein Wissen weiterzugeben. Sollte dir mein Beitrag gefallen haben, lass doch nen Kommentar da oder benutze einen der Social Buttons, um deinen Dank auszudrücken ;)

Kommentare (72)

  1. Hallo Enno,

    ich habe alles ganz genau befolgt, jetzt kann ich plötzlich den Apache-Server nicht mehr aktivieren…das ist alles ziemlich frustrierend. Hast du vielleicht eine Ahnung warum das so ist. Ich habe den Rechner schon x Mal neu gestartet usw., nichts geht mehr. Ich arbeite übrigens mit Lion, kann es sein, dass das da etwas anders funktioniert????

    LG
    Steffi 

    • Hm, das ist ja nun nicht so schön.
      Wenn du sagst du kannst den Apache-Server nicht mehr aktivieren, meinst du damit in den Freigaben oder wie?
      Wann hast du das festgestellt?

      Mit Lion hat das nichts zu tun. Die Anleitung ist ja explizit für Lion geschrieben. 

  2. Naja, ich habe den optionalen Schritt am Anfang weggelassen. Den Rest bis zum Schluß dabe ich gemacht, nur die Zeilen
     
     
    “2 display_startup_errors = On
    1 display_errors = On”
     

    gabs in dieser Form nicht, die Default Werte waren sowieso auf ON gesetzt..darum habe ich nichts weiter verändert. 

    Als ich ganz durch war hat mir der Server den Zugriff auf meine lokale PHP-Website verweigert. Darum habe ich zur Sicherheit noch den erstell “optionalen” Schritt nachgeholt ;o)
    Dann habe ich unter Freigaben den Server deaktiviert und nun kann ich ihn nicht mehr aktivieren.

    Ich hoffe es st zu verstehen, was ich da gemacht habe…

    Danke auch für die schnelle Antwort. 

    • Aaaaalso:

      1. Dass der Zugriff auf deine lokale Webseite verwehrt wird, ist ulkig. Wie genau äußert sich das? Wird dir ein 503 Forbidden error angezeigt? Dann kann es an Zugriffsrechten liegen.
      2. Ich habe keine Ahnung, wieso der Apache nicht mehr starten sollte. Um eventuelle Fehlermeldungen zu erhalten, starte ihn mal über die Kommandozeile (sudo apachectl start). Insofern dort Fehler auftreten, sollten diese wohl ausgespuckt werden. Vielleicht hast du auch beim Editieren der Konfigurationsdateien aus Versehen irgendwas zerhauen. Das kannst du mit apachectl configtest prüfen.
      3. Ich vermute mal stark, dass du so zur Lösung kommen wirst. Falls nicht, gibt es immer noch Backup-Dateien, mit denen du alle Änderungen zurücksetzen kannst. Die php.ini.default ist ja schon im Blogpost erwähnt. Für die httpd.conf gibt es auch eine solche unter /private/etc/apache2/httpd.conf.default

      Ich hoffe, dass du damit weiter kommst. Es wäre schön, wenn du deine Ergebnisse hier festhältst, für die Nachfolgewelt ;)

  3. hm….leider funktioniert es immer noch nicht, ich habe auch keine Fehlermeldungen erhalten, siehe unten:

     schleppi:/ elepeppo$ sudo apachectl start
     
    WARNING: Improper use of the sudo command could lead to data loss
    or the deletion of important system files. Please double-check your
    typing when using sudo. Type “man sudo” for more information.
     
    To proceed, enter your password, or type Ctrl-C to abort.
     
    Password:
    org.apache.httpd: Already loaded
    schleppi:/ elepeppo$ apachectl configtest
    Syntax OK 

    Ich denke ich werde Lion neu installieren. Vielen Dank für Deine Hilfe!

    LG 
     

    • Eine Neuinstallation halte ich für etwas überzogen, solang nicht alle Wege erschöpft sind.

      Der Apache läuft ja. Was passiert denn, wenn du jetzt localhost aufrufst?
      Wenn du den Apache auch über sudo apachectl stop wieder normal stoppen bzw. über sudo apachectl restart neustarten kannst, scheint damit alles in Ordnung. Ist dann eher an Anzeigeproblem des Freigaben-Panels. Und das sollte nun nicht der Grund für eine Neuinstallation sein.

    • ich hate das gleiche problem
      “ich habe alles ganz genau befolgt, jetzt kann ich plötzlich den Apache-Server nicht mehr aktivieren…”
      es lag daran, dass der root ordner nicht derselbe seien darf wie der ordner der “persönlichen Weseite”, wenn man vorher die “persönliche Webseite” in den Systemeinstellungen freigeschaltet hatte …

  4. Pingback: Lokaler Webserver ohne MAMP, XAMPP & Co unter Mac OS Lion » der tag und ich

  5. Hi, zuerstmal ein herzliches Dankeschön für die super Anleitung.
    Auch ich habe alles so befolg wie beschrieben und hab mich riesig drüber gefreut als ich es probiert hab und es funktioniert hat.
    Bis ich dann die erste PHP-Seite testen wollte und da dann nur der Quellcode in meinem Browser angezeigt wurde anstelle von der MySQL-Auswertung die ich hätte sehen sollen.
    Also mit meinen HTML-Seiten kein Problem, nur mit PHP. (Ich habe die ganze MySQL-Anfrage auskommentiert und nur ein echo “Hallo Welt” zum Test stehen lasse und es wurde der komplette Quelltext mit dem auskommentierten angezeigt). Ich bin echt ratlos.
    Über ein paar Tips würde ich mich sehr freuen.
    Grüße vom Bodensee 

    • Hey Mark,

      klingt, als würde dein Apache nicht schnallen, das er bestimmten Code als PHP zu interpretieren hat. Mal schauen.

      1. Wo genau liegt das von dir angeforderte Dokument (im Dateisystem) und wie rufst du es auf (was steht in der Adresszeile im Browser)?
      2. Hast du an den standardmäßigen Systemdateien (php.ini und httpd.conf) irgendwas geändert, was nicht im Blogpost beschrieben ist?
      3. Öffne mal die php.ini und such nach einer Option short_open_tag und sag mal, auf welchen Wert sie gestellt ist.
      4. Öffne mal die httpd.conf und such nach dem Text LoadModule php5_module. Ist er da und nicht auskommentiert?
      5. Ebenfalls in der httpd.conf kannst du mal nach AddType application/x-httpd-php suchen. Ist da und ebenfalls nicht auskommentiert?
      Das wären die ersten Stellen, die mir einfallen.
      Falls hier alles in Ordnung ist, sehen wir weiter ;)

      Viele Grüße,

      Enno 

    • Danke für die ausführliche Antwort, aber ich habe das Problem schon gefunden gehabt. Es war der in Punkt 4 beschriebene Fehler. Ich musste erst das LoadModule für php5 wieder einkommentieren und jetzt läuft alles einwandfrei.
      Hier gibt es nicht zufällig auch ein Tutorial welches beschreibt, wie man den lokalen Webserver auch aus dem Internet erreichen kann?
      MFG
      Mark 

    • Auf deinen lokalen Webserver kannst du leider nur über das eigene Netzwerk zugreifen, deshalb ja die Bezeichnung “lokal”.

  6. Danke für den Beitrag, ich habe mein davon leicht abweichendes Vorgehen hier verbloggt: http://pheraph.net/2012/06/22/lokalen-webserver-des-macs-nutzen-plus-mysql

  7. Ähmähm. Vermutlich ist das eine ziemlich dumme Frage — aber wie erreiche ich dann eine Oberfläche zum einrichten neuer MySQL Datenbanken, wie etwa über PHPMyAdmin? Ist das dann ein separat zu installierendes Modul?

    Huch, wo sind nur meine Manieren: Vielen Dank, natürlich, für diesen wunderbaren Artikel! 

    • Hey Stevie,

      freut mich, dass dir Artikel gefällt.
      phpMyAdmin kannst du nachrüsten, möchte ich aber niemandem empfehlen, weil ich den Mist nicht mag.
      Schau dir mal SequelPro an. Absolutes Hammer-Programm, mMn Pflicht für jeden Macianer, der auf eine hübsche Art und Weise Datenbanken verwalten möchte.

      Beste Grüße,
      Enno 

    • Vielen lieben Dank für die superschnelle Antwort und den Tipp mit SequelPro! Schaut sehr interessant aus. :)

  8. Danke für die Anleitung. Hat geholfen, da bei Mountain Lion unter dem Menü Freigabe in der Systemsteuerung plötzlich die Webfreigabe fehlte.

    • Freut mich, dass ich helfen konnte :)
      Keine Ahnung, warum Apple meinte die Webfreigabe entfernen zu müssen. Die Wege des Apfels sind unergründlich. 

  9. Ich bin auch ein Apple-Anfänger und sage DANKE für diese Anleitung. Hat “fast” auf Anhieb geklappt.

  10. och, nichts schlimmes, hatte mein Hirn ausgeschaltet. Habe “localhost/username/Sites/index.php” statt nur “localhost/index.php” im Browser eingetippt. Ich hatte den Pfad im https.conf ja angepasst ;-).
    Nun ist alles gut, nochmal Danke. 

  11. Jo, Servus und Adieu xampp und Co.

  12. Lieber Enno, danke für diese ausführliche Anleitung.
    Ich möchte aber noch auf zwei Probleme aufmerksam machen. Wenn man nach deiner Anleitung unter localhost das CMS Contao installieren will, funktioniert das nicht richtig. Die Lösung ist auch in der httpd.conf zu finden. Dort ist etwa bei Zeile 130 unter User _www und unter group ebenfalls _www eingetragen. Das muss man ändern in: User Dein Benutzername und Group admin.
    Dann kann Contao ohne SafeModeHack installiert werden.
    VORHER aber unbedingt den Browser-Cache und alle Cookies löschen! Dann funktioniert es einwandfrei.
    Vielen herzlichen Dank nochmals!

    • Vielen Dank für den Kommentar. Da ich mit Contao noch keinerlei Berührungspunkte hatte, kann ich dazu nichts sagen. Ich hoffe, dass dein Hinweis dem ein oder anderen verzweifelten Nutzer hilft. Darum noch mal vielen Dank :)

  13. zunächst vielen dank für die anleitung, die bei mir aber leider nicht zum gewünschten ergebnis führt. kann gut sein, dass ich als anfänger noch arg im dunkeln tappe, aber wenn ich den pfad zur index.php im firefox eingebe (in meinem fall localhost/html/index.php), sollte doch eigentlich meine website (wordpress-startseite) angezeigt werden…? ich bin deinen schritten genau gefolgt. stattdessen erhalte ich aber stets bloß die 404-Fehler-Anzeige. über weitere hilfe wäre ich sehr dankbar… :)
     

    • Danke für deinen Dank ;)

      Zu deinem Problem: am besten rollen wir das Ganze mal von Hinten auf. Lass erstmal weg von WordPress und schauen, ob dein lokaler Webserver grundsätzlich erstmal funktioniert. Was passiert denn, wenn du nur localhost eingibst?

  14. danke für deine rückmeldung. also: nachdem ich dein tutorial durchgegangen bin, habe ich nach der eingabe von “localhost” immer ein “it works” erhalten. soweit so gut. anschließend habe ich dann die dateien des html-ordners meines blogs in meinen lokalen sites-ordner geladen. seitdem erscheint leider nur die anzeige: “Datenbankfehler: Fehler beim Aufbau einer Datenverbindung”. ich habe jetzt wieder alle dateien im Sites-Ordner gelöscht. Nach der eingabe von “localhost” erscheint nun, die “Index of”-Übersicht – natürlich ohne jeglichen inhalt. freu mich schon auf deine ideen.
     

    • Aaaaaalso. Da dir ja der Verzeichnis-Inhalt angezeigt wird, ist das Aufsetzen des lokalen Webservers erfolgreich gewesen. Deine Fehlermeldung (“Datenbankfehler: Fehler beim Aufbau einer Datenverbindung”) ist ja Applikationsseitig, also von deinem Blog aus. Du musst deine Zugangsdaten für die Datenbank überprüfen. Hast du in deiner lokalen Datenbank die entsprechende Datenbank mit Benutzerrechten vergeben?

      Viele Grüße,
      Enno 

  15. ja, das wird’s wohl sein. die benutzerrechte hab ich lokal natürlich nicht vergeben. ehrlich gesagt, weiß ich auch nicht, wie man das macht. habe eben nochchmal ein wenig gegooglt, bin aber nicht fündig geworden. hoffentlich habe ich mich nicht übernommen…
     

  16. und wieder ein kleiner schritt: habe etwas gebraucht, um das pw meiner mysql-Datenbank zu ermitteln. anschließend habe ich dann sequel pro bzw. phpmyadmin ausprobiert. mein problem jeweis: mir ist leider nicht klar, wie ich die anwendungen mit meinem server bzw. meiner mysql-datenbank verknüpfen soll. im augenblick geht die eingabe von username und pw natürlich ins leere. und selbst wenn mir das gelingt: kriege ich dann dadurch anschließend meine wordpress index.php zum laufen? ich weiß, mir fehlt sehr viel grundwissen, aber aufgeben will ich nicht. tausend dank für alle weiteren hinweise. > zu deiner frage: auf meinem webserver war alles bereits vorinstalliert. wp habe ich dann 2009 aufgesetzt, ohne mich wirklich damit auseinanderzusetzen …

    • Kannst du denn eine Verbindung zu Sequel Pro herstellen? Also zu deiner lokalen DB? Ist in dem verlinkten Artikel gut beschrieben.
      Hast du die Verbindung, musst du eine DB erstellen und Benutzername + Passwort für die DB vergeben (oben rechts “Benutzer”). Die Daten musst du dann in die wp-config.php eingeben, damit WordPress die DB-Verbindung herstellen kann. Anschließend sollte alles rund laufen :)

      Schau mal hier und hier

  17. hi enno, danke dir für deine hilfe bis hierhin. hab’s jetzt endlich geschnallt und über myphpadmin (passt für mich besser als sequel pro, weil auch auf dem webserver) und einen sql-dump meine DB lokal installiert. Aber zu früh gefreut: über die localhost/…/index.php erreiche ich jetzt zwar meinen wp-blog, der spuckt mir aber im blogbereich nur “Not Found – Apologies, but the page you requested could not be found.” aus. klicke ich auf irgendeinen link z. b. in der navileiste, verbindet sich der browser mit der live-seite. keine ahnung woran das nun wieder liegt (frust!). falls dir dazu noch etwas einfällt, wäre das super. falls nicht,  gilt sowieso: tausend dank für deine mühe!!

    • Hallo noch mal :)

      Du wirst schon früher oder später zu SequelPro zurück wollen. Aber wenn du mit PhpMyAdmin erstmal besser zurecht kommst, ist nichts gegen einzuwenden.

      2 Sachen noch:

      1. Prüf mal im selben Verzeichnis, wo deine index.php liegt die .htaccess-Datei (ist unter Umständen unsichtbar). Wenn der Pfad zu der index.php Websites/Unterordner/nochEinOrdner/index.php ist, muss in der .htaccess sowas stehen wie RewriteBase /Unterordner/nochEinOrdner/. Andernfalls wird dir vielleicht die index.php angezeigt, alle Unterseiten aber nicht.
      2. Da die den DB-Dump von deinem Live-System kopiert hast, ist alles genauso wie live, eben auch die Base-URL. Die musst du ändern. Am einfachsten geht das vermutlich über ein Plugin. Ich mach das über ein einfaches Suchen und Ersetzen im Dump. Also alle http://www.senaeh.de (und Abwandlungen davon mit/ohne http und www) durch localhost/Unterordner/nochEinOrdner ersetzen. Wenn du drauf stehst, kannst du dir auch vhosts anlegen, um dem langen Pfad zu entgegnen.
      Ich hoffe, das hilft. Bei weiteren Fragen: fragen ;) 
  18. hi enno, danke für deinen rat. habe ihn befolgt und sowohl die .htaccess wie auch alle einträge im sql-dumb (ca. 100 Stk.) geändert. Leider werden nun nicht nur – wie vorher auch – meine posts nicht angezeigt (not found), sondern auch das “rahmenlayout” ist dahin (alle gestaltungselemente sind nicht mehr sichtbar, nur die früheren navigationslinks werden noch angezeigt. anscheinend fehlt der zugriff auf die index.php). dafür spechen auch die absurden links der navigation, z. b. für den eintrag impressum: “localhost/wordpress/html/localhost/wordpress/html/index.php/impressum”. was habe ich schon wieder falsch gemacht …? Muss ich bei der dumb-bearbeitung genauer sein?

    • Scheint als hättest du beim Ersetzen tatsächlich ein paar Fehler gemacht. Du hast die Ersetzung scheinbar doppelt durchlaufen. Und eine index.php dürfte gar nicht in den Dumps drin stehen, zumindest nicht bei den Links.
      Dass du kein CSS hast (so interpretier ich deine Äußerung dazu mal), hat auch mit den falschen Ersetzungen zu tun.
      Ich meld mich mal per Mail bei dir, weil das mit dem Beitrag hier nichts mehr zu tun hat :D

  19. Hallo und vielen vielen Dank für die tolle Anleitung zur Einrichtung des lokalen Webservers! :-)
    Ich sitze nun den zweiten Tag davor und bekomme php nicht ans Laufen. :-(
    Ich habe alle notwendigen Zeilen, in allen notwendigen Dateien angepasst oder einkommentiert. Wenn ich eine php-Datei in meinem “Websites” Ordner lege und öffne, wird im Browser lediglich der Quellcode angezeigt.
    Was mich total verwirrt ist, dass in den Einstellungen meiner Webfreigabe die folgenden Parameter angezeigt werden:
    http://xxxs-mac-mini.fritz.box/~mark/  und  http://xxxs-mac-mini.fritz.box/ Ich habe vor zwei Tagen ein komplett jungfräuliches Lion aufgesetzt. Woher kommen diese Angaben und wie kann ich sie korrigieren? Ich drehe gleich echt durch. Schon den zweiten Tag verplempert und immer noch nicht zum Lernen gekommen.  :-(
    Ich würde mich über jeden Hinweis freuen. Die Tips und Ratschläge, welche via google zu finden sind, haben nicht weitergeholfen. Vielen vielen Dank und schönen Gruß!  Mark  :-)

    • Okidoki, das mit dem fritz.box Zusatz scheint wohl normal zu sein, weil mein Mini ja über die fritz.box erreichbar ist.
      PHP läuft jedoch trotzdem nicht, obwohl ich alle Dateien und Pfade angepasst und die Zeile in der httpd.conf aktiviert habe… mySQL habe ich auch gestartet.  *seufz* 

  20. Sodele, ich hab’s aufgegeben und in der httpd.conf lediglich das Laden von php aktiviert. Muss ich meine lokalen Websites halt in der Library hosten. So funktioniert zumindest alles. Das Anpassen der Pfade hat leider nicht funktioniert.  :-( Ob’s an den fritz.box Zusätzen gelegen hat, kann ich nicht beurteilen. Bitte nicht falsch verstehen; mir wäre lieber gewesen, ich wäre nicht über eure Seite gestolpert. ;-) Aber noch lieber wäre mir, ich hätte die verXXXte fritz!box nicht und hätte mich nach euren Angaben richten können. No offense!!! Vielen Dank für eure Mühe. Davor habe ich echt einen riesen riesen Respekt; und alle User ohne fritz!box sind hier bestens aufgehoben!
    Aber who knows, vielleicht finden wir ja auch dafür noch eine Lösung. Ich würde mich freuen!  :-)  Vielen Dank!

    • Also wenn im Library-Ordner alles funktioniert, scheint es ja echt nur ein Problem mit den Pfaden zu sein.
      Am besten du listet mir mal die Pfade auf, wie du sie angepasst hast, und was du nachher im Browser als URL aufrufst. Ist sicher nur ein kleiner Fehler.

      P.S.: wenn dir das hier zu öffentlich ist, gern auch per Mail. 

  21. Hallo Enno! Vielen Dank für die freundliche Resonanz! :-)

    Wie gesagt, in dem Einstellungsdialog für die Webfreigabe erscheinen folgende Parameter:

    http://xxxxs-mac-mini.fritz.box/~xxxx/ und http://xxxxs-mac-mini.fritz.box/ .

    In der http.conf habe ich die Pfade folgendermaßen angegeben:

    DocumentRoot”Users/xxxx/sites”

    und

    <Directory> “/Users/xxxx/Sites”>

    In meinem Ordner unter Benutzer / xxxx / Websites habe ich dann die php.info erzeugt, welche mir im Browser jedoch nur den Quellcode anzeigt. Dazu habe ich sie rechtsgeklickt und im Safari geöffnet.

    Wenn ich die Links in dem o.g. Dialog anklicke, wird mir diese standard apple website, mit dem grauen Verlauf angezeigt. – Den Pfad mit “fritz.box” darin gibt es jedoch nicht.

    Leider komme ich die nächsten drei Tage nicht dazu, mich mit dem Thema auseinanderzusetzen.  :-(
    Sehr gerne schicke ich Richtung Wochenende noch eine Mail, mit Screenprints und den genauen Details. Es mag schließlich weitere Anwender geben, die eine fritz!box haben und vielleicht auf ähnliche Probleme stoßen. Ich würde mich freuen, wenn wir/ ihr / ich denen / mir helfen gönn(t)en.  :-)

    • Jetzt werd’ ich verrückt! Nun kann ich sogar die o.g. Links hier in der Site anklicken und bekomme einmal die standard Website und einmal den It works! Hinweis. Häää? :-O

      1. Öffne die Seite mal nicht mit Rechtsklick sondern über http://localhost/dateiname.
      2. Du meinst hoffentlich info.php und nicht php.info?
      3. Welcher von den beiden Links zeigt denn bei dir was an?
      4. Hast du zwischenzeitlich mal die Webfreigabe entfernt und reaktiviert (=Neustart)?
      5. Bist du auf Lion unterwegs?
      Viele Grüße,
      Enno
  22. Hallo Enno, mein Name ist Michael.
    vielen Dank für deinen  ausführlichen Beitrag, den ich auch so ausgeführt habe, aber leider … ich bekomme immer nur den Quelltext zu sehen. Im Terminal erhalte ich im configtest folgende Fehlermeldung: 
    Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName.   
    Hilfe!! VG Michael
    PS: Betriebssystem ist Lion und der Apache ist aktiv ;-)

    • Hey Michael,

      vielen Dank für dein Feedback ;) Zu deinem Problem:

      1. Du greifst über http://localhost/meine-coole-webseite.php darauf zu?
      2. Hast du sichergestellt, dass das PHP-Modul läuft? (Zitat: Öffne mal die httpd.conf und such nach dem Text LoadModule php5_module. Ist er da und nicht auskommentiert?)

      Dann sehen wir weiter.

      Viele Grüße,
      Enno

  23. Sehr nice!
    Habe lange nach einem so guten Tutorial gesucht…
    Danke für diese Erleuchtung! (Bin jahrelang nur Windoof, u. Ubuntu-Nutzer gewesen, Darwin ist da doch “etwas” spezieller ;) )

  24. Der Tipp ist einfach mal wieder Gold wert. (Wo ist der Flattr-Button?) Jetzt kann ich mir wenigstens den Umweg über Mamp sparen.

    • Danke Lukas. Flattr bringt nichts, wenn man keine Tageszeitung oder oder kein Podcasts is :D  Wenn es dir weitergeholfen hat und du mir was gutes tun möchtest, erzähl es weiter ;)

  25. Hallo Enno,

    nachdem ich die Dateien mehrfach überprüft habe komme ich nun nicht mehr weiter. Ich kann alles installieren, der Webserver läuft und ich kann zumindest html-Seiten darstellen lassen.

    Trotzdem funktioniert mein PHP nicht. Die LoadModule ist nicht auskommentiert und trotzdem werden die PHP-Files nur als Quelltext dargestellt. Irgendwelche Ideen?

    Danke für deine Hilfe. 

    Sebastian

    System: Mac Os Lion 10.7.5 

    • Hey Sebastian,

      du kannst Dateien über localhost/index.php laden (also wirklich localhost und nicht file://)?
      Du hast LoadModule php5_module aktiviert?

      Dann kann es eigentlich nur am fehlenden Neustart des Webservers liegen (sudo apachectl restart).
      Oder deine httpd.conf wird noch mal überschrieben (siehe Absatz “Ein letztes Problem beseitigen”).

      Lass mich wissen, ob das geholfen hat.

      Viele Grüße,
      Enno

  26. Hi Enno,
    habe Deinen lehrreichen Artikel gelesen, weil ich bei mir einen Darstellungsfehler suche.

    AddType application/x-httpd-php ist bei mir nicht aktiv.


    Mein Problem liegt in der Darstellung meiner neuen Webseiten im html5-Format. Alles läuft gut, nur die CSS-Angaben werden nicht übersetzt.
    MacOSX 10.6.8, apache2
    Vielleicht hast Du ja einen Rat.
    Danke und Gruß Sirius

    • Hey Sirius,

      also CSS-Anzeige hat mit dem Einrichten eines lokalen Webservers nichts zu tun. Eigentlich kannst du sogar ohne Webserver HTML-Dateien von deinem lokalen Dateisystem in Browsern öffnen. Das CSS müsste trotzdem ausgewertet werden. Da liegt der Fehler woanders. Und das ist aus der Ferne leider schwer zu beurteilen.

      Sorry =/

      Viele Grüße,
      Enno 

    • Hi Enno,
      vielen Dank für Deine Bemühungen. Deine Antwort war mir im Grunde schon klar. Ich mach das auch nicht zum ersten Mal. Aber dieser Fehler hat sich so in meine Arbeit eingeschlichen, dass ich ihn nicht finden konnte. Zumal die betreffenden Html-Dateien nicht die einzigen Daten sind, welche auf dem Server liegen. Die anderen funktionieren einwandfrei.
      Nun, um die Katze aus dem Sack zu lassen .. die Benutzer-Rechte waren betroffen. Xmal gecheckt .. zwei Dateien waren nicht korrekt. Machmal ist man eben nur blind.
      In diesm Sinne noch mal Danke, und viel Erfolg für Deine Website.
      Sirius Krenzien

    • Hey Sirius,

      ok, interessant zu hören. Eine Sache mehr, an die man beim nächsten Troubleshooting denken kann.
      Vielen Dank auch für deinen Zuspruch :)

      Viele Grüße,
      Enno

  27. hallo enno,

    vielen dank für deine anleitung! mein system scheint zu laufen, aber sobald ich nach index.php in safari aufrufe kommt die meldung:

    Fehler beim Aufbau einer Datenbankverbindung
    in die wp_config.php hab ich eingetragen:

    define(‘DB_NAME’, ‘wordpress’);
     
    /** Ersetze username_here mit deinem MySQL-Datenbank-Benutzernamen */
    define(‘DB_USER’, ‘root’);
     
    /** Ersetze password_here mit deinem MySQL-Passwort */
    define(‘DB_PASSWORD’, ‘root’);
     
    /** Ersetze localhost mit der MySQL-Serveradresse */
    define(‘DB_HOST’, ‘localhost’);

    besten dank!
    dirk

    • Hey Dirk,

      freut mich, dass dir die Anleitung gefällt :)

      Zu deinem Problem:

      1. Die Datenbank “wordpress” hast du selbst angelegt?
      2. Sicher, dass das Passwort “root” ist? Im Auslieferungszustand kommt MySQL ohne Passwortschutz für den Root-User, wenn ich mich richtig erinnere.

      Viele Grüße,
      Enno

    • danke enno,

      zu 1. nein

      zu 2. hab es ohne passwort versucht, gleiches ergebnis

      ergo: fürchte, ich hab noch zu wenig ahnung von mysql und php. neige dazu, mamp zu nutzen, denn die allgemeinen problemchen sind da im web und gedruckt viel ausführlicher dokumentiert. :-(

      beste grüße
      dirk 

    • Hey Dirk,

      du musst sich auch darum kümmern, dass Datenbanken und entsprechende Nutzer da sind. Auch bei MAMP ;)

      Entweder du installierst dir phpMyAdmin lokal (das machst du bitte nicht) oder du schaust dir mal Sequel Pro an.
      Dort einfach mit localhost verbinden, neue Datenbank anlegen, einen Benutzer anlegen inkl. Passwort, diesem Benutzer Berechtigungen auf die Datenbanken geben und schon dürftest du durch sein.

      Jetzt musst du die Daten nur noch in die wp-config schreiben und alles sollte funktionieren.

      Viele Grüße,
      Enno 

  28. Hallo Enno,
    vielen Dank für dieses hervorragende Tutorial. Habe jetzt stundenlang gegoogelt, bis ich endlich auf Deiner Seite gelandet und dort die Lösung meines Problems gefunden hab.
    Vielen Dank und viele Grüße
    Tobias

  29. Hey Enno,
    ich habe alles so gemacht wie du es beschrieben hast und es hat soweit auch alles geklappt.
    Nur wie bekomme ich es hin das jetzt sowohl auf meine http://localhost/ die Seiten (html) stehen die ich auch geschrieben habe.. Wenn ich http://localhost/ aufrufe steht da nur “It works!”. allerdings kann ich die html datei in der der code für das “It works!” drinsteht niergens finden.
    habe mir gedacht wenn ich die datei, dur meine html datei ersetze, müsste da ja auch was anders stehen oder lige ich da falsch?

    • Hey David, sorry für die späte Antwort.

      Du findest die Datei – wie im Artikel beschrieben – unter Library/WebServer/Documents. Dort liegt eine Datei namens index.html oder index.html.en, die für den “It works!” Output sorgt.
      Entweder du packst deine Dateien dorthin, oder bearbeitest die httpd.conf, um ein eigenes Verzeichnis einzustellen. Schau dazu mal im Artikel unter “Webseiten-Root setzen”.

      Viele Grüße
      Enno

  30. Habe das ganze unter OS X Yosemite durchgeführt. Das funktioniert auch supertoll mit dem “It works!”, jedoch wird meine (einzige) HTML-Datei die den hübschen Namen “index.html” trägt nicht vom Apache gelesen – soweit ich das beurteilen kann.

    Hier den DocomentRoot-Code (hoffentlich auch als Code dargestellt?):

    DocumentRoot "Users/alexanderduffner/Sites"
    <Directory "/Users/alexanderduffner/Sites">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
        SetEnv APPLICATION_ENV development
    </Directory>

    Greife ich jetzt auf localhost zu, so erhalte ich nur das tolle “It Works!” – aber da wirkt garnix! Da kann ich nur nach “Hilfe!” schreien und warten ob wer kommt …

  31. Hier noch die Ausgabe von Terminal zum Befehl ‘apachectl configtest':

    Alexanders-MacBook-Pro:~ alexanderduffner$ apachectl configtest
    AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using Alexanders-MacBook-Pro.local. Set the 'ServerName' directive globally to suppress this message
    (2)No such file or directory: AH02291: Cannot access directory '/usr/logs/' for main error log
    AH00014: Configuration check failed
    Alexanders-MacBook-Pro:~ alexanderduffner$
  32. Ok … Langsam artet das hier schon fast in Spam aus (meinerseits). Aber ich hab’ es gestern dann doch noch geschafft!
    Mein Fehler war, dass ich einfach strikt nach Deinem Beitrag vorgegangen bin und eine Datei nach der anderen bearbeitet habe ohne auch nur versucht zu haben sie zu verstehen.
    Ich habe mir also nochmal die ‘httpd.config’ genauer angesehen, alle auszementierten Zeilen gelöscht und bin die übrig gebliebenen Zeilen Zeichen für Zeichen durchgegangen und habe folgende Zeilen entdeckt (eventuell nur in Yosemite, weshalb Autor nicht erwähnte?):

    ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Users/alexanderduffner/Sites/$1"
    <Directory "/Users/alexanderduffner/Sites">
        AllowOverride None
        Options None
        Require all granted
    </Directory>

    Wenn man die kommentierte(!) httpd.config aufmerksam durchgelesen hätte, dann hätte man das auch ohne meine Vorgehensweise zu Tage gebracht, da in den Kommentaren (der Datei) steht dass man diese Zeilen anpassen müsste (nur auf Englisch, versteht sich).

    • Danke für das Feedback. Kann durchaus sein, dass es sich um ein Yosemite-only Verhalten handelt. Ich übernehme den Hinweis mal in den Artikel, könnte auch anderen helfen.

      Vielen Dank nochmal.

  33. Hi, danke für die tolle Anleitung, der Webserver läuft nun auch ohne MAMP super.
    Allerdings habe ich das Problem, das alle Dateien die ich in das localhost Verzeichnis kopiere immer nur auf “lesen” stehen. Man muss jedesmal die Rechte ändern. Kann man diese per default auf “lesen/schreiben” setzen?
    Folgendes steht in der httpd.conf Datei:

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all

    oder ist der AllowOverrideAll nicht dafür zuständig?
    Danke für schnelle info!
    Frank

    • Hallo Frank,

      das klingt seltsam. Vllt hilft dir Lukas’ Blogpost weiter, wo er auf die Lösung für seine Probleme mit Schreibberechtigungen eingeht.

      AllowOverride All bedeutet nur, dass du über die .htaccess sogenannte Direktiven überschreiben kannst. Sollte mit den Schreibberechtigungen nichts zu tun haben.

      Viele Grüße
      Enno

Hinterlasse einen Kommentarsenäh

Pflichtfelder sind mit * markiert.