Come installare PHP 8.0 su openSUSE 15 Leap

PHP 8.0 è un aggiornamento significativo del linguaggio PHP rilasciato il 26 novembre 2020, un enorme balzo in avanti rispetto alla versione PHP 7.4 esistente. Il nuovo PHP contiene molte nuove funzionalità e ottimizzazioni, inclusi argomenti denominati, tipi di unione, attributi, promozione della proprietà del costruttore, espressione di corrispondenza, operatori null safe, JIT e miglioramenti nel sistema dei tipi, gestione degli errori e coerenza.

Nel seguente tutorial imparerai come installare PHP 8.0 su openSUSE 15 Leap.

Prerequisiti

Aggiorna il sistema operativo

Aggiorna il tuo openSUSE sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:

sudo zypper refresh -y

Il tutorial utilizzerà il comando sudo che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana supponendo che tu abbia lo stato di sudo.

Per verificare lo stato di sudo sul tuo account:

sudo whoami

Esempio di output che mostra lo stato di sudo:

[joshua@opensuse ~]$ sudo whoami
root

Per configurare un account sudo esistente o nuovo, visita il nostro tutorial su aggiungere un utente a Sudoers su openSUSE.

Per utilizzare l' account di root, usa il seguente comando con la password di root per accedere.

su

pubblicità


Importa e installa estensioni PHP

Il primo compito è installare il server:php:estensioni nel tuo terminale openSUSE. Tuttavia, a seconda della versione di openSUSE attualmente in esecuzione, questo può variare. Di seguito sono riportati due esempi delle versioni più recenti e precedenti di openSUSE Leap.

Importa server:php:estensioni per openSUSE Leap 15.3:

sudo zypper addrepo https://download.opensuse.org/repositories/home:/Padom/15.3/home:Padom.repo

Importa server:php:estensioni per openSUSE Leap 15.2:

sudo zypper addrepo https://download.opensuse.org/repositories/server:php:extensions/openSUSE_Leap_15.2/server:php:extensions.repo

Importa server:php:estensioni per openSUSE Leap 15.1:

sudo zypper addrepo https://download.opensuse.org/repositories/server:php:extensions/openSUSE_Leap_15.1/server:php:extensions.repo

Esempio di output di importazione 15.3:

Come installare PHP 8.0 su openSUSE 15 Leap

Per le versioni più recenti, segui la formula. Una volta fatto, aggiorna il repository.

sudo zypper refresh

Ti verrà chiesto della chiave GPG e di rifiutare, fidarti temporaneamente o sempre.

Esempio:

Come installare PHP 8.0 su openSUSE 15 Leap

Tipologia "un", quindi premere il tasto “PULSANTE INVIO” per procedere con l'importazione della chiave GPG.

Installa PHP 8.0

Ora che hai importato e installato il repository delle estensioni PHP per il tuo sistema openSUSE, installa PHP 8.0 con il seguente comando.

sudo zypper install php8

Esempio di output:

Come installare PHP 8.0 su openSUSE 15 Leap

Tipologia "E", quindi premere il tasto "TASTO INVIO" per procedere con l'installazione.

Ora che hai installato PHP 8.0 e le estensioni controlla la versione con il seguente comando:

php -v

Esempio di output di seguito, ricorda che questo cambierà nel tempo:

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

pubblicità


Come cercare i pacchetti PHP 8.0

Per impostazione predefinita, quando si installa PHP 8.0, vengono installati solo alcuni dei pacchetti principali. Tuttavia, come saprebbe chi ha familiarità con PHP, è possibile installare molti extra aggiuntivi per varie applicazioni o requisiti.

Per cercare pacchetti aggiuntivi nel repository delle estensioni PHP, usa il seguente comando nel tuo terminale.

sudo zypper search php8

Esempio di output:

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

Per installare l'estensione PHP 8.0 Redis dall'elenco, eseguire il seguente comando:

sudo zypper install php8-redis

Esempio di output:

Come installare PHP 8.0 su openSUSE 15 Leap

Tipologia "E", quindi premere il tasto "TASTO INVIO" per procedere con l'installazione.

Lo stesso principio può essere utilizzato per PHP 7.4. Basta sostituire l'8 con il 7.

sudo zypper search php7

Per impostazione predefinita, tutti i pacchetti installati con php7 saranno PHP 7.4.

Come installare PHP-FPM 8

Per impostazione predefinita, il modulo Nginx FPM non è disponibile nativamente nelle estensioni PHP di openSUSE. Per installarlo, dovrai installare uno dei repository della community. Uno di quelli consigliati è Il repository di Padom che è elencato come alternativa nella ricerca dei pacchetti di openSUSE.

Per prima cosa, dovrai aggiungere il rispettivo repository.

openSUSE Leap 15.3

sudo zypper addrepo https://download.opensuse.org/repositories/home:/Padom/15.3/home:Padom.repo

openSUSE Passaggio 15.2:

sudo zypper addrepo https://download.opensuse.org/repositories/home:Padom/openSUSE_Leap_15.2/home:Padom.repo

openSUSE Passaggio 15.1:

sudo zypper addrepo https://download.opensuse.org/repositories/home:Padom/openSUSE_Leap_15.1/home:Padom.repo

Aggiorna il repository e accetta l'importazione GPG del repository selezionato.

sudo zypper refresh

Successivamente, installa l'estensione Nginx PHP-FPM 8.

sudo zypper install php8-fpm

Ti verrà chiesto della chiave GPG e di rifiutare, fidarti temporaneamente o sempre.

Esempio di output:

Come installare PHP 8.0 su openSUSE 15 Leap

Tipologia "un", quindi premere il tasto “PULSANTE INVIO” per procedere con l'importazione della chiave GPG.

Esempio di output:

Come installare PHP 8.0 su openSUSE 15 Leap

Tipologia "E", quindi premere il tasto "TASTO INVIO" per procedere con l'installazione.

Una volta installato, copia i file di configurazione predefiniti con i rispettivi nomi.

In caso contrario, PHP-FPM darà uno stato di errore.

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

Ora, per impostazione predefinita, PHP-FPM è disabilitato. Per abilitare PHP FPM per utilizzare il seguente comando.

sudo systemctl enable php-fpm --now

Quindi, verifica che PHP-FPM funzioni correttamente.

sudo systemctl status php-fpm

Esempio di output:

Come installare PHP 8.0 su openSUSE 15 Leap

Come sopra, PHP-FPM funziona correttamente e verrà aggiornato utilizzando il repository della community. In alternativa, puoi installare tutte le tue estensioni PHP 8 da questo repository. È molto apprezzato e, come con l'aggiunta di FPM, ha più estensioni rispetto al repository ufficiale.


pubblicità


Commenti e Conclusione

Nel tutorial, hai imparato come importare il repository delle estensioni PHP per la tua versione di openSUSE e installare pacchetti aggiuntivi e cercarli. Nel complesso, PHP 8.0 sta iniziando a diventare uno standard ovunque.

Con lo sviluppo del prossimo PHP 8.1, più sviluppatori stanno ora rendendo le loro applicazioni web PHP 8 friendly, incluso il gigante CMS WordPress con più sviluppatori di temi e plugin che corrono per ottenere il supporto di PHP 8.0 dati i vantaggi che 8 ha in termini di sicurezza e velocità rispetto al 7 serie.

4 pensieri su "Come installare PHP 8.0 su openSUSE 15 Leap"

    • Ciao Chris,

      Sì hai ragione. Ho aggiunto il metodo FPM in quanto sarebbe forse più popolare.

      Apache sarà fatto quando capirò alcune cose, qualcosa è rotto in tutti i metodi che ho provato, sospetto personalmente che un pacchetto rotto nei repository.

      Una volta capito, aggiungerò la parte Apache.

      Grazie per il feedback.

      Rispondi

Lascia un tuo commento