čtvrtek 31. května 2012

gallery3 vs php 5.4.3

Na jedné základní škole provozuji php webovou galleri. Je to šikovná aplikace, která umí zpracovávat fotky přímo z foťáku, generuje si náhledy atd. Je plně lokalizována atd. Vlastnosti je celá řada.

Ovšem jak to bývá jsou s takovou aplikací někdy problémy. Naposledy jsem dlouze řešil problém s uploadem fotek, který mají dle mě nepochopitelně ve flash. Nástrojů pro generování náhledů se dá použít v gallerii hnedle několik. GD Graphic Library,  velmi známý ImageMagic a inovativní GraphicMagic. Problém spočíval v tom, že po uploadu fotky se předává ke spracování a zde to haprovalo. Naštěstí po hodinách laborování začal fungovat GraphicMagic.

Po včerejším upgradu PHP ve FreeBSD na verzi php5-5.4.3 se školní gallerie verze gallery3-3.0.3 odmlčela a na úvodní stránce byla jen bílá obrazovka. Marně jsem hledal v logách, ale marně. Poslední změnou byl upgrade PHP a tak jsem se zaměřil na dané verze.

gallery3-3.0.3 + php5-5.4.3

Googl mi napověděl :-)

http://sourceforge.net/apps/trac/gallery/ticket/1839
Don't call ob_end_clean() if PHP >= 5.4. Fixes #1839. Thanks to

Dohledal jsem si patřičný soubor Kohana.php, udelal kopii, upravil kod a pro jistotu udela patch.

pkg_info -L  gallery3-3.0.3 | grep -i Kohana.php
cd  /usr/local/www/gallery3/system/core/
cp  Kohana.php Kohana.php-inst
joe  Kohana.php
diff -u Kohana.php-inst Kohana.php
--- Kohana.php-inst    2012-05-30 21:43:45.000000000 +0200
+++ Kohana.php    2012-05-30 21:45:39.000000000 +0200
@@ -525,8 +525,12 @@
                 $close();
             }

-            // Store the Kohana output buffer
-            ob_end_clean();
+            // Store the Kohana output buffer.  Apparently there was a change in PHP
+            // 5.4 such that if you call this you wind up with a blank page.
+            // Disabling it for now.  See ticket #1839
+            if (version_compare(PHP_VERSION, "5.4", "<")) {
+                ob_end_clean();
+            }
         }
     }

Žádné komentáře: