In diesem Artikel beschreibe ich, wie du dir eine lokale Entwicklungsumgebung auf macOS Sierra High einrichten kannst. Wie bereits im Artikel WordPress – Vorbereitung & Installation erwähnt, solltest du in der “Produktivumgebung”, sprich für jeden direkt online sichtbar, keine Änderungen testen und “entwickeln”. Auf dem eigenen lokalen Webserver kannst du deine Webseite in Ruhe bearbeiten und testen.
Folgende einzelnen Bestandteile werden benötigt bzw. installiere ich für meine lokale Entwicklungsumgebung:
- Apache
- PHP
- MySQL
- phpMyAdmin
Jede Mac Version bringt von zuhause aus einen vorinstllierten Apache-Server (unter macOS Sierra Version 2.4.27) und PHP (unter macOS Sierra High Version 7.1.8) mit. Die anderen zwei Bestandteile werden separat installiert.
1. Apache
Über die Terminal App kannst du ganz einfach Apache starten, beenden oder neu starten, dies passiert mit folgenden Befehlen. Wenn der sudo Befehl benutzt wird, wirst du dazu aufgefordert dies mit deinem Admin Passwort zu bestätigen.
Apache starten
sudo apachectl start
Apache beenden
sudo apachectl stop
Apache neu starten
sudo apachectl restart
Apache Version anzeigen
httpd -v
Nachdem du Apache gestartet hast, kannst du im Webbrowser überprüfen ob Apache erfolgreich läuft: in die Adresszeile einfach localhost eingeben und folgende Seite sollte sich öffnen.
2. Apache anpassen (Dokument Root)
Dieser Schritt ist optional, aber aus meiner Sicht sehr sinnvoll. Apache speichert bzw. erwartet die Webseite standardmäßig in folgendem Verzeichnis, dem DocumentRoot ‘Library/WebServer/Documents’
Ich persönlich erstell mir ein neues Verzeichnis in meinem User Ordner und nenne ihn schon seit Jahren webdesign und darunter ein neues Unterverzeichnis website.
Um dies zu erreichen, müssen wir die Datei httpd.conf anpassen. Da es sich hierbei um eine Systemdatei handelt, müssen wir die unsichtbaren Dateien im Finder anzeigen lassen. Entweder du nutzt wie ich hierzu ein Programm (z.b. PathFinder) oder aber ihr gebt folgendene Befehle im Terminal ein (der erste Befehl schaltet die Anzeige ein, mit dem zweiten Befehl wird der Finder neu gestartet):
defaults write com.apple.finder AppleShowAllFiles 1
killall Finder
Mit den folgenden Befehlen schaltet ihr die Ansicht der Systemdateien wieder aus.
defaults write com.apple.finder AppleShowAllFiles 0
killall Finder
Die oben genannte Datei findest du unter folgendem Pfad: /private/etc/apache2/
In dieser Datei nach dem Eintrag Library/WebServer/Documents suchen und durch deinen gewählten Ordnerpfad ersetzen, in meinem Fall wäre dies /Users/Username/webdesign/website (Username ist euer Mac User). Es gibt zwei Stellen an denen du dies ändern musst, sie stehen direkt untereinander. Danach muss der Apache Server einmal neu gestartet werden.
3. mod_rewrite (Permalink)
Ohne die folgende Einstellung wird in deiner lokalen Entwicklungs-Umgebung die Permalink-Struktur von WordPress nicht funktionieren und somit keine Seite angezeigt werden, es sei denn du nutzt die Standardeinstellung: http://deine-domain.de/?p=123. Benutzt du z.B. http://deine-domain.de/beispielbeitrag/ wirst du folgenden Fehler angezeigt bekommen: Not Found The requested URL was not found on this server.
Hierzu öffnen wir folgende Datei /etc/apache2/httpd.conf – entweder über den Finder, indem wir wie bereits oben die versteckten Dateien einblenden und dann zu der entsprechenden Datei navigieren oder über die Terminal App. Wir öffnen die Datei:
sudo nano /etc/apache2/httpd.conf
In der Datei suchen wir mit ctrl + w nach ‘mod_rewrite’ und kommentieren die entsprechende Zeile aus (entfernen die Raute #).
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
Zusätzlich ändern wir noch folgenden Bereich und ändern AllowOverride None in AllowOverride All
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All
Die Änderung speichern wir einmal mit ctrl + o und verlassen den nano wieder mit crtl + x
Zum Abschluss muss der apache Server einmal neu gestartet werden.
sudo apachectl restart
4. PHP
macOS Sierra kam noch mit der PHP Version 5.6 daher, Sierra High hat die Version 7.1.8 an Board. Daher fällt das Update wie im ersten Artikel zu diesem Thema flach.
Das einzige was wir machen müssen, ist PHP zu aktivieren. Hierzu öffnen wir erneut die Datei /etc/apache2/httpd.conf
sudo nano /etc/apache2/httpd.conf
In der Datei suchen wir mit ctrl + w nach ‘php’ und kommentieren die entsprechende Zeile aus (entfernen die Raute #).
LoadModule php7_module libexec/apache2/libphp7.so
Die Änderung speichern wir einmal mit ctrl + o und verlassen den nano wieder mit crtl + x
Zum Abschluss muss der apache Server einmal neu gestartet werden.
sudo apachectl restart
Zum Überprüfen, welche PHP Version aktuell installiert ist, kannst du ein php File erstellen, mit dem Namen phpinfo.php in dein oben erstelltes website Verzeichnis speichern und folgende Zeile einfügen:
<?php phpinfo();?>
Wenn du die Datei im Browser aufrufst, wird dir die phpinfo mit allen Information, incl. Version, angezeigt.
5. MySQL
MySQL ist standardmäßig kein Bestandteil von macOS und muss zuerst von der MySQL Seite heruntergeladen werden. Hier wählen wir folgendes Paket: Mac OS X 10.12 (x86, 64-bit), DMG Archive. Hierzu musst du dich nicht anmelden, sondern kannst unten auf No thanks, just start my download klicken. Nach dem Download das DMG File öffnen und MySQL installieren.
Nach erfolgreicher Installation erscheint ein Dialog mit einem temporären MySQL root Passwort. Dies am besten einmal kopieren, da wir es im nächsten Schritt direkt benötigen. Zur Sicherheit speicher ich es mir in einer txt-Datei.
5.1 MySQL root Passwort ändern
Zuerst stellen wir sicher, dass der MySQL Server gestartet ist. Hierzu gehen wir in die Systemeinstellungen MySQL und starten bei Bedarf den MySQl Server (Die Systemeinstellungen über die Spotlight Suche starten oder alternativ durch Klicken auf das Apfel-Logo oben links und dann auf Systemeinstellungen).
Über das Terminal gibst du folgenden Befehl ein:
sudo /usr/local/mysql/bin/mysql -u root -p
Du wirst (evtl.) nach einem Passwort gefragt, dies ist in diesem Fall das Passwort von deinem Mac (Login). Anschließend erscheint im Terminal “Enter Password”. An dieser Stelle ist das temporäre Passwort aus der MySQL Installation gemeint.
Die Eingabeaufforderung im Terminal ändert sich in mysql>
Nun gibst du folgenden Befehl ein und ersetzt ‚MeinNeuesPasswort‘ durch dein neues Passwort, welches du wählen möchtest.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinNeuesPasswort';
Danach den MySQL Server wieder neu starten
sudo /usr/local/mysql/support-files/mysql.server start
6. phpMyAdmin
Zuerst lädst du phpMyAdmin auf dieser Seite herunter, die ZIP Datei in der derzeit aktuellen Version 4.7.4. Nach dem Download die Datei entpacken, den Verzeichnisnamen auf phpMyAdmin kürzen und in das website Verzeichnis kopieren.
Im Anschluss erstellen wir das config Verzeichnis für phpMyAdmin
mkdir ~/webdesign/website/phpmyadmin/config
Und ändern die Berechtigungen:
chmod o+w ~/webdesign/website/phpmyadmin/config
Öffne im Anschluss folgende Seite in deinem Browser auf: http://localhost/phpmyadmin/setup/ und klicke auf der sich öffnenden Seite auf Neuer Server. Auf der folgenden Seite klicke auf den Reiter Authentifizierung und gib das root Passwort ein und klicke im Anschluss auf Übernehmen. Du kehrst danach zum vorherigen Bildschirm zurück und klickst auf den Download Button. Die heruntergeladene config.inc.php Datei speicherst du in das phpMyAdmin Verzeichnis.
phpMyAdmin kannst du nun über http://localhost/phpmyadmin/ erreichen und deine MySQL Datenbanken verwalten.
Im nächsten Beitrag beschreibe ich, wie du deine WordPress Webseite “klonen” kannst. Dies ist sinnvoll um z.B. deine lokale Entwicklungsumgebung auf einen aktuellen (inhaltlichen) Stand zu bringen. Der Weg in die andere Richtung ist ebenfalls möglich.
Beim Importieren der MySQL Datenbank in die lokale Entwicklungsumgebung kann es passieren, dass das zu importierende File größer als 2 MB ist. In dem Konfigurationsfile php.ini von PHP ist die Import-Größe auf eben diese beschränkt. Um dieses Limit zu ändern verändern wir drei Variablen. Hierzu öffnen wir die php.ini Datei, die unter macOSan zwei verschiedenen Orten liegen kann.
Wenn Ihr PHP manuell auf eine neue Version geupdatet habt (siehe Artikel WordPress lokale Entwicklungsumgebung auf macOS Sierra einrichten), dann liegt die aktive php.ini unter folgendem Pfad: /usr/local/php5/lib/php.ini
Nutzt ihr hingegen, wie in diesem Artikel beschrieben, die bei macOS vorinstallierte PHP Version gibt es keine aktive php.ini Datei. Um eine zu erstellen führen wir folgenden Befehl über die Terminal App aus
sudo cp /private/etc/php.ini.default /private/etc/php.ini
Danach haben wir eine aktive php.ini.
Nun ändern wir die folgenden drei Parameter:
memory_limit = 128M
upload_max_filesize = 48M
post_max_size = 64M
Abschließend muss der Webserver einmal neu gestartet werden
sudo apachectl restart
7. Berechtigungen
Damit im weiteren Verlauf der Website Entwicklung mit WordPress keine Probleme mit fehlenden Berechtigungen auftreten, setzen wir das jeweilige Verzeichnis auf für alle beschreibbar. Da wir ja eine lokale Entwicklungsumgebung betreiben, sollte dies kein Sicherheitsrisiko darstellen.
Im oben angelegten Verzeichnis für unsere Webseiten /Users/Username/webdesign/website legen wir für jedes Projekt / Webseite ein eigenes Unterverzeichnis an, z.B.: /Users/Username/webdesign/website/meine-domain – mit dem nachfolgenden Befehl über die Terminal App geben wir diesem Verzeichnis alle Schreibrechte
sudo chmod -R a+w ~/website/meine-domain
Das war es eigentlich schon, dein Webserver steht und läuft inkl. PHP und MySQL. Unter dem oben angelegten Verzeichnis /Users/Username/webdesign/website kannst du nun entsprechende Unterverzeichnisse für deine Webseiten/Projekte anlegen und starten.
Viel Erfolg!
Der Beitrag gehört zu einer Artikelserie:
Hannes
5. Juli 2018 at 15:32
fDein Tutorial hat mich als Neuling auf MAC gerettet 🙂 Vielen Dank dafür. Bei mir läuft nun auch alles, aber wo ist der EXTENSION-Ordner wo ich die .so-Extensions einfügen kann? Bzw. wo befindet sich überhaupt der php 7.1 -Ordner ? Ich wollte mongodb implementieren. Dafür muss ich nur wissen, wo ich die mongodb.so ablegen muss wenn ich die in der php.ini mit “extension=mongodb.so” einfügen will.
Grüß
Hannes
Martin
30. Juli 2018 at 19:54
Erst einmal sorry für die späte Rückmeldung. Ich bekomme irgendwie keine Benachrichtigung mehr, wenn ein neuer Kommentar eingeht.
Ich kenne mich bzgl. mongodb nicht wirklich aus. Aber ich habe folgenden Ordner auf meinem AMC gefunden:
usr/include/php/ext
Ob das der richtige Ordner ist… ?!
Michael
25. Februar 2020 at 16:04
Hallo, vielen Dank für das tolle Tutorial. Meiner Meinung nach fehlt ein wichtiger Punkt bei der SQL Datenbank: Die Verbindung von PHP und MySQL:
cd /var
mkdir mysql
cd mysql
ln -s /tmp/mysql.sock mysql.sock
Martin
1. März 2020 at 21:02
Hallo Michael,
danke für deinen Kommentar und deinen Dank!
Aus meiner Sicht nicht zwingend notwendig, gab bei mir zumindest keine Probleme ohne.
Aber Danke, evtl. hilft es dem einen oder anderen bei entsprechenden Problemen!
Viele Grüße
Martin