Thư viện PHP GD WebP

Hôm nay tôi muốn thêm vào trang web của mình hỗ trợ cho hình ảnh webp và vì vậy tôi đã tìm thấy một plugin cho wordpress đó là WebP Converter for Media miễn phí

Nhưng đối với plugin này, chúng ta phải kích hoạt webp hỗ trợ trên mô-đun php GD.
Trên VPS của tôi, tôi đã cài đặt PHP 7. 4 trên Plesk, cách đơn giản là thay đổi modulo gd của phiên bản plesk php bằng một mô-đun tùy chỉnh trong phù thủy hỗ trợ webp được bật.

Tôi đã tìm thấy hướng dẫn hữu ích này mà tôi đã viết lại bằng php 7. 4 mà tôi đã sử dụng trên VPS của mình.  

Cài đặt gói cần thiết

# yum install make gcc plesk-php74-devel libjpeg-turbo-devel libpng-devel libXpm-devel freetype-devel libwebp-devel

Tải xuống nguồn PHP. Ghi chú. Phiên bản nguồn PHP phải giống với phiên bản Plesk PHP của bạn. Ví dụ, đối với PHP 7. 4. 4

# wget //be2.php.net/get/php-7.4.4.tar.gz/from/this/mirror
# tar -xzf mirror
# cd php-7.4.4/ext/gd

Biên dịch gd. vì vậy mô-đun

# /opt/plesk/php/7.4/bin/phpize
# ./configure --with-php-config=/opt/plesk/php/7.4/bin/php-config --with-webp --with-freetype --with-jpeg --with-xpm
# make

Thay thế Plesk PHP gd gốc. vì vậy mô-đun với biên dịch

# mv /opt/plesk/php/7.4/lib64/php/modules/gd.so /opt/plesk/php/7.4/lib64/php/modules/gd.so_orig
# cp modules/gd.so /opt/plesk/php/7.4/lib64/php/modules/
# plesk bin php_handler --reread

Kiểm tra xem tất cả đều ổn

# /opt/plesk/php/7.4/bin/php -m | grep gd
gd

Đừng quên thực hiện xóa giả gói plesk-php74-gd ban đầu. Nếu không, gd tùy chỉnh của bạn. vì vậy sẽ được ghi đè với bản cập nhật tiếp theo

# rpm -e --justdb plesk-php74-gd

 

Cuối cùng, hãy nhớ rằng bạn phải tiếp tục
Plesk -> Công cụ & Cài đặt -> Cài đặt PHP
Chọn Phiên bản PHP của bạn trong trường hợp này là PHP . 4. 4 và

  • Xóa mô-đun GD và lưu
  • Thêm mô-đun GD và lưu

Vì vậy, Plesk xây dựng lại php cho các miền

Bởi. CicciokrThẻ. gd php plesk webp

Định dạng webp cung cấp khả năng nén 28% trên jpeg. nếu hình ảnh của bạn có kích thước 100 kb ở định dạng jpeg thì nó sẽ là ~72kb ở định dạng webp

WebP chỉ hoạt động trên Chrome và Opera. Quix có hỗ trợ dự phòng cho Mozilla và các trình duyệt không được hỗ trợ khác. Khi

# wget //be2.php.net/get/php-7.4.4.tar.gz/from/this/mirror
# tar -xzf mirror
# cd php-7.4.4/ext/gd
0 không tải được Quix sẽ tự động tải phiên bản
# wget //be2.php.net/get/php-7.4.4.tar.gz/from/this/mirror
# tar -xzf mirror
# cd php-7.4.4/ext/gd
1

WebP không tải trên Chrome

Đảm bảo máy chủ của bạn được cấu hình đầy đủ để hỗ trợ WebP. Để định cấu hình WebP, vui lòng tham khảo ý kiến ​​của nhà cung cấp dịch vụ lưu trữ của bạn

Hướng dẫn mà bạn có thể sử dụng khi nói chuyện với quản trị viên máy chủ của mình

  1. WebP cần thư viện PHP GD, nhưng vấn đề là thư viện GD mặc định sẽ không hỗ trợ WebP
  2. Để trang web của tôi có thứ hạng seo tốt hơn, bạn cần cài đặt PHP có bật WebP
  3. Đây là tài nguyên tôi tìm thấy trên internet

Trình cài đặt lib Yum php-gd [ https. // ma. tias. be/install-gd-library-for-php5-on-centos/ ]

Nguồn PHP sang nhị phân [ https. //nói chuyện. cầu xin. com/resources/how-to-compile-php-gd-so-module-with-webp-support. 4/ ]

Tôi đang gặp sự cố khi cố gắng chuyển đổi hình ảnh JPG sang WEBP bằng hàm imagewebp trong PHP. Phản hồi lỗi là "Gọi hàm không xác định imagewebp[]"

Sau rất nhiều nghiên cứu, tôi thấy rằng cần phải bật Hỗ trợ WebP trong ứng dụng web linux của mình. Hình ảnh này hiển thị tất cả tiện ích mở rộng GD mà tôi đã bật. Bạn có biết làm cách nào tôi có thể bật Hỗ trợ WebP để chức năng imagewebp[] hoạt động không?

Tôi thực hiện lệnh bên dưới trong SSH/kudu mà tôi tìm thấy trên google, nhưng không thành công. /

Lệnh.
apt-get update && apt-get install -y libwebp-dev && docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=

Lỗi.
/usr/src/php/ext/gd/libtool. dòng 1283. libgd/gd. nhiều. Không có tệp hoặc thư mục như vậy
mkdir libgd/. thư viện
mkdir. không thể tạo thư mục 'libgd/. thư viện'. Không có tệp hoặc thư mục
như vậy. *** [Tạo tệp. 197. libgd/gd. lo] Lỗi 1

Cảm ơn bạn rất nhiều vì bất kỳ hướng dẫn nào;]


azure-webapps

gd-hỗ trợ. png [11. 5 KiB]

Bình luận

Nhận xét · Hiển thị 5

Bình luận

5. Cần 1600 ký tự còn lại ký tự

  • Hiển thị cho tất cả người dùng
  • Hiển thị với người đăng gốc & Microsoft
  • Người kiểm duyệt có thể xem
  • Có thể xem bởi người kiểm duyệt và người đăng gốc
  • Khả năng hiển thị nâng cao
Chuyển đổi chế độ hiển thị Nhận xét. Hiển thị hiện tại. Hiển thị với tất cả người dùng

tệp đính kèm. Có thể sử dụng tối đa 10 tệp đính kèm [bao gồm cả hình ảnh] với tối đa 3. 0 MiB mỗi cái và 30. tổng cộng 0 MiB

SnehaAgrawal-MSFT · 28 tháng 7 lúc 09. 18 giờ sáng

Cảm ơn bạn đã đến đây. Nếu tôi hiểu đúng thì bạn muốn bật thư viện WebP và GD tiện ích mở rộng PHP trên linux Dịch vụ ứng dụng,
Bạn có thể thử sử dụng tập lệnh khởi động bên dưới không.
 

 apt-get update
 apt-get install -y libwebp-dev libjpeg62-turbo-dev libpng-dev libxpm-dev libfreetype6-dev
 docker-php-ext-configure gd --with-gd --with-webp --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --enable-gd-native-ttf
 docker-php-ext-install gd
 apache2ctl -D FOREGROUND

Xem. Dịch vụ ứng dụng Azure Linux - Thêm phần mở rộng PHP

Hãy cho chúng tôi biết




0 Phiếu bầu 0 ·

DouglasOliveira-9221 · 28 tháng 7 lúc 03. 00 giờ chiều

Xin chào @SnehaAgrawal-MSFT

Cảm ơn bạn rất nhiều vì đã cố gắng giúp đỡ với vấn đề này. Tôi thực thi lệnh này trong SSH và tiện ích mở rộng WebP tiếp tục không được bật

Khi tôi thực thi dòng "docker-php-ext-configure gd --with-gd --with-webp --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm

CẢNH BÁO. tùy chọn không được công nhận. --with-jpeg-dir --with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir --enable-gd-native-ttf

Tôi đã thay đổi dòng này thành bên dưới vì tôi nghĩ rằng phiên bản PHP của tôi đã thay đổi điều gì đó

docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype

Nhưng, khi tôi chạy "docker-php-ext-install gd", tôi vẫn nhận được lỗi này khi kết thúc quá trình thực thi

/usr/src/php/ext/gd/libtool. dòng 1283. libgd/gd. nhiều. Không có tệp hoặc thư mục như vậy
mkdir libgd/. thư viện
mkdir. không thể tạo thư mục 'libgd/. thư viện'. Không có tập tin hoặc thư mục như vậy
thực hiện. [Tạo tệp. 197. libgd/gd. lo] Lỗi 1

Để hoàn thành hướng dẫn, tôi chạy lệnh "apache2ctl -D FOREGROUND" và sau đó tôi gọi phpinfo và webP vẫn không được bật

Sau này, tôi đã xem qua tại bài viết này

https. //livtutor. com/enable-webp-support-php-7/

Tôi thực hiện hướng dẫn này và đạt được mục tiêu sử dụng chức năng imagewebp. Nếu bạn biết vấn đề xảy ra với các lệnh là gì và có bất kỳ đề xuất nào về cách chạy imagewebp gốc, vui lòng cho tôi biết

Cảm ơn vì đã dành thời gian cho tôi






0 Phiếu bầu 0 ·

SnehaAgrawal-MSFT DouglasOliveira-9221 · 02 tháng 8 lúc 07. 04 giờ sáng

@DouglasOliveira-9221

Bạn có thể cài đặt/bật hỗ trợ webP [với gd] thông qua lệnh/tập lệnh khởi động

Sử dụng lệnh dưới đây đã có thể làm cho nó chạy

 apt update
 apt install libfreetype6-dev libjpeg62-turbo-dev libwebp-dev libpng-dev
 docker-php-ext-configure gd --with-webp --with-jpeg --with-freetype
 docker-php-ext-install gd

Như bạn có thể thấy từ php -r "var_dump[gd_info[]];" .

array[14] {
["GD Version"]=>
string[26] " gộp [2. 1. 0 tương thích]"
["Hỗ trợ FreeType"]=>
bool[true]
["Liên kết FreeType"]=
string[13] "with freetype"
["GIF Read Support"]=>
bool[true]
["GIF Create Support"]=>
bool[true]
["JPEG Support"]=>
bool[true]
["PNG Support"]=>
bool[true]
["WBMP Support"]=>
bool[true]
["XPM Support"]=>
bool[false]
["XBM Support"]=>
bool[true]
["WebP Support"]=>
bool[true]
["BMP Support"]=>
bool[true]
["TGA Read Support"]=>
bool[true]
["JIS-mapped Japanese Font Support"]=>
bool[false]
}

Hãy cho chúng tôi biết

0 Phiếu bầu 0 ·

DouglasOliveira-9221 SnehaAgrawal-MSFT · 02 tháng 8 lúc 02. 29 giờ tối

Xin chào @SnehaAgrawal-MSFT

Cảm ơn, nhưng tôi vẫn gặp lỗi không thể tạo thư mục 'libgd/. thư viện'. Không có tệp hoặc thư mục như vậy khi tôi thực thi lệnh cuối cùng docker-php-ext-install gd và hỗ trợ webP vẫn còn trong ["Hỗ trợ WebP"]=>bool[false] khi tôi chạy lệnh php -r "var_d ump[gd_info

Nếu bạn muốn tạo lại lỗi này, vui lòng làm theo các bước sau

1 - Trong cổng Azure, tạo gói dịch vụ ứng dụng mới với Tên=Appsvcplan-webp, Vùng=Central US, Operational System=Linux, Princing Tier=Basic B1;

2 - Tạo một dịch vụ ứng dụng với Name=webappwebp, Publish=Code, Runtime stack=PHP 7. 4, Hệ điều hành=Linux, Khu vực=Trung Mỹ, Gói Linux=Appsvcplan-webp;

3 - Mở url https. //webappwebp. scm. trang web azure. net/, mở SSH và gõ lệnh

a. cập nhật apt
b. apt cài đặt libfreetype6-dev libjpeg62-turbo-dev libwebp-dev libpng-dev
c. docker-php-ext-configure gd --with-webp --with-jpeg --with-freetype
d. docker-php-ext-cài đặt gd

Bạn sẽ thấy lỗi không thể tạo thư mục 'libgd/. thư viện'. Không có tệp hoặc thư mục như vậy - hãy tạo. [Tạo tệp. 197. libgd/gd. lo] Lỗi 1 khi thực hiện lệnh cuối cùng và hỗ trợ webp không được bật khi tôi gõ lệnh php -r "var_d ump[gd_info[]];"*

Bạn có biết nếu tôi thiếu một cái gì đó?

*Xin lỗi vì lệnh "var_d ump", nếu tôi viết tất cả cùng nhau thì bình luận của tôi sẽ không được đăng. /

Trân trọng

0 Phiếu bầu 0 ·

AlanWallace-9415 SnehaAgrawal-MSFT · 9 giờ trước

@SnehaAgrawal-MSFT Làm theo hướng dẫn của bạn, tôi gặp lỗi tương tự như Douglas. Bạn có bất cứ đề nghị bổ sung?

GD có hỗ trợ webp không?

Thư viện GD đi kèm với Plesk PHP 7. 2 trở lên hỗ trợ WebP bắt đầu từ Plesk Obsidian 18. 0. 27 . Cập nhật Plesk lên phiên bản mới nhất để có tính năng này.

Làm cách nào để tải lên hình ảnh WEBP trong PHP?

Thêm webp MIME Nhập vào tệp cấu hình. . /application/config/mimes. php. ' webp' => mảng['hình ảnh/webp'],
Và trong cấu hình tải lên của bạn "allowed_types" thêm "webp". $config['allowed_types'] = 'gif. jpg. jpeg. png. webp';

Làm cách nào để chuyển đổi JPG sang WEBP trong PHP?

tôi sử dụng mã này. $filename = dirname[__FILE__]. '/ví dụ. jpg';

WEBP có tốt hơn JPEG không?

Kết luận. Nghiên cứu đánh giá nén WebP so với JPEG. Chúng tôi quan sát thấy rằng kích thước tệp WebP trung bình nhỏ hơn 25% -34% so với kích thước tệp JPEG ở chỉ số SSIM tương đương. Biểu đồ SSIM so với bpp cho thấy rằng WebP luôn yêu cầu ít bit trên mỗi pixel hơn JPEG cho cùng một chỉ mục SSIM .

Chủ Đề