ウェブサイト検索

Ubuntu 14.04 および 14.10 に Apache または Nginx 用の PHP 7 をインストールする方法


PHP 7.0 の安定版がリリースされてから数か月が経ち、古いバージョンから PHP 7.0 へのアップグレードを検討するのに最適な時期かもしれません。

特に運用環境ではアップグレードには常に注意が必要ですが、速度の向上や、スカラー型ヒンティングなどの機能を享受するには、今すぐアップグレードすることをお勧めします。

システムに 2 つのバージョンの PHP をインストールし、1 つをテスト目的で使用できますが、一度に有効にできる PHP Apache モジュールは 1 つだけであることに注意してください。

このガイドは、Apache Web サーバーまたは PHP-FPM と接続した mod_php を使用した、PHP 5.X からのアップグレードに焦点を当てています。 > Nginx Web サーバーとの接続。

  1. Ubuntu 14.04 および 14.10 に PHP 7 をインストールする
  2. Apache Web サーバーでの PHP 7.0 へのアップグレード
  3. Nginx Web サーバーでの PHP 7.0 へのアップグレード

ここで、PHP の最新バージョンにアップグレードする方法と、それを使用するようにシステムを構成する方法について詳しく説明します。

Ubuntu 14.04 および 14.10 に PHP 7 をインストールする方法

まず、以下のコマンドを実行して、Debian およびその派生製品 (Ubuntu など) 用に Ondřej Surý によって保守されているPPA を追加する必要があります。

sudo add-apt-repository ppa:ondrej/php

次に次のようにシステムを更新します。

sudo apt-get update

これですべての設定が完了し、PHP 7.0 をインストールできます。ただし、ApacheNginx のアップグレードについては別のセクションで説明します。

Apache Web サーバーでの PHP 7.0 へのアップグレード

このセクションは、Apache を実行しているシステム向けであり、PHP コードは mod_php モジュールを使用して実行されます。以下のコマンドを実行して、最新の PHP バージョンをインストールします。

sudo apt-get install php7.0
サンプル出力

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libapache2-mod-php7.0 libssl1.0.2 php-common php7.0-cli php7.0-common
  php7.0-json php7.0-opcache php7.0-readline
Suggested packages:
  php-pear
The following NEW packages will be installed:
  libapache2-mod-php7.0 libssl1.0.2 php-common php7.0 php7.0-cli php7.0-common
  php7.0-json php7.0-opcache php7.0-readline
0 upgraded, 9 newly installed, 0 to remove and 80 not upgraded.
Need to get 4,371 kB of archives.
After this operation, 17.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

これでシステム上の PHP がアップグレードされましたが、MySQL データベース管理システムを使用している場合は、次のコマンドを実行して PHP-MySQL バインディングを更新する必要があります。また、Curl、GD、Cli、JSON などの便利なモジュールをインストールする必要もあります。

sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json 

追加の PHP7.0 モジュールをインストールする場合は、apt-cache コマンドを使用してすべての PHP7.0 モジュールを一覧表示し、インストールします。

sudo apt-cache search php7
サンプル出力

php-radius - radius client library for PHP
php-http - PECL HTTP module for PHP Extended HTTP Support
php-uploadprogress - file upload progress tracking extension for PHP
php-mongodb - MongoDB driver for PHP
php7.0-common - documentation, examples and common module for PHP
libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module)
php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.0-cli - command-line interpreter for the PHP scripting language
php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
libphp7.0-embed - HTML-embedded scripting language (Embedded SAPI library)
php7.0-dev - Files for PHP7.0 module development
php7.0-curl - CURL module for PHP
php7.0-enchant - Enchant module for PHP
php7.0-gd - GD module for PHP
php7.0-gmp - GMP module for PHP
php7.0-imap - IMAP module for PHP
php7.0-interbase - Interbase module for PHP
php7.0-intl - Internationalisation module for PHP
php7.0-ldap - LDAP module for PHP
php7.0-mcrypt - libmcrypt module for PHP
php7.0-readline - readline module for PHP
php7.0-odbc - ODBC module for PHP
php7.0-pgsql - PostgreSQL module for PHP
php7.0-pspell - pspell module for PHP
php7.0-recode - recode module for PHP
php7.0-snmp - SNMP module for PHP
php7.0-tidy - tidy module for PHP
php7.0-xmlrpc - XMLRPC-EPI module for PHP
php7.0-xsl - XSL module for PHP (dummy)
php7.0 - server-side, HTML-embedded scripting language (metapackage)
php7.0-json - JSON module for PHP
php-all-dev - package depending on all supported PHP development packages
php7.0-sybase - Sybase module for PHP
php7.0-sqlite3 - SQLite3 module for PHP
php7.0-mysql - MySQL module for PHP
php7.0-opcache - Zend OpCache module for PHP
php-apcu - APC User Cache for PHP
php-xdebug - Xdebug Module for PHP
php-imagick - Provides a wrapper to the ImageMagick library
php-ssh2 - Bindings for the libssh2 library
php-redis - PHP extension for interfacing with Redis
php-memcached - memcached extension module for PHP, uses libmemcached
php-apcu-bc - APCu Backwards Compatibility Module
php-amqp - AMQP extension for PHP
php7.0-bz2 - bzip2 module for PHP
php-rrd - PHP bindings to rrd tool system
php-uuid - PHP UUID extension
php-memcache - memcache extension module for PHP
php-gmagick - Provides a wrapper to the GraphicsMagick library
php-smbclient - PHP wrapper for libsmbclient
php-zmq - ZeroMQ messaging bindings for PHP
php-igbinary - igbinary PHP serializer
php-msgpack - PHP extension for interfacing with MessagePack
php-geoip - GeoIP module for PHP
php7.0-bcmath - Bcmath module for PHP
php7.0-mbstring - MBSTRING module for PHP
php7.0-soap - SOAP module for PHP
php7.0-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP
php7.0-zip - Zip module for PHP
php-tideways - Tideways PHP Profiler Extension
php-yac - YAC (Yet Another Cache) for PHP
php-mailparse - Email message manipulation for PHP
php-oauth - OAuth 1.0 consumer and provider extension
php-propro - propro module for PHP
php-raphf - raphf module for PHP
php-solr - PHP extension for communicating with Apache Solr server
php-stomp - Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP
php-gearman - PHP wrapper to libgearman
php7.0-dba - DBA module for PHP

PHP7.0 とそのモジュールがインストールされたら、Apache Web サーバーを再起動して、次のように PHP バージョンを確認できます。

sudo service apache2 restart
php -v
サンプル出力

PHP 7.0.7-1+donate.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

/var/www/html ディレクトリに info.php ファイルを作成して、PHP7 情報を確認することもできます。


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

次のコードを配置し、http://server_IP-address/info.php 経由でページにアクセスします。


<?php
phpinfo();
?>

Nginx Web サーバーでの PHP 7.0 へのアップグレード

このセクションでは、PHP7.0 へのアップグレードと Nginx Web サーバーでの PHP-FPM の更新のプロセスについて説明します。PHP コードは PHP-FPM< を使用して実行されます。

以下のコマンドを実行して、最新のPHP-FPM パッケージをインストールします。

sudo apt-get install php7.0
sudo apt-get install php7.0-fpm

PHP はアップグレードされましたが、MySQL を使用している場合は、次のコマンドを実行して、PHP-MySQL バインディングといくつかの追加モジュールを更新する必要があります。

sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json 

次に、ファイル /etc/nginx/sites-enabled/default または PHP を使用およびサポートする必要がある仮想サイトのすべてのファイルに fastcgi_pass ディレクティブを追加する必要があります。 、PHP が Nginx と通信するために使用するPHP-FPM ソケット ファイルのパスが変更されたためです。

次のように、お気に入りのエディタを使用してファイルを開いて編集します。


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

次のように変更または追加します。


location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
                return 404;
        }
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}

次に、次のように Nginx とphp-fpm を再起動します。


sudo service nginx restart
sudo service php7.0-fpm restart

最後に、最初に PHP のバージョンを確認し、次に Web サーバーでテストすることで、PHP が動作しているかどうかをテストできます。

php -v

PHP パッケージに関する情報を取得するには、/usr/share/nginx/html/ ディレクトリに小さな info.php ファイルを書き込みます。

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

このコードをinfo.php ファイルに追加します。

<?php
phpinfo();
?>

ファイルを保存して終了します。

Web ブラウザを開いて http://server_IP-address/info.php と入力すると、PHP パッケージの詳細を示す以下のページが表示されるはずです。

Ubuntu 14.04/14.10 システムで PHP 7.0 を問題なく使用できるようになりました。このガイドがお役に立てば幸いです。

PHP のアップグレードに関する追加情報や質問については、以下のコメント セクションでコメントをお待ちしています。