MAMP Stack

Do-it-yourself-AMP-Stack für macOS (High Sierra, 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).

Update 7 Okt 2017 @ 18 h: Aktualisiert für macOS 10.13 (High Sierra)

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 startet und in Zukunft nach einem System-Reboot auch automatisch startet3:

[Update 2017-08-22] Hierzu bitte beim Installieren von MySQL die Meldungen von Homebrew beachten! Mit neueren Versionen lässt sich der Start (und automatische Neustart nach Reboot) von MySQL z.B. einfach mit

brew services start mysql
bewerkstelligen.

Nur wenn diese Anweisung nicht angezeigt wird, oder nicht funktioniert, nach der alten Methode verfahren:

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

Dies legt einen Link zum Launch-Agent ins User-Launch-Agents-Verzeichnis. Den Launch-Agent starten mit:

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

MySQL läuft also nun und wird zukünftig automatisch gestartet. 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 MySQL neu starten mit …

brew services restart mysql

MySQL sollte nun betriebsbereit sein.4

phpMyAdmin installieren

Das ist 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.5

Aber Achtung: Je nach Apache-Version können die Zeilennummern abweichen. Die angegebenen Zeilennummern gelten für macOS 10.13 (High Sierra). Betrachte sie bitte als Orientierungshilfe. Entscheidend ist der Inhalt der Zeile!

Zuerst gehen wir zu Zeile 56 …

Zeile
56Listen 80

und ändern sie zu …

56Listen 127.0.0.1:80

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

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

Zeile
76#LoadModule authn_core_module libexec/apache2/mod_authn_core.so
77#LoadModule authz_host_module libexec/apache2/mod_authz_host.so
173#LoadModule userdir_module libexec/apache2/mod_userdir.so
175#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
176#LoadModule php5_module libexec/apache2/libphp7.so
510#Include /private/etc/apache2/extra/httpd-userdir.conf

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

76LoadModule authn_core_module libexec/apache2/mod_authn_core.so
77LoadModule authz_host_module libexec/apache2/mod_authz_host.so
173LoadModule userdir_module libexec/apache2/mod_userdir.so
175LoadModule rewrite_module libexec/apache2/mod_rewrite.so
176LoadModule php5_module libexec/apache2/libphp7.so
510Include /private/etc/apache2/extra/httpd-userdir.conf

Wie gesagt, die Zeilennummern können variieren, v.a. bei älteren Systemen (vor macOS 10.13). Auf 10.12 und früher lautet der vorletzte Eintrag in der Tabelle oben „libphp5.so“

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-Username7 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.8

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).9

Übertragen einer Online-Site
(WordPress)

Was beim Übertragen einer Site zu beachten ist, hängt vom jeweils verwendeten CMS ab.10 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.11 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.12

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.13

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“.14

    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. Wenn der Neustart mit diesem Befehl nicht klappt, dann die alte Methode mysql.server restart versuchen.
  5. Falls dein Texteditor keine Zeilennummernanzeige hat, dann bitte die Suchfunktion des Texteditors benutzen.
  6. Sofern im Router keine explizite Port-80-Freigabe eingestellt ist, sollte dies eh unmöglich sein.
  7. Identisch mit dem Namen deines Homeverzeichnisses.
  8. Falls nicht, ändern wir das mit sudo chmod 644 /private/etc/apache2/users/[yourusername].conf
  9. Ich weiß, das ist nicht die „saubere“ Art, aber der Inhalt des lokalen Website-Ordners sollte sicherheitstechnisch unbedenklich sein.
  10. Verschiedene config-Dateien, relative Links vs absolute Links, etc.
  11. Vor allem wenn wir viel an den CSS herumgebastelt haben.
  12. Eine Kopie des installer.php ist im Zip-Archiv enthalten.
  13. 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.
  14. Bei späteren Installationen können wir die bestehende Database überschreiben mit „Connect and Remove All Data“

82 Gedanken zu „Do-it-yourself-AMP-Stack für macOS (High Sierra, 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.

  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

  11. Hi Tom,
    das hier ist immer noch das beste und verständlichste DIY-Tutorial zu diesem Thema im WWW. Ich betreibe mittlerweile drei Server vollkommen problemlos unter verschiedenen OS. Schnell gemacht, sauber, stabil! Top … *daumenhoch*

    Weiter so!
    Michael

  12. Backend will nicht:
    Keine Chance mehr ins Backend, bzw. Manager zu gelangen! Lauter Fehlermeldungen …
    MacOS El Capitan 10.11.6; PHP 7.1.8; mysql Ver 14.14 Distrib 5.7.19, for osx10.11 (x86_64) using EditLine wrapper;

    Hab alles lokal nach deiner Anleitung eingerichtet: http://dflect.net/diy-ampstack/ Die Meldung „It works!“ kommt!
    Super Anleitung, funktioniert aber hier leider nicht mit meinen (3) Seiten. Nicht mal eine neue Installation (modx-2.5.0-pl UND modx-2.5.7-pl)
    krieg ich zum Laufen!
    Rechte sind auf der lokalen FP 755; auch auf Unterobjekte angewendet.

    Höflichst: Bitte um Hilfe!

    1. Rechte sind auf der lokalen FP 755; auch auf Unterobjekte angewendet.

      Check mal ob user des Verzeichnisses _www ist. (Group: wheel oder staff.)

      Bis jetzt machte das Apache immer selber, aber hab gerade eine neue Installation gemacht und da musste ich den user händisch setzen (sudo chown…).

      Gruß
      – Tom

  13. Hallo, ich habe den Webserver nach der Anleitung konfiguriert.
    Es klappt soweit auch gut. Aber wenn ich nur http://localhost eingebe, bekomme ich ein :

    Forbidden
    You don’t have permission to access / on this server.
    Sollte hier nicht „It Works!“ stehen?

    Wenn ich http://localhost/~[username] eingebe, wird der Inhalt vom Verzeichnis „Sites“ angezeigt.

    1. Hab gerade alles auf einem relativ unberührten MBP mit 10.12.6 installiert, und es funktioniert immer noch, einschließlich Apaches Meldung „It works!“.

      Aber nachdem dir ja http://localhost/~[username] den Inhalt anzeigt, muss Apache ja laufen. Seltsam.

      Bitte mal user/group des http-Verzeichnisses checken (siehe meine Antwort oben an Michael), aber „It works!“ sollte davon gar nicht berührt sein. Die Schritte mit den Apache-Config-Files hast du alle gemacht, ja?

      – Tom

  14. Hi Tom,

    Erstmal herzlichen Dank für deine Antwort!
    Nach reichlich Zeit beim Suchen nach einer Antwort, erlaube ich mir trotzdem auf die Gefahr hin, doof zu sein, die Frage:
    1.: Wie füge ich den user „_www“ meinem System hinzu?
    In den Sys-Prefs geht das wohl nicht …aber bevor ich mich weiter blamiere-ich hab keine Ahnung und im Web finde ich nichts wirklich hilfreiches.
    2.: Der Befehl „mysql_secure_installation“ resultiert in einer Passw.-Forderung, welche mir das Terminal so quittiert (habe alle in Frage kommenden Passw. probiert):
    Enter password for user root:
    Error: Access denied for user ‚root’@’localhost‘ (using password: YES)
    3.: Warum diese Bezeichnung meines Festplattennamens im Terminal:
    unknown00236c8b51c3:~ Garemu$ (Garemu ist klar, aber unknown00 …?)

    Vielen Dank im Voraus!

    1. Zu 1:

      Du brauchst keinen User hinzuzufügen. Starte mal Apache und öffne den Activity Monitor (/Applications/Utilities). Apache erscheint dort als „httpd“. Schau nach als welcher User es läuft, siehe Screenshot (nicht root, sondern der andere httpd):

      Diesem User weist du dann das Verzeichnis deiner http-Docs zu (also ~/Sites/blog im Beispiel): Im Terminal sudo chown -R _www ~/Sites/blog. Ggf. Pfad und/oder User anpassen.

      Zu 2:

      Das ist keine PW-Abfrage bei mysql_secure_installation, sondern du wirst gebeten, ein neues PW zu erstellen. Sofern die zweite (Bestätigungs-)Eingabe mit der ersten übereinstimmt, dürfte es also zu keiner Fehlermeldung kommen.

      Bei neueren MySQL-Versionen musst du zuerst das Security-Level auswählen; „0“ ist das geringste, erfordert aber auch ein mindestens 8-stelliges PW.

      Zu 3:

      Das ist nicht der Name der Festplatte, das ist der Name des Computers. Offenbar hast du den so (wahrscheinlich versehentlich) festgelegt. Kannst du im GUI ändern in System Preferences > Sharing > Computer Name. Wenn geändert, dann Terminal neustarten.

      Gruß
      – Tom

  15. Lieber Tom,

    zuerst: Gib mir die Möglichkeit, deine Arbeit für mich zu entlohnen. Irgendeine Bank-ÜW-Adr. o.ä.; nein, ich bin nicht vermögend, aber ich weiß, was sich gehört.

    Leider klappen viele Aktionen nicht so wie von mir gewünscht.
    Pkt 1.) Passt & verstanden. Nur: Ist das normal, dass ich in der Aktiv.-Anzeige ca. 10 (oder noch mehr) _www user habe, aber nur einen root?
    Pkt 2.) Verstanden hab ich das voll, trotzdem kommt diese Meldung nach Eingabe von mysql_secure_installation und danach Passworteingabe:
    „Securing the MySQL server deployment.

    Enter password for user root:
    Error: Can’t connect to local MySQL server through socket ‚/tmp/mysql.sock‘ (2)“
    Es wurde von Terminal angegeben:
    „MySQL is configured to only allow connections from localhost by default

    To connect run:
    mysql -uroot“
    Habe da nur ein großes Fragezeichen …
    Auch beim Einrichten von z.B. Drupal oder Joomla kommen Fehlerm. bzgl. DB-Passwort, Benutzer-Name.
    Die Abfrage nach dem Security-Level kam ganz am Anfang meiner AMP-Aktion in Begeisterung deiner Anleitung; da hab ich auch ein Passw. erstellt, welches jetzt scheinbar nicht mehr gilt.
    Habe MySQL (leider?) auch mehrfach deinstalliert (brew uninstall mysql
    Uninstalling /usr/local/Cellar/mysql/5.7.19… (322 files, 234.8MB) und anschließend wieder installiert (brew install mysql
    Updating Homebrew…
    ==> Auto-updated Homebrew!
    Updated 2 taps (caskroom/cask, homebrew/core).
    ==> Updated Formulae //// usw.).
    Pkt 3.) Bingo! Das hat geklappt! Dies hat vermutlich viel Verwirrung gestiftet, da ich auch einen MacPro-Desktop habe, auf welchen ich mit CCC mein Book nach Clonen kopiert habe.
    Ich unterstelle MacOS mal Intelligenz; das OS hat die doppelten Gerätenamen registriert und deswegen eigene (kryptische) Namen (hier: unknown00236c8b51c3) vergeben, um die beiden Geräte (MBP & MP) zu unterscheiden.
    Sorry, beschimpf mich-schwer erziehbar-aber gerne würde ich einen Obulus dafür entrichten.

    1. Hi Michael,

      gerne würde ich einen Obulus dafür entrichten

      Nein, kein Obolus. Das würde mich moralisch dazu verpflichten, zeitnah (und überhaupt) auf Kommentare zu antworten. Und da diese Site nicht mein Lebensmittelpunkt ist, möchte ich das nicht 😉

      Und solange jemand sich die Zeit nimmt, vernünftige Fragen zu formulieren, nehme ich mir auch gern die Zeit sie zu beantworten. Dabei lerne ich auch.

      [Es ist übrigens laut Duden tatsächlich Obolus, nicht Obulus. Aber ich habs auch erst dank macOS’ Rechtschreibprüfung gemerkt 😉 ]

      Anzahl der httpd-Prozesse

      Diese werden vom root-httpd-Prozess dynamisch generiert, je nach Anzahl der Verbindungsanfragen (z.B. aufgrund verschiedener Elemente auf einer Webseite, die jeweils verschiedene Apache-Mods benötigen, siehe auch hier).

      Wenn du Apache neustartest (sudo apachectl restart) wirst du sehen, dass sich die Anzahl der Prozesse wieder auf zwei reduziert (1 root, 1 _www). Wenn du eine Seite aufrufst, starten weitere Instanzen.

      Du kannst die Option KeepAlive Off in deine httpd.conf setzen, womit sich die meisten Instanzen nach erfolgter Verbindung sofort wieder beenden. Laut diesem Artikel ist es eine Frage von mehr RAM-Bedarf (mehrere Prozesse, die dauernd wach bleiben) versus mehr CPU-Bedarf (weniger Prozesse, die sich bei Bedarf jedesmal neu starten).

      Im Falle eines lokalen Website-Clones, der ja keinen Publikumsverkehr hat, dürfte es ziemlich egal sein. Aber wenn die Anzahle der Prozesse stört, ist KeepAlive Off sicher „schöner“. Danke für den Hinweis.

      Was Sites mit höherem Verkehr betrifft, ist dies hier evtl. lesenswert.

      Übrigens:

      Hab gerade in meiner http.conf gesehen, dass die korrekte Group für Apache ebenfalls _www ist, nicht staff oder wheel wie ich anderen Antworten gesagt habe. Ob es für einen lokalen Webserver eine Rolle spielt, weiß ich nicht. Der korrekte Befehl zum händischen Setzen der Ownership des Website-Ordners (wenn nötig) wäre also sudo chown -R _www:_www ~/Sites/blog (wobei der Pfad natürlich anzupassen ist).

      MySQL-Passwort

      Erst mal die Frage, was bezweckst du mit mysql -uroot? Eigentlich sollte sich doch nur die Website mit der Datenbank verbinden, und wenn du die Datenbank editieren willst, dann machst du das doch in der Regel via GUI (z.B. phpMyAdmin).

      Ich kann mich jetzt aber daran erinnern, dass ich vor Jahren auch mal ein seltsames MySQL-Passwort-Problem hatte. Und, soweit ich mich erinnere, war die nicht so elegante Lösung, alle möglichen MySQL-Config-Files zu löschen, z.B. auch in /usr/local/var/mysql/ (Uninstall via Homebrew löscht diese, glaub ich, nicht.)

      Aber vielleicht helfen dir diese Tipps weiter:
      https://support.rackspace.com/how-to/mysql-resetting-a-lost-mysql-root-password/
      https://stackoverflow.com/questions/26076266/mysql-uroot-password-in-ubuntu

      Lass mich wissen, ob du damit weiterkommst.

      Gruß
      – Tom

  16. Lieben Dank, Tom!
    Leider kann ich meiner Verzweiflung kaum Ausdruck verschaffen. Hier einige mich verwirrende Details:
    1.)
    Terminal:
    php -v
    PHP 7.1.8 (cli) (built: Aug 7 2017 15:02:19) ( NTS )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    Drupal:
    WEBSERVER
    Apache/2.4.18 (Unix) PHP/5.5.38
    PHP
    5.5.38
    2.)
    PHP OPCODE CACHING
    Nicht aktiviert
    PHP OPcode caching can improve your site’s performance considerably. It is highly recommended to have OPcache installed on your server.
    Finde im Web keine Info bezgl. Installation OPcache; darüberhinaus weiß ich ja nichtmal die konkrete php-Version wegen o.g. untersch. Angaben.
    3.)
    Dem von dir genannten Link folgend (Remove MySQL completely per The Tech Lab), hab ich wie beschr. MySQL deinstalliert; danach wieder nach der darunter stehenden Anleitung (re-) installiert.
    Diese Fehlerm. kam:
    mysqladmin: connect to server at ‚localhost‘ failed
    error: ‚Can’t connect to local MySQL server through socket ‚/tmp/mysql.sock‘ (2)‘
    Check that mysqld is running and that the socket: ‚/tmp/mysql.sock‘ exists!

    Falls es dir zuviel wird-kein Problem, echt! Hast mir schon sehr viel geholfen. Trotzdem bin ich erstaunt, dass es keine Bundles für php, mysql incl. GUIs gibt, welche man Mac-like anklickt und „es läuft“-von mir aus mit einer Menge Abfragen, die dann (bei exakter Fragestellung) auch exakt beantwortet werden können.
    Besten Gruß!
    P.S.: Noch kurz: De-Installationen von php & MySQL scheinen mir auch eine Wissenschaft für sich zu sein …

    1. Hallo Michael,

      1)

      OK, wir scheinen die gleiche PHP-Version zu haben, offenbar via Homebrew installiert (/usr/local/bin/php).

      Die zweiten Infos (ab „Drupal“) mit dem 5.5-er PHP und der alten Apache-Version scheinen sich auf die von macOS defaultmäßig installierten Komponenten zu beziehen. Aber auf welche Abfrage ist das die Antwort?

      [ Mit type -p kannst du übrigens herausfinden welches Programm Pfadpriorität hat, also aktuell benutzt wird. Also z.B. type -p php sollte /usr/local/bin/php ausgeben, das neuere Homebrew-PHP. (Mit type -a kannst du dir alle verfügbaren Programme anzeigen lassen.) ]

      Gibt es eigentlich einen Grund, dass du mit einer alten macOS-Version arbeitest? Das verkompliziert die Dinge möglicherweise.

      2)

      Finde im Web keine Info bezgl. Installation OPcache

      Eine einfache Websuche bringt vielversprechende Treffer 😉

      Aber das hat eigentlich nichts mit unserem Problem zu tun. Mit solchen Sachen kannst du dich beschäftigen wenn der Server mal läuft …

      Nur noch mal zur Erinnerung (evtl. auch für andere Leser): Ziel des ganzen Artikels ist es, einen lokalen Offline-Server aufzubauen, z.B. zum Testen von Websiteänderungen, nicht einen von außen erreichbaren Server mit Publikumsverkehr. Letzteres funktioniert zwar im Prinzip genauso, ist aber in der Praxis weit schwieriger. Einen öffentlichen Server wirst du aus naheliegenden Gründen auch nicht auf deinem Desktop-Rechner einrichten wollen, sondern auf einem dediziertem Webhost.
      Caching und Ähnliches sollte für einen lokalen Server keine Rolle spielen.

      3)

      Check that mysqld is running and that the socket: ‚/tmp/mysql.sock‘ exists!

      Hast du beides überprüft?

      Trotzdem bin ich erstaunt, dass es keine Bundles für php, mysql incl. GUIs gibt, welche man Mac-like anklickt und „es läuft“

      Das gibt es natürlich. Siehe die Einleitung dieses Artikels, z.B. Fertiglösung AMPPS.

      Gruß
      – Tom

  17. Hi Tom,

    ich mach´s kurz:
    ————————–
    „… auf welche Abfrage ist das die Antwort?“
    Auf die Drupal 8.3.7 –
    „Überprüfung der Anforderungen
    Warnungen gefunden

    PHP OPCODE CACHING
    Nicht aktiviert
    PHP OPcode caching can improve your site’s performance considerably. It is highly recommended to have OPcache installed on your server.
    OK

    WEBSERVER
    Apache/2.4.18 (Unix) PHP/5.5.38
    PHP
    5.5.38 …“
    ————————
    „Also z.B. type -p php sollte /usr/local/bin/php ausgeben …“
    Stimmt überein-passt also.
    ——————————
    „(Mit type -a kannst du dir alle verfügbaren Programme anzeigen lassen.)…“
    Terminal zeigt nichts an! Geht sofort wieder in „Bereitschafts-Modus“ über.
    ——————————-
    „Gibt es eigentlich einen Grund, dass du mit einer alten macOS-Version arbeitest?“
    OS ist 10.11.6 – ich meine, eine höhere Version geht mit meinem Book (MacBook Pro (15 Zoll, Ende 2008) nicht!?
    ——————————–
    Bzgl. OPcache:
    „Mit solchen Sachen kannst du dich beschäftigen wenn der Server mal läuft …“
    Gut-hab ich verstanden 🙂
    ———————————
    Bzgl. lokaler Server:
    Basteln liebe ich! Der Artikel ist super, nur ich bin zu doof!
    Aber Thema Fertiglösung: Ich habe MAMP auch durcheinandergebracht 🙂
    MAMP meldet:
    „Die Apache-Konfigurationsdatei httpd.conf konnte nicht geschrieben werden.“
    Lokal/Web hab ich schon verstanden-deswegen hab ich ja versucht, es einzurichten, um erstmal (auch wahrsch. schneller) agieren zu können; du verstehst bestimmt: Upload/ftp-Programm/(z.B.hier Strato-)Server-Trägheit …
    Best-Michael

    1. OS ist 10.11.6 – ich meine, eine höhere Version geht mit meinem Book (MacBook Pro (15 Zoll, Ende 2008) nicht!?

      OK, hab deine Hardware-Specs nicht gesehen/gewusst. Da ich hier leider keinen Rechner mehr mit 10.11 habe, kann ich nicht nachprüfen, ob bestimmte Probleme nur unter deiner macOS-PHP-Apache-MySQL-Combo auftauchen. (Sollte unwahrscheinlich sein, da ich den AMP-Stack auch unter 10.10 und 10.11 einwandfrei installieren konnte. Aber damals waren es auch andere MySQL/PHP/Apache-Versionen; also ausschließen kann man das nicht.)

      Auf die Drupal 8.3.7 – “Überprüfung der Anforderungen
      Warnungen gefunden […] PHP OPCODE CACHING Nicht aktiviert

      Da ich nur ein WordPress-Dummy-User bin, kann ich dir leider nicht mit dem Clonen/Einrichten einer Drupal-Site helfen. Aber ich denke, das wirst du schon im Griff haben.

      Ich nehme mal an die „PHP OPcode“-Warnung erschien beim oder nach dem Clonen. Wenn das die einzige Warnung ist, dann sollte es ja bedeuten, dass der Rest funktioniert hat, v.a. auch das Übertragen der Datenbank (?)

      Was passiert denn nun, wenn du versuchst mit phpMyAdmin in die Datenbank zu gehen?

      “Also z.B. type -p php sollte /usr/local/bin/php ausgeben …”
      Stimmt überein-passt also.

      “(Mit type -a kannst du dir alle verfügbaren Programme anzeigen lassen.)…”
      Terminal zeigt nichts an! Geht sofort wieder in “Bereitschafts-Modus” über.

      Ähm, das kann nicht sein. type -a php sollte zumindest /usr/local/bin/php anzeigen und dann zusätzlich noch das macOS-Standard-PHP (/usr/bin/php auf Sierra), in dieser Reihenfolge.

      Was mich allerdings schwer irritiert, ist, dass Drupal dir offenbar das Standard-macOS-PHP angibt (v5.5, das /usr/local/bin/php von Homebrew ist ja v7.1, oder?). Es sollte sich an die UNIX-Spieleregeln halten und das PHP nehmen, dass im Pfad Vorrang hat (also /usr/local/bin/php).
      Da das aber offenbar nicht so ist, muss das bedeuten, dass der PHP-Pfad deiner Drupal-Installation aus irgendeinem Grund hardcoded (fest voreingestellt) ist. Im Fall von PHP mag es hier egal sein, aber das ist grundsätzlich gar nicht gut, denn wenn da auch noch andere Programm-Pfade hardcoded sind (z.B. der MySQL-Path), dann macht das Probleme.

      Recherchier da mal unbedingt nach!

      Wenn mein Verdacht stimmt, dann muss es auch eine Lösung geben, wie man das abstellen kann. (Also so, dass Drupal die Programme dort sucht, wo wir sie installieren, und nicht seine hardgecodeten Pfade hernimmt.)

      Check that mysqld is running and that the socket: ‚/tmp/mysql.sock‘ exists!
      Hast du beides überprüft?

      Hierzu fehlt noch deine Antwort. Das ist wichtig.

      Aber Thema Fertiglösung: Ich habe MAMP auch durcheinandergebracht

      Ich hab MAMP ganz früher benutzt, aber dann bessere Erfahrungen mit AMPPS gemacht. (Das ist auch schon einige Jahre her, von daher kann ich nicht garantieren, dass es immer noch gut ist. Aber versuch es mal, kostet nix 🙂 )

      Basteln liebe ich!

      Na dann 😉

      – Tom

  18. Vergessen:
    auf: /tmp/mysql.sock kommt: No such file or directory

    mysqld: Wenn ich diesen Ausdruck so ins Terminal schreibe, kommt:
    (Sorry, mords Liste …)
    2017-08-24T13:23:58.313182Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).
    2017-08-24T13:23:58.315508Z 0 [Note] –secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
    2017-08-24T13:23:58.316884Z 0 [Note] mysqld (mysqld 5.7.19) starting as process 1110 …

    [etc.]

    Für mich ganz überwiegend spanische Dörfer 🙁

    Beste Grüße,
    Michael

    1. Vergessen:
      auf: /tmp/mysql.sock kommt: No such file or directory

      mysqld: Wenn ich diesen Ausdruck so ins Terminal schreibe, kommt:
      (Sorry, mords Liste …)

      Sorry, hab dein neues Post noch nicht gesehen, als ich meine Antwort schrieb.

      Nein, schau einfach im Finder nach ob das File in /tmp/ existiert. Wenn MYSQL läuft, kann es auch mysql.sock.lock heißen.

      „mysqld“ solltest du nicht im Terminal eingeben, sondern einfach nachsehen (z.B. Activity Monitor) ob es läuft 😉

      Aber nachdem es dir ja eine Antwort ausgespuckt hat, scheint es ja zu laufen.

      Sehr gut!

    2. Michael, ich bin jetzt fast geneigt, hier (erst mal) das Handtuch zu schmeißen.

      Denn, um dir kompetent helfen zu können, müsste ich eine Drupal-Site installieren, und dazu hab ich nicht die Zeit. (Siehst du, gut, dass du keinen Obolus entrichtet hast 😉 ).

      Als – vorläufigen – Weg schlage ich dir vor:

      Versuch, das Ganze mit AMPPS zum laufen zu bringen. AMPPS (oder MAMP) ist ein isoliertes Subsystem, das …

      • alle Komponenten mitbringt und
      • vorgefertigte Configs hat, auch für Drupal (AMPPS zumindest)

      Wenn du Pech hast, läuft alles reibungslos. Wenn du Glück hast, stößt du auf (wahrscheinlich geringfügigere) Probleme, die dir dabei helfen werden zu verstehen, warum das Ganze mit einem nicht-isolierten AMP-Stack (also das, was wir hier versuchen) nicht läuft.

      Denn im Grunde funktioniert beides gleich.

      Also:

      1. Schritt: Es auf AMPPS/MAMP zum laufen bringen.
      2. Schritt: Herausfinden, warum es läuft und/oder wo es evtl. hakt. Einstellungen erforschen und mit den Einstellungen spielen.
      3. Schritt: Das Gelernte auf einen normalen, nicht-isolierten AMP-Stack übertragen.

      Das ist nur ein Vorschlag. Wir können hier auch weitermachen, nur, wenn es an Drupal liegt, kann ich dir nicht viel helfen.

      – Tom

  19. Hi Tom,
    möchte nur kurz was eigenartiges berichten:
    Wenn ich im Finder /private/tmp – Verzeichnis bin (es befinden sich 3 leere Ordner darin „com.apple.launchd.xxxxxxxxx (x=Zahlen-Buchstb.)), kann ich beobachten, wie periodisch (ca. alle 5 Sek.) ein file „mysql.sock.lock“) für ca. 200 ms auftaucht.
    😮
    Und noch diese Fehlerm. bei Eingabe Benutzer/ Passw. phpMyAdmin:

    „Willkommen bei phpMyAdmin

    #2002 – No such file or directory — Der Server antwortet nicht (evtl. ist der Socket des lokalen MySQL-Servers nicht korrekt konfiguriert).“

    Drupal ist nicht so wichtig.
    Deinen Vorschlag, AMPPS einzurichten werde ich durchführen.
    Ich sage (bis auf weiteres 🙂 ) ganz herzlich DANKE!
    Schönen Gruß,
    Michael

    1. phpMyAdmin: […] #2002 – No such file or directory — Der Server antwortet nicht (evtl. ist der Socket des lokalen MySQL-Servers nicht korrekt konfiguriert)

      OK, ich hab jetzt hier etwas rumgetüftelt, und ich kann diesen Fehler erzeugen, indem ich den Link /var/mysql/mysql.sock lösche.

      Dieser Link wurde erzeugt mit dem Befehl sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock aus der Anleitung. (Das Verzeichnis /var/ ist selber ein Link zu /private/var, aber dieser wird vom System angelegt und kann also problemlos benutzt werden.)

      Überprüf mal im Finder oder im Terminal, ob bei dir dieser Link vorhanden ist.

      Terminal ls -l /private/var/mysql sollte so etwas ausschmeißen:

      lrwxr-xr-x 1 root wheel 15 Aug 24 21:54 mysql.sock -> /tmp/mysql.sock

      (Das Datum ist nicht wichtig, nur ob der Link vorhanden ist und das richtige Ziel hat. Es ist auch nicht wichtig, ob /tmp/mysql.sock zu diesem Zeitpunkt wirklich existiert.)

      Wenn der Link nicht da ist, oder das falsche Ziel hat, dann bitte wie beschrieben erzeugen.

      Drupal ist nicht so wichtig.

      Wenn Drupal nicht so wichtig ist, dann versuchs doch mal mit einer WordPress-Site. Da kann ich dir dann besser helfen, da ich jeden Schritt nachbauen kann. Das Clonen einer WP-Site auf den lokalen Server hab ich auch in der Anleitung beschrieben.

      – Tom

  20. Hi Tom,

    kurzes Feedback:
    Da ich nun seit Tagen fummle, viel (Urlaubs-)Zeit investiert hab´, hier eine erste, richtig gute Veränderung:
    Seit ich in config.inc.php „localhost“ durch „127.0.0.1“ ersetzt hab, läuft zumindest AMPPS.
    Leider erreiche ich mit localhost meine sites nicht mehr; scheinbar hat jetzt AMPPS das Kommando übernommen.
    Übrigens stelle ich mit positiver Überraschung fest, dass du mich nicht auslachst; Grund dazu hättest du wohl genug. 🙂

  21. Wieder vergessen:
    mysqli_real_connect() No such file or directory
    HY000/2002
    change localhost to 127.0.0.1 in config.inc.php
    $cfg[‚Servers‘][$i][‚host‘] = ‚127.0.0.1‘;
    The reason for this is that pma tries to connect to the mysql.socket if you use localhost. If you use 127.0.0.1 PMA makes a TCP connection which should work.

    Gruß!

  22. Hi Tom,

    du Fuchs-hast sogar in der E-Mail einen Link gesetzt 🙂

    Also:
    Eingabe:
    ls -l /private/var/mysql
    Result:
    total 8
    lrwxr-xr-x+ 1 root wheel 15 17 Aug 20:41 mysql.sock -> /tmp/mysql.sock
    Grüße!

    1. Result: […] lrwxr-xr-x+ 1 root wheel 15 17 Aug 20:41 mysql.sock -> /tmp/mysql.sock

      Das sieht fast OK aus. Das „+“ am Ende der Permissions heißt jedoch, dass der Link einen ACL-Eintrag hat – den er bei mir nicht hat.

      Bitte mal den ls -l-Befehl mit der „e“-Option ergänzen, also …

      ls -le /private/var/mysql

      … und berichten, was es ausspuckt.

      Anschließend den Link löschen, im Finder oder via …

      sudo rm /private/var/mysql/mysql.sock

      … und neu anlegen mit …

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

      (Das „sudo“ erfordert eine Passworteingabe, ist aber wichtig.)

      Dann nochmals überprüfen mit ls -l /private/var/mysql. Das „+“ sollte jetzt verschwunden sein.

      Jetzt MySQL neustarten mit …

      brew services restart mysql

      … und im Activity Monitor überprüfen, ob es läuft (nach „mysqld“ suchen).

      Jetzt nochmals den Zugang via phpMyAdmin versuchen.

      Sorry für die Umstände, aber das könnte die Lösung für deinen #2002-Error sein. Von daher ist es den Versuch sicher wert.

      du Fuchs-hast sogar in der E-Mail einen Link gesetzt

      Das, was du in der Notification-Mail siehst wird automatisch erstellt von dem, was ich auf der Kommentar-Seite schreibe.

      Dein Kommentar veranlasst mich, dich um etwas zu bitten:

      Bitte nicht auf meine Kommentare antworten anhand dessen, was du in der Notification-Mail siehst, sondern immer den Kommentar auf der Kommentar-Seite selbst lesen.

      Der Grund ist: Oft ändere/ergänze ich meinen Kommentar unmittelbar nachdem ich ihn gepostet habe (schlechte Angewohnheit, ich weiß), und diese Änderungen werden nicht in der Notification-Mail widergespiegelt.

      Also bitte die Mail als das betrachten, was sie ist: nur eine Notification über eine Antwort. Und dann die wirkliche Antwort auf der Kommentar-Seite lesen. Ansonsten kommt es unvermeidlich irgendwann zu Missverständnissen.

      Das ist übrigens auf vielen Forum-Systemen ähnlich, und noch schlimmer, wenn die User via Mail antworten können, ohne auf die Seite zu gehen (was, glaub ich, bei meinen Mails nicht möglich ist). Da schreibt dann jeder in seiner Parallelwelt: Der eine postet im Forum, aktualisiert und ergänzt seine Posts, der andere liest nur die Mail-Notifications und antwortet via Mail und kriegt von alledem gar nichts mit 😉

      Sorry für den Exkurs. Wollte nur vermeiden, dass es zu zusätzlichen Komplikationen kommt, da das Thema an sich schon kompliziert genug ist.

      Jetzt lass ich dich weiterbasteln 🙂

      Grüße
      – Tom

      1. PS:

        Ein schönes Beispiel für das zuletzt Gesagte ist mein letzter Kommentar selbst. Da hab ich beim Posten völlig die Formatierung verkackt (siehe Inhalt deiner Mail-Notification) und dann nachträglich korrigiert 😉

  23. Deinen Hinweis auf die not.-Mails hab ich verstanden, werde ich (hoffentlich 🙂 ) in Zukunft berücksichtigen.
    Das halte ich aber für einen Bug, oder nicht durchdacht.

    So, nun werde ich berichten. Hoffe nur, dass meine AMPPS-Installation dadurch nicht durcheinander gerät …
    ————-
    ls -le /private/var/mysql
    total 8
    lrwxr-xr-x+ 1 root wheel 15 17 Aug 20:41 mysql.sock -> /tmp/mysql.sock
    0: user:Garemu allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity
    ————-
    Link gelöscht!
    ————————
    Link neu angelegt! Eine Passw.-Eingabe war nicht (!) erforderlich.
    (Alias im MacOS hat aber nach-wie-vor kein Orginal)
    ————————
    ls -l /private/var/mysql
    total 8
    lrwxr-xr-x 1 root wheel 15 26 Aug 11:26 mysql.sock -> /tmp/mysql.sock
    —————————
    „+“ ist weg, nicht?!
    —————————
    mysql neu gestartet und „mysqld“ in Aktivanzg. gefunden.
    —————————
    „Jetzt nochmals den Zugang via phpMyAdmin versuchen.“
    Sorry, da steh´ich auf der Leitung: Den Zugang zu was?

    Also meine AMPPS-Seite (http://localhost/ampps/index.php?) läuft und phpMyAdmin auch (http://localhost/phpmyadmin/index.php?target=server_privileges.php&token=39bae272dc6bb664e0565174bb18e675#PMAURL-0:index.php?db=&table=&server=1&target=server_privileges.php&token=39bae272dc6bb664e0565174bb18e675).

    Leider hab ich mein Ziel noch nicht erreicht: Unter AMP oder AMPPS oder XAMPP oder egal was-verschiedene CMS zu installieren und an meinen (und die meiner Freundin) HPs zu fummeln.
    Da steckt der Teufel drin, das hab ich dir ja wohl schriftlich genug gegeben. 🙂

  24. Hi Tom,

    unter AMPPS versuche ich gerade modx 2.5.7 und Joomla 3.7.5, 2.5.28 zu installieren.
    Joomla meldet: Die MySQL Verbindung konnte nicht aufgebaut werden.
    modx meldet: Erforderliche PHP Erweiterung nicht gefunden: gd

    Einfach der Wahnsinn 🙂

    Gruß,
    Michael

    1. Ich antworte hier auf deinen beiden letzten Posts (1134 und 1135) zusammen.

      „Jetzt nochmals den Zugang via phpMyAdmin versuchen.“
      Sorry, da steh´ich auf der Leitung: Den Zugang zu was?

      Zugang zur MySQL-Datenbank. Du hast ja bereits mal versucht, mit phpMyAdmin in die Datenbank zu gehen, siehe dein Post #1124, wo du von Error #2002 berichtet hast.

      Nachdem du jetzt den Link neu angelegt hast (und mysqld läuft), also ganz einfach nochmals versuchen, die Datenbank mit phpMyAdmin zu öffnen, also mit http://localhost/phpmyadmin/index.php (wenn du nach Anleitung vorgegangen bist).

      Sinn der Übung war ja, den phpMYAdmin-Error #2002 wegzukriegen, denn wie gesagt, ich konnte hier denselben Error #2002 reproduzieren indem ich den besagten Link gelöscht oder invalidiert habe. Von daher diese Überlegung. (Ich habe das mehrmals verifiziert: Link gelöscht: Error #2002, Link wieder erzeugt: Kein Error mehr, Link wieder gelöscht: Error #2002, etc.)

      Das Wichtige dabei ist nicht, dass du danach phpMyAdmin benutzen kannst, sondern: Wenn sich phpMyAdmin erfolgreich mit der Datenbank verbinden kann, dann hieße das, dass MySQL vernünftig läuft, was wiederum heißt, dass wir Ursachen für Datenbankfehler zwischen MySQL und Website eher auf der Seite der Website (also Drupal oder was auch immer) suchen müssen.

      Wenn wir hier weiterkommen wollen müssen wir (wie bei allen IT-Problemen) versuchen, die Probleme zu isolieren, d.h. mögliche Ursachen systematisch eingrenzen. (OK, zugegeben, manchmal findet sich die Lösung auch, indem man nach dem Zufallsprinzip diverse Einstellungen oder Sachverhalte ändert, aber dann funktioniert das Ganze zwar, aber man ist so schlau wie zuvor 😉 )

      Zu AMPPS

      Leider hab ich mein Ziel noch nicht erreicht: Unter AMP oder AMPPS oder XAMPP oder egal was-verschiedene CMS zu installieren

      Ich habe AMPPS gerade nicht installiert, aber – wenn ich mich recht erinnere – hat es integrierte Installer für verschiedenste CMSs. Du benutzt also nicht die regulären Installerdownloads von der Drupal-, WordPress- etc. Seite, sondern kannst das via AMPPS machen.

      Machst du das so?

      Joomla meldet: Die MySQL Verbindung konnte nicht aufgebaut werden.
      modx meldet: Erforderliche PHP Erweiterung nicht gefunden: gd

      AMPPS bringt ja sein eigenes MySQL mit, von daher dürfte das sauber funktionieren. Und der Hinweis ist ja recht eindeutig: AMPPS hat ein praktisches Admin-Panel, mit dem du auch PHP konfigurieren kannst. Du musst also wahrscheinlich nur die „gd“-PHP-Erweiterung aktivieren. Hier ist ein Beispiel anhand der „mbstring“-Erweiterung.

      AMPPS hat auch ein User-Forum, vielleicht finden sich dort auch verwertbare Infos. (Aber im Falle der gd-Erweiterung sollte das nicht nötig sein.)

      Gruß
      – Tom

  25. Hi Tom,

    weiter geht´s mit deiner schier unendlichen Geduld:

    „… , die Datenbank mit phpMyAdmin zu öffnen, …“

    Es geht und es sind 2 DB: mysql und test.
    DB „mysql“ hat umfangreiche Parameter.
    DB „test“ kann ich nicht bedienen; es kommt die Fehlerm.:
    „Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an.“
    Für mich strange …

    „phpMYAdmin-Error #2002“ ist also verschwunden, dafür das seltsame Verhalten beim Öffnen von db „test“.
    —————
    „Machst du das so?“ Ja, ich benutze die AMPPS-internen Installer.
    modx meldet nach ca. 12% gelaufener Install.-Prozedur:
    „Die MySQL Verbindung konnte nicht aufgebaut werden.“
    Immerhin scheint die php-Erweiterung „gd“ gefunden worden zu sein.
    (Wo ich die php-Erw. schalten kann hast du mir prima erklärt-danke! 🙂

    joomla meldet dies gleich doppelt:
    „Die MySQL Verbindung konnte nicht aufgebaut werden.
    Die MySQL Verbindung konnte nicht aufgebaut werden.“
    Bei beiden Installationen:
    Protokoll: http://
    Domain: 127.0.0.1

    Was positives hier:
    Eingabe im Browser-URL-Feld „http://localhost“ (Fußzeile “
    Powered by AMPPS and Softaculous“!?) zeigt mir das Directory von „www“ im AMPPS-Ordner an. Darin hab ich eine eigene Site (in eigenem Ordner in www, also www/eigene Site) mit Unterordner (assets mit js, img und css; cgi-bin (der ist leer!?)).
    Ein Klick auf eigenesite.html und die Sache läuft, allerdings ohne (gewünschtes modx-) CMS.
    Ach ja, vielleicht interessiert dich noch die Safari-Meldung, dass der private Modus Probleme bereiten kann. Leider hab ich den exakten Zusammenhang vergessen, bei der ganzen Klickerei; ich meine irgendwas mit Speicherkapazität …
    Diesbezgl. hab ich manches natürlich gleich auch in Firefox und Chrome probiert; allerdings mit den gleichen Fehlermeldungen.
    —–
    AMPPS-User-Forum nutze ich.
    Beste Grüße,
    Michael

    1. “phpMYAdmin-Error #2002” ist also verschwunden, dafür das seltsame Verhalten beim Öffnen von db “test”.

      Hervorragend geil! Siehst du, es lag offenbar tatsächlich an dem kleinen „+“, also dem seltsamen ACL-Eintrag. Ich frag mich nur, woher der kam. Benutzt du irgendeine fadenscheinige Mac-„Optimierungs/Cleaning“-Software, mit der du dein System traktierst? Evtl. im Hintergrund laufend?

      OK. Deine jetzigen Probleme („Ihre Sitzung ist abgelaufen …“) sind Datenbank-interne Probleme der wahrscheinlich harmlosen Art, vorher war es ein Programm-Problem (Das DB-Programm lief nicht richtig.)

      Ich bin leider überhaupt kein Fachmann für Datenbanken. Vielmehr ich hasse Datenbanken jeglicher Art. Ich habe bei jeglicher DB-Software immer den Eindruck, dass sie von 65-jährigen Finanzamtsbeamten geschrieben wurde (mit Ausnahme von Filemaker vielleicht). LOL, hoffentlich bist du keiner 😉

      Das heißt, ich bin selber heilfroh wenn ich sehe dass meine MySQL-Datenbank normal funktioniert. Nur soviel: Die DB mit dem Namen „mysql“ ist, glaub ich, die Meta-DB von MySQL selber und von daher relativ uninteressant. Ebenso die DBs mit den Namen „information_schema“, „performance_schema“ und „sys“.

      „test“ dürfte wahrscheinlich die DB deiner versuchten Websiteinstallation sein, und damit die einzige, die dich später interessieren wird.

      Nachdem jetzt zum ersten Mal das MySQL-Programm richtig funktioniert, schlage ich vor, du fängst frisch an. Also die „test“-DB löschen und nochmals versuchen eine Website zu installieren.

      Aber am Besten mit etwas Einfachem: vielleicht hast du irgendwo eine WordPress-Site am laufen? Die könntest du dann – zur Einstimmung – so wie in der Anleitung beschrieben mit Duplicator clonen. Da ich das selber schon hunderte Mal gemacht habe, könnte ich dir dabei effektiv helfen.

      Wie bereits gesagt, mit anderen CMSs kann ich dir nicht viel helfen. Aber wenn du mit einem bestimmten CMS hantierst, dann gehe ich mal davon aus, dass du dich mit diesem (halbwegs) auskennst und seine Macken kennst 😉

      Nur zur Erinnerung: Sinn dieses ganzen Artikels war es nie, zu beschreiben wie man Websites aller möglichen CMS’ auf seinen Mac bringt, sondern wie man das Grundgerüst dafür schafft, der AMP-Stack eben.

      Aber wenn diese beiden Bedingungen erfüllt sind:

      • AMP-Stack funktioniert (Zweck meines Artikels und Sinn unserer ganzen Übung)
      • Du hast dein CMS schon einmal erfolgreich auf einem „normalen“ Server bei einem Webhoster installiert oder auf MAMP/AMPPS o.Ä.

      …dann sollte dem nichts im Wege stehen.

      Du könntest jetzt AMPPS wieder ruhen lassen und weitermachen mit dem ursprünglichen Vorhaben. (Ein gravierendes Problem scheinen wir ja gelöst zu haben.)

      Aber wenn du mit CMSs arbeitest, die ich nicht gut kenne (Joomla, modx, etc.), dann schlage ich trotzdem vor, du versuchst es erstmal noch mit AMPPS/MAMP. Dort gibt es zwar auch Probleme, wie du eindrücklich beschreibst, aber dort gibt es insgesamt weniger Unbekannte, da es eine 100% gekapselte Umgebung ist.

      Mit „Unbekannte“ meine ich Dinge wie z.B. eben die upgefuckten Permissions des Socket-Links. Sind z.B. die Permissions deiner Apache-Config-Files (httpd.conf und Freunde) auch fehlerhaft? Ich kann von hier aus nicht dein ganzes System durchchecken 😉 Gibt es irgendwelche Glitches zwischen deiner Apache-Version und der Homebrew-MySQL-Version, welche ich nicht kenne, da ich auf Sierra eine andere Apache-Version habe? Warum wollte Drupal das macOS-default-PHP benutzen und nicht das mit Homebrew installierte? Usw. und so fort.

      Probleme dieser Art fallen bei AMPPS/MAMP schon mal weg.

      Wie gesagt, diese Überlegung dient zur Übung. Ich will dich nicht auf Lebenszeit zur Benutzung AMPPS verdammen 😉 Aber wenn z.B. Joomla sauber auf AMPPS läuft, dann hast du schon mal eine gute Grundlage. Du kannst dann z.B. anhand des AMPPS-Admin-Panels leicht überprüfen welche PHP-Extensions und welche Apache-Mods Joomla tatsächlich benötigt und diese Informationen danach für den offenen Mac-AMP-Stack verwenden.

      Und das sind Informationen, die ich gar nicht habe, da ich Joomla nicht kenne. Vielleicht läuft Joomla gar nicht mitt der httpd.conf, so wie ich sie im Artikel beschrieben habe, sondern du musst noch weitere mods aktivieren?


      Was ich noch vergessen habe:

      In deinem Post #1134 schriebst du: „Link neu angelegt! Eine Passw.-Eingabe war nicht (!) erforderlich.“ Du hast wahrscheinlich vorher den alten Link gelöscht mit sudo rm… und dabei bereits das PW eingegeben, richtig? Die Shell hält deinen sudo-Status 5 Minuten (glaub ich) aufrecht, ohne nochmal nach dem PW zu fragen. Sollte also kein Grund zur Sorge sein.

      Gruß
      – Tom

  26. Lieber Tom,

    abschließend möchte ich mich nochmals herzlich bedanken! Ich muss mich in der nächsten Zeit grundlegend schlau machen. 🙂

    Alles Gute & weiterhin so hilfreiche und präzise Beiträge!

    Schöne Grüße,

    Michael

Schreibe einen Kommentar

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