PHP 8.0 è un aggiornamento significativo del linguaggio PHP rilasciato il 26 novembre 2020, un gigantesco balzo in avanti rispetto alla versione esistente di PHP 7.4. 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
- Sistema operativo consigliato: openSUSE Leap – 15.x
- Account utente: Un account utente con accesso sudo o root.
Aggiorna sistema operativo
Aggiorna il tuo openSUSE sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:
sudo zypper update
Una volta aggiornato, esegui il comando di aggiornamento.
sudo zypper update
Il tutorial utilizzerà il comando sudo e supponendo che tu abbia lo stato 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 ai sudoer su openSUSE .
Per utilizzare l'account root , usa il comando seguente con la password di root per accedere.
su
Importa e installa estensioni PHP
Il primo compito è installare il server:php:extensions 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:extensions per openSUSE Leap 15.3 :
sudo zypper addrepo https://download.opensuse.org/repositories/home:/Padom/15.3/home:Padom.repo
Importa server:php:extensions 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:extensions 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:
Per le versioni più recenti, segui la formula. Al termine, aggiorna il repository.
sudo zypper update
Ti verrà chiesto della chiave GPG e di rifiutare, fidarti temporaneamente o sempre.
Esempio:
Digita "a", quindi premere il "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 comando seguente.
sudo zypper install php8
Esempio di output:
Digita "Y", quindi premere il "INVIO TASTO" 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 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
Come cercare pacchetti PHP 8.0
Per impostazione predefinita, quando si installa PHP 8.0, vengono installati solo alcuni dei pacchetti principali. Tuttavia, come saprà la maggior parte dei familiari con PHP, puoi 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:
Digita "Y", quindi premere il "INVIO TASTO" 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.
Nginx – Come installare PHP-FPM
Per impostazione predefinita, l'FPM Nginx module non viene fornito in modo nativo nelle estensioni PHP di openSUSE. Per installarlo, dovrai installare uno dei repository della community. Uno di quelli consigliati è repository di Padom che è elencato come alternativa nella ricerca dei pacchetti di openSUSE.
Innanzitutto, 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 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
Aggiorna il repository e accetta l'importazione GPG del repository che hai selezionato.
sudo zypper update
Quindi, 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:
Digita "a", quindi premere il "PULSANTE INVIO" per procedere con l'importazione della chiave GPG.
Esempio di output:
Digita "Y", quindi premere il "INVIO TASTO" per procedere con l'installazione.
Una volta installato, copia i file di configurazione predefiniti con i rispettivi nomi.
In caso contrario, PHP-FPM visualizzerà 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 consentire a PHP FPM di utilizzare il seguente comando.
sudo systemctl enable php-fpm --now
Quindi, conferma che PHP-FPM funzioni correttamente.
sudo systemctl status php-fpm
Esempio di output:
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.