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
Надеюсь это поможет! и ты будешь проводить меньше времени, чем я.
По-другому:
- Перейдите на rpmfind.net и найдите php-gd-bundled для вашей версии php.
- Извлечь rpm (rpm2cpio имя_архива.rpm | cpio -idmv)
- Сделайте резервную копию вашего 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' \
"$@"