Php установка модулей

Функциональность смежных частей вынесена в расширения, например, работа с mysql из php

make config-recursive install clean WITHOUT_X11=yes WITH_XPM=yes -C /usr/ports/lang/php55-extensions/ Еще можно BATCH=yes добавить

Когда надо доставить, то это не канает, она говрит что порт уже установлен. Т.е. остается тольк отдельно ставить их /usr/ports/databases/php55-mysqli

Ряд функциональности вынесена в модули, которые по умолчанию не устанавливаются. Сразу после установки PHP наблюдаем следующие модули радел Additional Modules пуст
 * cgi-fcgi
 * date
 * libxml
 * Reflection
 * standard

Модули помещаются в /usr/local/lib/php/20090626/ и имеют вид бинарных файлов с расширением .so

Активация моделей (автоматически в случае установки не руками) производится через конфигурационный файл /usr/local/etc/php/extensions.ini

Остальные устанавливаются посредством порта php5-extensions, а также отдельных портов, которые ставят модули из PECL.

Отметить, уже отмеченные без изменений.
 * BZ2
 * EXIF
 * curl (для работы openid) - curl - доустановка позже /usr/ports/ftp/php5-curl
 * GD работа с изображениями
 * fileinfo - уже не надо, с 5.3 включена в состав и модуля такого отдельного не требуется ставить
 * mcrypt
 * mysql (без нее не будет работать взаимодействие с БД)
 * mysqli - крайний раз через него работала Joomla (можно было на mysql) поменять видимо
 * pgsql
 * sockets
 * GNU MP support (для работы openid) - доустановка позже math/php5-gmp
 * gettext не надо?

Отобразились настройки для:
 * php-pcre - bundled опцию для апач 2.0 надо взвести, продолжаем
 * php-gd - по умолчанию
 * lib-xslt - по умолчанию - только crypto
 * python - ????? убрал поддержку ipv6
 * fretds-msdblib - ничего не взводил
 * postgres client - убрал NLS - таким образом все сброшены пункты
 * php5-sqllite - utf8 выставил

При установке GD (порта патчены для новой версии php) начинает ставить Xorg как зависимость, поэтому добавить следующие параметры (xpm or "X PixMap" -- an image format provided with X windows. You can avoid having to install the whole X client libraries by installing graphics/gd with the following flags:) WITH_XPM=yes WITHOUT_X11=yes

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

В последний раз ставил так: указав нужные модули начал установку, прервал ее и запустил make install clean -C /usr/ports/lang/php52-extensions/ WITH_XPM=yes WITHOUT_X11=yes BATCH=yes Не смогла несколько библиотек поставить по какой-то причине, выполнил для них вручную make install clean -C /usr/ports/devel/libltdl22 make install clean -C /usr/ports/security/libmcrypt/ make install clean /usr/ports/security/libmcrypt

Установка через PECL
После завершения установки модуля - сразу видно его в выводе phpinfo.

id3 нет в списке - он есть через pecl make search name=pecl | grep -B 2 ID3 make -C /usr/ports/audio/pecl-id3/ install clean После установку выводит текст Libraries have been installed in: /usr/ports/audio/pecl-id3/work/id3-0.2/modules Но при этом в нормальное место помещает - в /usr/local/lib/php/20060613/id3.so make -C /usr/ports/net/pecl-geoip install clean multybyte regex support (взведен по умолчанию) (забыл выбрать из списка при установке) make -C /usr/ports/converters/php5-mbstring install clean тоже забыл make install clean -C /usr/ports/graphics/php5-exif
 * id3
 * GeoIP
 * regex
 * mbstring
 * exif

PECL Ports /usr/ports/sysutils/pecl-fileinfo/ pkg_info | grep pecl "pecl-fileinfo-1.0.4 A PECL extension to retrieve info about files" Начиная с версии 5.3.0 это расширение доступно по умолчанию (php-src/ext/fileinfo) и PECL-расширение дальше не будет развиваться.
 * Fileinfo

Периодически требуется доустанавливать модули, которых не хватает. Можно найти их самому или позвать метапорт. Может быть подписано в Makefile. Например DF_DESC=              PDFlib support (implies GD), подразумевает что поставится gd  libgd. Поэтому просто смотрим в разделе графическом что-то вида php + название нужное нам. получается php52-gd/


 * Искать по файлу (pdf.so) можно в http://www.secnetix.de/tools/porgle/porgle.py?name=1&comm=1&plst=1&q=pdf.so&Search=Search
 * По портам названиям (поставив equal) в http://www.freshports.org
 * используя ключ мейк make search key=filename

А там всего лишь отсылка к php5 - MASTERDIR=     ${.CURDIR}/../../lang/php5 // PKGNAMESUFFIX=  -gd

make config-recursive install clean WITHOUT_X11=yes -C /usr/ports/lang/php5-extensions/

После переустановки требуется перезапуск в любом случае. Какой вариант php (как модуль или как интерпретатов) нужно перезапускать apache. Иначе они ни работать не будут, ни в выводе phpinfo будут отсутствовать.

make config-recursive install clean -C /usr/ports/lang/php5-extensions/

XML ставить надо в OPTIONS. Если позже это надо сделать, то

make install clean -C /usr/ports/textproc/php5-xml

php5-intl "This extension is bundled with PHP as of PHP version 5.3.0."]

php-Extensions притащили Иксы (в make.conf не было про NO_X11

 ===> Cleaning for libXpm-3.5.7 ===> Cleaning for libX11-1.3.6,1 ===> Cleaning for libXext-1.1.2,1 ===> Cleaning for libXt-1.0.9 ===> Cleaning for libXaw-1.0.8,1 ===> Cleaning for libxcb-1.7 ===> Cleaning for xorg-macros-1.11.0



Переустановка
После переустановки php перестали загружаться модули. В предудыщей установке они были в /usr/local/lib/php/20090626-zts/, а после переустановки оказались в /usr/local/lib/php/20090626/ (без zts)

Если удалить метапорт, то модули все равно останутся

php  PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/ctype.so' - Cannot open "/usr/local/lib/php/20090626/ctype.so" in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20090626/curl.so' - Cannot open "/usr/local/lib/php/20090626/curl.so" in Unknown on line 0 