PHP: GD не работает

Комментарии ()

После установки и настройки хостинг-сервера под DirectAdmin'ом вылез баг - не работает GD библиотека. В phpinfo мы ее видим, и версию и все такое, но на деле дает ошибку что-то вроде

magecreatefromjpeg(): ... is not a valid JPEG file in ...

Файлы нормальные, не битые, на хабре проблема один в один без решения. А нужно было всего лиш установить с портв gd и jpeg и пересобрать php. Тоесть:

Устанавливаем gd и jpeg

cd /usr/ports/graphics/gd
make install clean

cd /usr/ports/graphics/jpeg
make install clean

Поскольку php у нас собирается из скриптов DirectAdmin'а, то редактируем файл /usr/local/directadmin/custombuild/configure/ap2/configure.php5

#!/bin/sh
./configure \
        --with-apxs2 \
        --with-curl=/usr/local/lib \
        --with-gd=/usr/local/lib \
        --with-ttf \
        --with-gettext \
        --with-jpeg-dir=/usr/local/lib \
        --with-freetype-dir=/usr/local/lib \
        --with-kerberos \
        --with-openssl \
        --with-mcrypt \
        --with-mhash \
        --with-mysql=/usr/local/mysql \
        --with-mysqli=/usr/local/bin/mysql_config \
        --with-pdo-mysql=/usr/local/mysql \
        --with-pcre-regex=/usr/local \
        --with-pear \
        --with-png-dir=/usr/local/lib \
        --with-xsl \
        --with-zlib \
        --with-zlib-dir=/usr/local/lib \
        --with-iconv=/usr/local \
        --enable-bcmath \
        --enable-calendar \
        --enable-exif \
        --enable-ftp \
        --enable-gd-native-ttf \
        --enable-magic-quotes \
        --enable-safe-mode \
        --enable-soap \
        --enable-sockets \
        --enable-mbstring \
        --enable-zip \
        --enable-wddx

Здесь указываем для gd и jpeg где лежат библиотеки, которые мы ставили с портов.

Проверить работоспособность gd можно так:

GIF

<?php
 function_exists("imagegif") or exit();
 header("Content-type: image/gif");
 $im = ImageCreateTrueColor( 200, 100 );
 $text_color = ImageColorAllocate( $im, 233, 14, 91 );
 ImageString( $im, 1, 5, 5, "A Simple GIF Text String!", $text_color );
 ImageGif($im);
 ImageDestroy($im);
?>

PNG

<?php
 function_exists("imagepng") or exit();
 header("Content-type: image/png");
 $im = ImageCreateTrueColor( 200, 100 );
 $text_color = ImageColorAllocate( $im, 233, 14, 91 );
 ImageString( $im, 1, 5, 5, "A Simple PNG Text String!", $text_color );
 ImagePng($im);
 ImageDestroy($im);
?>

JPG

<?php
 function_exists("imagejpeg") or exit();
 header("Content-type: image/jpeg");
 $im = ImageCreateTrueColor( 200, 100 );
 $text_color = ImageColorAllocate( $im, 233, 14, 91 );
 ImageString( $im, 1, 5, 5, "A Simple JPEG Text String!", $text_color );
 ImageJpeg($im);
 ImageDestroy($im);
?>

 


Webit.in.ua 2013