not - php must support gd library
Compilando PHP con soporte GD y libjpeg (3)
Compilo mi propio PHP, en parte para aprender más sobre cómo se forma PHP, y en parte porque siempre encuentro que necesito módulos que no están disponibles de manera predeterminada, y de esta manera tengo control sobre eso.
Mi problema es que no puedo obtener soporte para JPEG en PHP. Utilizando CentOS 5.6. Aquí están mis opciones de configuración al compilar PHP 5.3.8 :
''./configure'' ''--enable-fpm'' ''--enable-mbstring'' ''--with-mysql'' ''--with-mysqli'' ''--with-gd'' ''--with-curl'' ''--with-mcrypt'' ''--with-zlib'' ''--with-pear'' ''--with-gmp'' ''--with-xsl'' ''--enable-zip'' ''--disable-fileinfo'' ''--with-jpeg-dir=/usr/lib/''
La salida ./configure
dice:
checking for GD support... yes
checking for the location of libjpeg... no
checking for the location of libpng... no
checking for the location of libXpm... no
Y luego podemos ver que GD está instalado, pero que el soporte de JPEG no está allí:
# php -r ''print_r(gd_info());''
Array
(
[GD Version] => bundled (2.0.34 compatible)
[FreeType Support] =>
[T1Lib Support] =>
[GIF Read Support] => 1
[GIF Create Support] => 1
[JPEG Support] =>
[PNG Support] => 1
[WBMP Support] => 1
[XPM Support] =>
[XBM Support] => 1
[JIS-mapped Japanese Font Support] =>
)
Sé que PHP necesita poder encontrar libjpeg, y obviamente no puede encontrar una versión con la que esté contento. Habría pensado que /usr/lib/libjpeg.so
o /usr/lib/libjpeg.so.62
sería lo que necesita, pero le proporcioné el directorio lib correcto ( --with-jpeg-dir=/usr/lib/
) y no los recoge, así que supongo que no pueden ser las versiones correctas.
rpm
dice que libjpeg está instalado. ¿Debo yum remove
y reinstalarlo, y todos los paquetes dependientes? ¿Podría eso arreglar el problema?
Aquí hay una bandeja de pegar con una colección de información del sistema que esperamos que sea útil:
http://pastebin.com/ied0kPR6
Disculpas por la publicación cruzada con Server Fault ( https://serverfault.com/q/304310/92291 ) aunque intenté descubrir cuál era la posición de Stack Exchange en la publicación cruzada y no estaba claro: https://meta.stackexchange.com/q/75326/167958
Lo más probable es que necesite instalar la versión de desarrollo, no la versión en tiempo de ejecución, de libjpeg (por supuesto, la versión en tiempo de ejecución será necesaria una vez que haya compilado).
Yo no uso CentOS, pero algo como esto debería ayudar:
rpm install libjpeg-devel
Puede que tenga el nombre del paquete incorrecto, pero busque algo con un postfix -dev
o -devel
.
No te olvides de hacer un
make clean
después de configurar
Tengo que hacer alguna otra configuración y hacer antes y la instalación anterior me impide habilitar el soporte jpeg en GD.
Me salva en ubuntu 12.04 64bits
También he usado estos paquetes:
aptitude install libjpeg62-dev libpng-dev libfreetype6-dev
Con esta configuración de opciones:
./configure /
--with-config-file-path=/usr/local/apache2/conf /
--with-jpeg-dir /
--with-png-dir /
--with-vpx-dir /
--with-freetype-dir /
--enable-apc /
--enable-bcmath /
--enable-calendar /
--enable-dba /
--enable-exif /
--enable-ftp /
--enable-mbstring /
--enable-shmop /
--enable-sigchild /
--enable-soap /
--enable-sockets /
--enable-sysvmsg /
--enable-zip /
--enable-gd-native-ttf /
--with-gd /
--with-apxs2=/usr/local/httpd/bin/apxs /
--with-bz2 /
--with-curl /
--with-gettext /
--with-mcrypt /
--with-mysql-sock=/var/run/mysqld/mysqld.sock /
--with-openssl /
--with-pdo-mysql /
--with-xmlrpc /
--with-zlib
y entonces :
make clean
make
make install
Corre bien con Apache 2.4.3 y PHP 5.4.11
de acuerdo a lo pedido:
A veces, la secuencia de comandos de configuración es tonta, y tiene que hacer --with-somelib = / usr en lugar de ... = / usr / lib, porque la prueba de configuración se escribe como proporcionada ruta + ''/ lib /'' en lugar de solo ruta proporcionada internamente . Es posible que tenga que buscar en el conjunto de pruebas de configuración para averiguar qué se necesita realmente