heiseonline / shariff-backend-php

👮 PHP backend for Shariff. Shariff enables website users to share their favorite content without compromising their privacy.
http://ct.de/-2467514
133 stars 44 forks source link

Keine Zähler #6

Closed skyynet closed 9 years ago

skyynet commented 9 years ago

Nach einigen Stunden Suche weiß ich leider keine andere Möglichkeit mehr, als hier zu fragen. Ich habe statt der Social Media Buttons nun Shariff bei mir installiert. Funktioniert auch, aber ich bekomme keine Zähler.

Testseite unter www.skyynet.de/_test.htm

Auf meinem Server läuft PHP 5.5, Das Backend liegt unter www.skyynet.de/shariff Die json habe ich konfiguriert unter www.skyynet.de/shariff/shariff.json

Auf der Seite habe ich die Buttons eingebunden über

Wenn ich den testweise http://www.skyynet.de/shariff/?url=http%3A%2F%2Fwww.skyynet.de aufrufe, erhalte ich nur [].

pmb0 commented 9 years ago

Hi, ich würde ab Zeile https://github.com/heiseonline/shariff-backend-php/blob/master/src/Backend.php#L60 ein paar Debug-Statements einbauen, um herauszufinden, warum bei dir [] als JSON-Ergebnis ausgeliefert wird. Insbesondere ist ein print_r() von $results nach dem Pool::batch()-Aufruf interessant.

skyynet commented 9 years ago

Habe ich gemacht. Da kam aber keine Ausgabe, auch, wenn ich die /shariff/index.php aufrufe :-(

skyynet commented 9 years ago

Ok, lokal habe ich's zum Laufen bekommen. Da konnte das cache-Verzeichnis nicht beschrieben werden. Wenn ich dann in die shariff.json als Domain localhost eintrage, kommen die Zähler. Auf dem Server kommen aber keine, auch wenn ich als Domain www.skyynet.de eingebe. Im cache Verzeichnis auf dem Server sehe ich auch genug Inhalt. Es ist also beschreibbar.

Richtig klasse wäre für alle mit Problemen ein Testscript, das einige Checks durchführt und dem User Hinweise gibt. Also cache beschreibbar, Databackend gemäß Eintrag in data-backend gefunden, konfigurierte Domain zulässig für durchgeführte Abfrage, usw.

skyynet commented 9 years ago

Da ich meines Wissens alle Voraussetzungen auf meinem PHP Server erfülle, verstehe ich nicht, warum es nicht klappt. Hat noch jemand eine Idee? Ohne Zähler, sieht Shariff irgendwie nackt aus :-(

ooxi commented 9 years ago

Please have a look at your PHP error log and post the relevant entries.

jschmi01 commented 9 years ago

hi, Problem wird durch das php-curl interface in Zusammen hang mit ssl/tls verursacht. Eine Lösung (quick aber u. U. dirty/unsicher) ist, die option "CURLOPT_SSL_VERIFYPEER" in dem file CurlFactory.php auf "false" zu setzen.

skyynet commented 9 years ago

Hi jschmi01, DANKE!!!!!!!!!! Das hat es gelöst. Im PHP Log war nix und ich war echt am Ende mit meinem (nicht vorhandenem) Latein. Wie kommt es, dass der Fehler auch ohne SSL auftritt? Meine Website kann ja mit und ohne SSL genutzt werden.

jschmi01 commented 9 years ago

hi, die URLs von Facebook und Co. sind HTTPS (SSL) Verbindungen. Die Implementierung des Backends für die HTTPS-Verbindungen ist mit der CURL-Api gebaut. Dabei ist standardmäßig für das SSL-Handshake Protokoll sowohl Client- als auch Server-idenfikation via CA-Certificates eingestellt (CURLOPT_SSL_VERIFYPEER = true). Dafür brauchen dann Client als auch Server bekannte CA-Certificates. Dies ist aber in deinem (wie auch bei meinem Server/Provider) nicht der Fall - die Kommunikation zu Facebook und Co. wird dann mit dem Fehler "unbekanntes Zertifikat" abgebrochen und somit können keine Zähler abgeholt werden.

skyynet commented 9 years ago

Danke für die Info. Ich habe ein Wildcard SSL Zertifikat eines von allen Browsern akzeptierten CA. Vielleicht hat Curl aber Probleme mit Wildcard. Da ich keine PHP Errordatei bekam, wußte ich nicht, woran es liegt. Jetzt schon.