Блог программиста Еремина Вячеслава Викторовича
(Notes) UNIX (2004 год)

Как прикрутить графическую библиотеку 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.


Надеюсь эта страничка вам помогла...



Комментарии к этой страничке ( )
ссылка на эту страничку: http://www.vb-net.ru/hosting/php.htm
<Назад>  <На главную>  <В раздел ASP>  <В раздел NET>  <В раздел SQL>  <В раздел Разное>  <Написать автору>  < Поблагодарить>