Проблема с 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
Источник (англ.)
- Блог пользователя NeO
- Страница для печати
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Такая же басня,
Такая же басня, как с явой..
Казалось бы,
Казалось бы, при чем тут php5-gd_5.2.3-1ubuntu6.3_i386.deb ?
Каюсь, лень
Каюсь, лень было искать имя пакета, скопировал текст с оригинала. В принципе проблема общая.
fixed