{"id":1563,"date":"2016-05-04T21:39:20","date_gmt":"2016-05-04T19:39:20","guid":{"rendered":"http:\/\/my.stargazer.at\/?p=1563"},"modified":"2016-09-20T22:48:46","modified_gmt":"2016-09-20T20:48:46","slug":"unbreaking-owncloud-with-php-7-0-6","status":"publish","type":"post","link":"https:\/\/my.stargazer.at\/de\/2016\/05\/04\/unbreaking-owncloud-with-php-7-0-6\/","title":{"rendered":"Unbreaking ownCloud &#8211; php-7.0.6"},"content":{"rendered":"<p><strong>Fix nicht mehr n\u00f6tig mit OwnCloud 9.0.2!<\/strong><\/p>\n<p>Ich wei\u00df nicht, wo ich heute beginnen soll &#8211; aber ich denke, ich halte es wie bei den guten, alten Bug Reports und erz\u00e4hle von Anfang an:<\/p>\n<p>Wir beginnen mit ownCloud 9.0.1 auf einem PHP 7.0.5 Host, welcher einen kleinen Redis Server im Hintergrund als Cache und eine extern lebende Datenbank hat. Also nichts was jetzt sonderlich aufregend ist und den Stress hier rechtfertigen w\u00fcrde. Doch dann kam ein &#8217;schnelles&#8216; PHP Update auf 7.0.6, ein Restart des Apache und dann war&#8217;s das mit der ownCloud, da der Login nicht mehr m\u00f6glich war.<\/p>\n<p>Nat\u00fcrlich war mein erster Verd\u00e4chtiger die selbst gebaute und gepatchte phpRedis Erweiterung, also habe ich diese aus der Config geworfen, was das Problem nicht l\u00f6ste. Also ging&#8217;s ans Debuggen, nachdem ein Downgrade von PHP das Ding wieder ans Laufen brachte.<\/p>\n<p>Nach einigem Lesen und recherchieren im Code war es die Funktion __isset(), die nicht so ganz tat was sie sollte:<\/p>\n<p>lib\/private\/appframework\/http\/request.php<\/p>\n<pre data-language=\"php\"><code> \/**\r\n* @param string $name\r\n* @return bool\r\n*\/\r\npublic function __isset($name) {\r\nreturn isset($this-&gt;items['parameters'][$name]);\r\n}\r\n<\/code><\/pre>\n<p>Der entscheidende Hinweis bzw die Best\u00e4tigung fand sich im <a href=\"http:\/\/php.net\/ChangeLog-7.php\">Changelog von PHP<\/a> und ich musste mir Gedanken um einen Fix machen. <!--more-->Am Ende kam dann eine kleine Erweiterung der oben stehenden Funktion heraus, die wie folgt aussieht:<\/p>\n<pre data-language=\"php\"<code>\/**\r\n* @param string $name\r\n* @return bool\r\n*\/\r\npublic function __isset($name) {\r\nif (in_array($name, $this-&gt;allowedKeys, true)) {\r\nreturn true;\r\n}\r\nreturn isset($this-&gt;items['parameters'][$name]);\r\n}<\/code><\/pre>\n<p>Das ist jetzt nicht sehr sch\u00f6n, funktioniert aber.<\/p>","protected":false},"excerpt":{"rendered":"<p>Leider ist der Eintrag nur auf English verf\u00fcgbar.Fix not needed with OwnCloud 9.0.2! Not sure where to start. Good bug reports are usually showing a way to reproduce the bug &#8211; so here we go: First, have ownCloud 9.0.1 running with a Redis Cache as a backend. Nothing funky so far besides the database not living on the [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":1484,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[39,600,527],"class_list":["post-1563","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-it-related-stuff","tag-gentoo","tag-owncloud","tag-php"],"_links":{"self":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/comments?post=1563"}],"version-history":[{"count":0,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1563\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media\/1484"}],"wp:attachment":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media?parent=1563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/categories?post=1563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/tags?post=1563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}