{"id":390,"date":"2012-07-12T09:16:03","date_gmt":"2012-07-12T08:16:03","guid":{"rendered":"https:\/\/www.kolja-engelmann.de\/blog\/?p=390"},"modified":"2012-07-12T09:20:13","modified_gmt":"2012-07-12T08:20:13","slug":"php-fatal-error-call-to-undefined-function-wp_dashboard_setup","status":"publish","type":"post","link":"https:\/\/www.kolja-engelmann.de\/blog\/2012\/07\/php-fatal-error-call-to-undefined-function-wp_dashboard_setup\/","title":{"rendered":"PHP Fatal error:  Call to undefined function wp_dashboard_setup()"},"content":{"rendered":"<p>Ja, ich habe an meinem Server herumgespielt, ich gebe es zu! Es begann so relativ einfach mit einem 2GB gro\u00dfen ErrorLog und der Fehlermeldung<\/p>\n<p><code>PHP Fatal error: PHP Startup: apc_mmap: mmap failed: in Unknown on line 0<\/code><\/p>\n<p>Die L\u00f6sung dieses Problems war recht schnell gefunden, man solle die Datei <code>\/etc\/php5\/conf.d\/apc.ini<\/code> anpassen und mit folgendem Inhalt f\u00fcllen:<\/p>\n<pre class=\"lang:default decode:true\">extension=apc.so\r\napc.enabled = 1\r\napc.shm_size = 48M\r\napc.include_once_override = 1\r\napc.mmap_file_mask = \/tmp\/apc.XXXXXX<\/pre>\n<p>Stimmt, auf den ersten Blick ist das alles korrekt, die Fehler waren sofort weg&#8230;daf\u00fcr ploppten pl\u00f6tzlich kleine Instant-Messenger Fensterchen auf meinem Bildschirm auf: &#8222;Das Forum geht nicht mehr.&#8220;, &#8222;Das WordPress Backend l\u00e4sst sich nicht mehr aufrufen&#8220;, &#8222;Ich sehe nur noch eine wei\u00dfe Seite&#8220;.<\/p>\n<p>Ja KRUZIFIX, was ist denn das nun wieder? Es h\u00e4ufen sich Fehlermeldungen der Kategorie<\/p>\n<p><code>PHP Fatal error: Call to undefined function wp_dashboard_setup()<\/code> oder <code>Fatal error: Call to undefined function wp_reset_vars()<\/code><\/p>\n<p>Ich dachte APC sei die eierlegende Wollmilchsau unter den ByteCaches, das beste seit geschnitten Brot! AM ARSCH. Oder ich bin zu bl\u00f6d das korrekt zu konfigurieren? Die Option besteht auch noch. Also auf zum L\u00f6sungsversuch!<\/p>\n<p>Nat\u00fcrlich verschwindet das Problem sofort, wenn man APC mittels <code>apc.enabled=0<\/code> wieder ausschaltet. Aber das ist keine L\u00f6sung. Nat\u00fcrlich kann man auch die betreffenden Dateien einfach von der APC Filterung mittels <code>apc.filters = \"wp-cache-config*\",\"index.php\"<\/code> ausschlie\u00dfen. Doch erstens ist das nur ein Behandeln von Syptomen und ich bin mir sicher, dass dies auch wieder irgendwelche Seiteneffekte haben wird, wenn ganz pl\u00f6tzlich einige Skripte serverweit nicht mehr gefiltert werden.<\/p>\n<p>Gehen wir mal St\u00fcck f\u00fcr St\u00fcck durch. Was macht aber eigentlich die Option <code>apc.include_once_override<\/code>? In der <a href=\"http:\/\/www.php.net\/manual\/en\/apc.configuration.php#ini.apc.include-once-override\" target=\"_blank\">PHP Dokumentation<\/a> steht &#8222;Optimize include_once and require_once calls and avoid the expensive system calls used.&#8220; K\u00f6nnte gut klingen und w\u00fcrde auch Sinn machen, wenn nicht gleichzeitig im <a href=\"https:\/\/bugs.php.net\/bug.php?id=58469\" target=\"_blank\">PHP Bugtracker<\/a> dokumentiert w\u00e4re, dass <code>apc.include_once_override<\/code> bekannte Kompatibilit\u00e4tsprobleme h\u00e4tte und als &#8222;won&#8217;t fix&#8220; markiert ist. Wieder was gelernt: Kopiere niemals blindlings irgendwelche Konfigurationen von Webseiten, wenn du dich nicht vorher genau informiert hast was die Optionen eigentlich bewirken \ud83d\ude09 Somit sieht die APC Konfiguration jetzt so aus und die Fehler sind weg!<\/p>\n<pre class=\"lang:default decode:true crayon-selected\">extension=apc.so\r\napc.enabled = 1\r\napc.shm_size = 48M\r\napc.include_once_override = 0\r\napc.mmap_file_mask = \/tmp\/apc.XXXXXX<\/pre>","protected":false},"excerpt":{"rendered":"<p>Ja, ich habe an meinem Server herumgespielt, ich gebe es zu! Es begann so relativ einfach mit einem 2GB gro\u00dfen ErrorLog und der Fehlermeldung PHP Fatal error: PHP Startup: apc_mmap: mmap failed: in Unknown on&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":292,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[161,4],"class_list":["post-390","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemein","tag-apache","tag-php"],"jetpack_featured_media_url":"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/06\/coding_php.jpg","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/390","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/comments?post=390"}],"version-history":[{"count":0,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/390\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media\/292"}],"wp:attachment":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media?parent=390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/categories?post=390"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/tags?post=390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}