PHP 8.0は、2020年11月26日にリリースされたPHP言語の重要な更新であり、既存のPHP7.4リリースから大きく飛躍しました。新しいPHPには、名前付き引数、共用体型、属性、コンストラクタープロパティの昇格、一致式、nullセーフ演算子、JITと型システムの改善、エラー処理、一貫性など、多くの新機能と最適化が含まれています。
次のチュートリアルでは、 openSUSE15LeapにPHP8.0をインストールする方法を学習します。 。
前提条件
- 推奨OS: openSUSE Leap – 15.x
- ユーザーアカウント: sudoまたはrootアクセス権を持つユーザーアカウント。
オペレーティングシステムの更新
openSUSEを更新します 既存のすべてのパッケージが最新であることを確認するためのオペレーティングシステム:
sudo zypper refresh
更新したら、updateコマンドを実行します。
sudo zypper update
チュートリアルでは、sudoコマンドを使用します およびsudoステータスがあると仮定 。
アカウントのsudoステータスを確認するには:
sudo whoami
sudoステータスを示す出力例:
[joshua@opensuse ~]$ sudo whoami
root
既存または新規のsudoアカウントを設定するには、openSUSEでのSudoersへのユーザーの追加に関するチュートリアルにアクセスしてください。 。
rootアカウントを使用するには 、rootパスワードを指定して次のコマンドを使用してログインします。
su
PHP拡張機能のインポートとインストール
最初のタスクは、 server:php:extensionsをインストールすることです openSUSEターミナルで。ただし、現在実行しているopenSUSEのバージョンによって、これは異なる場合があります。以下は、openSUSELeapの最新リリースと以前のリリースの2つの例です。
openSUSE Leap 15.3のserver:php:extensionsをインポートする :
sudo zypper addrepo https://download.opensuse.org/repositories/home:/Padom/15.3/home:Padom.repo
openSUSE Leap 15のserver:php:extensionsをインポートします。 2:
sudo zypper addrepo https://download.opensuse.org/repositories/server:php:extensions/openSUSE_Leap_15.2/server:php:extensions.repo
openSUSE Leap 15.1のserver:php:extensionsをインポートします:
sudo zypper addrepo https://download.opensuse.org/repositories/server:php:extensions/openSUSE_Leap_15.1/server:php:extensions.repo
15.3のインポートの出力例:
新しいリリースの場合は、式に従ってください。完了したら、リポジトリを更新します。
sudo zypper refresh
GPGキーについて、拒否するか、一時的に信頼するか、常に信頼するかを確認するメッセージが表示されます。
例:
「a」、と入力します 次に、「ENTERボタン」を押します。 GPGキーのインポートを続行します。
PHP8.0をインストールする
openSUSEシステムのPHP拡張リポジトリをインポートしてインストールしたので、次のコマンドを使用してPHP8.0をインストールします。
sudo zypper install php8
出力例:
「Y」と入力します 次に、「ENTERキー」を押します。 インストールを続行します。
これでPHP8.0がインストールされ、拡張機能は次のコマンドでバージョンを確認します。
php -v
以下の出力例。これは時間とともに変化することを忘れないでください:
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
PHP8.0パッケージを検索する方法
デフォルトでは、PHP 8.0をインストールすると、いくつかのメインパッケージのみがインストールされます。ただし、PHPに精通している人なら誰でも知っているように、さまざまなアプリケーションや要件に合わせて、さらに多くの追加機能をインストールできます。
PHP拡張リポジトリで追加のパッケージを検索するには、ターミナルで次のコマンドを使用します。
sudo zypper search php8
出力例:
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
リストからPHP8.0Redis拡張機能をインストールするには、次のコマンドを実行します。
sudo zypper install php8-redis
出力例:
「Y」と入力します 次に、「ENTERキー」を押します。 インストールを続行します。
同じ原則をPHP7.4にも使用できます。 8を7に置き換えるだけです。
sudo zypper search php7
デフォルトでは、php7でインストールされるすべてのパッケージはPHP7.4になります。
Nginx –PHP-FPMのインストール方法
デフォルトでは、 Nginx FPM モジュールは、openSUSEによるPHP拡張機能にネイティブに含まれていません。これをインストールするには、コミュニティリポジトリの1つをインストールする必要があります。推奨されるものの1つは、Padomのリポジトリです。 これは、openSUSEのパッケージ検索の代替としてリストされています。
まず、それぞれのリポジトリを追加する必要があります。
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
リポジトリを更新し、選択したリポジトリのGPGインポートを受け入れます。
sudo zypper refresh
次に、NginxPHP-FPM8拡張機能をインストールします。
sudo zypper install php8-fpm
GPGキーについて、拒否するか、一時的に信頼するか、常に信頼するかを確認するメッセージが表示されます。
出力例:
「a」、と入力します 次に、「ENTERボタン」を押します。 GPGキーのインポートを続行します。
出力例:
「Y」と入力します 次に、「ENTERキー」を押します。 インストールを続行します。
インストールしたら、デフォルトの構成ファイルをそれぞれの名前にコピーします。
これを行わないと、PHP-FPMでエラーステータスが発生します。
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
現在、デフォルトでは、PHP-FPMは無効になっています。 PHPFPMが次のコマンドを使用できるようにするには。
sudo systemctl enable php-fpm --now
次に、PHP-FPMが正しく機能していることを確認します。
sudo systemctl status php-fpm
出力例:
上記のように、PHP-FPMは正しく機能しており、コミュニティリポジトリを使用して更新されます。または、このリポジトリからすべてのPHP8拡張機能をインストールすることもできます。これは高く評価されており、FPMが追加されているように、公式リポジトリよりも多くの拡張機能があります。