Перейти к контенту

Дневник программиста

  • записей
    60
  • комментариев
    309
  • просмотра
    226 853

Как пропатчить php5 на FreeBSD


Arhar

3 992 просмотра

Или что пришлось сделать, чтобы хоть что-то заработало.

 

Имеем апач и php4. Как и откуда он был собран - неизвестно, писать доблестному рядовому красной армии - не вариант.

Хотим иметь апач и php5.

 

Скачиваем php5, читаем краткий брифинг на их сайте о том, как установить его как модуль к апачу.

Там все сказано хорошо и даже замечательно, но не сказано ничего о том, что нам могут понадобится такие вещи, как gd, и, может быть, zlib.

 

Конфигурируется на freebsd и работает по минимуму с указанием with mysql и with apxs.

Если не указать папку с этим самым mysql весьма вероятно, что накопится тьма ошибок типа

File 'NONEXISTENT/charsets/?.conf' not found (Errcode: 2)

Character set '#50' is not a compiled character set and is not specified in the 'NONEXISTENT/charsets/Index' file

Так что mysql на freebsd находится в /var/db/mysql/

Поправьте, если ошибаюсь, с армией связи нет.

 

apxs у меня находился в /usr/local/sbin/

 

Все собралось замечательно, быстро и подозрительно.

Естественно без такой крайней необходимости, как gd.

 

gd была установлена из порта, на предыдущем 4 php работала прекрасно

Но банальная команда на попытку ее подключения теперь, к 5 версии, естественно была обречена на феерический неуспех.

Bundled версия не поддерживала jpeg, имеющаяся не собиралась вообще.

 

Скачиваем libgd с одноименного некоммерческого сайта. Конфигурируем. С префиксом /usr/local/gd

Это лучший способ, потому как неизвестно, затрется ли старая версия из портов, где ее искать, ну и т.д.

Вываливаются некоторые ошибки про некоторые непонятные модули, типа x11/xpm.h

В каждом случае идем в порты и, недолго думая, находим необходимые вещи и ставим их.

Конфигурируем с добавлением указаний на ненайденные модули, типа --with-xpm=/usr/local/include/ (они чаще всего валятся туда).

В итоге получаем что-то типа

./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/lib/ --with-xpm=/usr/local/include/

Помню, там был еще один модуль, на который шли жалобы, так он был тоже в инклюд.

make, make install, все как положено, возвращаемся к php

 

В общем не буду тянуть, у меня на FreeBSD 6 в результате была такая команда:

./configure --with-mysql=/var/db/mysql/ --with-apxs=/usr/local/sbin/apxs --with-jpeg-dir=/usr/local/lib/ --with-gd=/usr/local/gd/ --with-zlib

На zlib было как-то наплевать, вроде работает.

В крайнем случае можно проделать то же шаманство, что и с gd

1 комментарий


Рекомендуемые комментарии

возникла необходимость добавить поддержку ttf

gd:

./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/lib/ --with-png-/usr/local/lib/ --with-freetype=/usr/local/include/ --with-fontconfig=/usr/local/include/ --with-xpm=/usr/local/include/

php:

./configure' '--with-mysql=/var/db/mysql/' '--with-apxs=/usr/local/sbin/apxs' '--with-jpeg-dir=/usr/local/lib/' '--with-freetype-dir=/usr/local/include/' '--with-gd=/usr/local/gd/' '--enable-gd-native-ttf' '--with-zlib'

 

 

также изменилась функция imagepng, от чего отвалился водяной знак:

gd-png: fatal libpng error: zlib failed to initialize compressor

gd-png error: setjmp returns error condition

 

исправление - замена в коде третьего параметра этой функции со 100 на 9

Ссылка на комментарий
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.