cURL error 60: SSL certificate problem: unable to get local issuer certificate

Auf einem frischen Windows System mit installiertem PHP7 wollte ich ein neues Symfony Projekt starten.

$ php symfony new projektname

  [GuzzleHttp\Exception\RequestException]
  cURL error 60: SSL certificate problem: unable to get local issuer certificate

Doch ich erhielt die Fehlermeldung cURL error 60: SSL certificate problem: unable to get local issuer certificate vom Paket GuzzleHttp.

Die Lösung ist denkbar einfach. Die Datei cacert.pem von diesem Link (http://curl.haxx.se/ca/cacert.pem) herunterladen und speichern. In meinem Fall habe ich sie in c:\php\cacert.pem abgelegt.

Anschließend muss in der php.ini der Parameter curl.cainfo auf die heruntergeladene Datei verweisen. Bei mir sieht das dann so aus:

...

[curl]
curl.cainfo = "c:\php\cacert.pem"

...

Xdebug mit Netbeans nutzen

Netbeans-meets-XdebugBeim Entwickeln von PHP Anwendungen, kommt man meiner Meinung nach um einen anständigen Debugger nicht vorbei. Ich habe auf meinen Testsystemen deshalb immer Xdebug installiert. Das allein hilft schon eine Menge Fehler zu finden.

Doch die Kombination von Xdebug mit der Netbeans IDE, macht erst ein richtige Entwicklungsumgebung daraus. Die Konfiguration ist denkbar einfach.

Zunächst muss Xdebug installiert werden (z.B. wie hier beschrieben). Wichtig sind die folgenden Einstellungen:

...
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
...

Diese werden dann in Netbeans unter „Extras > Optionen > PHP > General“ wie im Screenshot eingetragen.
Netbeans-Optionen-PHP-Xdebug

Hinweis: Das Häkchen vor „Stop at First Line“ kann auch entfernt werden, wenn man selbst Haltepunkte definiert hat bzw. das Script nicht Zeilenweise durchgehen will.

Nun kann man in Netbeans über das Menü oder Strg+F5 sein Projekt Debuggen. Über die verschiedenen Debugger Fenster kann man jetzt Informationen über Variablen während der Laufzeit einsehen und sogar modifizieren. Auch die Aufrufstapel, Haltepunkte, usw. kann man sich in Form von Fenstern in der IDE ansehen. (siehe Screenshot)
Netbeans-Debugger-Fenster

Weitere Informationen zum Thema:
http://www.netbeans.org
http://www.xdebug.org

HTTP Komprimierung via PHP (ohne mod_gzip)

Sollte man auf seinem Server/Webspace kein mod_gzip zur Verfügung haben, so kann man die HTTP Komprimierung z.B. auch von PHP übernehmen lassen. Nachteil ist allerdings, das dadurch die CPU Last erhöht wird.

Einfach in die .htaccess Datei die folgende Zeile einfügen:
[text]php_value output_handler ob_gzhandler[/text]

Alternativ kann es auch direkt im PHP Code eingetragen werden:
[php]<?PHP
// Im Header
ob_start(“ob_gzhandler”);

// PHP Code

// Am Ende noch
ob_end_flush();
?>
[/php]

Passwort für vbulletin Benutzer erzeugen

Wem ist es denn nicht schon einmal passiert, das er sein Passwort vergessen hat? Mir schon öfter! Fällt dann auch noch der Mailversand aus, ist das Problem groß.

In vBulletin Foren kann man das Passwort selbst neu erstellen. Bedingung ist ein direkter Datenbankzugang. Benötigt wird nur der Wert der Spalte „salt“ des entsprechenden Benutzers in der Tabelle „user„. Mit diesem Schlüssel kann nun ein neues Passwort nach folgendem Prinzip erzeugt werden.

[php]
md5( md5("NEUESPASSWORT")+ SALT );
[/php]

Das Ergebnis dann einfach in die Passwortspalte des Users eintragen und schon kann man sich wieder anmelden.

PHP5 bei 1und1 aktivieren

Um eine aktuelle Version von WordPress zu installieren benötigt man PHP5.
Bei einigen Providern ist PHP5 bis heute noch nicht die der Standard.
Bei 1und1 zum Beispiel muss man in der .htaccess im Root Verzeichnis den folgenden Eintrag hinzufügen:

[text]AddType x-mapp-php5 .php[/text]