2015 2010年12月3日にリリースされたPHP7は、以前のバージョンの言語と比較して大幅な速度の向上と、スカラー型ヒントなどの新機能を約束します。このガイドでは、PHP 5.x(任意のバージョン)を実行しているApacheまたはNginxWebサーバーをPHP7にすばやくアップグレードする方法について説明します。
**警告:**ほとんどの主要な言語バージョンと同様に、本番環境でPHP7に切り替える前にしばらく待つことをお勧めします。同時に、アプリケーションと新しいバージョンとの互換性をテストし、ベンチマークテストを実行し、新しい言語機能に慣れるための良い機会です。
アクティブユーザーでサービスまたはアプリケーションを実行している場合、最も安全な方法は、最初にステージング環境でこのプロセスをテストすることです。
sudo
コマンドを使用できる非rootアカウントを持つUbuntu サーバーがセットアップされ、ファイアウォールがオンになっています。サーバーをお持ちでない方は[こちら](https://cloud.tencent.com/product/cvm?from=10680)から購入できますが、個人的には無料のTencent Cloud [Developer Lab](https://cloud.tencent.com/developer/labs/gallery?from=10680)を使用して実験し、[サーバーを購入]( https://cloud.tencent.com/product/cvm?from=10680)。
このガイドは、Ubuntu14.04コンピューターでPHP5.xを実行していることを前提としています。Apacheでは mod_php
を、NginxではPHP-FPMの両方を使用できます。また、root以外のユーザーの管理タスクに sudo
権限が設定されていることも前提としています。
パーソナルパッケージアーカイブ(PPA)は、適切なリポジトリ[クイックスタート](https://launchpad.net/)でホストされます。 PPAを使用すると、サードパーティの開発者は、公式チャネルの外部でUbuntuのパッケージを作成および配布できます。これらは通常、ベータソフトウェア、変更されたビルド、および古いオペレーティングシステムへのバックポートの便利なソースです。
OndřejSurýはDebianPHPパッケージを維持し、[PPA](https://launchpad.net/~ondrej/+archive/ubuntu/php)[Ubuntu上のPHP 7.0](https://launchpad.net/~ondrej/+archive/ubuntu/php)を提供します。他のことをする前に、システムにログインして、OndřejのPPAをシステムのAptソースに追加してください。
sudo add-apt-repository ppa:ondrej/php
PPAの説明が表示され、続行するように求められます。 ** Enter **を押して続行します。
**注:**システムのロケールがUTF-8以外の言語に設定されている場合、作成者の名前の文字の処理が正しくないため、PPAの追加が失敗する可能性があります。回避策として、 language-pack-en-base
をインストールして、ロケールが確実に生成され、PPAを追加するときにシステム全体のロケール設定をオーバーライドできます。
sudo apt-get install -y language-pack-en-base
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
PPAをインストールした後、ローカルパッケージキャッシュを更新して、その内容を含めます。
sudo apt-get update
PHP 7.0パッケージにアクセスできるようになったので、既存のPHPインストールを置き換えることができます。
mod_php
** ##をアップグレードしますこのセクションでは、ApacheをWebサーバーとして使用し、 mod_php
を使用してPHPコードを実行するシステムのアップグレードプロセスを紹介します。逆に、NginxとPHP-FPMを実行している場合は、次のセクションにスキップしてください。
まず、新しいパッケージをインストールします。これにより、削除される php5-mysql
を除くすべての重要なPHPパッケージがアップグレードされます。
sudo apt-get install php7.0
注: / etc / php5 /
内の構成ファイルに多くの変更を加えた場合、それらのファイルは引き続き存在し、参照できます。 PHP7.0の構成ファイルが / etc / php / 7.0
に存在するようになりました。
[MySQL](https://cloud.tencent.com/product/cdb?from=10680)を使用している場合は、更新されたPHPMySQLバインディングを必ず再追加してください。
sudo apt-get install php7.0-mysql
このセクションでは、NginxをWebサーバーとして使用し、PHP-FPMを使用してPHPコードを実行するシステムのアップグレードプロセスを紹介します。
まず、新しいPHP-FPMパッケージとその依存関係をインストールします。
sudo apt-get install php7.0-fpm
続行するように求められます。 ** Enter **を押してインストールを完了します。
MySQLを使用している場合は、必ずPHPMySQLバインディングを再インストールしてください。
sudo apt-get install php7.0-mysql
注: / etc / php5 /
内の構成ファイルに大幅な変更を加えた場合、それらのファイルは引き続き存在し、参照できます。 PHP7.0の構成ファイルが / etc / php / 7.0
に存在するようになりました。
Nginxは[Unixドメインソケット](https://en.wikipedia.org/wiki/Unix_domain_socket)を使用してPHP-FPMと通信します。ソケットはファイルシステム上のパスにマップされます。PHP7のインストールでは、デフォルトで新しいパスが使用されます。
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
を使用するように変更します。
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/html;
index index.php index.html index.htm;
server_name server_domain_name_or_IP;
location /{
try_files $uri $uri/=404;}
error_page 404/404.html;
error_page 500502503504/50x.html;
location =/50x.html {
root /usr/share/nginx/html;}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
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
Webサーバーを構成し、新しいパッケージをインストールすると、PHPが稼働していることを確認できるはずです。まず、コマンドラインでインストールされているPHPのバージョンを確認します。
php -v
PHP 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
Webサーバーのドキュメントルートディレクトリにテストファイルを作成することもできます。サーバーと構成に応じて、これは次のいずれかになります。
/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
次のコードを貼り付けます。
<? php
phpinfo();?>
エディタを終了し、 info.php
を保存します。次に、ブラウザに次のアドレスをロードします。
http://server_domain_name_or_IP/info.php
PHP7のPHPバージョンと構成情報が表示されます。これを再確認したら、最も安全なのは info.php
を削除することです。
sudo rm /var/www/html/info.php
これでPHP7がインストールされました。こちらの[公式移行ガイド](https://secure.php.net/manual/en/migration70.php)を確認してください。
その他のUbuntuチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。
参照:「Ubuntu14.04でPHP7にアップグレードする方法」
Recommended Posts