前書き

2015年12月3日にリリースされたPHP 7は、スカラー型ヒントなどの新機能とともに、以前のバージョンの言語よりも大幅に速度が向上することを約束します。 このガイドでは、PHP 5.x(任意のリリース)を実行しているApacheまたはNginx WebサーバーをPHP 7にすばやくアップグレードする方法について説明します。

前提条件

このガイドでは、Apacheと組み合わせて `+ mod_php `を使用するか、Nginxと組み合わせてPHP-FPMを使用して、Ubuntu 14.04マシンでPHP 5.xを実行していることを前提としています。 また、管理タスクの ` sudo +`権限で設定された非rootユーザーがあることを前提としています。

PHP 7.0パッケージ用のPPAの追加

  • Personal Package Archive *またはPPAは、https://launchpad.net/ [Launchpad]でホストされるAptリポジトリです。 PPAを使用すると、サードパーティの開発者は、公式チャンネル以外でUbuntuのパッケージを構築および配布できます。 多くの場合、ベータ版ソフトウェア、変更されたビルド、およびオペレーティングシステムの古いリリースへのバックポートの有用なソースです。

OndřejSurýはDebianのPHPパッケージを保守し、https://launchpad.net/%7Eondrej/+archive/ubuntu/php [Ubuntu上のPHP 7.0のPPA]を提供しています。 他の作業を行う前に、システムにログインし、システムのAptソースにOndřejのPPAを追加します。

sudo add-apt-repository ppa:ondrej/php

PPAの説明が表示され、続けてプロンプトが表示されます。 * Enter *を押して続行します。

PPAをインストールしたら、ローカルパッケージキャッシュを更新してその内容を含めます。

sudo apt-get update

PHP 7.0のパッケージにアクセスできるようになったので、既存のPHPインストールを置き換えることができます。

Apacheで `+ mod_php +`をアップグレードする

このセクションでは、ApacheをWebサーバーとして使用し、 `+ mod_php +`を使用してPHPコードを実行するシステムのアップグレードプロセスについて説明します。 代わりに、NginxとPHP-FPMを実行している場合は、次のセクションに進んでください。

まず、新しいパッケージをインストールします。 これにより、削除される `+ php5-mysql`を除くすべての重要なPHPパッケージがアップグレードされます。

sudo apt-get install php7.0

MySQLを使用している場合は、更新されたPHP MySQLバインディングを再追加してください。

sudo apt-get install php7.0-mysql

Nginxを使用したPHP-FPMのアップグレード

このセクションでは、WebサーバーとしてNginxを使用し、PHPコードを実行するPHP-FPMを使用するシステムのアップグレードプロセスについて説明します。

まず、新しいPHP-FPMパッケージとその依存関係をインストールします。

sudo apt-get install php7.0-fpm

続行するように求められます。 * Enter *を押してインストールを完了します。

MySQLを使用している場合は、PHP MySQLバインディングを必ず再インストールしてください。

sudo apt-get install php7.0-mysql

新しいソケットパスを使用するためのNginxサイトの更新

Nginxはhttps://en.wikipedia.org/wiki/Unix_domain_socket[Unixドメインソケット]を使用してPHP-FPMと通信します。 ソケットはファイルシステム上のパスにマッピングされ、PHP 7のインストールではデフォルトで新しいパスが使用されます。

PHP 5 PHP 7

/var/run/php5-fpm.sock

/var/run/php/php7.0-fpm.sock

+ nano +(または選択したエディター)で `+ default +`サイト設定ファイルを開きます:

sudo nano /etc/nginx/sites-enabled/default

構成は多少異なる場合があります。 `+ location〜\ .php $ {`で始まるブロックと、 ` fastcgi_pass unix:/var/run/php5-fpm.sock; `のような行を探します。 これを変更して、 ` unix:/ var / run / php / php7.0-fpm.sock +`を使用します。

/ etc / nginx / sites-enabled / default

server {
   listen 80 default_server;
   listen [::]:80 default_server ipv6only=on;

   root /var/www/html;
   index index.php index.html index.htm;

   server_name ;

   location / {
       try_files $uri $uri/ =404;
   }

   error_page 404 /404.html;
   error_page 500 502 503 504 /50x.html;
   location = /50x.html {
       root /usr/share/nginx/html;
   }

   location ~ \.php$ {
       try_files $uri =404;
       fastcgi_split_path_info ^(.+\.php)(/.+)$;

       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;
   }
}

ファイルを終了して保存します。 `+ nano +`では、* Ctrl-X を押して終了し、 y を押して確認し、 Enter *を押して上書きするファイル名を確認します。

PHPをサポートする必要がある `+ / etc / nginx / sites-enabled +`で定義されている他の仮想サイトに対してこのプロセスを繰り返す必要があります。

これで、 `+ nginx`を再起動できます。

sudo service nginx restart

PHPのテスト

Webサーバーが構成され、新しいパッケージがインストールされると、PHPが稼働していることを確認できるはずです。 コマンドラインでインストールされているPHPのバージョンを確認することから始めます。

php -v
OutputPHP 7.0.0-5+deb.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
   with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

ウェブサーバーのドキュメントルートにテストファイルを作成することもできます。 サーバーと構成に応じて、これは次のいずれかになります。

  • + / var / www / html

  • + / var / www / +

  • + / usr / share / nginx / html

`+ nano `を使用して、ドキュメントルートで ` info.php +`という新しいファイルを開きます。 デフォルトでは、Apacheでは次のようになります。

sudo nano /var/www/html/info.php

Nginxでは、代わりに以下を使用できます。

sudo nano /usr/share/nginx/html/info.php

次のコードを貼り付けます。

info.php

<?php
phpinfo();
?>

エディターを終了し、「+ info.php」を保存します。 次に、ブラウザに次のアドレスをロードします。

http:///info.php

PHP 7のPHPバージョンと構成情報が表示されます。 これを再確認したら、 `+ info.php`を削除するのが最も安全です:

sudo rm /var/www/html/info.php

結論

PHP 7が正常にインストールされました。 ここから、Erika Heidiのhttps://www.digitalocean.com/company/blog/getting-ready-for-php-7/[Getting Ready for PHP 7]ブログ投稿をチェックして、httpsをご覧ください。 ://secure.php.net/manual/en/migration70.php [公式移行ガイド]。