PHP GD связанное расширение без перекомпиляции PHP - решение

В комплекте расширение предлагает много функциональности. Я потратил много времени, как скомпилировать расширение для моей версии PHP. Так что есть инструкции.

2 ответа

Решение

0, установите пакет разработки PHP. Также Вы должны установить PHP с расширением GD (но не в комплекте)

sudo apt-get install php5-dev

1, Скачать исходный код используемого PHP (для меня 5.6.18)

wget http://cz2.php.net/get/php-5.6.18.tar.gz/from/this/mirror -O php-5.6.18.tar.gz

2, Извлечь архив

tar -xzf php-5.6.18.tar.gz

3, Перейти к исходному коду расширения GD

cd php-5.6.18/ext/gd/

4. Подготовьте расширение (запустите phpize в этом каталоге).

phpize

5, теперь команда настройки

5.1, Аргументы зависят от вашего дистрибутива Linux. Мой был этим:

--with-freetype-dir=shared,/usr --with-vpx-dir=shared,/usr --with-jpeg-dir=shared,/usr --with-xpm-dir=shared,/usr/X11R6

5.2, Для получения путей к библиотекам Вы должны выполнить эту команду и искать только те аргументы поиска, которые указаны выше (5.1)

php-config --configure-options

5.3, также добавьте этот аргумент для настройки (второй аргумент делает версию в комплекте)

--with-php-config=/usr/bin/php-config --with-gd 

6, команда Final configure

sudo ./configure --with-php-config=/usr/bin/php-config --with-gd --with-freetype-dir=YOUR_VALUE --with-vpx-dir=YOUR_VALUE --with-jpeg-dir=YOUR_VALUE --with-xpm-dir=YOUR_VALUE

7, теперь запустите make

make

8, после компиляции вы должны увидеть что-то вроде этого:

Libraries have been installed in:
   /home/jakub/php-5.6.18/ext/gd/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

Build complete.
Don't forget to run 'make test'.

Итак, в каталоге модулей у вас скомпилировано расширение gd.so.9, Замените НЕ связанный gd.so Вашим новым скомпилированным связанным расширением, для моей версии PHP Это была команда:

sudo cp -f ./gd.so /usr/lib/php5/20131226/gd.so

10, перезагрузите Apache

sudo service apache2 restart

Надеюсь это поможет! и ты будешь проводить меньше времени, чем я.

По-другому:

  1. Перейдите на rpmfind.net и найдите php-gd-bundled для вашей версии php.
  2. Извлечь rpm (rpm2cpio имя_архива.rpm | cpio -idmv)
  3. Сделайте резервную копию вашего gd.so, а затем скопируйте gd.so из архива в каталог php lib.

Также я мог бы скомпилировать модуль со следующими параметрами:

#! /bin/sh
#
# Created by configure

'./configure' \
'--with-php-config=/usr/bin/php-config' \
'--with-gd=shared' \
'--with-freetype-dir=/usr' \
'--with-vpx-dir=/usr' \
'--with-jpeg-dir=/usr' \
'--with-xpm-dir=/usr' \
'--with-png-dir=/usr' \
'--with-t1lib=/usr' \
'--enable-gd-native-ttf' \
"$@"
Другие вопросы по тегам