MAMP Stack

Do-it-yourself-AMP-Stack für macOS (Sierra, El Capitan, Yosemite)

AMP steht für „Apache, MySQL, PHP“, also der Webserver Apache, die Datenbank MySQL sowie PHP. Das sind die Ecksteine für ein lokales HTTP-Server-Environment.

In diesem Artikel werden wir im Do-it-yourself-Verfahren einen AMP-Stack auf dem Mac unter macOS Sierra, El Capitan oder Yosemite einrichten, und im Anschluss unsere Online-Site auf den lokalen Server clonen (am Beispiel von WordPress).

Falls du bereits einen funktionierenden AMP-Stack hattest, der nach einem System-Update (z.B. auf Sierra) nicht mehr läuft, dann brauchst du nicht nochmals von vorne anfangen, sondern siehe den Artikel Quick-Fix für AMP-Stack unter macOS Sierra (10.12).

Wozu ein lokaler HTTP-Server?

Ein lokaler HTTP-Server erlaubt es, einen Clone – oder eine Variante – der aktuellen Online-Website auf dem Rechner – also lokal und offline – laufen zu lassen. Das ist zum Beispiel absolut empfehlenswert, um neue Plugins auszutesten oder sonstige Experimente durchzuführen. Man kann/sollte auch neue Websites lokal vorbereiten, bevor man sie überhaupt online stellt.

Warum keine Fertiglösung wie MAMP oder AMPPS?

AMPPS ist ein hervorragender, fertig runterladbarer AMP-Stack, der unserer Do-it-yourself-Lösung mindestens ebenbürtig und in einigen Aspekten sogar überlegen ist (zentrales UI, integrierte Installer für eine Vielzahl von CMS und sonstigen Apps).

Aber …

  • Wo bleibt der Spaß bei Fertiglösungen?
  • Kein Lerneffekt bei der Fertiglösung.
  • Warum etwas doppelt installieren, das (zum größten Teil) schon vorhanden ist?
  • Der Do-it-yourself-Stack ist „nativer“, d.h., besser integriert: Es muss keine Dritt-App gestartet werden, der Server ist nach jedem Mac-Reboot automatisch verfügbar.
Das sind doch genügend Argumente für einen „richtigen“, handgearbeiteten Stack, oder?

Voraussetzungen

Ein paar grundlegende Kenntnisse

Terminal
Nichts spezielles, aber wir sollten wissen, wie wir eine Befehlszeile im Terminal ausführen, und was eine Tilde ~ oder sudo bedeuten. Aber keine Sorge, sämtliche Ausdrücke, die hier in einem Code-Block auftauchen, können einfach ins Terminal kopiert werden.
Texteditor
Wir sollten wissen, was ein Texteditor ist, und mit einem Vertreter dieser Gattung umgehen können. Dabei ist es egal, ob es sich um einen Command-Line-Texteditor wie Nano oder Vim handelt oder um einen GUI-Texteditor wie BBEdit, TextMate, Sublime Text usw. Wichtig ist, dass der Editor korrekt mit root-User-Dokumenten umgehen kann.1 Falls du noch keinen bevorzugten Texteditor hast, empfehle ich dir BBEdit oder die Lightversion TextWrangler, vorzugsweise die Nicht-MAS-Versionen.

Homebrew

Homebrew ist im weitesten Sinne ein Package Manager, ähnlich RPM oder dpkg auf Linux. Homebrew ist so praktisch und gut, dass es eigentlich ein Pflicht-Install für jeden Mac sein sollte. Falls noch nicht installiert, dann ist jetzt der richtige Zeitpunkt, es nachzuholen.2

Wenn bereits installiert, dann bitte sicherstellen, dass es up-to-date ist und sauber funktioniert, mit …

brew update

und anschließend …

brew doctor

Ggf. die Reparaturanweisungen ausführen.

Wir benutzen Homebrew zum Installieren von MySQL und phpMyAdmin. Wir könnten jeweils auch die dmg-Installer hernehmen, aber die Homebrew-Methode hat den Vorteil, dass …

  • wir uns nicht um die $PATH-Variable kümmern müssen,
  • sich die Installationen in der Zukunft halbautomatisch updaten lassen (brew upgrade --all)
Gut, dann kann’s losgehen.

Komponenten installieren

Das meiste ist auf dem Mac bereits vorhanden. Wir brauchen nur noch MySQL und (optional) phpMyAdmin.

MySQL installieren und vorbereiten

Wie bereits angekündigt, erledigen wir das kurz und schmerzlos mit Homebrew. Also Terminal öffnen und mit folgender Zeile MySQL installieren:

brew install mysql

Wenn die Installation abgeschlossen ist, sorgen wir dafür, dass MySQL in Zukunft automatisch startet:

ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents

Dies legt einen Link zum Launch-Agent ins User-Launch-Agents-Verzeichnis. Wir laden jetzt den Launch-Agent mit:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Hierdurch sollte MySQL auch sofort gestartet werden.3

Mit der folgenden Zeile erledigen wir die grundlegende Konfiguration:

mysql_secure_installation

Es werden nun nacheinander folgende Optionen abgefragt, die wir auch nacheinander alle mit Y bestätigen:

  • Set root password? [Y/n] Passwort natürlich notieren. Die Passwortqualität ist nicht so wichtig hier, da wir davon ausgehen, dass der Server nie von außen erreicht werden kann.
  • Remove anonymous users? [Y/n]
  • Disallow root login remotely? [Y/n]
  • Remove test database and access to it? [Y/n]
  • Reload privilege tables now? [Y/n]

Nun noch ein Verzeichnis für MySQL anlegen mit …

sudo mkdir /var/mysql

und einen Link anlegen mit …

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Abschließend Datenbank neu starten mit …

mysql.server restart

MySQL sollte nun betriebsbereit sein.

phpMyAdmin installieren

Das ist eigentlich ein optionaler Install, aber da wir später sicher ein schönes GUI für Datenbankarbeiten möchten, installieren wir phpMyAdmin doch gleich mit:

brew install phpmyadmin

Je nach Organisation des Homebrew-Repository kann es passieren, dass wir nun einen Hinweis auf einen tap erhalten. Falls das so ist, dann installieren wir phpMyAdmin einfach aus dem von Homebrew genannten Unterverzeichnis, z.B. …

brew install homebrew/php/phpmyadmin

Das wars schon.

Ordner ~/Sites

Wir wollen die Website später auf Userlevel anlegen und brauchen hierfür einen geeigneten Ort. Der früher übliche „Sites“-Ordner im Userhomeverzeichnis scheint irgendwo unter OS 10.9 oder 10.10 verschwunden zu sein. Ich hatte ihn noch, aber das mag daran liegen, dass ich schon länger keinen Clean-Install mehr gemacht habe.

Also: Wenn der Sites-Ordner fehlt, dann bitte einfach im Homeverzeichnis anlegen.

Sites folder in $HOME

Apache konfigurieren

Jetzt beginnt die eigentliche Arbeit. Apache ist zwar vorinstalliert auf dem Mac, aber wir müssen ihn so konfigurieren, dass alles gut zusammenspielt.

Zuerst testen wir ob Apache überhaupt funktioniert. Hierzu starten wir ihn mit …

sudo apachectl start

Jetzt gehen wir mit dem Webbrowser zum ersten Mal auf unsere lokale Site, indem wir folgende Adresse aufrufen:

http://localhost

Wenn Apache funktioniert, sollten wir jetzt den schönen Satz It works! im Browser sehen.

Apache works
Apache funktioniert

Apaches Haupt-Konfigurationsdatei ist httpd.conf und liegt im Verzeichnis /private/etc/apache2/.

Wenn wir einen GUI-Texteditor verwenden, öffnen wir den „Öffnen“-Dialog des Editors mit ⌘O, drücken dann ⇧⌘G und kopieren diesen Pfad ins Eingabefeld:

/private/etc/apache2/httpd.conf

Falls wir einen Command-Line-Editor verwenden, geben wir im Terminal z.B. nano /private/etc/apache2/httpd.conf/ ein.

Im geöffneten httpd.conf ändern wir nun ein paar Zeilen. Zum leichteren Auffinden gebe ich die Zeilennummern an. Es ist also hilfreich, im Texteditor die Anzeige der Zeilennummern einzuschalten.4

Aber Achtung: Je nach Apache-Version können die Zeilennummern abweichen. Betrachte sie bitte als Orientierungshilfe. Entscheidend ist der Inhalt der Zeile!

Zuerst gehen wir zu Zeile 52 …

Zeile
52Listen 80

und ändern sie zu …

52Listen 127.0.0.1:80

Dies ist eine zusätzliche Sicherheitsmaßnahme, um auszuschließen, dass der Server von außen erreicht werden kann.5

Die nun folgenden Zeilen müssen entkommentiert werden, d.h., durch Entfernen des #-Zeichens am Zeilenanfang aktiviert werden:

Zeile
71#LoadModule authn_core_module libexec/apache2/mod_authn_core.so
72#LoadModule authz_host_module libexec/apache2/mod_authz_host.so
166#LoadModule userdir_module libexec/apache2/mod_userdir.so
168#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
169#LoadModule php5_module libexec/apache2/libphp5.so
493#Include /private/etc/apache2/extra/httpd-userdir.conf

Zeilen 71 und 72 sind wahrscheinlich bereits aktiviert. Wie auch immer, danach müssen die sechs Zeilen so aussehen:

71LoadModule authn_core_module libexec/apache2/mod_authn_core.so
72LoadModule authz_host_module libexec/apache2/mod_authz_host.so
166LoadModule userdir_module libexec/apache2/mod_userdir.so
168LoadModule rewrite_module libexec/apache2/mod_rewrite.so
169LoadModule php5_module libexec/apache2/libphp5.so
493Include /private/etc/apache2/extra/httpd-userdir.conf

Jetzt kopieren wir ans Ende der Datei noch Folgendes:

Alias /phpmyadmin /usr/local/share/phpmyadmin

<Directory /usr/local/share/phpmyadmin/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>

Mit httpd.conf wären wir damit fertig und wir können die Datei sichern und schließen.

Als nächstes legen wir ein neues Textdokument mit folgendem Inhalt an:

<Directory "/Users/*/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Require all granted
</Directory>

Das Dokument speichern wir als [yourusername].conf im Verzeichnis /private/etc/apache2/users/. [yourusername] bitte mit deinem Short-Username6 ersetzen.

Der komplette Pfad der neuen Datei ist also:

/private/etc/apache2/users/[yourusername].conf

Um sicherzugehen prüfen wir noch schnell die Permissions der neuen Datei mit ls -l /private/etc/apache2/users/[yourusername].conf; diese sollten -rw-r–r– lauten.7

Nun öffnen wir im Texteditor die Datei …

/private/etc/apache2/extra/httpd-userdir.conf

Wir entkommentieren dort die Zeile …

Zeile
16Include /private/etc/apache2/users/*.conf

In Zeile 10 sollte unser Sites-Ordner als UserDir Sites eingetragen sein.

OK, jetzt sollte alles passen. Zeit, den Apache neu zu starten mit …

sudo apachectl restart

Abschließende Tests

Webserver und Webverzeichnis

Im Sites-Ordner (in unserem User-Homeverzeichnis) legen wir jetzt einen Ordner an, in den wir nachher unsere Website kopieren wollen. Nennen wir ihn einfach blog.

Wir öffnen den Webbrowser und gehen zu …

http://localhost/~[yourusername]

[yourusername] natürlich wieder mit deinem Username ersetzen.

Diese Adresse ist das Root-Level unseres Sites-Ordners im Homeverzeichnis. Im Browser sollten wir jetzt den Inhalt dieses Ordners angezeigt bekommen, also den eben angelegten blog-Ordner.

Index of Sites directory
Inhalt des Sites-Ordners

MySQL und phpMyAdmin

Im Browser diese Adresse eingeben:

http://localhost/phpmyadmin/

Es sollte sich nun das phpMyAdmin-Interface öffnen. (Falls nicht, dann bitte versuchen, MySQL neu zu starten mit mysql.server restart)

phpMyAdmin login window
phpMyAdmin-Login

Als Username root eingeben sowie das vorher angelegte Passwort. Wir haben nun Zugang zur phpMyAdmin-Konsole.

phpMyAdmin console
phpMyAdmin-Konsole

Wenn alles geklappt hat: Glückwunsch, der AMP-Stack ist fertig und funktioniert. Wir können jetzt die Online-Site übertragen, oder natürlich eine neue Site aufsetzen.

Tipp: Apache setzt Owner/Group aller Dateien im Website-Verzeichnis (also in unserem Beispiel der blog-Ordner in ~/Sites/) auf _www/staff, d.h. du musst dich jedesmal authentifizieren, wenn du beispielsweise ein CSS extern editieren willst. Wenn das nervt, dann würde ich die Permissions ausweiten mit sudo chmod -R 777 ~/Sites/blog/ (der angegebene Pfad muss dem tatsächlichen Pfad bei dir entsprechen).8

Übertragen einer Online-Site
(WordPress)

Was beim Übertragen einer Site zu beachten ist, hängt vom jeweils verwendeten CMS ab.9 Deshalb kann ich hier keine allgemeingültige Anleitung bringen und beschreibe nur kurz, wie des Backup einer WordPress-Site am einfachsten aufgespielt werden kann.

Für WordPress gibt es ein wunderbares Backup-Plugin, das uns dabei hilft: Duplicator. Das Plugin nimmt uns die ganze Feinarbeit mit wp-config.php und Datenbankimport ab. Das Plugin bitte installieren.

Backup (Clone) erstellen

Bei Duplicator heißen die Backups „Packages“. Sie enthalten das gesamte Verzeichnis und die Datenbank. Im Help-Menü von Duplicator findet sich eine sehr gute Anleitung, die du aber höchstwahrscheinlich nicht brauchst, da das Ganze ziemlich selbserklärend ist. Was wir tun müssen sind zwei Dinge:

  1. Package erstellen: Menüpunkt Duplicator -> Packages -> Create New.
  2. Anschließend Package und Installer-File runterladen.

Tipp: Um das Package klein zu halten, können wir vorher das Site-Verzeichnis etwas verschlanken:

  • In den Plugin-Ordnern nicht benötigte Language-Dateien löschen (via FTP).
  • Caches entleeren: Cache- und Minify-Plugins, v.a. das (sehr gute) Autoptimize-Plugin können im Lauf der Zeit gehörige Datenmengen ansammeln.10 Bitte nicht die Cache-Files via FTP löschen, sondern über die „Entleeren“-Buttons der jeweiligen Plugins!
Duplicator: package completed
Installer und Archive downloaden (klicken)

Backup aufspielen

Jetzt das heruntergeladene Package-Zip und das installer.php-File in den lokalen Site-Ordner kopieren. In unserem Beispiel von oben wäre das der „blog“-Ordner. Darauf achten, das sich außer den beiden Dateien nichts im Ordner befindet! Bei der Gelegenheit können wir eine Kopie des Package-Zip als Backup aufbewahren.11

Im Browser öffnen wir nun das installer.php-File, das sich an dieser Adresse befinden sollte:

http://localhost/~[yourusername]/blog/installer.php

[yourusername] ist natürlich wieder entsprechend zu ersetzen.12

Duplicator ist wieder sehr hilfreich und wir müssen nur den Anweisungen folgen:

  1. Da es die Erstinstallation ist, wählen wir „Create New Database“.13

    Duplicator: create new database

  2. Gültigen Username und Passwort eingeben. Falls wir vorher in phpMyAdmin keinen neuen User angelegt haben ist das also der MySQL-User „root“ mit dem zugehörigen Passwort.
  3. Wir klicken auf „Test Connection“ und erhalten den Fehler „Database Found: Fail“ angezeigt. Das ist normal, da die Database noch nicht angelegt ist. Wichtig ist, dass die Verbindung zum Server geklappt hat („Server Connected“). Falls nicht, haben wir uns wahrscheinlich oben bei Username oder Password vertippt.

    Duplicator: connection test result

  4. Checkmark setzen und „Run Deployment“ klicken.
  5. In Schritt 2 bestätigen wir Pfad und URL.

    Duplicator: confirm path

Duplicator installiert nun Dateien und Database und wir kommen im letzten Schritt zu den „Final Steps“:

Duplicator: final steps

  1. Punkt 2 „Save Permalinks“ klicken. Wir müssen uns jetzt einloggen (Login des Website-Admins, nicht das von MySQL) und kommen auf die Permalinks-Admin-Page. Dort sichern wir die Permalinks („Save Permalinks“-Button“).
  2. Tab schließen und Punkt 4 der Final Steps klicken („File Cleanup“).

Duplicator löscht nun seine Installer-Files und das Zip-Archiv. Wir bekommen den Cleanup-Report angezeigt und …

Duplicator: cleanup report

… sind damit fertig!

Abschließend noch die Plugins auf eventuelle Fehlermeldungen checken und sie ggf. abschalten (z.B. WP Supercache, Ninja Firewall).

Fehler bei der Installation

Wahrscheinlich nicht beim ersten Mal, aber bei späteren Installationen wird Duplicator irgendwann mal die Installation abbrechen mit dem Fehler „Failed in extracting zip file. Please be sure the archive is completely downloaded.“

Meiner Erfahrung nach passiert das dann, wenn der Website-Ordner nicht komplett leer ist, sondern dort noch irgendwelche – unsichtbaren – Dot-Files, wie .htaccess oder andere, rumliegen. Duplicator kann diese manchmal nicht überschreiben und damit das Zip-Archiv nicht komplett entpacken, was zu der etwas irreführenden Fehlermeldung führt.

Dann einfach den Ordner entleeren mit (Beispiel) …

sudo rm -v ~/Sites/blog/.*

Der Pfad muss natürlich dem auf deinem Computer entsprechen!


Fußnoten

  1. Aus diesem Grund sollten wir TextEdit nicht benutzen. (Auch Editoren aus dem Mac App Store eignen sich nur bedingt.)
  2. Die Installation ist einfach und auf der Homepage findet sich eine perfekte Anleitung.
  3. Falls MySQL mal aus irgendeinem Grund nicht läuft, lässt es sich jederzeit starten mit mysql.server start bzw. neustarten mit mysql.server restart
  4. Falls dein Texteditor keine Zeilennummernanzeige hat, dann bitte die Suchfunktion des Texteditors benutzen.
  5. Sofern im Router keine explizite Port-80-Freigabe eingestellt ist, sollte dies eh unmöglich sein.
  6. Identisch mit dem Namen deines Homeverzeichnisses.
  7. Falls nicht, ändern wir das mit sudo chmod 644 /private/etc/apache2/users/[yourusername].conf
  8. Ich weiß, das ist nicht die „saubere“ Art, aber der Inhalt des lokalen Website-Ordners sollte sicherheitstechnisch unbedenklich sein.
  9. Verschiedene config-Dateien, relative Links vs absolute Links, etc.
  10. Vor allem wenn wir viel an den CSS herumgebastelt haben.
  11. Eine Kopie des installer.php ist im Zip-Archiv enthalten.
  12. Wenn es beim Ausführen von installer.php zu einer Fehlermeldung kommt, bitte als Erstes überprüfen, ob wir Schreibrechte für das Verzeichnis haben.
  13. Bei späteren Installationen können wir die bestehende Database überschreiben mit „Connect and Remove All Data“

50 Gedanken zu „Do-it-yourself-AMP-Stack für macOS (Sierra, El Capitan, Yosemite)“

  1. Vielen Dank für die Anleitungen.
    Ich konte die Infos zur die Installation mit Duplicator gerade gut gebrauchen. Beim Ausführen der installer.php hing ich allerdings erst mal einer Fehlermeldung fest, bis mir vom Provider gesagt wurde, ich müsse die Schreibberechtigung ändern. Ab da funktioniere alles super.

  2. erst einmal danke für die arbeit mit dem tutorial.
    soweit ich dies überblicke, habe ich alles soweit richtig eingepflegt. allerdings öffnet er mir nicht den ordner »sites« in meinem user verzeichnis bzw. teilt mit der browser folgendes mit:

    Forbidden
    You don’t have permission to access /~username on this server.
    (den klarnamen habe ich hier mal in username geändert)

    vielleicht hat dafür eine einfache erklärung

    1. Hi,

      überprüf mal Folgendes:

      • Der Ordnername sollte Sites sein (nicht sites).
      • Im Browser hast du http://localhost/~username/ geöffnet, nicht /~username, korrekt?
      • Was passiert, wenn du im Browser http://localhost aufrufst? Bekommst du wie beschrieben „It works!“ angezeigt?
      • Ist der Inhalt der Textdatei /private/etc/apache2/users/[yourusername].conf so wie im Tutorial beschrieben? Korrekte Schreibung von Sites? Dateiname [yourusername].conf entspricht deinem realen Username? Korrekte Schreibung des Username?

      In der Datei [yourusername].conf wird dem Apache-Server mitgeteilt, welches sein root-Verzeichnis ist. (Also das übergeordnete Verzeichnis, in dem sich dann der Website-Ordner („blog“ im Tutorial) befindet.) Wenn hier was nicht übereinstimmt, weigert er sich, es zu öffnen.

      1. hallo und danke für die fixe antwort. es lag in der tat am ordnernamen. apache läuft nun, so denke ich jedenfalls. mein versuch joomla zu installiren schlug erstmal fehl (sieht den ordner nicht) aber das wird sicher. ein anderes problem habe ich mit phpmyadmin. beim aufruf kommt folgendes:

        Forbidden
        You don’t have permission to access /phpmyadmin/ on this server.

        da hänge ich gerade (seit stunden) und bin eher ratlos.

        merci und grüße

        r.f.

        1. Freut mich, dass Apache läuft.

          PHPMyAdmin:

          • Die Zugriffsadresse (im Browser) sollte sein: http://localhost/phpmyadmin/
          • Ich nehme an, du hast es mit Homebrew installiert? Dann solltest du folgende Ordner auf der Platte haben:
          • Das originale Verzeichnis @ /usr/local/Cellar/phpmyadmin/4.5.1/share/phpmyadmin/ (die Versionsnummer kann natürlich verschieden sein)
          • Einen Symlink, der auf das obige Verzeichnis verweist @ /usr/local/share/phpmyadmin

          In der Datei httpd.conf muss sich der dazu passende Eintrag Alias /phpmyadmin /usr/local/share/phpmyadmin … etc. befinden (siehe den Abschnitt oben im Tutorial).

          Falls das alles bei dir so stimmt und es geht trotzdem nicht, müsste man sich mal die Zugriffsrechte ansehen.

  3. ohjeh, das sieht nicht schön aus:
    Das originale Verzeichnis @ /usr/local/Cellar/phpmyadmin/4.5.1/share/phpmyadmin/ (die Versionsnummer kann natürlich verschieden sein)

    der ordner ist nicht vorhanden. da ist guter rat teuer.

    merci

    r.f.

    1. sehe schon vor lauter bildschirm nicht mehr gerade aus.

      Zeit für ein Bier und fürs Bett 😉

      Der Symlink ist auch vorhanden und der Eintrag in httpd.conf stimmt überein?

    1. Und der Pfad in httpd.conf stimmt mit dem Pfad des Links überein?

      Edit: Also, ich meine, genauso wie in dem Code-Block oben im Tutorial, einschließlich aller Berechtigungen:

      Alias /phpmyadmin /usr/local/share/phpmyadmin
      
      <Directory /usr/local/share/phpmyadmin/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
      </Directory>
      1. wie im tutorial beschrieben ans ende der datei gestellt.
        hier eine copy aus der datei:



        [Text entfernt wegen Formatierungsfehler.]

        1. OK, da fehlen jetzt die ganzen Tags wie z.B. <Directory /usr/local/share/phpmyadmin/>, aber ich gehe davon aus, dass sie in deiner Datei vorhanden sind …

          Der Symlink /usr/local/share/phpmyadmin funktioniert? (Doppelklick im Finder bringt dich ins Originalverzeichnis, also z.B. /usr/local/Cellar/phpmyadmin/4.5.1/share/phpmyadmin/ ?)

          Die Permissions von /usr/local/Cellar/phpmyadmin/4.5.1/share/phpmyadmin/ sind 755, Owner bist du, Group ist admin ? (Darf nicht root sein!)

          1. das ist alles korrekt. die tags fehlten wegen des kopierens in das kommentarfenster. will eben nicht gehen. vielleicht liegt es auch an el capitan. merci nochmals !!!! den thread hier kannst du ja löschen. verwirrt sicher eher andere.

            gruß

            r.f.

            1. Nein, an El Capitan liegt es nicht. Ich habe den Stack hier unter El Capitan am Laufen, einschließlich phpMyAdmin.

              Du kannst versuchen, phpMyAdmin neu zu installieren:

              1. Homebrew updaten: brew update
              2. Homebrew checken: brew doctor
                Dabei werden auch die Permissions des /usr/local-Verzeichnisses gecheckt. Evtl. Reparaturanweisungen ausführen.
              3. phpMyAdmin deinstallieren: brew uninstall phpmyadmin --force
              4. phpMyAdmin neu installieren: brew install phpmyadmin

              Beim Installieren zeigt es dir im Terminal nochmal den genauen Konfigurationsblock an, der ans Ende von /etc/apache2/httpd.conf hinzugefügt werden muss. Möglicherweise ist er bei deiner Systemkonfiguration leicht verschieden. Aus dem Terminal kopieren und in httpd.conf einfügen (anstelle des alten Konfigurationsblocks).
              Du kannst den Block auch jederzeit abrufen mit brew info phpmyadmin .

              phpMyAdmin ist übrigens nur ein GUI für die Datenbank. Du könntest es z.B. auch mit Adminer versuchen. Ich habe das auch installiert, neben phpMyAdmin, und benutze es sogar häufiger als phpMyAdmin, da es ein angenehmeres UI hat.
              Adminer lässt sich auch via Homebrew installieren: brew install adminer .

  4. super Anleitung einfach und verständlich.

    Ich habe aber trotzdem einen kleines Problem, Ich habe es unter ElCaptain durchgeführt.
    Apache läuft, aber ich komm nicht in mein Rootlevel http://localhost/~[yourusername] es wird nichts angzeigt.

    Gruß S.R.

    1. Im Apache-Rootlevel musst du natürlich das ~[yourusername] entsprechend ersetzen, also z.B. http://localhost/~basti/.

      Wenn’s nicht daran liegt, dann bitte checken, ob du die Datei [yourusername].conf korrekt angelegt hast. Also mit dem Inhalt genauso wie in der Anleitung beschrieben. Und auch die Datei /private/etc/apache2/extra/httpd-userdir.conf nicht vergessen.

      Du findest das in der Anleitung ab hier. (Bitte evtl. die Anleitung ohne Browsercache neu laden, da ich den Page-Anchor eben erst eingefügt habe!)

      (Der Apache-Rootlevel ist übrigens nicht gleich deinem Site-Rootlevel. Um auf die Site zu kommen brauchst du z.B. http://localhost/~basti/blog/, wobei „blog“ der Name des Unterordners ist, den du in „Sites“ vorher angelegt hast und wo sich deine Site-Dateien befinden.)

  5. Hallo feine Anleitung funktioniert auch soweit ganz gut.
    Hab meine Webseite unter Sites eingepflegt nur leider ist nur html möglich alles was php betrifft geht leider nicht. kein header keine db nichts zu sehen.

    1. Hi,

      php sollte auf OS X eigentlich vorinstalliert sein. Was bekommst du denn auf php --version (im Terminal) als Antwort?

      Was zeigt which php an?

  6. Also PHP muß vorhanden sein:
    PHP 5.6.20 (cli) (built: Mar 31 2016 17:14:52)
    Copyright (c) 1997-2016 The PHP Group
    Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

    und das hier gibt which php aus:
    /usr/local/bin/php

    Ich weiß jetzt allerdings nicht was ich damit anfangen kann.
    Möchte doch nur einfach mein Kochbuch im lokalen Netzwerk am laufen haben auf das vlt. noch meine Fam. später zugreifen kann, denn hosten hat einfach immer laufende Kosten und der Mini stand noch rum.

    1. OK. Das ist zwar nicht das originale PHP von OS X (das liegt in /usr/bin), aber ich glaube nicht, dass es damit was zu tun hat. Wenn phpinfo zufrieden ist, sollte es ja nicht weit fehlen. Muss nachdenken …

      Owner/group von deiner Site-root sind OK? (sollte _www und staff sein.)

      1. Ich glaub das liegt an dem MacMini, ich hab das ganze mal auf meinem MacBook aufgesetzt und siehe da bis auf die Datenbank geht alles (Passwort vergessen 🙁 ). Werd ich wohl den Mini nochmal komplett neu aufsetzen müssen. 🙁

        1. Freut mich zu hören, dass es auf dem anderen Rechner läuft. Danke für die Rückmeldung!

          Ich habe vorhin noch ein paar interessante – und eventuell relevante – Infos hier gefunden, und auf der dort verlinkten Seite.

          1. Hallo Tom,

            also das mit dem Server hab ich nun hinbekommen und läuft auch super im Lokalem Netzwerk aber eins bleibt mir noch ein Rätzel.
            Die utf-8 kodierung läuft für den Apache und PHP perfekt also im normalen Text der im Webprojekt drin ist wird alles sauber dargestellt aber alles was aus der DB kommt ist mit komischen Zeichen bei den Umlauten usw. Muß ich da jetzt alles in meiner DB umschreiben oder kann man da noch was am SQL server machen?

            Gruß matze

            1. Sorry für die späte Antwort.

              Das Textencoding der DB („Collation“) sollte eigentlich auf utf8_general_ci stehen, die diversen Windows-CP- und ISO-Latin-Kodierungen sind schon seit geraumer Zeit obsolet.

              Wenn die DB ein anderes Encoding hat, wirst um ein Neu- oder Re-Enkodieren wahrscheinlich nicht rumkommen.

              Hier sind ein paar IMO gute Lösungen beschrieben. (Zwei der dort vorgeschlagenen Lösungen kommen sogar ohne DB-Dumping aus; bin mir aber nicht sicher, ob das wirklich funktioniert. Ausprobieren an einer Test-DB kann ja nichts schaden …) Siehe auch mehrere andere Suchergebnisse.

              1. Alles super geklappt, nun habe ich noch eine Sache feststellen müssen. Meine Datenbank kann ich wunderbar auf meiner Webseite im localen Netzwerk auslesen bzw php kann darin lesen, nur wenn ich etwas neues hinzufügen möchte geht es nicht. Kann das mit den Schreibrechten zu tun haben?

                  1. Alles i.O. war mein Fehler, wenn in der Tabelle nur Text rein darf und dann ein Smiley mit reinkopiert wird kann es nicht gehen. Für sowas muß ich mal noch eine Kontrolle einbauen 😉

                    1. Fein.

                      Da deine DB ja jetzt UTF-8 versteht, kannst du diese ja auch als Text einsetzen (Unicode: U+1F600; UTF-8: F0 9F 98 80) 

  7. Super Anleitung, habe meinen MBP neu mit 10.11.6 ausgerüstet und alles mit Homebrew installiert.
    Nun würde ich aber aus Bequemlichkeitsgründen phpmyadmin gern in deutscher Sprache haben.
    Wie krieg ich das denn hin?

    1. Hi Dieter,

      freut mich dass es geklappt hat!

      phpmyadmin gern in deutscher Sprache

      Hast du’s schon ganz normal versucht über die Einstellungen im phpMyAdmin-GUI? Soweit ich gesehen habe, sind die nötigen Sprachdateien vorhanden (bei der Installation via Homebrew: in /usr/local/Cellar/phpmyadmin/4.5.4/share/phpmyadmin/po).

      Die Einstellungen im GUI öffnest du mit einem Klick auf das kleine Home-Icon, direkt unterhalb des phpMyAdmin-Logos, oben in der Datenbanken-Seitenleiste. Danach weiter mit Appearance settings >  More settings. Ggf. Konfigurationshinweise beachten, die eingeblendet werden.

      Ich selber hab es noch nicht ausprobiert, da ich auf deutsche Softwarelokalisierungen lieber verzichte – übrigens ebenfalls aus Bequemlichkeit 😉

      Tom

      1. Moin Tom,
        spät aber nicht zu spät.
        Ich habe versucht über das GUI die Sprache zu ändern. Dazu muss ich „setup script“ anklicken und da erscheint dann:
        – Cannot load or save configuration Please create web server writable folder config in phpMyAdmin top level directory as described in documentation. Otherwise you will be only able to download or display it. –
        Da komm ich dann leider nicht weiter. Bin kein versierter Kenner der Materie.
        Meine phpmyadmin Version ist 4.6.4

        Ich betreibe noch einen iMac, bei dem habe ich den AMP stack ohne homebrew installiert, da funktioniert alles. Kann ich die homebrew installation ohne weiteres rückgängig machen und dann alles ohne Homebrew aufsetzen, ohne dass ich mir irgendwelche Restprobleme einhandele?

        Vielen Dank für Deine bisherige Hilfe
        Denn eigentlich will ich den MBP nur zur Entwicklung von WP-sites nutzen.

        1. Ich hab das jetzt mal ausprobiert:

          Beim Homebrew-Install fehlen offenbar doch die nötigen Language-Files. Das ist natürlich in deinem Fall schade, aber im Grunde ist es schon OK, denn ich würde mich herzlich bedanken wenn ich mit 40 überflüssigen Sprachdateien beglückt würde 😉

          Wenn du willst, kannst du Deutsch in drei Minuten „nachrüsten“, auch ohne das seltsame Setup-Script:

          1. Lade dir hier eine „all-languages“-Version runter.
          2. Entpacke das Archiv und kopiere den Ordner locale/de nach /usr/local/Cellar/phpmyadmin/4.5.4/share/phpmyadmin/ (auf die Versionsnummer im Pfad achten). Der Pfad muss also am Ende so aussehen: /usr/local/Cellar/phpmyadmin/4.5.4/share/phpmyadmin/locale/de
          3. Öffne das Conig-File /usr/local/Cellar/phpmyadmin/4.5.4/share/phpmyadmin/config.inc.php (sollte ein Symlink sein)
          4. Setze $cfg['Lang'] = 'de'; ein.
          5. Das Config-File sichern. Fertig.

          Obiges gilt für den Homebrew-Install. Wenn du phpMyAdmin später (via HB) updatest, kann es sein, dass du den Sprach-Ordner erneut reinkopieren musst. Das Config-File wird aber so bleiben wie es ist.

          Kann ich die homebrew installation ohne weiteres rückgängig machen und dann alles ohne Homebrew aufsetzen, ohne dass ich mir irgendwelche Restprobleme einhandele?

          Kommt drauf, wie du „alles“ installierst.

          Wenn es ein offener AMP-Stack ist (also so etwas, wie in meinem Artikel beschrieben), oder wenn du phpMyAdmin einfach ohne Homebrew nochmal installieren willst, dann würde ich das Homebrew-phpMyAdmin deinstallieren mit brew uninstall phpmyadmin.

          Am Rande: Du kannst alles, was du mit Homebrew installiert hast, mit uninstall wieder deinstallieren.

          Wenn es ein vorgekautes AMP-Packet ist, wie z.B. AMPPS oder MAMP dann würde ich mir keine Sorgen machen, da diese i.d.R. ihre eigenen Programme beinhalten und drauf zugreifen.

          Hoffe, das hilft.

          Viele Grüße

          1. Moin Tom,
            vielen Dank, hat alles geklappt. Ich konnte die Language Dateien von meinem iMac rüberziehen und auf dem MBP entsprechend installieren.
            phpmyadmin ist jetzt in Deutsch, so wie ich es haben wollte.

            Super, nochmals Danke, hätte nicht gedacht, dass ich jetzt überhaupt noch so eine gute Hilfe bekommen würde.

            Werde diese Webseite merken.

            1. Freut mich, dass es geklappt hat.

              Wenn du auf macOS Sierra updatest (das Public Release ist für morgen, 20. September, angekündigt), lass mich wissen, ob irgendwelche Probleme mit dem AMP-Stack auftauchen.

              (Ich habe die Sierra-Beta nicht auf dem Rechner; von daher hab ich keine Ahnung, ob Anpassungen nötig sein werden.)

              Grüße

              1. Mein MBP ist leider nur Anfang 2008 und somit wahrscheinlich nicht für Sierra geeignet. Auf meinem iMac kann ich Sierra installieren, da habe ich auch diesen AMP stack installiert aber nicht mit hembrew.
                Gruß Dieter

                1. Auf meinem iMac kann ich Sierra installieren, da habe ich auch diesen AMP stack installiert aber nicht mit hembrew.

                  Ja, ist ja egal, ob du MySQL und phpMyAdmin händisch oder via Homebrew installiert hast.

                  (Ich hab im Artikel Homebrew nur hergenommen, weil es die Installation vereinfacht, zentralisiert und sich um die Updates kümmert. Aber ob mit Homebrew oder händisch, der Stack sollte am Ende genauso aussehen, evtl. sind die Pfade verschieden.)

                  Übrigens, wenn du mal wieder Lust zum Basteln hast: phpMyAdmin ist nicht das Nonplusultra. Wie am Ende des Artikels erwähnt, es gibt zahlreiche Alternativen, allen voran Adminer. Auf dem Localhost benutze ich phpMyAdmin eigentlich nur aus Lerngründen, weil es das am weitesten verbreitete ist.

                  1. Ich habe heute Sierra installiert und den ersten update. Danach habe ich die Anweisungen für die Configuration von Apache in die httpd.conf erneut durchgeführt.
                    Ales klappt wunderbar.
                    Danke.

  8. Hallo Tom!
    Bis hierhin
    Als nächstes legen wir ein neues Textdokument mit folgendem Inhalt an:

    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Require all granted

    Das Dokument speichern wir als [yourusername].conf im Verzeichnis /private/etc/apache2/users/. [yourusername] bitte mit deinem Short-Username6 ersetzen.

    Der komplette Pfad der neuen Datei ist also:

    /private/etc/apache2/users/[yourusername].conf

    … hats gepasst!!!

    Mein Dokument lässt sich jedoch nicht speichern?!?
    [yourusername] habe ich versucht zu ersetzen, ist jedoch nicht möglich!
    Im genannten Verzeichnis befinden sich bereits zwei Dateien, allerdings nicht mit „meinem“ Short-Usernamen. Hier liegt nur guest.conf und der weitere Benutzer mit Admin-Rechten! Mein Versuch, die guest.conf zu überspeichern hat funktioniert, jedoch ist dieser nicht mit den gleichen Berechtigungen angelegt!

    Warum ist in apache2/users/
    mein Benutzer nicht vorhanden?
    Wie kann ich weiter vorgehen?

    LG Miriam

    1. Hi Miriam,

      /private/etc/apache2/users/[yourusername].conf
      … hats gepasst!!!

      Du hättest eigentlich die Datei als miriam.conf abspeichern sollen, wobei „miriam“ dein Username ist.

      [yourusername] habe ich versucht zu ersetzen, ist jedoch nicht möglich!

      Wie meinst du „ist nicht möglich“? Evtl. wirst du nach deinem Admin-Passwort gefragt, wenn du den Namen ändern willst. Wenn du das eingibst, solltest du den Dateinamen ändern können. Wie versuchst du denn, den Dateinamen zu ändern und was passiert dann?

      Warum ist in apache2/users/ mein Benutzer nicht vorhanden?

      Weil du die Datei eben noch nicht angelegt hast. (Apache macht das meines Wissens nicht automatisch.) Wenn die conf-Datei eines anderen Users drin liegt, dann denke ich mal, dass der andere User diese irgendwann mal angelegt hat.

      Gruß
      –Tom

      1. Hallo Tom!
        Danke für deine schnelle Antwort!
        Zur Speicherung meiner Datei laut deinen Angaben
        /private/etc/apache2/users/[yourusername].conf
        ich habe mehrere Namen versucht, als . txt, als .conf mit dem Namen miriam, Miriam, MacMiriam usw.
        Bei jedem Versuch wurde keine Speicherung durchgeführt und es kam der Hinweis:
        This operation couldn’t be completed, because an error
        occurred. (MacOS Error code: -4960)
        Ebenso ist mir aufgefallen, dass jetzt nach update von OS X auf Sierra auch die
        mysql_sucure_installation
        nicht mehr funktioniert – hier kam ein Error:

        Securing the MySQL server deployment.

        Enter password for user root:
        Error: Can’t connect to local MySQL server through socket
        ‚/tmp/mysql.sock‘ (2)
        Miriams-iMac:

        Miriams-iMac:~ MacMiriam$ mysql.server restart
        ERROR! MySQL server PID file could not be found!
        Starting MySQL
        ………………………………………………………………………………………..
        ERROR! The server quit without updating PID file
        (/usr/local/var/mysql/Miriams-iMac.pid).
        Miriams-iMac:~ MacMiriam$

        Soll ich eine Deinstallation durchführen? Und wie funktioniert das? Kann man hier auch Screenshots schicken, da dies sicher besser zur Dokumentation dienen würde!

        Im Pfad /etc/apache2/users
        sind zwei Dateien vorhanden, die sicher NIEMAND bewusst auf meinem Rechner angelegt hat (meinen Mann kann ich zu 100% ausschließen und ein weiterer User ist nicht vorhanden).
        Die Dateien benennen sich : ‚Guest.conf’und ‚reinhardreiser.conf‘
        Bei meinem letzten Versuch habe ich dann die Datei ‚Guest.conf‘ überspeichert, das hatte funktioniert, jedoch weiß ich nicht, ob das weitere Folgen nach sich zieht. Eventuell genügt es hier, die Datei einfach umzubenennen? Kann die Datei ‚reinhardreiser.conf‘ einfach gelöscht werden, ohne dass es weitere Folgen nach sich zieht?
        Vielen Dank im Voraus! LG Miriam

  9. Hi Tom,
    Now that I am running my development on my Sierra device with the native stack I have the following problem:
    My WordPress site is running and all of the sudden when I want to start again it says :Fehler beim Aufbau einer Datenbankverbindung, which means cannot connect to the database.
    Looking with phpmyadmin into the database the table wp-options is empty.
    I deleted the dtabase and imported again from my back up.
    Worked fine.
    After some days, the same problem again.
    What do you think could be the cause of this? Did not find anything comparable with google.

    1. Hi Dieter,

      Looking with phpmyadmin into the database the table wp-options is empty.
      I deleted the dtabase and imported again from my back up.
      Worked fine.
      After some days, the same problem again.

      Never seen something similar here. For me, this rather sounds like a WordPress problem than a MySQL problem. Maybe a malfunctioning plugin that wreaks havoc? (Not every plugin that runs fine on your online site will also run fine in a local environment.)

      First thing I would try is disable all WP plugins, and see if it still happens.

      1. Hi Tom,
        I have 3 different DB’s on my MySql. When the problem ocured 2 of them faild. One is the WP Database the other is from a Joomla Site. The third is a WP databas which is allways ok.
        This time I stopped the MySQL server viat the terminal. I did a new start of the iMac and suddenly the WP and Joomla site where ok again.
        Magic?
        One question: I want to be able to start and restart the MySQL server via the Systems App.
        This is not possible in my instalation. I can not Stop the server. Is it possible to fix this and if how to?

        1. I did a new start of the iMac and suddenly the WP and Joomla site where ok again.
          Magic?

          Yep, rebooting is magic 😉 It’s almost always a good idea to reboot when something goes wrong…

          I want to be able to start and restart the MySQL server via the Systems App.

          I don’t know that app.

          As you said, you can start/stop MySQL in the Terminal. If you want to make this more comfortable you could set an alias for that command in ~/.bash_profile, or write a little AppleScript or Automator Service so you can start/stop it with a shortcut.

          The automated start of MySQL is handled in the background by launchd (at least on my installation). You can manually access it with the launchctl command. (Type man launchctl in the Terminal to learn more.)

          Or get the handy little app LaunchControl, which gives you a GUI for all launchd jobs.

  10. Hallo Tom,
    ich hab da mal wieder ein kleines Problem.
    Da ich noch eine 2. Website habe ohne php bekomm ich diese servernachricht:
    „Forbidden,
    You don’t have permission to access /index.html on this server.“
    Was muß ich wo ändern damit auch html funktioniert?

    lg matze

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.