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

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

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 Теперь команда configure

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. Также добавьте эти аргументы для configure (второй аргумент делает связанную версию)

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

6, команда «Завершить настройку»

 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, Замените NOT в комплекте 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-комплект для вашей версии php.
  2. Извлечение rpm (rpm2cpio archive_name.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' \ "$@"