Новинки техники    ·    Гостевая книга    ·    Улыбочку шире!    ·    Улыбочку шире-2!
Новости
Поиск

PHP4 configure: error: freetype2 not found! - Действительно решено

Компьютерная техника-->Серверные решения

Ну бывает!

Ну вот понадобилось на довольно свежей системе заиметь поддержку PHP4, да еще и гору модулей: PGSQL, MySQL, fileinfo, domxml и всякого разного. Среди прочего нужен был и GD...
Да не просто GD, а с поддержкой FreeType2. Чтобы на картинках можно было рисовать с использованием TTF-шрифтов.

Прежде. Где вязть этого ископаемого дронта? Ну сам php4.

Ведь поскольку эта штука давно не поддерживается, то ни в дистрибутивах, ни в пакетах, ни в портах этого уже нет. Остается - php.net.

Находим там даунлоад, далее архивы и там есть ссылочка на тарболлы PHP4. Как и полагается, ссылочки ведут на скачивание с  сайта muzeum.php.net. Уже довольно забавно.

Первая хреновая засада - скопмилировать это так, чтобы его понимал апач 2.4 Оно, конечно, собирается, но при старте апача ругается на undefined_symbol ap_unixd_config. Решается это дело путем правки файла sapi/apache2handler/php_functions.c

Правятся три места. Оригинальное имя структуры unixd_config заменяется на ap_unixd_config. Это деяние выполняется в двух строках. В третьем же добавляются три строчки:

Приведу конечный вид функции после правок

static char *php_apache_get_version()
{
//      return (char *) ap_get_server_version();
        #if MODULE_MAGIC_NUMBER_MAJOR >= 20060905
               return (char *) ap_get_server_banner();
        #else
                return (char *) ap_get_server_version();
        #endif
}

Вот.

После пересборки и инстала новый апач нормально общается с модулем libphp4.so

Модули (so-шки) расширений PHP после нескольких экспериментов с командой configure тоже все в сборе. Все запустилось и работает.
Однако! Вторая засада. Функции GD по рисованию ТТФом на картинках отсутствует. Обращаемся к мировому разуму и видим, что будет оно рисовать, если собрать с библиотекой FreeType2, указав при конфигурировании опцию --with-freetype-dir=/usr/local (у вас оно может лежать необязательно тут)

Ок. сам пакет freetype2 установлен. дописываем в строчку с конфигуре вожделенный добавок. И.. получаем фигню вида:

configure: error: freetype2 not found!

Никакие манипуляции с заменой /usr/local на что-то еще не помогают.

Остается идти в сам ./configure и искать там упоминания про freetype. Там находим вот это:

if test -f "$i/include/freetype2/freetype/freetype.h"; then

Правим так?

if test -f "$i/include/freetype2/freetype.h"; then

make clean; ./configure со всеми требуемыми параметрами и в том числе не забываем --with-freetype-dir=/usr/local

make

make install

killall -HUP apache

И ископаемый дронт оживает и готов функционировать по полной программе.

 



Комментарии к статье (0)
К списку Назад
Техника
Самое свежее
Вспышка

Когда мы говорим "Вспышка", то подразумеваем "портрет", верно? Люди. Я имею в виду, что все мы выросли на вечеринках, днях рождения и свадьбах, где вспышка врезается в нашу память. Чи-и-з! Вспышка!

Конденсационные газовые котлы – плюсы и минусы

Чудо расчудесное, если верить без оглядки в заверения изготовителей и продавцов газовых котлов об их КПД в 109%. Но это так стали замерять КПД еще давно, когда конденсационники даже не придумали. Рассмотрим плюсы и минусы.

Ошибка Р304 - пропуски зажигания в цилиндре 4 у Фокуса и не только

Никак не руководство к действию, а просто рассказ, как я победил этот неприятный код. А неприятностей он может сулить довольно затратных - причины его очень разные. Ну что говорить? Почитайте там не очень много букв )