WebP wurde am 27. April 2020 offiziell unterstützt: tada: [^ webp-Beamter] Jetzt müssen Sie also nicht mehr die Mühe machen:
[^ webp-offiziell]: PHP7.3 unterstützt jetzt Bilddateien im "WebP" -Format, die die Site effektiv beschleunigen! --Lollipop
Ich habe es geschafft, JPEG- und PNG-Bilder auf einem Lollipop-Mietserver in das WebP-Format zu konvertieren. Es wird davon ausgegangen, dass der Standardplan oder höher ist (SSH-Verbindung ist möglich).
WebP-Konvertierung? imagewebp
Es ist einfach zu gewinnen, wenn Sie die Funktion verwenden: thumbsup: Wenn Sie denken ...
Fatal error: Uncaught Error: Call to undefined function imagewebp()
Funktioniert nicht. Wenn Sie mit `phpinfo ()` überprüfen

Es stellt sich heraus, dass Lutscher WebP nicht unterstützen. [^ webp-support]
[^ webp-support]: Als ich mich an den Support wandte, erhielt ich die Antwort, dass derzeit keine Pläne zur Unterstützung von WebP bestehen (26. März 2019). ~~ Ich würde es gerne in Zukunft erwarten. ~~
## Erstellen Sie eine Umgebung, die Sie selbst in WebP konvertieren können
`cwebp`Sie können das Bild mithilfe des Befehlszeilentools in das WebP-Format konvertieren ([A new image format for the Web | WebP | Google Developers](https://developers.google.com/speed/webp)). Mit anderen Worten`cwebp`Die Lösung besteht darin, es auf dem Lollipop-Server verfügbar zu machen.
### Politik
Kopieren Sie die Befehlszeilentools "cwebp" und die erforderlichen Bibliotheken, die in einer Lollipop-ähnlichen Umgebung erstellt wurden, auf den Lollipop-Server. Der Lollipop-Mietserver kann nicht `gcc` verwenden, geschweige denn` make` ([Liste der verfügbaren Befehle --Lollipop](https://lolipop.jp/manual/user/ssh/#p-command)), also den Mietserver Es ist unmöglich darauf aufzubauen.
### Erstellen einer Build-Umgebung
Erstellen Sie mit VirtualBox eine Umgebung, die einem Lollipop-Mietserver ähnelt. Es geht darum, die Version von ** [glibc](https://www.gnu.org/software/libc/) ** abzugleichen. [^ glibc]
[^ glibc]: Wenn Sie versuchen, [vorkompilierte WebP-Dienstprogramme](https://developers.google.com/speed/webp/download) herunterzuladen und auf einem Lollipop-Server auszuführen, `` cwebp: /lib64/libc.so. 6: Version `GLIBC_2.14'nicht gefunden (von cwebp erforderlich)` `und Sie können sehen, dass es nicht funktioniert. [^ glibc2]
[^ glibc2]: Sie könnten denken, dass das Ändern der Version von glibc auf dem Mietserver ... aber nicht möglich ist, da viele Programme von glibc abhängen. Wenn Sie es erzwingen, werden alle Befehle ungültig und Sie bleiben hängen (Referenz: [[Gelöst] Verschiebungsfehler: /lib64/libc.so.6: Symbol _dl_starting_up Lösung --Qiita](/ sachiotomita / items / ef29520c55fc168191d8)).
#### Überprüfen Sie die glibc-Version des Lollipop-Servers
Auf dem Mietserver
```shell
/lib64/libc.so*
Wenn Sie ausführen
GNU C Library stable release version 2.12, by Roland McGrath et al.
Die Version wird angezeigt als (Es war 2.12 in meiner Umgebung).
Erstellen Sie mit VirtualBox eine CentOS 6 (64-Bit) -Umgebung mit glibc Version 2.12. Da der Mietserver CentOS [^ server-spec] ist, stimmt auch das Betriebssystem damit überein.
Die Methode zum Erstellen einer Umgebung mit VirtualBox wird hier nicht ausführlich beschrieben. Um es ganz grob zu erklären
Es ist ein Fluss. Ich habe SSH ohne GUI aktiviert und verwendet.
[^ aria2-qiita]: Referenz: [Verwenden Sie den explosiven Downloader aria2, der um ein Vielfaches schneller ist als curl und wget --Qiita](/ TokyoMickey / items / cb51805a19dcee416151)
cwebp
Erstellen Sie mit CentOS von VirtualBox. MeistensCompiling the Utilities | WebP | Google DevelopersEs ist geschrieben in.
Ohne dies kann das Eingabebild nicht gelesen werden, selbst wenn es erstellt wurde.
sudo yum install libjpeg-devel libpng-devel
Laden Sie libwebp-1.0.3.tar.gz
von Downloads list herunter und extrahieren Sie es unten
tar xvzf libwebp-1.0.3.tar.gz
Installieren Sie es in Ihrem Home-Verzeichnis (~ / bin / libwebp-1.0.3
), um später Probleme beim Hochladen auf den Mietserver zu haben.
cd libwebp-1.0.3
./configure --prefix=$HOME/bin/libwebp-1.0.3
make
make install
Kopieren Sie die folgenden Dateien in das Home-Verzeichnis Ihres Mietservers.
Lokal (VirtualBox) | Mietserver | |
---|---|---|
~/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 |
Erstellen Sie einen symbolischen Link für die Bibliothek.
cd ~/usr/lib
ln -s libwebp.so.7.1.0 libwebp.so.7
ln -s libwebpdemux.so.2.0.6 libwebpdemux.so.2
Übergeben Sie den Pfad, damit Sie "cwebp" und die verwendeten Bibliotheken finden.
cd ~
vi .bash_profile
Rufen Sie den Einfügemodus mit der Taste "Einfügen" auf und fügen Sie den folgenden Inhalt hinzu.
~/.bash_profile
export PATH=~/usr/bin:$PATH
export LD_LIBRARY_PATH=~/usr/lib:$LD_LIBRARY_PATH
Drücken Sie nach der Bearbeitung die Esc-Taste, um den Befehlsmodus aufzurufen, und drücken Sie zum Speichern und Beenden die Taste: wq. Durch erneutes Laden von ".bash_profile" mit dem folgenden Befehl befindet sich der Pfad im Status. Wenn Sie sich von nun an mit SSH anmelden, wird der Pfad automatisch übergeben.
source ~/.bash_profile
Wenn Sie versuchen, "cwebp" auszuführen, und die Anzeige wie die folgende aussieht, ist dies in Ordnung.
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.
Wenn Sie die Fehlermeldung erhalten, dass die Bibliothek nicht gefunden werden kann, können Sie die Bibliothek auf den Leihserver kopieren, indem Sie in Ihrer lokalen Umgebung auf "~ / bin / libwebp-1.0.3 / lib /" verweisen.
Bitte beachten Sie, dass Sie die Umgebungsvariable sowie ~ / .bash_profile
festlegen müssen, wenn Sie PHP verwenden. Geben Sie die Umgebungsvariable nicht mit "~ / bin / ..." an, sondern mit dem absoluten Pfad vom Stamm (ein Pfad wie "/ home / users / ...", der mit dem Befehl "pwd" bestätigt werden kann).
Recommended Posts