WebP a été officiellement pris en charge le 27 avril 2020: tada: [^ webp-official] Vous n'avez donc plus à vous soucier de:
[^ webp-official]: PHP7.3 supporte maintenant les fichiers image au format "WebP" qui sont efficaces pour accélérer le site! - Sucette
J'ai réussi à convertir des images JPEG et PNG au format WebP sur un serveur de location de sucettes. On suppose que le plan standard ou supérieur (une connexion SSH est possible).
Conversion WebP? ʻImagewebp` Il est facile de gagner si vous utilisez la fonction: thumbsup: Si vous pensez ...
Fatal error: Uncaught Error: Call to undefined function imagewebp()
N'a pas fonctionné. Si vous vérifiez avec `phpinfo ()`
![lolipop-phpinfo-gd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617255/ef6cf73a-d685-a14d-af51-d727606969eb.png)
Il s'avère que les sucettes ne prennent pas en charge WebP. [^ webp-support]
[^ webp-support]: Lorsque j'ai contacté le support, j'ai reçu une réponse indiquant qu'il n'était pas prévu de prendre en charge WebP pour le moment (26 mars 2019). ~~ Je voudrais m'y attendre à l'avenir. ~~
## Créez un environnement qui peut être converti en WebP par vous-même
`cwebp`Vous pouvez convertir l'image au format WebP à l'aide de l'outil de ligne de commande ([A new image format for the Web | WebP | Google Developers](https://developers.google.com/speed/webp)). En d'autres termes`cwebp`La solution est de le rendre disponible sur le serveur lollipop.
### politique
Copiez les outils de ligne de commande `cwebp` et les bibliothèques requises construites dans un environnement de type lollipop sur le serveur lollipop. Le serveur de location Lollipop ne peut pas utiliser `gcc` et encore moins` make` ([Liste des commandes disponibles --Lollipop](https://lolipop.jp/manual/user/ssh/#p-command)), donc serveur de location Il est impossible de bâtir sur.
### Construire un environnement de construction
Créez un environnement similaire à un serveur de location de sucettes avec VirtualBox. Le but est de faire correspondre la version de ** [glibc](https://www.gnu.org/software/libc/) **. [^ glibc]
[^ glibc]: Si vous essayez de télécharger [Utilitaires WebP précompilés](https://developers.google.com/speed/webp/download) et de l'exécuter sur un serveur lollipop, `` cwebp: /lib64/libc.so. 6: version `GLIBC_2.14 'non trouvée (requis par cwebp)' 'et vous pouvez voir que cela ne fonctionne pas. [^ glibc2]
[^ glibc2]: Vous pourriez penser que changer la version de la glibc sur le serveur de location ... mais ce n'est pas possible car de nombreux programmes dépendent de la glibc. Si vous le forcez, toutes les commandes seront invalidées et vous serez bloqué (Référence: [[Résolu] erreur de relocalisation: /lib64/libc.so.6: symbol _dl_starting_up Solution --Qiita](/ sachiotomita / items / ef29520c55fc168191d8)).
#### Vérifiez la version glibc du serveur lollipop
Sur le serveur de location
```shell
/lib64/libc.so*
Lorsque vous exécutez
GNU C Library stable release version 2.12, by Roland McGrath et al.
La version est affichée comme (C'était 2.12 dans mon environnement).
Créez un environnement CentOS 6 (64 bits) avec la glibc version 2.12 avec VirtualBox. Puisque le serveur de location est CentOS [^ server-spec], le système d'exploitation le correspond également.
La méthode de création d'un environnement avec VirtualBox n'est pas décrite en détail ici. Pour l'expliquer assez grossièrement
C'est un flux. J'ai activé et utilisé SSH sans interface graphique.
[^ server-spec]: Server Specifications-Lollipop [^ aria2-qiita]: Référence: [Utilisez le téléchargeur explosif aria2, qui est plusieurs fois plus rapide que curl et wget --Qiita](/ TokyoMickey / items / cb51805a19dcee416151)
cwebp
Construire avec CentOS de VirtualBox. La plupartCompiling the Utilities | WebP | Google DevelopersIl est écrit.
Sans cela, l'image d'entrée ne peut pas être lue même si elle est construite.
sudo yum install libjpeg-devel libpng-devel
Téléchargez libwebp-1.0.3.tar.gz
depuis la liste des téléchargements et extrayez-la ci-dessous
tar xvzf libwebp-1.0.3.tar.gz
Installez-le dans votre répertoire personnel (~ / bin / libwebp-1.0.3
) en tenant compte du problème de le télécharger plus tard sur le serveur de location.
cd libwebp-1.0.3
./configure --prefix=$HOME/bin/libwebp-1.0.3
make
make install
Copiez les fichiers suivants dans le répertoire de base de votre serveur de location.
Local (VirtualBox) | Serveur de location | |
---|---|---|
~/bin/libwebp-1.0.3/bin/cwebp |
→ | ~/usr/bin/cwebp |
~/bin/libwebp-1.0.3/lib/libwebp.so.7.1.0 |
→ | ~/usr/lib/libwebp.so.7.1.0 |
~/bin/libwebp-1.0.3/lib/libwebpdemux.so.2.0.6 |
→ | ~/usr/lib/libwebpdemux.so.2.0.6 |
Créez un lien symbolique pour la bibliothèque.
cd ~/usr/lib
ln -s libwebp.so.7.1.0 libwebp.so.7
ln -s libwebpdemux.so.2.0.6 libwebpdemux.so.2
Passez le chemin afin que vous puissiez trouver cwebp
et les bibliothèques qu'il utilise.
cd ~
vi .bash_profile
Entrez dans le mode insertion avec la touche ʻInsert` et ajoutez le contenu suivant.
~/.bash_profile
export PATH=~/usr/bin:$PATH
export LD_LIBRARY_PATH=~/usr/lib:$LD_LIBRARY_PATH
Après l'édition, entrez en mode commande avec la touche ʻEsc, enregistrez avec
: wqet quittez. En rechargeant
.bash_profile` avec la commande suivante, le chemin sera dans l'état. Désormais, si vous vous connectez avec SSH, votre pass passera automatiquement.
source ~/.bash_profile
Si vous essayez d'exécuter cwebp
et que l'affichage ressemble à celui ci-dessous, c'est OK.
Usage:
cwebp [options] -q quality input.png -o output.webp
where quality is between 0 (poor) to 100 (very good).
Typical value is around 80.
Try -longhelp for an exhaustive list of advanced options.
Si vous obtenez une erreur indiquant que la bibliothèque est introuvable, vous pouvez copier la bibliothèque sur le serveur de location en vous référant à ~ / bin / libwebp-1.0.3 / lib /
dans votre environnement local.
Veuillez noter que vous devez définir la variable d'environnement ainsi que ~ / .bash_profile
lorsque vous utilisez PHP. Spécifiez la variable d'environnement non pas avec ~ / bin / ...
mais avec le chemin absolu depuis la racine (un chemin comme / home / users / ...
, qui peut être confirmé avec la commande pwd
).
Recommended Posts