Linux - Сборка PHP и расширений к нему
Не так недавно, как мне кажется, я уяснил одну истину, в суть которой было заложено следующее: чем тщательней ты разжуешь материал в своих высказываниях - тем быстрее сам поймешь всю суть материала. По-этому я постараюсь расписать все по-подробнее...
Для того, чтобы скомпилировать 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 ..
Вот и все! А вы думали это сложно?
Хорошего Вам дня!