Hướng dẫn php imagick docker

Install Imagick in PHP Docker like a pro with this handy guide by our experts. 

At Bobcares, we offer solutions for every query, big and small, as a part of our Docker Hosting Support.

Let’s take a look at how our Docker Support Team is ready to help customers with imagick installation in PHP Docker.

How to Install Imagick in PHP Docker

Imagick is a PHP module that plays a critical role in handling images, image conversion, image compression, cropping, and so on. Moreover, it enables our site to deliver images without resulting in scaling issues. This improves the user experience immensely.

Hướng dẫn php imagick docker

If you are looking for a simple yet effective guide to help you install Imagick in PHP Docker, you have come to the right place. Moreover, the PHP docker image is built from the ground up, thereby the standard apt-get install php-imagick command does not function. In fact, many of our customers find themselves in a pickle after attempting installation in PHP docker with :

run: sudo docker-php-ext-install php-imagick.
run: sudo apt-get install -y aptitude.
run: sudo aptitude install -y php-imagick.
run: sudo apt-get install -y php7-imagick.
sudo aptitude -y install imagemagick.
sudo aptitude -y install libmagickcore-dev.

According to our Support Techs, the docker file for Imgick PHP 7.X should look like the one below:

FROM php:7.3-apache
RUN apt-get update && apt-get install -y libmagickwand-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
RUN printf "\n" | pecl install imagick
RUN docker-php-ext-enable imagick

Build Output:

---> Running in 976ecd4a9627
Removing intermediate container 976ecd4a9627
 ---> 4b978dd49756
Successfully built 4b978dd49756

The docker file for Imgick PHP 8 should look like the one below:

FROM php:8.0.2-apache
RUN apt-get update && apt-get install -y libmagickwand-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*

RUN mkdir -p /usr/src/php/ext/imagick; \
    curl -fsSL https://github.com/Imagick/imagick/archive/06116aa24b76edaf6b1693198f79e6c295eda8a9.tar.gz | tar xvz -C "/usr/src/php/ext/imagick" --strip 1; \
    docker-php-ext-install imagick;

Build Output:

Libraries have been installed in:
   /usr/src/php/ext/imagick/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20200930/
Installing header files:          /usr/local/include/php/
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp.la      modules/* libs/*
Removing intermediate container 94ca3e4ec9c5
 ---> 0f5f815dccc2
Successfully built 0f5f815dccc2

After the installation, enable Imagick on the hosting account by heading to file Manager under Site in the Site Tools section. Then navigate to the public_html folder and create a new file and save it as php.ini.

With this handy guide, we now have access to Imagick in PHP Docker. If you are still having trouble, contact our experienced Support Engineers for further help.

[Need assistance with another query? We are available 24/7.]

Conclusion

In brief, our skilled Docker Support Engineers at Bobcares demonstrated how to go about installing Imagick in PHP Docker.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

Imagick là một phần mở rộng PHP để tạo và sửa đổi hình ảnh bằng cách sử dụng ImageMagick thư viện. Những người không quen thuộc với phần mềm ImageMagick là phần mềm mã nguồn mở, miễn phí có thể chuyển đổi, đọc, ghi và xử lý hình ảnh raster. Hiện tại, phần mở rộng PHP chỉ hỗ trợ PHP 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0 và 8.1.

Nội dung chính

  • Điều kiện tiên quyết
  • Cập nhật hệ điều hành
  • Cài đặt PHP-IMAGICK từ Kho lưu trữ Ubuntu
  • Cài đặt PHP-IMAGICK từ PHP PPA của Ondřej Surý
  • Bật PHP-IMAGICK .SO trong tệp PHP.INI
  • Tạo trang thông tin PHP để xác minh cài đặt

Trong hướng dẫn sau, bạn sẽ học cách cài đặt PHP EXTENSION ImageMagick (IMAGICK) trên Ubuntu 20.04 LTS Focal Fossa.

Lưu ý, hãy truy cập hướng dẫn Cách cài đặt ImageMagick trên Ubuntu 20.04 để cài đặt gói ImageMagick.

Mục lục

1

  • Điều kiện tiên quyết
    • Cập nhật hệ điều hành
  • Cài đặt PHP ImageMagick trên Ubuntu
    • Cài đặt PHP-IMAGICK từ Kho lưu trữ Ubuntu
    • Cài đặt PHP-IMAGICK từ PHP PPA của Ondřej Surý
  • Bật PHP-IMAGICK .SO trong tệp PHP.INI
    • Apache
    • Nginx
  • Tạo trang thông tin PHP để xác minh cài đặt
  • Nhận xét và kết luận

Điều kiện tiên quyết

  • Hệ điều hành được đề xuất: Ubuntu 20.04.
  • Tài khoản người dùng: Một tài khoản người dùng với sudo or quyền truy cập root.

Hướng dẫn sẽ sử dụng giao diện đầu cuối, có thể được tìm thấy trong hiển thị menu ứng dụng.

Ví dụ:

Cập nhật hệ điều hành

Cập nhật của bạn Ubuntu hệ điều hành để đảm bảo tất cả các gói hiện có đều được cập nhật:

sudo apt update && sudo apt upgrade -y

Hướng dẫn sẽ sử dụng sudo lệnh và giả sử bạn có trạng thái sudo.

Để xác minh trạng thái sudo trên tài khoản của bạn:

sudo whoami

Ví dụ đầu ra hiển thị trạng thái sudo:

[[email protected] ~]$ sudo whoami
root

Để thiết lập tài khoản sudo hiện có hoặc mới, hãy truy cập hướng dẫn của chúng tôi về Cách thêm người dùng vào Sudoers trên Ubuntu.

Sử dụng lệnh sau với mật khẩu gốc để đăng nhập để sử dụng tài khoản gốc.

su

Người dùng sử dụng sudo không cần đăng nhập vào tài khoản gốc, là tùy chọn.

Bạn có hai lựa chọn để cài đặt, và một là kho lưu trữ mặc định của Ubuntu hoặc được cài đặt từ PPA bởi Ondřej Surý. Hướng dẫn sẽ bao gồm cả hai tùy chọn và bạn có thể quyết định tốt nhất nên chọn cái nào.

Cài đặt PHP-IMAGICK từ Kho lưu trữ Ubuntu

Tùy chọn đầu tiên là sử dụng kho lưu trữ Ubuntu 20.04 chính thức và đây là một trong những tùy chọn được ưu tiên nhất và được cho là ổn định nhất. Hạn chế duy nhất sẽ là lỗi thời đối với các bản dựng mới và cải tiến so với hai tùy chọn còn lại.

đặt php-imageick với lệnh sau:

sudo apt install php-imagick

Ngoài ra, các phiên bản cụ thể.

Cài đặt 7.4 PHP-IMAGICK:

sudo apt install php7.4-imagick

Cài đặt 8.0 PHP-IMAGICK:

sudo apt install php8.0-imagick

Tiếp theo, xác minh cài đặt:

php -m | grep imagick

Ví dụ đầu ra:

imagick

Cài đặt PHP-IMAGICK từ PHP PPA của Ondřej Surý

Lựa chọn cài đặt thứ hai được khuyến nghị trên kho lưu trữ mặc định bằng cách cài đặt PPA bằng cách Ondřej Surý. Đối với những người không quen, Ondřej Surý là người bảo trì PHP tại Debian và luôn cập nhật PPA này với các phiên bản PHP ổn định mới nhất được phát hành.

Đầu tiên, hãy cài đặt PPA như sau:

sudo apt install software-properties-common && sudo add-apt-repository ppa:ondrej/php -y

Bây giờ hãy cài đặt php-imageick:

sudo apt install php-imagick

Ngoài ra, các phiên bản cụ thể.

Cài đặt 7.4 PHP-IMAGICK:

sudo apt install php7.4-imagick

Cài đặt 8.0 PHP-IMAGICK:

sudo apt install php8.0-imagick

Cài đặt 8.1 PHP-IMAGICK:

sudo apt install php8.0-imagick

Tiếp theo, xác minh cài đặt:

php -m | grep imagick

Ví dụ đầu ra:

imagick

Bật PHP-IMAGICK .SO trong tệp PHP.INI

Để kích hoạt Tưởng tượng.so bạn sẽ cần phải chỉnh sửa php.ini tập tin. Một cách nhanh chóng là tạo một .PHP tệp với thông tin PHP của bạn.

Apache

Mô hình php.ini cho Apache máy chủ web được đặt tại /etc/php/8.0/apache2/php.ini. Thay thế phiên bản xây dựng (7.4) nếu bạn đang sử dụng, ví dụ: 8.0, 7.3, 7.2.

Đầu tiên, sử dụng bất kỳ trình soạn thảo văn bản nào và mở php.ini như sau:

sudo nano /etc/php/8.0/apache2/php.ini 

Tiếp theo, thêm dòng sau vào [PHP], nằm trên dòng 2:

extension=imagick

Bây giờ, hãy lưu tệp CTRL + O và thoát ra sau khi lưu CTRL + X.

Để kết thúc, hãy khởi động lại dịch vụ Apache:

sudo systemctl restart apache2

Nginx

Theo mặc định, điều này sẽ được tự động bật. Nếu thiếu làm theo hướng dẫn bên dưới.

Mô hình php.ini cho Nginx máy chủ web được đặt tại /etc/php/8.0/fpm/php.ini. Thay thế phiên bản xây dựng (7.4) nếu bạn đang sử dụng, ví dụ: 8.0, 7.3, 7.2.

Đầu tiên, sử dụng bất kỳ trình soạn thảo văn bản nào và mở php.ini như sau:

sudo nano /etc/php/8.0/fpm/php.ini.

Tiếp theo, thêm dòng sau vào [PHP], nằm trên dòng 2:

extension=imagick

Để kết thúc, hãy khởi động lại PHP-FPM:

sudo systemctl restart php8.0-fpm

Lưu ý, thay thế 8.0 bằng phiên bản PHP của bạn.

Bây giờ, hãy lưu tệp CTRL + O và thoát ra sau khi lưu CTRL + X.

Tạo trang thông tin PHP để xác minh cài đặt

Phần cuối cùng là tạo trang kiểm tra PHP để xác nhận thông tin PHP của bạn. Lý tưởng nhất là bạn muốn thực hiện việc này trong một khu vực bị khóa hoặc ẩn trong thư mục web của mình nếu nó có thể truy cập và công khai.

Đầu tiên, hãy tạo trong thư mục web của bạn một trang thử nghiệm:

sudo nano /var/www/html/phpinfo.php

Tiếp theo, sao chép và dán mã PHP mẫu bên dưới.

Lưu các tập tin (CTRL + O), sau đó thoát ra (CTRL + X).

Nhập HTTP: // hoặc HTTPS: // hoặc IP máy chủ hoặc tên miền trong Trình duyệt Internet của bạn.

Ví dụ:

https://www.linuxcapable.com/phpinfo.php

http://192.168.51.55/phpinfo.php

Bạn sẽ thấy Imagick.ini trên trang thông tin PHP:

Ví dụ Apache:

Ví dụ về Nginx:

Lưu ý, của bạn php-imageick. Đường dẫn sẽ khác nếu bạn sử dụng Apache vì máy chủ thử nghiệm sử dụng Nginx.

Ví dụ:

Bạn đã học cách cài đặt php-imageick bằng cách sử dụng kho lưu trữ mặc định của Ubuntu hoặc của Ondřej Surý. Nhìn chung, trong số nhiều tùy chọn chuyển đổi hình ảnh mà PHP có thể sử dụng, đây là lựa chọn được đề xuất và sử dụng nhiều nhất so với các tùy chọn khác như GD, đặc biệt đối với WordPress máy chủ web, vì nó tạo ra hình ảnh nén chất lượng cao hơn, sắc nét hơn.