neue PHP-Version - massive Fehler
am 20.05.2012 - 17:46 Uhr in
Hallo Freunde,
ich muss mit meinem Projekt auf einen neuen VServer umziehen. Auf dem neuen Server läuft Squeeze mit PHP 5.3.3.
Auf dem alten Server läuft Lenny und PHP 5.2.6.
Leider gibt es mit meinem Projekt unter PHP 5.3.3 massive Fehlermeldungen.
Diese betreffen unter anderem das Link-Module, Location, Conditional Fields, Views, path_alias und auch einige Drupal-Core-Files usw.
Um die Fehler zu beheben, müsste ich in den Drupal/Module-Core-Files rumhacken.
Die ältere 5.2.6-PHP-Version unter Squeeze zu nutzen, scheint aber leider nicht so einfach zu sein.
Was tun?
Danke und Gruß
Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben

Hmmm ... ich habe es nun
am 20.05.2012 - 23:44 Uhr
Hmmm ... ich habe es nun geschafft auf PHP 5.2.6 downzugraden. Leider bleiben die Fehlermeldungen bestehen
Hier ein kleiner Auszug:
Notice: Undefined variable: blocks in custom_pagers_block() (line 114 of /var/www/mein_ordner/sites/all/modules/custom_pagers/custom_pagers.module).
die Zeile lautet: return $blocks;
Notice: Undefined variable: bootstrap in jqp_rebuild_cache() (line 588 of /var/www/mein_ordner/sites/all/modules/jqp/jqp.admin.inc).
die Zeile lautet: db_query("UPDATE {system} SET info = '%s', name = '%s', filename = '%s', bootstrap = %d, status = %d WHERE filename = '%s'", serialize($libraries[$name]->info), $library->name, $library->filename, $bootstrap, $library->status, $library->old_filename);
Notice: Undefined index: #id in template_preprocess_views_exposed_form() (line 640 of /var/www/mein_ordner/sites/all/modules/views/theme/theme.inc).
die Zeile lautet: $widget->id = $form[$info['value']]['#id'];
Notice: Undefined property: view::$total_rows in views_plugin_cache->cache_set() (line 89 of /var/www/mein_ordner/sites/all/modules/views/plugins/views_plugin_cache.inc).
die Zeile lautet: 'total_rows' => $this->view->total_rows,
Notice: Undefined index: script in template_preprocess_views_view_fluidgrid() (line 42 of /var/www/mein_ordner/sites/all/modules/views_fluidgrid/views_fluidgrid.module).
die Zeile lautet: $vars['script'] .= "\n<script type=\"text/javascript\">
Notice: Undefined variable: path_language in custom_url_rewrite_outbound() (line 194 of /var/www/mein_ordner/sites/all/modules/path_alias_xt/path_alias_xt.module).
die Zeile lautet: if ($alias = drupal_lookup_path('alias', "$matches[1]/$matches[2]", $path_language)) {
Wenn ich ein User-Profil aufrufe, werden mir ca. 50 dieser Fehlermeldungen angezeigt. Puuuh.
Hat vielleicht von euch jemand eine Idee woran das liegen könnte?
Gruß Matthias
Du könntest das Error
am 21.05.2012 - 09:57 Uhr
Du könntest das Error Reporting anders einstellen, dann werden die ganzen Notice Meldungen zumindest nicht mehr angezeigt.
Bei PHP-Fehlern solltest Du diese versuchen zu beheben.
Wenn ich mir nur den ersten
am 21.05.2012 - 11:45 Uhr
Wenn ich mir nur den ersten Fehler anschauen, dann sieht das nicht gut aus.
Undefined variable: blocks in custom_pagers_block()Das heißt ja, es gibt gar keine Variable blocks.
Die gibt es aber eigentlich immer....
Ich schätze nicht, dass das mit der PHP-Version überhaupt etwas zu tun hat.
Mir scheint, die ganze Drupal-Installation ist fehlerhaft.
Ob du das repariert bekommst, kann ich nicht sagen, ich würde mit einer neuen Drupal-Installation (lokal) starten und dann versuchen, alle Inhalte, Views und User oder was es sonst noch so bei dir gibt, in die neue Version übertragen.
Vielleicht kommst du so wieder zu einem "sauberen" System.
Gruß
Berthold Lausch
Hallo ihr beiden, vielen Dank
am 21.05.2012 - 11:57 Uhr
Hallo ihr beiden,
vielen Dank für die Rückmeldungen.
Ich habe mal überschlagen und mir sind bisher über 200 Fehler aufgefallen. Von "Undefined variable" gibt es z.B. mehrere (verschiedene).
Was mich auch wundert. Bei PHP 5.2.6 soll das "Error Reporting" anders eingestellt sein als bei PHP 5.3.3 (habe ich zumindest gelesen). Da ich aber nun auf PHP 5.2.6 gedowngradet habe, dürften mir die ganzen Fehler doch gar nicht mehr ausgegegebn werden (so wie auf dem alten Server).
An der Anzahl der Fehler hat sich aber nichts geändert und das "Error Reporting" ist genauso wie bei PHP 5.3.3. Grübel!
Ich ziehe die Drupal-Installation mal komplett neu auf. Mal schauen ob sich was ändert.
Nutzt ihr denn z.B. Drupal 6 und PHP 5.3.3 zusammen? Habt ihr damit keine Probleme?
Danke und Gruß
Matthias
Drupal 6? Ach stimmt, das gab
am 21.05.2012 - 12:04 Uhr
Drupal 6? Ach stimmt, das gab es ja auch mal.. ;)
Ich habe hier auch recht umfangreiche Drupal 6 Installationen problemlos mit PHP 5.3.3 laufen.
Danke Alexander!Als ich auf
am 21.05.2012 - 12:23 Uhr
Danke Alexander!
Als ich auf PHP 5.2.6 gedowngradet habe, blieb die php.ini von 5.3.3 erhalten und das Error-Reporting ist doch noch anders als auf dem alten Server. Ich habe nun mal so eingestellt wie auf dem alten System.
Und siehe da - alle Fehler sind verschwunden bzw. werden nicht mehr angezeigt.
Dann muss man doch aber davon ausgehen, dass die Fehler auch schon auf dem alten Server (PHP 5.2.6) vorhanden waren und und nur nicht angezeigt wurden.
Ich habe gerade gelesen, dass das Anpassen des Error-Reportings bei 5.3.3 nicht zu empfehlen ist. Aber warum wurde dies scheinbar "von Werk aus" bei PHP 5.2.6 gemacht? ich persönlich habe das Error-Reporting dort nicht verändert.
Doppelt-Grübel!
Wie würdet ihr weiter vorgehen?
Gruß Matthias
Ionit schrieb Wie würdet ihr
am 21.05.2012 - 13:32 Uhr
Wie würdet ihr weiter vorgehen?
Was ich machen würde, habe ich dir oben schon geschrieben :-)
Ist ein arbeitsreicher Weg, aber besser besser ein Ende mit viel Arbeit als Arbeit ohne Ende.
Gruß
Berthold Lausch
Ich habe nun einfach mal auf
am 21.05.2012 - 14:36 Uhr
Ich habe nun einfach mal auf dem alten Server (Lenny + PHP 5.2.6) das Error-Reporting so eingestellt wie das bei PHP 5.3.3 standardmäßig aktiviert ist und nun tauchen dort natürlich die selben Fehlermeldungen auf.
Das Projekt lief/läuft aber jahrelang ohne Probleme zu machen.
gerade gefunden (Notice):
Möglicherweise erscheint diese Meldung bei Scripten, die bisher unter älteren PHP-Versionen liefen. Grund dafür ist häufig das ab dieser Version defaultmäßig strenger eingestellte error_reporting in der php.ini.Es liegt also nicht an einer fehlerhaften Installation sondern "nur" am Error-Reporting. Es scheint so zu sein, dass zahlreiche Drupal-Module nicht hundertprozent korrekt gecodet wurden. Zum Beispiel werden häufig einige Varibalen nicht korrekt definiert. PHP scheint großzügig darüber hinwegzusehen aber das gelbe vom Ei ist das natürlich nicht.
Naja - ich lasse das Error-Reporting jetzt erstmal auf einem niedrigeren Level laufen und werde dann, nach und nach, alle Fehler per Hand beheben. Leider muss ich dazu viele Module im Core ändern aber es geht scheinbar nicht anders (und das wird ein Aufwand werdenund ich bekomme schon jetzt graue Haare).
Ich danke euch erstmal für die Unterstützung.
Gruß Matthias