Photo of author

By Admin

Cài đặt Imagick trên Amazon Linux EC2

Imagick là một thư viện giúp thao tác với ảnh như cắt, xoay, dịch chuyển. Trong WordPress thì nếu không cài đặt Imagick bạn sẽ gặp một số lỗi về site health. Trong phạm vi bài viết này mình sẽ ghi chú chi tiết cách cài đặt thư viện này trên Amazon Linux 2023.

Imagick là gì?

ImageMagick là thư viện xử lí các file ảnh.

Imagick là một extension của PHP dùng để tạo và sửa đổi các ảnh sử dụng ImageMagick API.

ImageMagick nổi tiếng do tương thích với nhiều định dạng ảnh và có giao diện (API) phong phú.

ImageMagick có thể giúp bạn thực hiện các thao tác từ đơn giản như: dịch chuyển, thay đổi kích thước, xoay, kéo xiên, thu phóng hỉnh, điều chỉnh màu sắc, vẽ vẵn bản, hình học... cho đến thêm các hiệu hứng phức tạp như các bộ lọc gotham, lomo, kelvin, toaster (bộ lọc phức tạp nhất) và nashville (bộ lọc phổ biến nhất).

cài đặt Imagick trên Amazon Linux

  • Bước 1: Cập nhật yum update.
[ec2-user@ip-172-31-32-137 vlt-blog]$ sudo yum update
Last metadata expiration check: 8:29:52 ago on Thu Aug 10 00:07:04 2023.
================================================================================
WARNING:
  A newer release of "Amazon Linux" is available.

  Available Versions:

  Version 2023.1.20230809:
    Run the following command to upgrade to 2023.1.20230809:

      dnf upgrade --releasever=2023.1.20230809

    Release notes:
     https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html

================================================================================
Dependencies resolved.
Nothing to do.
Complete!

Ở đây thì để update yum trên Amazon Linux 2023 thì bạn cần chạy command trong ghi chú trả về từ command.

dnf upgrade --releasever=2023.1.20230809
  • Bước 2: Cài đặt gói php-devel và gcc
 sudo yum install php-devel gcc
  • Bước 3: Sau khi đã cài đặt được thư viện php-devel và gcc thì tiến hành tải gói imagick nằm trong thư viện pecl.
sudo pecl install imagick
sudo pecl install imagick
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading imagick-3.7.0.tgz ...
Starting to download imagick-3.7.0.tgz (360,138 bytes)
.........................................................................done: 360,138 bytes
33 source files, building
running: phpize
Configuring for:
PHP Api Version:         20220829
Zend Module Api No:      20220829
Zend Extension Api No:   420220829
Please provide the prefix of ImageMagick installation [autodetect] : ^Z
[1]+  Stopped                 sudo pecl install imagick
[ec2-user@ip-172-31-32-137 tora-blog]$ sudo yum install php-devel gcc
Last metadata expiration check: 0:03:06 ago on Thu Aug 10 08:37:08 2023.
Package php8.2-devel-8.2.7-1.amzn2023.0.1.x86_64 is already installed.
Package gcc-11.3.1-4.amzn2023.0.3.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
  • Bước 4: Sau khi đã tải gói về thì ta tiến hành chạy lệnh cài đặt.
sudo yum install ImageMagick ImageMagick-devel ImageMagick-perl

Nhấn y để tiếp tục tải package

Transaction Summary
================================================================================
Install  76 Packages

Total download size: 36 M
Installed size: 129 M
Is this ok [y/N]: y
sudo pecl install imagick
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading imagick-3.7.0.tgz ...
Starting to download imagick-3.7.0.tgz (360,138 bytes)
.........................................................................done: 360,138 bytes

Kiểm tra thư viện đã có trong Amazon Linux

Vào thư mục php.d

cd /etc/php.d
[ec2-user@ip-172-31-32-137 php.d]$ ls
10-opcache.ini   20-gettext.ini    20-sockets.ini    20-zip.ini
20-bz2.ini       20-iconv.ini      20-sqlite3.ini    30-mysqli.ini
20-calendar.ini  20-mbstring.ini   20-sysvmsg.ini    30-pdo_mysql.ini
20-ctype.ini     20-mysqlnd.ini    20-sysvsem.ini    30-pdo_sqlite.ini
20-curl.ini      20-pdo.ini        20-sysvshm.ini    30-xmlreader.ini
20-dom.ini       20-phar.ini       20-tokenizer.ini  opcache-default.blacklist
20-exif.ini      20-posix.ini      20-xml.ini
20-fileinfo.ini  20-shmop.ini      20-xmlwriter.ini
20-ftp.ini       20-simplexml.ini  20-xsl.ini
sudo vim 20-imagick.ini
; Enable ImageMagick extension module
extension=imagick

Cấp quyền cho gói imagick.so

sudo chmod 755 /usr/lib64/php8.2/modules/imagick.so

Cuối cùng là reset lại php-fpm và nginx

sudo systemctl restart php-fpm
sudo systemctl restart nginx

Câu lệnh sau giúp kiểm tra imagick đã nằm trong phần package của php chưa nhé.

php -m | grep imagick

Chúc bạn thành công.

Đánh giá bài viết

Đánh giá: 0 / 5. Vote: 0

Viết một bình luận