Multisite: nach Eingabe des Auth-Tokens kommt die Seite nich

Deutsches Supportforum für das WordPress-Plugin WP-Piwik. Siehe http://wordpress.org/extend/plugins/wp-piwik/.

Multisite: nach Eingabe des Auth-Tokens kommt die Seite nich

Postby loki » Wed 31. Oct 2012, 00:38

Hallo,

Ich hab WP-Piwik 0.9.7 als Multisite-Installation aktiviert.
Wenn ich nun die URL zu Piwik (1.9.1) und das Auth-Token eingeben, passiert nichts nach "Einstellungen speichern", bzw. WP bleibt endlos beim Laden.
Die beiden URLs, die Du im Thread "Fehlermedlung trotz scheinbar korrekter Eingaben" angegeben hast, bringen vernünftige Ergebnisse.

Grad bin ich ein wenig ratlos woran das liegen könnte
loki
 

Multisite: nach Eingabe des Auth-Tokens kommt die Seite nich

Sponsor

Sponsor
 

Re: Multisite: nach Eingabe des Auth-Tokens kommt die Seite

Postby A.Braekling » Wed 31. Oct 2012, 08:27

Werden die URL und das Token denn trotzdem gespeichert? In dem Fall könntest du im Tab "Support" einmal das Testscript laufen lassen & prüfen, ob dann eine Rückmeldung kommt. Alternativ müsste ich nochmal ein Testskript zum manuellen Ausprobieren zur Verfügung stellen, denn ich sehe gerade, dass der Link zum alten Skript nicht mehr funktioniert.

Meistens hängt das Problem mit der Serverkonfiguration zusammen, bspw. weil HTTP-Zugriffe vom Server auf sich selbst nich gestattet sind, oder weil der User Agent abgelehnt wird (in dem Fall vll. einmal einen User Agent konfigurieren, zu finden weiter unten auf der Einstellungen-Seite).

Kommt denn irgendwann eine Fehlermeldung (zumindest Timeout)?
User avatar
A.Braekling
Administrator
 
Posts: 114
Joined: Tue 3. Jan 2012, 15:35
Location: Aachen

Re: Multisite: nach Eingabe des Auth-Tokens kommt die Seite

Postby loki » Wed 31. Oct 2012, 09:28

Die URL wird gespeichert, wenn ich kein Token angebe. Gebe ich das Token an, wird auch nicht gespeichert.
Wäre nett, wenn Du das Testskript noch mal zur Verfügung stellst (oder ist das im Plugin-Verzeichnis zu finden?)
Den User-Agent hatte ich ein mal umgestellt, ohne erkennbare Änderung.
Ein Timeout kommt nicht vom Server.
loki
 

Re: Multisite: nach Eingabe des Auth-Tokens kommt die Seite

Postby A.Braekling » Wed 31. Oct 2012, 11:13

Ok, ich werde das Testskript heute nachmittag hochladen.

Du kannst es auch in der Ordnerstruktur vom Plugin finden (ich glaube debug/testscript.php), müsstest an dieser Version des Skriptes aber ein paar Anpassungen vornehmen, damit es unabhängig vom Plugin funktioniert.
User avatar
A.Braekling
Administrator
 
Posts: 114
Joined: Tue 3. Jan 2012, 15:35
Location: Aachen

Re: Multisite: nach Eingabe des Auth-Tokens kommt die Seite

Postby A.Braekling » Wed 31. Oct 2012, 14:25

Folgendes PHP Skript kannst du konfigurieren (siehe die oberen Zeilen), auf deinen Server kopieren und dann ausführen. So sollten wir zumindest überprüfen können, ob der "Hänger" nur im Zusammenspiel von WordPress/WP-Piwik und Piwik auftritt, oder ob es sich um ein grundsätzliches Problem handelt.

(Ich hatte noch keine Gelegenheit, dieses Skript selbst zu testen - es handelt sich um eine für die "Standalone-Nutzung" angepasste Version des Testskriptes aus dem Plugin selbst.)

Code: Select all
<?php
/**
 * WP-Piwik
 * Piwik API call test script revision 4
 */

/*****************
 * CONFIGURATION *
 *****************/

// PIWIK URL, e.g. http://www.website.example/piwik
$strPiwikURL = "";
// PIWIK AUTH TOKEN, e.g. 1234a5cd6789e0a12345b678cd9012ef
$strPiwikAuthToken = "";
// YOUR BLOG'S URL, e.g. http://www.website.example
$strPiwikYourBlogURL = "";
// User agent
$strUA = ini_get('user_agent');
// SSL peer verification
$bolDisableSSLVer = false;

/* That's all, stop editing! */

/**
 * Get remote file
 *
 * @param String $strURL Remote file URL
 */
function getRemoteFile($strURL, $strToken, $bolSSL, $strUA) {
   // Use cURL if available   
   if (function_exists('curl_init')) {
      // Init cURL
      $c = curl_init($strURL.$strToken);
      // Configure cURL CURLOPT_RETURNTRANSFER = 1
      curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
      // Verbose = 1
      curl_setopt($c, CURLOPT_VERBOSE, 1);
      // Configure cURL CURLOPT_HEADER = 1 & CURLINFO_HEADER_OUT = 1
      curl_setopt($c, CURLOPT_HEADER, 1);
      curl_setopt($c, CURLINFO_HEADER_OUT, 1);
      // Configure SSL peer verification
      curl_setopt($c, CURLOPT_SSL_VERIFYPEER, $bolSSL);
      // Set user agent
      curl_setopt($c, CURLOPT_USERAGENT, $strUA);
      // Get result
      $strResult = curl_exec($c);      
      // Close connection         
      curl_close($c);
   // cURL not available but url fopen allowed
   } elseif (ini_get('allow_url_fopen'))
      // Get file using file_get_contents
      $strResult = file_get_contents($strURL.$strToken);
   // Error: Not possible to get remote file
   else $strResult = serialize(array(
         'result' => 'error',
         'message' => 'Remote access to Piwik not possible. Enable allow_url_fopen or CURL.'
      ));
   // Return result
   return $strResult;
}

if (substr($strPiwikURL, -1, 1) != '/' && substr($strPiwikURL, -10, 10) != '/index.php')
   $strPiwikURL .= '/';
      
$aryURLs = array();      
$aryURLs['SitesManager.getSitesWithAtLeastViewAccess'] = $strPiwikURL.'?module=API&method=SitesManager.getSitesWithAtLeastViewAccess&format=XML';
$aryURLs['SitesManager.getSitesIdFromSiteUrl'] = $strPiwikURL.'?module=API&method=SitesManager.getSitesIdFromSiteUrl&url='.urlencode($strPiwikYourBlogURL).'&format=XML';
$strToken = '&token_auth='.$strPiwikAuthToken;
$intTest = 0;
?>
<textarea readonly="readonly" rows="13" cols="100">
<?php
foreach ($aryURLs as $strMethod => $strURL) {
   $intTest++;
   echo '*** Test '.$intTest.'/'.count($aryURLs).': '.$strMethod.' ***'."\n";
   echo 'Using: '.(function_exists('curl_init')?'cURL':'fopen')."\n";
   echo 'SSL peer verification: '.(function_exists('curl_init') && !$bolDisableSSLVer?'enabled':'disabled')."\n";
   echo 'User Agent: '.$strUA."\n";
   echo 'Call: '.$strURL.'&token_auth= + TOKEN'."\n";
   $x = microtime(true);
   $strResult = getRemoteFile($strURL,$strToken,!$bolDisableSSLVer,$strUA);
   $x = microtime(true) - $x;
   echo 'Result:'."\n";
   echo htmlentities($strResult)."\n";
   echo 'Time: '.round($x,2).'s'.($intTest < count($aryURLs)?"\n\n":'');
}
?>
</textarea>
User avatar
A.Braekling
Administrator
 
Posts: 114
Joined: Tue 3. Jan 2012, 15:35
Location: Aachen

Re: Multisite: nach Eingabe des Auth-Tokens kommt die Seite

Postby loki » Wed 31. Oct 2012, 16:34

Danke erst mal für das prompte Bereitstellen :)

Ich hab das Skript mal laufen lassen und bekomme für beide Tests eine HTML-Fehlerseite mit der Meldung "Language file '@@DEFAULT_LANG@@' not found."
(Der aufgerufene "Call" direkt im Browser bekommt sauber ein XML-Ergebnis)

Sagt das erstmal genug aus oder magst Du den original-Output / link aufs Testskript?
loki
 

Re: Multisite: nach Eingabe des Auth-Tokens kommt die Seite

Postby loki » Wed 31. Oct 2012, 23:38

Kleine Ursache, große Wirkung :)

Das Testskript gab den richtigen Hinweis: Das Festlegen der Default Language löste das Problem.

Vielen Dank für die schnelle Hilfe :)
loki
 

Re: Multisite: nach Eingabe des Auth-Tokens kommt die Seite

Postby A.Braekling » Thu 1. Nov 2012, 20:04

Super, danke für die Info. Ich werde mir aber mal ansehen, wie dadurch das Plugin in eine zumindest gefühlte Endlosschleife rutschen kann.

Oder war das Problem jetzt ganz unabhängig von WP-Piwik?
User avatar
A.Braekling
Administrator
 
Posts: 114
Joined: Tue 3. Jan 2012, 15:35
Location: Aachen


Return to WP-Piwik Deutsch

Who is online

Users browsing this forum: No registered users and 1 guest

cron