Как прикрутить графическую библиотеку www.boutell.com к PHP4
Первая фишка конфигурирования графики в PHP4 заключается в том, что есть интегрированный порт /usr/ports/lang/php4, который ставит сразу три порта PHP4:
/usr/ports/lang/php4-cli | for Command Line Interpreter only |
/usr/ports/www/php4-cgi | for Common Gateway Interface only |
/usr/ports/www/mod_php4 | for Apache Module only |
Когда заходишь в конфигурирование этого интегрированного порта, то вроде бы никаких препятствий к конфигурированию PHP4 совместно с GD нет.
./configure --with-gd (остальные параметры пока опустим)
проходит нормально, только на этапе make все валится.
Эта фишка разруливается только одним способом - конфигурированием не из интегрированного порта, а из порта /usr/ports/www/mod_php4 или, соответственно, из /usr/ports/www/php4-cgi.
Вторая фишка настройки PHP4. При конфигурировании из интегрированного порта устанавливаемый пакет называется mod_php4-4.3.9, а из порта /usr/ports/www/mod_php4 - mod_php4-4.3.9,1. Как говорится, почувствуйте разницу. Соответственно, старший пакет (с единичкой на конце) всегда перекрывает установку из интегрированного порта - но не наоборот. Наоборот - придется сначала вручную с помощью pkg_delete удалить пакет с единичной на конце.
Третья фишка, без которой PHP4 вам никогда не сконфигурить. Как вы можете видеть - одной опции --with-gd недостаточно. Надо конкретно указывать месторасположение библиотек, т.к. что такое 'bundled library' не знает никто:
--with-gd[=DIR] | Include GD support where DIR is GD install prefix. |
If DIR is not set, the bundled GD library will be used. | |
--with-jpeg-dir[=DIR] | GD: Set the path to libjpeg install prefix. |
--with-png-dir[=DIR] | GD: Set the path to libpng install prefix. |
--with-zlib-dir[=DIR] | GD: Set the path to libz install prefix. |
--with-xpm-dir[=DIR] | GD: Set the path to libXpm install prefix. |
--with-ttf[=DIR] | GD: Include FreeType 1.x support |
--with-freetype-dir[=DIR] | GD: Set the path to FreeType 2 install prefix. |
--with-t1lib[=DIR] | GD: Include T1lib support. |
--enable-gd-native-ttf | GD: Enable TrueType string function. |
--enable-gd-jis-conv | GD: Enable JIS-mapped Japanese font support. |
Так вот, та самая библиотека поддержки PNG-формата содержится в /usr/ports/archivers/php4-zlib. Соответственно, сначала конфигурится она, а только потом собирается порт /usr/ports/www/mod_php4 с параметрами:
./configure --with-gd --with-png-dir=/usr/ports/archivers/php4-zlib/work/php-4.3.9/ext/zlib/modules
Если же посмотреть страничку, формируемую командой:
php -i > phpinfo.htm,
то мы увидим все параметры нашей сборки PHP4, в том числе параметры собранной графической библиотеки.
Четвертая фишка здесь в том, что хотя мы вроде бы собирали DSO-модуль Апача из /usr/ports/www/mod_php4, который хотели загружать по:
LoadModule php4_module libexec/apache/libphp4.so
AddModule mod_php4.c
но если внимательно посмотреть последний журнал сборки - увидим строчку:
Installing PHP CGI into: /usr/local/bin/
т.е. фактически собрался CGI-модуль. Вот это да - собирали DSO, а получили CGI !!!
При запуске PHP мы увидим еще одно подтверждение этому чуду:
# php -v
PHP 4.3.9 (cgi) (built: Dec 23 2004 15:07:24)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
Да, теперь уже, конечно, одним добавлением
AddType application/x-httpd-php .php
не обойдешся никак - надо полностью конфигурить не DSO-вариант PHP, а CGI.
Надеюсь эта страничка вам помогла...
|