PHP
laravel5

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);
    }
    

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

参考