Apr 03

Bildbearbeitungen unter PHP sind mit der bekannten GD-Lib schon lange möglich. Auch die Bibliothek ImageMagick ist eigentlich ein alter Zopf. Trotzdem war es (für mich) nicht ganz einfach auf meiner lokalen XAMPP-Entwicklungsumgebung unter Windows Vista diese schöne PHP-Extension zum Laufen zu bringen.

Wenn man so was nicht regelmäßig macht, dann steht meiner einer erst mal vor einigen Fragezeichen. Welche Version von welchen DLLs gehören wo hin? Wie aktiviere ich das in meiner PHP-Version? Welche PHP-Version muss es sein?

Folgendes Vorgehen führte bei mir letztlich zum Ziel:

  1. Frische XAMPP-Version (1.7.4) installieren. Wichtig war hier, dass mindestens PHP Version 5.3.x oder besser enthalten ist. Unter Windows Vista ist noch wichtig, XAMPP nicht in den üblichen Programme-Ordner (z.B. C:\Program Files) zu installieren. Das kann zu Problemen mit der Vista Rechtesteuerung führen. Ein gute Alternative ist C:\xampp.
    (Man kann übrigens auch mehrere XAMPP-Installationen parallel auf dem Rechner haben solange man die Komponenten (Apache, MySQL-Server etc.) nicht als Dienste betreibt).
  2. Die eigentliche XAMPP-Bibliothek als DLL-Datei für Windows (Binary Release) von http://www.imagemagick.org/script/binary-releases.php#windows herunterladen. WICHTIG: die “dynamic at 16 bits-per-pixel”-Version nehmen. Ob Win32 oder Win64 hängt dann von der Windows-Version ab.
    Auch hier sollte man die Installation NICHT in das vom Installer vorgeschlagene Windows-Programme-Standardverzeichnis vornehmen. C:\ImageMagick ist prima :-)
    Beim Installieren die Option zum Anlegen der Pfade unbedingt aktiv lassen – sonst kann die PHP-Extension später nix finden. Windows sollte man nach der Installation einmal neu starten.
  3. PHP Startup Error with IMagickJetzt braucht man noch die richtige DLL-Datei, die die imagick-PHP-Extension enthält. Denn nur diese kann mit der ImageMagick-DLL sprechen. Auch hier ist man als “Laie” zunächst überfordert. Gibt es doch von offizieller Seite leider kein konkretes vorgehen für Windows.
    Man muss sich Quellen wie dieser bedienen: http://www.sk89q.com/2010/03/vc6-windows-binaries-for-imagick-2-3-0/. Hier findet sich eine passende DLL, die in das Verzeichnis \ext\ der PHP-Installation (die bei XAMPP wiederum in \php\ zu finden ist) legen. Bei mir war das dann der Pfad C:\xampp2\php\ext\.
    Hinweis: Die meisten Quellen verweisen auf die Kompilate von valokuva.org. Diese DLLs sind aber nicht kompatibel zu der XAMPP-PHP-Kompilierung für Windows. Beim Start von XAMPP kommt dann die nebenstehende Fehlermeldung. Offensichtlich ist VC6 was anderes als VC9. Mehr habe ich auch nicht verstanden :-(
  4. Als letzten Schritt muss man noch die neue PHP-Extension in der php.ini aktiviert werden. Die php.ini liegt im \php\-Ordner von XAMPP und sollte natürlich nur mit einem Texteditor wie Notepad++ bearbeitet werden.
    Jetzt gibt es zwei Möglichkeiten. Entweder die Extension ist schon als Zeile vorhanden, aber auskommentiert oder sie fehlt komplett. Einfach mal nach “php_imagick” suchen. Findet sich eine Zeile der Art
    ;extension=php_imagick.dll
    dann muss nur das Semikolon am Zeilenanfang entfernt werden um die Extension zu aktivieren. Fehlt diese Zeile komplett, dann muss diese (ohne Semikolon) ergänzt werden (am besten unter dem Block wo sich auch schon die ganzen anderen extension=… Eintragungen befinden.
  5. Als letztes XAMPP starten und testen. Hier noch ein kleines Testscript, dass als Ausgabe ein kleines Bild generiert:
    <?php
     /* How wide is our image */
     $image_width = 200;
     /* Give zero for autocalculating the height */
     $image_height = 200;
     /* Specify the text */
     $text = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
     Mauris lectus mi, mattis non, euismod vel, sagittis nec, ipsum.";
     /* Instanciate imagick */
     $im = new Imagick();
     /* Create new image using caption: pseudo format */
     $im->newPseudoImage( $image_width, $image_height, "caption:" . $text );
     /* Put 1px border around the image */
     $im->borderImage( 'black', 1, 1 );
     /* PNG format */
     $im->setImageFormat( "png") ;
     /* Output */
     header( "Content-Type: image/png" );
     echo $im;
     ?>
Apr 02

Mal was in eigener Sache: Dieser Blog wurde bisher von Gernot betrieben und alle bisherigen Artikel stammen von ihm. Aus zeitlichen Gründen hat er den Blog nun an mich übergeben. Ich werde mich sehr bemühen den Blog in vergleichbarer Qualität fortzuführen und damit seinem “Erbe” gerecht zu werden.

Meine Themenschwerpunkte sind etwas anders als bei Gernot – doch die Schnittmenge ist groß. Daher hoffe ich, dass die bisherigen Leser bei der Stange bleiben :-)

Die von mir bearbeiteten Projekte sind primär aus den Bereich JOOMLA, Shop-Systeme (XT:Commerce und PlentySystems), Datenmigrationen (Pentaho PDI) und SEO. Neben Jobs für Kunden betreibe ich auch einige kleinere, eine Projekte.
Wenn man sich in diesem Umfeld tummelt, dann kommt man naturgemäß auch mit Themen wie JavaScrip, Flash, Photoshop, WordPress, Typo3 und Apache in Berührung. Hierzu werde ich also dann und wann auch ein paar Zeilen schreiben.
Da ich in den letzten Jahren auch viel als Projektmanager im SAP-Umfeld unterwegs war, ist der Bereich Projektmanagement ebenfalls interessant für mich.

Gerne werde ich Euch von meinen Erfahrungen, Meinungen und Missgeschicken berichten und freue mich auf Feedback.

Nochmals ein herzliches Dankeschön an Gernot für seine tollen Artikel in diesem Blog!

Arno Oesterheld

Mar 05

Microsoft hat nun selbst eine Seite namens “The Internet Explorer 6 Countdown” veröffentlicht und möchte somit nach 10 Jahren – vom bei Webentwicklern völlig unbeliebten Internet Explorer 6 – endlich mit einem “it’s time to say goodbye” Abschied nehmen. Der in die Jahre gekommene Browser ist vor allem in Ländern rund um China (max. 34,5%) noch sehr beliebt, in Deutschland (2,9%), Österreich (3,0%) und der Schweiz (3,9%) und vielen weiteren Ländern wird er allerdings kaum noch verwendet. Das Ziel von Microsoft ist es die Verbreitung auf unter 1% zu drücken – dies ist in Norwegen und Finnland (je 0,7%) bereits jetzt der Fall. Im Vergleich zum Vorjahr ist der Marktanteil des Internet Explorer 6 um 9% gesunken. Als Webentwickler kann man sich darüber nur freuen!

Oct 20

Möchte man SSL-Zertifikate mit Zwischenzertifikaten einsetzen (um höhere Sicherheit zu gewährleisten werden fast ausschließlich Zwischenzertifikate verwendet), so müssen diese in Apache, Dovecot bzw. Postfix zusätzlich zur üblichen SSL-Konfiguration hinterlegt werden.

Apache:

In der Datei “/etc/apache2/httpd.conf” muss folgende Zeile eingefügt werden:

SSLCACertificateFile /etc/ssl/certs/SSL123_CA_Bundle.pem

Dovecot:

In der Datei “/etc/dovecot/dovecot.conf” muss folgende Zeile eingefügt werden:

ssl_ca_file = /etc/ssl/certs/SSL123_CA_Bundle.pem

Postfix:

In der Datei “/etc/postfix/main.cf” muss folgende Zeile eingefügt werden:

smtpd_tls_CAfile=/etc/ssl/certs/SSL123_CA_Bundle.pem

Oct 09

Bereits seit mehreren Jahren setze ich nun die Kombination Time Machine und Time Capsule erfolgreich und fehlerfrei ein. Bei jedem Backup wurden bisher nur geänderte Dateien erneut gesichert, weshalb die Sicherung von jeweils nur wenigen 100 MB immer recht schnell erledigt war. Plötzlich wollte Time Machine bei jedem Backup mehr als 100 GB sichern und funktionierte somit nicht mehr wie gewünscht bzw. erwartet.

Abhilfe schaffte bei mir das Zurücksetzen der Einstellungen – hierfür bin ich wie folgt vorgegangen:

  1. In den “Systemeinstellungen” von “Time Machine” unter “Volume auswählen” “Ohne” mit “Backup stoppen” auswählen
  2. Löschen der Datei “com.apple.TimeMachine.xxx.plist” unter “Macintosh HD > Benutzer > benutzername > Library > Preferences > ByHost” (“xxx” bzw. “benutzername” sind systemspezifisch) mittels Finder
  3. Bereinigen oder löschen (beim Bereinigen/Löschen können Voreinstellungen von z.B. Parallels verloren gehen, deshalb sollte man diesen Schritt nur ausführen, wenn man weiß, was man macht) der Datei “com.apple.TimeMachine.plist” unter “Macintosh HD > Library > Preferences”
  4. Neustart des Computers
  5. In den “Systemeinstellungen” von “Time Machine” unter “Volume auswählen” wieder das gewünschte Medium mit “Für Backup verwenden” auswählen