Posted at

LaravelにImageMagick(最新版)をインストールして使用する


動作環境


  • CentOS7

  • PHP 7.2.6

  • Laravel 5.5


注意点

installするパッケージのURLが頻繁に変わる可能性があるため、以下を参照しながらインストールしてください


1. imageMagickのインストール

まず、CentOS7本体にImageMagickをインストールします。



  1. imageMagickの依存関係であるパッケージをインストール

    # openjpeg2 
    
    # imageMagick-develインストールのために必要
    $ yum install https://rpmfind.net/linux/mageia/distrib/cauldron/x86_64/media/core/release/lib64openjp2_7-2.3.0-2.mga7.x86_64.rpm
    $ yum install http://springdale.math.ias.edu/data/puias/computational/7/x86_64/openjpeg2-devel-2.1.0-7.sdl7.x86_64.rpm
    $ yum install fftw3
    $ yum install libXt
    $ yum install libtool-ltdl



  2. imageMagickのインストール

    # imageMagick-libs
    
    $ yum install https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-libs-7.0.8-12.x86_64.rpm

    # imageMagick
    $ yum install https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-7.0.8-12.x86_64.rpm

    # imageMagick-devel
    $ yum install https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-devel-7.0.8-12.x86_64.rpm




  3. 以下のコマンドを叩いて、バージョンが確認できればOK

    $ convert -version
    
    Version: ImageMagick 7.0.8-12 Q16 x86_64 2018-09-23 https://imagemagick.org
    Copyright: © 1999-2018 ImageMagick Studio LLC
    License: https://imagemagick.org/script/license.php
    Features: Cipher DPC HDRI Modules OpenMP
    Delegates (built-in): bzlib cairo djvu fftw fontconfig fpx freetype gslib jbig jng jp2 jpeg lcms ltdl lzma openexr pangocairo png ps rsvg tiff webp wmf x xml zlib



2. Peclをインストールする

PHPにimageMagickをインストールするために必要です



  1. peclのインストール

    # peclのインストール
    
    $ wget http://pear.php.net/go-pear.phar



  2. phpで実行するための設定を行う

    以下のコマンドを実行した際に設定の確認があるが、Enterを押せばOK

    $ php go-pear.phar
    



3. PHPにImageMagickを適応させる



  1. 以下のコマンドを実行し、適応させる

    $ pecl install imagick
    



  2. php.iniを編集

    # このコマンドでphp.iniの場所が確認できます
    
    $ php -i | grep "Loaded Configuration File"

    # Dynamic Extensionsの項目より下に以下のコードを記述
    
    extension=imagick.so



  3. apacheサーバの再起動

    $ service httpd restart
    



  4. php-fpmの再起動

    $ service php-fpm restart
    



  5. phpにインストールされているかを確認する

    $ php -i | grep Imagick
    
    imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
    Imagick compiled with ImageMagick version => ImageMagick 7.0.8-12 Q16 x86_64 2018-09-23 https://imagemagick.org
    Imagick using ImageMagick library version => ImageMagick 7.0.8-12 Q16 x86_64 2018-09-23 https://imagemagick.org

    $ php -i | grep -Ei '^(gd|imagic|gmagic|imagemagick)' | grep enabled
    
    GD Support => enabled
    imagick module => enabled



intervention/imageのインストール



  • intervention/imageとは?

    phpで画像加工ができるライブラリで、ImageMagickまたはGDライブラリを選択して画像加工ができます。





  1. composerでインストール

    $ composer require intervention/image
    



  2. laravelのapp/config/app.phpに以下を記述

    'providers' => [
    
    .
    .
    .
    /*
    * Package Service Providers...
    */

    # 以下のコードを記述
    Intervention\Image\ImageServiceProvider::class,
    ]

    'aliases' => [
    .
    .
    .
    'Image' => Intervention\Image\Facades\Image::class
    ]




  3. Intervention/imageのデフォルトを変更する

    Intervention/imageで使用するライブラリのデフォルトがGDなので、変更する

    # 設定ファイルを生成する
    
    php artisan vendor:publish

    config/image.phpに以下の記述を行い、設定する

    'driver' => 'imagick'
    



  4. intervention/imageの動作確認

    <?php
    
    .
    .
    .
    use Intervention\Image\Facades\Image;
    .
    .
    .
    public function convertImage()
    {
    $image = Image::make('image.png')->encode('jpg');
    $path = public_path() . '.jpg';
    $image->save($path);
    }


以上です。 お疲れ様でした。


参考