Archiv der Kategorie: Mac OS X

WordPress auf anderen Server umziehen

In der Firma lief das interne Wiki auf einer WordPress-Installation auf einem älteren Mac. Dieser Rechner sollte ausgetauscht werden und WP musste somit umziehen (MAMP als Webserver bleibt).

    1. Datenbank komplett sichern (in diesem Fall tar-Archiv des MySQL-Verzeichnisses, da Datenbank-Server nicht starten konnte/wollte)
      1. $ cd /Applications/MAMP/db/mysql/
      2. $ tar -czpf wiki-db.tar.gz wp_wiki/
    2. Sicherung des kompletten WP-Verzeichnisses wp_wiki
      1. $ cd /Applications/MAMP/htdocs/
      2. $ tar -czpf wiki.tar.gz wp_wiki/
    3. Kopie auf neuem Server / Rechner aufspielen (tar-Archive übertragen und in jeweiligen Verzeichnissen ablegen)
      1. $ cd /Applications/MAMP/db/mysql/
      2. $ tar -xzf wiki-db.tar.gz => Verzeichnis wp_wiki wird erstellt, sollte vorher leer sein bzw. garnicht existieren
      3. $ rm wiki-db.tar.gz
      4. $ cd /Applications/MAMP/htdocs/
      5. $ tar -xzf wiki.tar.gz => Verzeichnis wp_wiki wird erstellt, sollte vorher leer sein bzw. garnicht existieren
      6. Datenbank anpassen
        1. ALTER DATABASE `wp_wiki` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
        2. UPDATE wp_option SET option_value = REPLACE(option_value, ‚http://<OLD-IP>:8888/wp_wiki‘, ‚http://<NEW-IP>:8888/wp_wiki‘) WHERE option_value LIKE ‚%http://<OLD-IP>:8888/wp_wiki%‘; /* home, siteurl, theme_mods_twentyfourteen */
        3. UPDATE wp_posts SET guid = REPLACE(guid, ‚http://<OLD-IP>:8888/wp_wiki‘, ‚http://<NEW-IP>:8888/wp_wiki‘) WHERE guid LIKE ‚http://<OLD-IP>:8888/wp_wiki%‘;
        4. UPDATE wp_posts SET post_content = REPLACE(post_content, ‚http://<OLD-IP>:8888/wp_wiki‘, ‚http://<NEW-IP>:8888/wp_wiki‘) WHERE post_content LIKE ‚%http://<OLD-IP>:8888/wp_wiki%‘;

Sollte die Anmeldung wegen des fehlenden Passwortes nicht gelingen, kann dieses natürlich auch zurückgesetzt werden. Zwar gibt es die Möglichkeit per „Passwort vergessen“-Funktion, hier dennoch die Variante per SQL:

 UPDATE wp_users SET user_pass = MD5('geheim') WHERE user_login = 'admin';

Während der nächsten (erfolgreichen) Anmeldung wird das Passwort dann durch eine stärkere Verschlüsselung ersetzt (MD5 gilt als nicht mehr sicher, die Ersetzung erfolgt durch einen WordPress-eigenen Algorithmus).

Weitere Informationen gibt es auf blogs-optimieren.de.

Update Mac OS X auf 10.10 Yosemite

OS X 10.10 Yosemite gibt es nun bereits seit Oktober 2014, aber bisher gab es bei mir noch keinen Aktualisierungsbedarf. Doch nicht alle Software lässt sich unter OS X 10.7 installieren, so z.B. die aktuellen Versionen von XCode (6.3.2) oder „Android Studio“ (1.2.1). Somit musste das Update doch angegangen werden.

Das Herunterladen von Yosemite per App Store lief gut an, zwar mussten 5,6 GB an Daten geladen werden, doch was soll’s. Danach Installation gestartet und eine halbe Stunde später war es geschafft. Die Anmeldung verlief problemlos und die meisten Applikationen hatten die OS-Aktualisierung auch überstanden. Soweit alles prima 😉

Kleinere Anpassungen, z.B. der Monitore, mussten noch durchgeführt werden, aber sonst lief OS X 10.10 doch recht flüssig.

Beim Öffnen einer PDF-Datei dann allerdings ein erster Schreck: „Um „Acrobat“ öffnen zu können, muss die alte Java SE 6-Runtime-Version installiert werden.“. Außer dieser Meldung nur ein Verweis zu „weiteren Informationen“, einer Support-Website von Apple. Auf dieser war allerdings neben Text, welcher das Problem beschrieb, nichts zu lesen. Dieses Verhalten wird auch im Macuser-Forum beschrieben. Dort findet sich dann auch der richtige Link, unter welchem die geforderte Java-Version zu finden ist. Nach einer erfolgten Installation funktioniert Acrobat Reader 10 wieder.

Edit 17.06.2015:
Doch auch an anderen Stellen scheint die Haptik nicht so recht gelungen: Mal verschiebt sich das Dock aus unerklärlichen Gründen spontan auf einen anderen Monitor (und lässt sich natürlich nicht zurück bewegen), der Terminal-Editor Nano kommt per Standardeinstellung plötzlich nicht mehr mit dem Nummernblock klar (ein Alias mit der Option -K behebt das Problem), der Finder scheint desöfteren Schwierigkeiten mit dem Netzwerk (bzw. Windows-Servern und deren Freigaben) zu haben (kann keine Verbindung herstellen), neue Programmfenster öffnen sich unwillkürlich auf verschiedenen Monitoren. Alles Dinge, die unter OS X 10.7 unproblematisch und wesentlich benutzerfreundlicher waren.

MAMP aktualisieren

MAMP (My Apache – MySQL – PHP) ist eine lokale Serverumgebung, nicht nur für Apples Mac-Betriebssystem OS X. Zum Aktualisieren dieser Software, bspw. um eine aktuellere PHP-Version zu nutzen, einfach zur Projekt-Website navigieren und dort das entsprechende Paket herunterladen. Zur Überprüfung der Authentizität (aus Sicherheitsgründen) kann die SHA-1-Prüfsumme verglichen werden:

$ openssl sha1 /Users/<USER>/Downloads/MAMP_MAMP_PRO_3.2.1.pkg

Die erhaltene Zeichenfolge sollte mit der auf der Website genannten übereinstimmen.

Anschließend die pkg-Datei ausführen und den Wizard durchlaufen. Eine bestehende MAMP-Installation wird im Laufe der Installation komplett übernommen, d.h. dass alle Projekte (htdocs, db) und Einstellungen in das neue MAMP-Verzeichnis kopiert werden. „Neues Verzeichnis“ deswegen, weil das MAMP-Update eigentlich eine Installation plus die Migration aller enthaltenen Projekte vom bestehenden Server enthält:

  1. Umbenennen des bestehenden MAMP-Verzeichnisses (in der Form MAMP_2015-06-16_08-26-14), sodass eine vollständige Sicherung verbleibt
  2. Installation neue MAMP-Version
  3. Migration (Kopie) des alten htdocs-Verzeichnisses

Das Update ist dann bereits durch. Nun sollte nach Ausführen der Datei /Applications/MAMP/MAMP.app der Webserver starten. Das App-Icon nun noch im Dock belassen, et voila.

Grund für das MAMP-Update bei mir war die Aktualisierung von OS X 10.7 auf 10.10 . Nach dem OS-Update startete Apache nicht mehr (MAMP 3.0.5). Die Versionshistorie von MAMP 3.2.1 deutete bereits auf dieses Verhalten hin: „Problem mit httpd.conf behoben, welches den Start von Apache verhindert hat“.

Anzumerken ist noch, dass die Konfigurations-Dateien des Apache (MAMP/conf/apache/) nicht übernommen werden. Nach Angleich der Dateien, sprich Übernahme der Aliase (Directory-Direktiven) und z.B. Aktivierung der httpd-vhosts.conf ist das alte Verhalten aber wieder hergestellt.

App-Dev mit Cordova

Aufgabe ist, eine App für Smartphone bzw. Tablet zu erstellen. Erste Hürde ist die Entscheidung für eine native Anwendung oder für eine Webapp. Der Unterschied zwischen diesen beiden Typen ist, dass eine native App speziell für ein Betriebssystem entwickelt wird (in der entsprechenden Programmiersprache: Objective-C für iOS, C/C++ für Android), eine Webapp aber in den bekannten Internettechnologien HTML5, CSS, Javascript. Letztere muss am Ende lediglich für das entsprechende Endgerät gepackt werden (wofür Programme wie PhoneGap eingesetzt werden können), kann aber auch ohne Anfassen in jedem HTML5-fähigen Browser benützt werden.

Die Entscheidung ist letzlich pro Webapp gefallen, auf Grund des geringeren Entwicklungsaufwandes für eine möglichst breite Palette an Endgeräten.

Grundlage für die hier durchgeführten Schritte bildet der Leitfaden auf cordova.apache.org. Apache Cordova ist ein Open-Source-mobile-Entwicklung-Framework.

$ sudo npm install -g cordova
$ cd <path>/
$ cordova create -d app de.ibsefehse.app myApp
    -d                  => verbose (Detail-Informationen zeigen)
    app                 => Verzeichnis (wird neu erstellt und sollte noch nicht vorhanden sein)
    de.ibsefehse.app    => project-identifier
    myApp               => Applications display title
$ cd app/
$ cordova platform ls
$ cordova platform add ios

An dieser Stelle hakt es zum ersten Mal: die entsprechenden SDK (Software Development Kit) müssen natürlich auf der lokalen Maschine vorhanden und installiert sein. Also geht’s auf die Suche …

Da der MAC noch unter OS X 10.7 läuft, können XCode (die SDK für iOS benötigt mindestens OS X 10.10) bzw. Android Studio (benötigt mindestens OS X 10.8.5) nicht installiert werden. Vielleicht funktioniert ja die alleinige Installation der Android-SDK-Tools (ohne IDE):

  1. Installing the Android SDK
  2. Stand-Alone SDK Tools
  3. zip-Datei entpacken und irgendwo ins home-Directory verschieben, z.B. ~/Development/android-sdk/
$ cd ~/Development/android-sdk/tools/
$ ./android update sdk --no-ui
    => mehrere Lizenzen abnicken und warten
$ cd <path>/app/
$ cordova platform add android

Die umzuwandelnde Website muss nun unter <path>/app/www/ vorhanden sein und wird danach mittels $ cordova prepare android an die jeweiligen Plattformen angepasst. Der Befehl $ cordova compile android schlägt unterdessen fehl, da ich die PATH-Variable noch nicht angepasst habe: android-sdk/platform-tools/ und android-sdk/tools/ müssen hinzugefügt werden (vgl. Post vom 10.06.2015). Doch auch danach stimmt die OS X-Version nicht und der Build-Prozess bricht ab.

Nach dem Update auf OS X 10.10 installiere ich Android Studio in voller Schönheit (IDE + SDK).

$ cordova build

Dabei wird Gradle heruntergeladen, eine Build-Umgebung, die das Erstellen und Ausführen von Android-Anwendungen per Kommandozeile erlaubt. Im Verlaufe des Build-Prozesses kommt es allerdings zum Fehler: „No installed build tool found. Please install the Android build tools version 19.1.0 or higher.“ Warum die vom Android-SDK mitgebrachten Build-Tools nicht eingebunden werden, bleibt schleierhaft.

Ein anderer Weg – Erstellen per Android-SDK:

$ cd website/
$ android create project --target 20 --name myApp --path /Applications/MAMP/htdocs/website/app/ --activity MyActivity --package de.ibsefehse.app
Die Angabe für --target erhält man durch "$ android list targets".

Nach dem Erstellen der apk-Datei (im Unterverzeichnis platforms/android/build/outputs/apk/) kann die App per $ adb install platforms/android/build/outputs/apk/myApp-debug.apk auf dem emulierten Device installiert und danach per $ cordova emulate android gestartet werden. Nach einem Neustart des Macs führt der Befehl „cordova build“ dann übrigens auch zum Erfolg 🙂

Letztenendes bleibt die Erkenntnis, dass nach erfolgter installation aller Abhängigkeiten (SDK, OS) das Erstellen einer Web-App kein allzugroßes Problem mehr darstellt. Mit einigen wenigen Terminal-Befehlen steht die Web-App als native App bereit:

$ cordova create myApp de.ibsefehse.app myApp
=> Quellcode im Unterverzeichnis www/ bearbeiten
$ cordova platform add android
$ cordova build
$ android avd => Device starten
$ cordova build android

$PATH-Variable unter Mac OS X verändern

Es ist nötig, die Komponenten eines SDK (Software Development Kit) zum $PATH unter Mac OS X 10.7 hinzuzufügen.

Was ist die $PATH-Variable? $PATH ist eine Umgebungsvariable des Betriebssystems (gibt es unter Linux, OS X und Windows). Dabei enthält $PATH eine Auflistung von Verzeichnissen, die ausführbare Dateien enthalten; unter OS X durch „:“ (Doppelpunkt) getrennt.

Um den aktuellen Wert dieser Systemvariable auszulesen, genügt folgender Einzeiler im Terminal:

$ echo $PATH

Das Ergebnis sieht in etwa so aus:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

Um nun diese Variable zu bearbeiten, ist es (meines Erachtens) am einfachsten, die Datei ~/.bash_profile zu modifizieren (oder $HOME/.bash_profile). Dazu mit dem bevorzugten Editor diese Datei öffnen, z.B.

$ nano ~/.bash_profile

und die Umgebungsvariable $PATH per export-Kommando ergänzen (in neuer Zeile einfügen):

export PATH=$PATH:/new/dir/location1

Dabei wird der bestehende Pfad um das Verzeichnis „/new/dir/location1“ erweitert. Um nach dem Speichern der Datei den neuen „Pfad“ nutzen zu können, muss entweder ein neues Terminal geöffnet werden oder um das aktuelle Terminal weiter zu benutzen, folgendes Kommando absetzen:

$ . $HOME/.bash_profile

Dadurch wird die geänderte Bash-Konfiguration eingelesen und somit die Einstellungen aktualisiert. Zum prüfen wieder ein

$ echo $PATH

Die Ausgabe sollte nun den aktualisierten Wert enthalten:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/new/dir/location1