Ubuntu専用サーバーでPHP7.2を使用することは、いくつかの理由から、以前のPHPバージョンよりも強くお勧めします。最初はセキュリティです。 PHP 7.2のアクティブサポートは2019年11月30日まで、セキュリティサポートは2020年11月30日までです。7.0などの古いバージョンや5.6以下はサポートされなくなり、サーバーを交換しないとセキュリティホールが開いたままになる可能性があります。 。アップグレードするもう1つの主な理由は、 PHP 7.2がインストールされ、OPcacheモジュールを使用している場合に以前のバージョンよりもパフォーマンスが大幅に向上することです 。これにより、Webページの読み込みにかかる時間を大幅に短縮できます。ローカルでサイトを開発している場合、またはLiquidWebのUbuntuVPSまたは専用サーバーのいずれかでサイトを起動している場合は、PHP7.2以降を使用するのが最善の方法です。
飛行前:サーバー環境を確認する
- 正しい権限: まず、サーバー上のシステムとアプリケーションを管理できるように、適切なrootまたはsudo権限があることを確認してください。システム上のroot以外のユーザーにしかアクセスできない場合は、サーバー管理者からより多くの権限を取得する必要がある場合があります。
- 既存のPHPバージョン: PHPの既存のバージョンを確認します。 Ubuntuイメージをサーバーに最初にインストールするときにデフォルトのLAMPスタックを選択した場合、デフォルトでPHP7.0になります。別のイメージを使用した場合、またはプレーンインストールを実行した場合は、サーバーにPHPのバージョンがない可能性があります。 PHPのバージョンを確認するには、ターミナルにアクセスして実行します。
user@test:~# php -v
PHP 7.0.30-0ubuntu0.16.04.1 (cli) ( NTS )
古いバージョンのPHPが表示された場合は、新しいバージョンをインストールし、後でApacheが接続するバージョンを切り替える必要があります。 「Commandphpnotfound」と表示されている場合は、現在インストールされているPHPバージョンはありません 。
- クイックバックアップの作成: 既存のPHPバージョンがある場合は、問題が発生して(サイトコードに互換性がない場合など)、再度ダウングレードする必要がある場合に備えて、アップグレードを実行する前に構成のバックアップを作成することをお勧めします。次のコマンドを実行して、現在の構成ディレクトリを確認できます。
user@test:~# php --ini
Configuration File (php.ini) Path: /etc/php/7.0/cli
Loaded Configuration File: /etc/php/7.0/cli/php.ini
Scan for additional .ini files in: /etc/php/7.0/cli/conf.d
これは、構成がすべて /etc/php/7.0/にあることを示しています。 ディレクトリ。したがって、迅速なバックアップを作成する場合は、次のようなコマンドを実行できます。
user@test:~# sudo cp -a /etc/php/7.0/ /etc/php/7.0.backup
また、次のコマンドを実行して、既存のPHPモジュールのリストを保存できます。
user@test:~# sudo cp -a /etc/php/7.0/ /etc/php/7.0.backup
これは、既存のモジュールをPHP7.2のモジュールと比較するときに役立ちます。
PHP7.2のインストール
UbuntuでのPHPの公式リポジトリは、launchpadのOndřejSurýからのものです。システムに追加するには、次のコマンドを実行する必要があります。
user@test:~# sudo add-apt-repository ppa:ondrej/php
Enterを押します プロンプトが表示されたとき。これにより、システムはリポジトリを新しいソフトウェアのソースとして使用できます。次のコマンドは、システムで使用可能なソフトウェアパッケージのリストを取得します。
user@test:~# sudo apt-get update
その後、インストールを続行できます:
user@test:~# sudo apt-get install php7.2
インストールするいくつかの異なるパッケージと、それらが使用する合計ディスク容量が表示されます。プロンプトが表示されたら、「 Y」と入力します ’と送信します。しばらくするとインストールが完了するはずです。次のコマンドでPHPのバージョンを確認してください。
user@test:~# php -v
PHP 7.2.13-1+ubuntu16.04.1+deb.sury.org+1
PHP 7.2が表示されるはずですが、新しいバージョンを使用するようにApacheを構成する必要があります。
PHP7.2を使用するためのApacheの構成
Ubuntu 16.04は、Apacheモジュールの管理に役立ついくつかの異なるコマンドを使用するため、特定のPHPバージョンを利用する方法は、ロードされるモジュールによって異なります。次のコマンドを実行すると、使用可能なモジュールのリストを表示できます。
user@test:~# ls /etc/apache2/mods-available/php*
/etc/apache2/mods-available/php7.0.conf
/etc/apache2/mods-available/php7.0.load
/etc/apache2/mods-available/php7.2.conf
/etc/apache2/mods-available/php7.2.load
他のモジュールもある可能性があります。デフォルトのLAMPスタックインストールには7.0があり、新しい7.2インストールには先ほど作成したものがありますが、次のコマンドを実行すると、7.0がまだアクティブであることが示されます。
user@test:~# ls /etc/apache2/mods-enabled/php*
/etc/apache2/mods-enabled/php7.0.conf
/etc/apache2/mods-enabled/php7.0.load
これを新しい7.2バージョンに切り替えるには、最初に古いPHPバージョンを無効にします。
user@test:~# sudo a2dismod php7.0
次に、PHP 7.2を有効にします:
user@test:~# sudo a2enmod php7.2
Apacheを再起動する前に、次のコマンドを実行してApache構成構文を確認してください。
user@test:~# apachectl -t
Syntax OK
構文に問題がない場合は、Apacheを再起動します。
user@test:~# sudo service apache2 restart
ApacheのPHPバージョンの確認
次に、作業を確認するために、前のコマンドを再度実行して、ロードされているモジュールを確認します。これにより、PHP7.2バージョンが表示されます。
user@test:~# ls /etc/apache2/mods-enabled/php*
/etc/apache2/mods-enabled/php7.2.conf
/etc/apache2/mods-enabled/php7.2.load
最後のいくつかのコマンドに表示されているのと同じ結果が表示されない場合は、最後のいくつかのコマンドのスペルと構文を再確認し、 sudoを確認してください。 rootユーザーとして実行していない場合は入力されました。
次に、サイトでテストするために、ドメインで表示できるphpinfoファイルを作成することをお勧めします。これは、PHPのバージョンと、現在の構成、変数、および追加されたすべてのモジュールに関する情報を示しています。新しい.phpを作成します サイトのホームフォルダまたはApacheのドキュメントルート( / var / www / html )にあるファイル デフォルトで)、次のコードを含めます:
<?php phpinfo(); ?>
次に、ブラウザでページにアクセスすると、次のようになります。
以前のバージョンのPHPでサイトが既に稼働している場合は、今すぐテストして、問題がないかどうかを確認してください。コードに互換性がないかエラーが表示されている場合は、さらに診断を試みるか、サイトをすぐにバックアップする必要がある場合は、 a2dismodを実行してPHPバージョンを再度ダウングレードできます。 およびa2enmod PHP 7.2を無効にしてから、7.0またはサーバー上にあった以前のバージョンを有効にしてから、Apacheを再起動するコマンド。
一部のサイトでは、モジュールが見つからず実行できないというエラーが表示される場合があります。または、新しいサイトを開発していて、必要なモジュールのリストがある場合は、次のセクションで新しいモジュールを追加できます。
>PHP7.2へのモジュールの追加
PHP 7.2に切り替えても、以前のPHPバージョンと同じモジュールがすべて自動的に保持されるわけではありません。リストを以前のPHPバージョンと比較する必要がない場合は、必要な基本モジュールをインストールするために、最初に以下のコマンドを入力します。ただし、 TAB を押した場合は、Enterキーを押さないでください キーを2回押すと、7.2に固有の使用可能なモジュールのリストが表示されます::
@test:~# sudo apt-get install php7.2[tab][tab]
出力例:
php7.2 php7.2-enchant php7.2-mbstring php7.2-snmp
php7.2-bcmath php7.2-fpm php7.2-mysql php7.2-soap
php7.2-bz2 php7.2-gd php7.2-odbc php7.2-sqlite3
php7.2-cgi php7.2-gmp php7.2-opcache php7.2-sybase
php7.2-cli php7.2-imap php7.2-pgsql php7.2-tidy
php7.2-common php7.2-interbase php7.2-phpdbg php7.2-xml
php7.2-curl php7.2-intl php7.2-pspell php7.2-xmlrpc
php7.2-dba php7.2-json php7.2-readline php7.2-xsl
php7.2-dev php7.2-ldap php7.2-recode php7.2-zip
これは完全なリストではないため、必要な他のモジュールをインストールする方法を調べる必要がある場合があります。次のように、必要なモジュールを入力したり、同じインストールコマンドに複数を追加したりできます。
user@test:~# sudo apt-get install php7.2-opcache php7.2-mbstring php-memcached
ガイドの前半のコマンドを使用して以前のPHPバージョンのモジュールのリストを保存した場合は、モジュールのリストをPHP 7.2に保存して、以前のバージョンと比較できます。実行:
php -m > /tmp/7.2.modulelist.txt
次に、以前に作成したリストと比較するには、次のコマンドを実行します。
user@test:~# diff /tmp/7.0.modulelist.txt /tmp/7.2.modulelist.txt
15,16d14
< mysqli
< mysqlnd
21d18
< pdo_mysql
28d24
< soap
29a26
> sodium
または、2つのリストをより視覚的に比較する方法が必要な場合は、次を実行します。
user@test:~# vimdiff /tmp/7.0.modulelist.txt /tmp/7.2.modulelist.txt
ターミナルに次のようなページが表示されます:
この例では、さまざまなMySQLモジュールとsoapが左側の7.0モジュールのリストに表示されていますが、右側の7.2バージョンにはありません。また、ナトリウムモジュールは7.2にありますが、7.0にはありませんでした。
したがって、この例では、不足しているモジュールを次のコマンドでインストールできます。
user@test:~# sudo apt-get install php7.2-mysql php7.2-soap
インストール後、更新されたモジュールのリストを保存して、再度比較できます。
user@test:~# php -m > /tmp/7.2.modulelist.updated.txt
diff /tmp/7.0.modulelist.txt /tmp/7.2.modulelist.updated.txt
29a30
> sodium
モジュールリスト間で異なるのはナトリウムモジュールのみなので、開発の準備が整いました。このガイドがPHP7.2へのアップグレードに役立つことを願っています。 Liquid Web Ubuntu Serverで問題が発生した場合、またはさらにサポートが必要な場合は、Linuxサポートチームにお知らせください。