Linux - Сборка PHP и расширений к нему

Linux - Сборка PHP и расширений к нему
просмотров: 123018 декабря 2011 года

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

Для того, чтобы скомпилировать PHP в нашей системе, его как минимум, необходимо сперва скачать: http://php.net/releases/

Как распаковывать архивы и перемещаться по папкам в Linux думаю все давно знают, по-этому привожу больше конкретики именно по компиляции и параметрам.

 

Можно конечно писать параметры компиляции в одну строку и считать себя умным сис-админом, но я предпочитаю наглядность и размещаю все парметры компиляции в файл.

Создадим файл install.sh и разрешим его запуск я помощью chmod +x

 

Мой файл конфигурации PHP v5.3.8:

#!/bin/sh
# GD и MySQL я решил подключать отдельными модулями
# (вдруг я в дальнейшем откажусь от этих библиотек :))

./configure --prefix=/usr/local/etc/php/5.3.8 \
        --with-config-file-path=/usr/local/etc/php/5.3.8/etc \
        --with-config-file-scan-dir=/usr/local/etc/php/5.3.8/etc/php.d \
        --with-layout=GNU \
        --with-apxs2=/usr/local/sbin/apxs \
        --with-bz2 \
        --with-curl \
        --with-gettext \
        --with-iconv \
        --with-openssl \
        --with-zlib \
        --with-freetype-dir=/usr \
        --with-png-dir=/usr \
        --with-jpeg-dir=/usr \
        --enable-gd-native-ttf \
        --enable-exif \
        --enable-ftp \
        --enable-sockets \
        --without-sqlite \
        --without-pear \
        --without-gdbm \
        --without-mysql \
        --without-gd \
        --without-unixODBC \
        --disable-rpath \
        --disable-dom \
        --disable-dba \
        --disable-pdo \
        --disable-xmlreader \
        --disable-xmlwriter \
        --disable-debug
make
make install clean

После исполнения этого файла, у вас будет собран PHP как модуль для Apache.

Для сборки PHP как CGI - необходимо убрать опцию --with-apxs2 и выполнить комманду повторно. В результате появится файл php-cgi.

 

Расширения устанавливаются отдельно из той же сборки и копируются в ручную в нужную папку.

Рассмотрим пример на установке MySQL расширения:

cd ./ext/mysql
/usr/local/etc/php/5.3.8/bin/phpize
./configure --with-php-config=/usr/local/etc/php/5.3.8/bin/php-config
make
make install clean

Если необходимо установить много расширений, для удобства запишим комманду в одну строчку (если текущая папка ./ext):

cd ./mysql && /usr/local/etc/php/5.3.8/bin/phpize && ./configure --with-php-config=/usr/local/etc/php/5.3.8/bin/php-config && make install clean && cd ..

 

Вот и все! А вы думали это сложно?

Хорошего Вам дня!

Что скажем?