PHP 8.0 ist ein bedeutendes Update der PHP-Sprache, das am 26. November 2020 veröffentlicht wurde, ein riesiger Sprung nach vorne gegenüber der bestehenden Version von PHP 7.4. Das neue PHP enthält viele neue Funktionen und Optimierungen, darunter benannte Argumente, Vereinigungstypen, Attribute, Heraufstufung von Konstruktoreigenschaften, Match-Ausdrücke, nullsichere Operatoren, JIT und Verbesserungen des Typsystems, der Fehlerbehandlung und der Konsistenz.
Im folgenden Tutorial erfahren Sie, wie Sie PHP 8.0 auf openSUSE 15 Leap installieren .
Voraussetzungen
- Empfohlenes Betriebssystem: openSUSE Leap – 15.x
- Benutzerkonto: Ein Benutzerkonto mit Sudo- oder Root-Zugriff.
Betriebssystem aktualisieren
Aktualisieren Sie Ihr openSUSE Betriebssystem, um sicherzustellen, dass alle vorhandenen Pakete auf dem neuesten Stand sind:
sudo zypper refresh
Führen Sie nach der Aktualisierung den Aktualisierungsbefehl aus.
sudo zypper update
Das Tutorial verwendet den sudo-Befehl und vorausgesetzt, Sie haben den Sudo-Status .
So überprüfen Sie den Sudo-Status Ihres Kontos:
sudo whoami
Beispielausgabe, die den Sudo-Status zeigt:
[joshua@opensuse ~]$ sudo whoami
root
Um ein bestehendes oder neues Sudo-Konto einzurichten, besuchen Sie unser Tutorial zum Hinzufügen eines Benutzers zu Sudoers auf openSUSE .
So verwenden Sie das Root-Konto verwenden Sie den folgenden Befehl mit dem Root-Passwort, um sich anzumelden.
su
PHP-Erweiterungen importieren und installieren
Die erste Aufgabe besteht darin, die server:php:extensions zu installieren in Ihrem openSUSE-Terminal. Abhängig von der Version von openSUSE, die Sie derzeit ausführen, kann dies jedoch variieren. Nachfolgend finden Sie zwei Beispiele der neuesten und früheren Versionen von openSUSE Leap.
Server:php:extensions für openSUSE Leap 15.3 importieren :
sudo zypper addrepo https://download.opensuse.org/repositories/home:/Padom/15.3/home:Padom.repo
Server:php:extensions für openSUSE Leap 15 importieren. 2:
sudo zypper addrepo https://download.opensuse.org/repositories/server:php:extensions/openSUSE_Leap_15.2/server:php:extensions.repo
Server:php:extensions für openSUSE Leap 15.1 importieren:
sudo zypper addrepo https://download.opensuse.org/repositories/server:php:extensions/openSUSE_Leap_15.1/server:php:extensions.repo
Beispielausgabe für den Import von 15.3:
Folgen Sie für neuere Versionen der Formel. Wenn Sie fertig sind, aktualisieren Sie das Repository.
sudo zypper refresh
Sie werden aufgefordert, den GPG-Schlüssel abzulehnen, vorübergehend oder immer zu vertrauen.
Beispiel:
Geben Sie „a“, ein Drücken Sie dann die „ENTER-TASTE“ um mit dem Importieren des GPG-Schlüssels fortzufahren.
Installieren Sie PHP 8.0
Nachdem Sie nun das PHP-Erweiterungs-Repository für Ihr openSUSE-System importiert und installiert haben, installieren Sie PHP 8.0 mit dem folgenden Befehl.
sudo zypper install php8
Beispielausgabe:
Geben Sie „J“ ein drücken Sie dann die "ENTER-TASTE" um mit der Installation fortzufahren.
Nachdem Sie PHP 8.0 und die Erweiterungen installiert haben, überprüfen Sie die Version mit dem folgenden Befehl:
php -v
Beispielausgabe unten, denken Sie daran, dass sich dies mit der Zeit ändern wird:
PHP 8.0.11 (cli) (built: Sep 23 2021 12:00:00) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.11, Copyright (c) Zend Technologies
So suchen Sie nach PHP 8.0-Paketen
Standardmäßig werden bei der Installation von PHP 8.0 nur einige der Hauptpakete installiert. Wie jedoch die meisten PHP-Kenner wissen, können Sie viele zusätzliche Extras für verschiedene Anwendungen oder Anforderungen installieren.
Verwenden Sie den folgenden Befehl in Ihrem Terminal, um nach zusätzlichen Paketen im PHP-Erweiterungs-Repository zu suchen.
sudo zypper search php8
Beispielausgabe:
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
---+--------------------------+-----------------------------------------------------------+-----------
| php8 | Interpreter for the PHP scripting language version 8 | srcpackage
i+ | php8 | Interpreter for the PHP scripting language version 8 | package
| php8-APCu | APCu - APC User Cache | srcpackage
| php8-APCu | APCu - APC User Cache | package
| php8-bcmath | "Binary Calculator" extension for PHP | package
| php8-bcmath-debuginfo | Debug information for package php8-bcmath | package
| php8-bz2 | bzip2 codec support for PHP | package
| php8-bz2-debuginfo | Debug information for package php8-bz2 | package
| php8-calendar | PHP8 Extension Module | package
| php8-calendar-debuginfo | Debug information for package php8-calendar | package
i | php8-cli | Interpreter for the PHP scripting language version 8 | package
| php8-cli-debuginfo | Debug information for package php8-cli | package
i | php8-ctype | Character class extension for PHP | package
| php8-ctype-debuginfo | Debug information for package php8-ctype | package
| php8-curl | libcurl integration for PHP | package
| php8-curl-debuginfo | Debug information for package php8-curl | package
| php8-dba | Database abstraction layer for PHP | package
| php8-dba-debuginfo | Debug information for package php8-dba | package
| php8-debuginfo | Debug information for package php8 | package
| php8-debugsource | Debug sources for package php8 | package
| php8-devel | PHP8 development files for C/C++ extensions | package
i | php8-dom | Document Object Model extension for PHP | package
| php8-dom-debuginfo | Debug information for package php8-dom | package
| php8-enchant | Spell checking extension for PHP | package
| php8-enchant-debuginfo | Debug information for package php8-enchant | package
| php8-exif | EXIF metadata extensions for PHP | package
| php8-exif-debuginfo | Debug information for package php8-exif | package
| php8-fileinfo | File identification extension for PHP | package
| php8-fileinfo-debuginfo | Debug information for package php8-fileinfo | package
| php8-ftp | FTP protocol support for PHP | package
| php8-ftp-debuginfo | Debug information for package php8-ftp | package
| php8-gd | GD Graphics Library extension for PHP | package
| php8-gd-debuginfo | Debug information for package php8-gd | package
| php8-gettext | Native language support for PHP | package
| php8-gettext-debuginfo | Debug information for package php8-gettext | package
| php8-gmagick | Wrapper to the GraphicsMagick library | srcpackage
| php8-gmagick | Wrapper to the GraphicsMagick library | package
| php8-gmp | Bignum extension for PHP | package
| php8-gmp-debuginfo | Debug information for package php8-gmp | package
| php8-gnupg | PHP wrapper around the gpgme library | srcpackage
| php8-gnupg | PHP wrapper around the gpgme library | package
| php8-ice | PHP framework delivered as C extension | srcpackage
| php8-ice | PHP framework delivered as C extension | package
i | php8-iconv | Character set conversion functions for PHP | package
| php8-iconv-debuginfo | Debug information for package php8-iconv | package
| php8-imagick | Wrapper to the ImageMagick library | srcpackage
| php8-imagick | Wrapper to the ImageMagick library | package
| php8-intl | ICU integration for PHP | package
| php8-intl-debuginfo | Debug information for package php8-intl | package
| php8-ldap | LDAP protocol support for PHP | package
| php8-ldap-debuginfo | Debug information for package php8-ldap | package
| php8-lzf | LZF compression | srcpackage
| php8-lzf | LZF compression | package
| php8-maxminddb | PHP extension providing access to maxminddb databases | srcpackage
| php8-maxminddb | PHP extension providing access to maxminddb databases | package
| php8-mbstring | Multibyte string functions for PHP | package
| php8-mbstring-debuginfo | Debug information for package php8-mbstring | package
| php8-memcache | PHP Memcache client Extension | srcpackage
| php8-memcache | PHP Memcache client Extension | package
| php8-memcached | PHP MemcacheD client Extension | srcpackage
| php8-memcached | PHP MemcacheD client Extension | package
| php8-mysql | MySQL database client for PHP | package
| php8-mysql-debuginfo | Debug information for package php8-mysql | package
| php8-odbc | ODBC extension for PHP | package
| php8-odbc-debuginfo | Debug information for package php8-odbc | package
| php8-opcache | Opcode cache extension for PHP | package
| php8-opcache-debuginfo | Debug information for package php8-opcache | package
i | php8-openssl | OpenSSL integration for PHP | package
| php8-openssl-debuginfo | Debug information for package php8-openssl | package
| php8-pcntl | Process Control extension for PHP | package
| php8-pcntl-debuginfo | Debug information for package php8-pcntl | package
i | php8-pdo | PHP Data Objects extension for PHP | package
| php8-pdo-debuginfo | Debug information for package php8-pdo | package
| php8-pear | PHP Extension and Application Repository | package
| php8-pear | PHP Extension and Application Repository | srcpackage
| php8-pecl | PHP Extension Community Library | package
| php8-pgsql | PostgreSQL database client for PHP | package
| php8-pgsql-debuginfo | Debug information for package php8-pgsql | package
| php8-phar | PHP Archive extension for PHP | package
| php8-phar-debuginfo | Debug information for package php8-phar | package
| php8-posix | POSIX functions for PHP | package
| php8-posix-debuginfo | Debug information for package php8-posix | package
| php8-psr | PSR Extension Module | srcpackage
| php8-psr | PSR Extension Module | package
| php8-readline | PHP8 readline extension | package
| php8-readline-debuginfo | Debug information for package php8-readline | package
| php8-redis | API for communicating with Redis servers | srcpackage
| php8-redis | API for communicating with Redis servers | package
| php8-shmop | Alternate, low-level shared memory implementation for PHP | package
| php8-shmop-debuginfo | Debug information for package php8-shmop | package
| php8-smbclient | A PHP wrapper for libsmbclient | srcpackage
| php8-smbclient | A PHP wrapper for libsmbclient | package
| php8-snmp | SNMP extension for PHP | package
| php8-snmp-debuginfo | Debug information for package php8-snmp | package
| php8-soap | SOAP/WSDL extension module for PHP | package
| php8-soap-debuginfo | Debug information for package php8-soap | package
| php8-sockets | Berkeley sockets API for PHP | package
| php8-sockets-debuginfo | Debug information for package php8-sockets | package
| php8-sodium | Cryptographic Extension Based on Libsodium | package
| php8-sodium-debuginfo | Debug information for package php8-sodium | package
i | php8-sqlite | SQLite database client for PHP | package
| php8-sqlite-debuginfo | Debug information for package php8-sqlite | package
| php8-sysvmsg | SysV Message Queue support for PHP | package
| php8-sysvmsg-debuginfo | Debug information for package php8-sysvmsg | package
| php8-sysvsem | SysV Semaphore support for PHP | package
| php8-sysvsem-debuginfo | Debug information for package php8-sysvsem | package
| php8-sysvshm | SysV Shared Memory support for PHP | package
| php8-sysvshm-debuginfo | Debug information for package php8-sysvshm | package
| php8-tidy | PHP8 binding for the Tidy HTML cleaner | package
| php8-tidy-debuginfo | Debug information for package php8-tidy | package
i | php8-tokenizer | Extension module to access Zend Engine's PHP tokenizer | package
| php8-tokenizer-debuginfo | Debug information for package php8-tokenizer | package
| php8-uploadprogress | An php extension to track progress of a file upload | srcpackage
| php8-uploadprogress | An php extension to track progress of a file upload | package
| php8-uuid | PHP UUID support functions | srcpackage
| php8-uuid | PHP UUID support functions | package
| php8-xdebug | Extended PHP debugger | srcpackage
| php8-xdebug | Extended PHP debugger | package
i | php8-xmlreader | Streaming XML reader extension for PHP | package
| php8-xmlreader-debuginfo | Debug information for package php8-xmlreader | package
i | php8-xmlwriter | Streaming-based XML writer extension for PHP | package
| php8-xmlwriter-debuginfo | Debug information for package php8-xmlwriter | package
| php8-xsl | PHP8 Extension Module | package
| php8-xsl-debuginfo | Debug information for package php8-xsl | package
| php8-zip | ZIP archive support for PHP | package
| php8-zip-debuginfo | Debug information for package php8-zip | package
| php8-zlib | Zlib compression support for PHP | package
| php8-zlib-debuginfo | Debug information for package php8-zlib | package
Um die PHP 8.0 Redis-Erweiterung aus der Liste zu installieren, würden Sie den folgenden Befehl ausführen:
sudo zypper install php8-redis
Beispielausgabe:
Geben Sie „J“ ein drücken Sie dann die "ENTER-TASTE" um mit der Installation fortzufahren.
Das gleiche Prinzip kann für PHP 7.4 verwendet werden. Ersetzen Sie einfach die 8 durch 7.
sudo zypper search php7
Standardmäßig sind alle mit php7 installierten Pakete PHP 7.4.
Nginx – So installieren Sie PHP-FPM
Standardmäßig ist das Nginx FPM -Modul ist nicht nativ in den PHP-Erweiterungen von openSUSE enthalten. Um dies zu installieren, müssen Sie eines der Community-Repositories installieren. Eines der empfohlenen ist Padoms Repository das als Alternative in der Paketsuche von openSUSE aufgeführt ist.
Zuerst müssen Sie das entsprechende Repository hinzufügen.
openSUSE Leap 15.3
sudo zypper addrepo https://download.opensuse.org/repositories/home:/Padom/15.3/home:Padom.repo
openSUSE Leap 15.2:
sudo zypper addrepo https://download.opensuse.org/repositories/home:Padom/openSUSE_Leap_15.2/home:Padom.repo
openSUSE Leap 15.1:
sudo zypper addrepo https://download.opensuse.org/repositories/home:Padom/openSUSE_Leap_15.1/home:Padom.repo
Aktualisieren Sie das Repository und akzeptieren Sie den GPG-Import des ausgewählten Repositorys.
sudo zypper refresh
Installieren Sie als Nächstes die Nginx PHP-FPM 8-Erweiterung.
sudo zypper install php8-fpm
Sie werden aufgefordert, den GPG-Schlüssel abzulehnen, vorübergehend oder immer zu vertrauen.
Beispielausgabe:
Geben Sie „a“, ein Drücken Sie dann die „ENTER-TASTE“ um mit dem Importieren des GPG-Schlüssels fortzufahren.
Beispielausgabe:
Geben Sie „J“ ein drücken Sie dann die "ENTER-TASTE" um mit der Installation fortzufahren.
Kopieren Sie nach der Installation die Standardkonfigurationsdateien auf ihre jeweiligen Namen.
Wenn Sie dies nicht tun, gibt PHP-FPM einen Fehlerstatus aus.
sudo cp /etc/php8/fpm/php-fpm.conf.default /etc/php8/fpm/php-fpm.conf
sudo cp /etc/php8/fpm/php-fpm.d/www.conf.default /etc/php8/fpm/php-fpm.d/www.conf
Jetzt ist PHP-FPM standardmäßig deaktiviert. Um PHP FPM zu aktivieren, verwenden Sie den folgenden Befehl.
sudo systemctl enable php-fpm --now
Bestätigen Sie als Nächstes, dass PHP-FPM ordnungsgemäß funktioniert.
sudo systemctl status php-fpm
Beispielausgabe:
Wie oben funktioniert PHP-FPM korrekt und wird mithilfe des Community-Repositorys aktualisiert. Alternativ können Sie alle Ihre PHP 8-Erweiterungen aus diesem Repository installieren. Es ist hoch angesehen und hat, wie FPM hinzugefügt, mehr Erweiterungen als das offizielle Repository.