GNU/Linux → Трабл з бібліотекою GD в Ubuntu

GD Library

Сьогодні пишучи скріпт в php наткнувся на один баг, або правильніше сказати несподіванку.

Після запуску PHP обматюкало мене словами:

Call to undefined function imagerotate()

Як виявилося, функція imagerotate (і ще декілька) не входять в стандартний комплект PHP-GD, а в так званий розширений, який одним кліком в Synaptic не поставиш.

В даному випадку, правильним виходом буде перезібрати необхідну бібліотеку.

В root консолі:

# Встановлюємо утіліти для компіляції, довідку debian і fakeroot
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.6.dfsg.1

Перед компіляцією пакета необхідно виправити деякі правила конфігурування, що знаходяться в debian/rules. А саме –with-gd=shared,/usr –enable-gd-native-ttf замінити на –with-gd=shared –enable-gd-native-ttf. Це вкаже компілятору зібрати GD з розширеними можливостями.

# компілюємо php5-* пакунки
dpkg-buildpackage -rfakeroot

Можна піти попити кави, чи навіть поїсти, ібо процедура в мене зайняла близько пів години.

cd ..
# Всановлуємо новий php5-gd пакунок
dpkg -i php5-dbg_5.2.6.dfsg.1-3ubuntu4.2_i386.deb

Перезапускаємо апач /etc/init.d/apache2 restart і насолоджуємося новим можливостям GD.

Теги: , , ,
27.08.2009 22:13 Автор: Strange_V Хіти: 340

Коментарів 2

Напишіть відгук