Problem gelöst! Piwik Dashboard/Berichte Layout wird nicht korrekt angezeigt


#1

Hallo,

nach einem Plesk 11.5 auf 12.0.18 Update (unter Windows) wird unser Piwik Dashboard nicht mehr korrekt angezeigt, da alle .less Dateien und einige .png Dateien nicht mehr gefunden werden (HTTP 404).

Die Firefox Netzwerkanalyse zeigt für diese Dateien,dass die angefragte Adresse z.B. folgendermaßen lautet:
http://analytics.ulc-moedling.at/:/Inetpub/vhosts/ulc-moedling.at/analytics.ulc-moedling.at/plugins/Morpheus/stylesheets/ui/_charts.less

Richtig wäre z.B:
http://analytics.ulc-moedling.at/plugins/Morpheus/stylesheets/ui/_charts.less
…und wenn man diese Adresse im Browser eingibt, wird die Datei auch angezeigt.

Nun meine Frage: Wie kommt “es” (Piwik? der IIS?..) plötzlich darauf, in die URL einen Teil des physischen Dateipfads einzuschmuggeln (bitte beachtet, dass das c als Laufwerksbuchstabe fehlt).

Das Piwik Dashboard sieht dadurch z.B. so aus:
[attachment 1785 PiwikLayoutFehler.png]

Versionsinfos:
Piwik 2.3.0 war zum Zeitpunkt des Plesk-Updates installiert, ich habe danach auf 2.4.0-b3 aktualisiert, das Problem bleibt.
PHP war vor Plesk Update auf 5.4, danach 5.5, ich habe die Site aber auch schon auf 5.4 zurückgestellt, ohne dass das Problem verschwunden wäre.
Windows 2008 R2 mit IIS7.5


#2

Das Problem besteht auch mit 2.4.0-b6 weiterhin.

Mir ist nun folgendes aufgefallen: In der Datei tmp/assets/asset_manager_global_css.css sieht man schon das Übel, dass keine relativen Pfade mehr verwendet werden, sondern der fast komplette physische Pfad:
Die .less Dateien werden wie folgt importiert:
@import “:/Inetpub/vhosts/ulc-moedling.at/analytics.ulc-moedling.at/plugins/Morpheus/stylesheets/less/_colors.less”;
@import “:/Inetpub/vhosts/ulc-moedling.at/analytics.ulc-moedling.at/plugins/Morpheus/stylesheets/less/_variables.less”;
usw.

Und die nicht gefundenen pngs (nicht alle werden nicht gefunden, nur die von jquery nicht) wie z.B.:
.ui-widget-content {
border: 1px solid #aaa;
background: #fff url(:/Inetpub/vhosts/ulc-moedling.at/analytics.ulc-moedling.at/libs/jquery/themes/base/images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
color: #222;
}

Andere werden korrekt mit dem relativen Pfad eingebunden:
#piwik-promo-thumbnail {
background: #fff url(plugins/CoreHome/images/promo_splash.png) no-repeat 0 0;
background-position: center;
width: 321px;
margin: 0 auto 0 auto;
}

Kann es sein, dass beim Auflösen des Pfades etwas schief geht?

Weiters ist mir dazu Folgendes aufgefallen: Benenne ich eine der nicht gefundenen png Dateien um (sodass er sie ganz sicher nicht findet), lautet der HTTP GET Request korrekt:
http: //analytics.ulc-moedling.at/images/ui-bg_flat_75_ffffff_40x100.png (und liefert wie erwartet HTTP 404).
Nur wenn diese Zieldatei existiert, steht im HTTP GET Request:
http: //analytics.ulc-moedling.at/:/Inetpub/vhosts/ulc-moedling.at/analytics.ulc-moedling.at/libs/jquery/themes/base/images/ui-bg_flat_75_ffffff_40x100.png
(Anmerkung: Die Leerzeichen nach http: habe ich hier beim Posten eingefügt, damit der Pfad nicht aufgelöst wird)

Weiß hier jemand Rat?


#3

Problem gelöst: Der Grund war tatsächlich die Security, die mit Plesk 12 geändert wurde: Piwik ruft zur Ermittlung der (css-)Dateipfade die PHP-Funktion realpath() auf, die aber verlangt, dass der Webuser auf den Ordner ÜBER dem Installationsordner Leserechte hat.
Und auf diesen darüberliegenden Ordner hatte der mit Plesk 12 neu verwendete Webuser IWPG_username natürlich keine Rechte, dort gäb es ja auch nichts zu lesen (der alte IUSR_username war schon eingetragen, hatte aber keine Rechte mehr; wahrscheinlich hatte ich das zu Tests mal vergeben, dann aber vergessen (zu dokumentieren)).

Hier wurde diese Thematik schon behandelt:
http://forum.piwik.org/read.php?2,73949
http://forums.iis.net/t/1153823.aspx