Пропустить навигацию.
Главная

Проблема с PHP функциями для работы с графикой в Debian

Итак, начиналось все с поднятия некоторого web-сервера, на котором, к удивлению многих, не отрабатывали скрипты обработки изображений, выдавая такую строку в error.log:

[Mon Feb 02 19:32:12 2009] [error] [client 123.123.123.123] PHP Fatal error: 
Call to undefined function imageantialias() in 
/var/www/project46/httpdocs/forum/includes/class_image.php on line 1636

Путем нехитрых манипуляция с поисковой системой гугл посредством браузера Firefox, было найдено следующее решение:

Немного предыстории

Суть проблемы заключается в том, что Debian и основанные на нем дистрибудивы содержат не оригинальную версию библиотеки GD, а собственную ее модификацию, в которой отсутствуют некоторые функции, которые, по мнению разработчиков Debian, могут быть потенциально опасны ( одна из этих функций - imageantialias, упомянутая в логе). К счастью эти функции не вырезаны совсем, а просто отключены, так что для восстановления функциональности достаточно будет пересобрать PHP, включив их.

Примечание: советую собирать пакеты в виртуальной машине, чтобы не засорять сервер ненужными приложениями.

Рецепт

 

    # Стаивим програмы, необходимые для сборки
apt-get install build-essential debhelper fakeroot
# топаем в /usr/src
cd /usr/src
# Скачиваем исходники PHP
apt-get source php5
# Устанавливаем зависимости для сборки PHP5
apt-get build-dep php5
cd php5-5.2.3

Теперь надо открыт файл debian/rules вашим любимым текстовым редактором и заменить строку
--with-gd=shared,/usr --enable-gd-native-ttf \
на
--with-gd=shared --enable-gd-native-ttf \

После чего остается собрать пакеты

dpkg-buildpackage -rfakeroot

залить их на сервер и установить

dpkg -i php5-gd_5.2.0-8+etch13_i386.deb

Источник (англ.)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Такая же басня,

Такая же басня, как с явой..

Казалось бы,

Казалось бы, при чем тут php5-gd_5.2.3-1ubuntu6.3_i386.deb ?

Каюсь, лень

Каюсь, лень было искать имя пакета, скопировал текст с оригинала. В принципе проблема общая.
fixed