Instalación de ImageMagick y el módulo PHP imagick en shared Hosting

Generalidades

Este artículo solo explica cómo instalar una versión personalizada de ImageMagick usando una versión personalizada de PHP. No explica cómo usar ImageMagick en sí.

Visita el siguiente artículo para obtener instrucciones sobre el uso de ImageMagick preinstalado de DreamHost con MediaWiki:

ImageMagick es un paquete de software gratuito que se utiliza para convertir y editar imágenes y se instala de forma predeterminada en todos los servidores DreamHost. Para ver la versión actual, inicia sesión en tu servidor a través de SSH y luego ejecuta el siguiente comando:

[server]$ dpkg -l | grep magick

Para obtener más detalles sobre ImageMagick, visita el siguiente sitio:

Preparar el entorno

La instalación de una versión personalizada de ImageMagick solo es posible si está utilizando una versión personalizada de PHP. Esto significa que primero debes instalar una versión personalizada con tu usuario SHELL. Una vez instalado, procede con las siguientes secciones.

  1. Inicia sesión en tu servidor a través de SSH.
  2. Instala una versión personalizada de PHP bajo tu usuario SHELL.

    Asegúrate de haber seguido completamente los pasos para instalar una versión personalizada de PHP. Tu entorno SHELL debe ejecutar esta nueva versión antes de que pueda continuar.

  3. Asegúrate de estar en el directorio principal de tu usuario y no en el directorio de tu dominio.
  4. Crea un directorio build donde se descargan, configuran y compilan todas las herramientas necesarias:
    [server]$ mkdir build
  5. Crea un directorio local donde se implementen todas las herramientas necesarias:
    [server]$ mkdir local

Instalar ImageMagick

Una vez que hayas creado los directorios /build y /local, proceda con los siguientes comandos. Este ejemplo usa la versión 7.0.7-28.

[server]$ cd build
[server]$ wget "http://www.imagemagick.org/download/ImageMagick.tar.gz"
[server]$ tar zxvf ImageMagick.tar.gz
[server]$ cd ImageMagick-7.0.7-28
[server]$ ./configure --prefix=$HOME/local --enable-shared --enable-symbol-prefix
[server]$ make 
[server]$ make install

Si todo funciona sin problemas, los archivos binarios de ImageMagick actualizados, la colección de bibliotecas, la documentación, etc. están disponibles en tu directorio local (y subdirectorio).

Comienza a usar este directorio local ejecutando el siguiente comando:

[server]$ export PATH=$HOME/local/bin:$PATH

Finalmente, verifica la versión:

[server]$ convert --version
Version: ImageMagick 7.0.7-28 Q16 x86_64 2018-04-29 http://www.imagemagick.org

Construir el módulo PHP de Imagick

  1. Navega a tu directorio build:
    [server]$ cd $HOME/build
    
  2. Visita http://pecl.php.net/package/imagick y elige la versión que deseas usar.
  3. Ejecuta los siguientes comandos según la versión que estés usando. Este ejemplo usa 3.4.3:
    [server]$ wget https://pecl.php.net/get/imagick
    [server]$ tar zxvf imagick
    [server]$ cd imagick-3.4.3
    
  4. Ejecuta lo siguiente para asegurarte de que imagick se compile sin problemas. Asegúrate de cambiar 'username' a tu nombre de usuario SHELL real:
    [server]$ /home/username/local/bin/phpize
    [server]$ export PKG_CONFIG_PATH=$HOME/local/lib/pkgconfig
    [server]$ ln -s $HOME/local/include/ImageMagick-7 $HOME/local/include/ImageMagick
    [server]$ ./configure --prefix=$HOME/local --with-imagick=$HOME/local
    [server]$ make

    Es posible que veas algunas advertencias de compilación, que puedes ignorar con seguridad. Busca lo siguiente que garantiza una instalación exitosa:

    Libraries have been installed in:
      /home/username/build/imagick-3.4.3/modules
    
  5. Para finalizar, ejecuta make install para copiar el módulo a su directorio de extensiones personalizadas:
    [server]$ make install
    Installing shared extensions:     /home/username/local/lib/php/extensions/no-debug-non-zts-20170718/
    Installing header files:          /home/username/local/include/php/

Configuración de PHP para usar esta extensión

Ya que instalaste una versión personalizada de PHP 7.2.5, no hay ningún archivo php.ini. Créalo en el directorio /local/lib. Por ejemplo:

[server]$ touch $HOME/local/lib/php.ini

Esto crea el archivo. Luego, elimina cualquier proceso PHP en ejecución para asegurarte de que PHP esté al tanto de este nuevo archivo de configuración:

[server]$ killall -9 php-cgi

Puedes ver que ahora se está utilizando creando un archivo phpinfo.php:

Visita tu sitio para ver el archivo. En el primer bloque, 'Loaded Configuration File' apunta al archivo que acabas de crear. En esa página, busca extension_dir que apunta a lo siguiente:

/home/username/local/lib/php/extensions/no-debug-non-zts-20170718

Finalmente, ejecuta el siguiente comando. Esto agrega una línea a tu archivo php.ini que apunta al módulo imagick.so dentro del directorio extensions:

[server]$ echo "extension = $HOME/local/lib/php/extensions/no-debug-non-zts-20170718/imagick.so" >> $HOME/local/lib/php.ini

Visita tu archivo phpinfo.php nuevamente donde existe el bloque 'imagick' con tu nueva versión.

Ver También

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?