PHP 7のインストール方法は?


116

昨日、PHP 7がリリースされました。試してみたいと思います。

PHP 7.0.0には、Zend Engineの新しいバージョン、多数の改善、次のような新機能が付属しています。

  • パフォーマンスの向上:PHP 7は、PHP 5.6の最大2倍の速度です
  • メモリ使用量を大幅に削減
  • 抽象構文ツリー
  • 一貫した64ビットサポート
  • 例外階層の改善
  • 多くの致命的なエラーが例外に変換されました
  • 安全な乱数ジェネレーター
  • 古いサポートされていないSAPIと拡張機能を削除しました
  • null合体演算子(??)
  • 戻り値とスカラー型の宣言
  • 匿名クラス
  • ゼロコストアサート

php.net


現在のUbuntuバージョンにインストールすることは可能ですか?

現在の制限または既知の互換性の問題はありますか?



1
PHP 7は、Ubuntu 16、Xenialではデフォルトです。
バトルビュータス

回答:


180

次のことができます。

sudo apt-get install python-software-properties software-properties-common
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update

オプションで、PHP 5をパージします。

sudo apt-get remove php5-common -y

または、構成ファイルを含めて直接パージします。

sudo apt-get purge php5-common -y

最後に、PHP 7をインストールします。

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

必要に応じて、不要なパッケージを後でクリーンアップします。

sudo apt-get --purge autoremove -y

または、このスクリプトスクリプトを使用するか、このブログの指示に従って、ソースからPHP 7.0をインストールできます。

編集:

PHP1のデフォルトPHPとしてPHP5がPHP7に置き換えられたため、Ubuntu 16.04にPHP7をインストールします。

sudo apt-get install php7.0 

または

sudo apt-get install php

12
誰がppaを担当していますか?zendによって公式にサポートされていますか?
k0pernikus

19
@ k0pernikus Zendは、Zend Server以外は公式にサポートしていません:-) Ubuntuのメンテナーは、公式のUbuntuパッケージをサポートしています。このPPAはOndřejSurýによる個人的な努力です。Ondreyは、Ubuntuの上流にあるDebianのPHPツリーの公式所有者です。こちらをご覧ください:qa.debian.org/developer.php?login
Palantir

4
とにかく、彼のPHP PPAは非常に人気があり、Magentoの公式ディストリビューションが5.5および5.6バージョンをアドバタイズするまで、devdocs.magento.com
Palantir

3
JFTR memcachedは、PHP 7.0のアップストリームにはまだ対応していません。私はmemcacheを見ていませんが、パッケージングスクリプトを大幅に書き直した後、小さなバグを解決しています。
oerdnj

4
試してみてください@Xeridea sudo apt-get install libapache2-mod-php7.0、その後、sudo a2enmod php7.0再起動アパッチ
andrewtweber

21

次の2つのオプションがあります。

  • PHP7を含む新しいUbuntuリリースがリリースされるまで待ちます

    Ubuntuは、既存のUbuntuバージョンにほとんどのソフトウェアのメジャーな新しいバージョンをリリースしません。メジャーな新しいバージョンのリリースを取得するには、Ubuntuの新しいバージョンがリリースされるまで待つ必要があります。

  • PPAなどからサードパーティバージョンをインストールする

    PPAはUbuntuのリリーススケジュールやポリシーに拘束されないため、特に頻繁にバージョンをより頻繁に変更できます。Tshilidzi Mudauの回答で言及されたPPAは、PHPを最新の状態に保つための一般的な方法です。

    sudo add-apt-repository ppa:ondrej/php
    

    PPAには、Ubuntuが提供するバージョンと同じ公式のUbuntuサポートが付属していません。また、スケジュールやポリシーが異なるため、品質やセキュリティの基準が異なる場合があります。この場合、このPPAを利用可能にする開発者は、ここでコミュニティに知られています。


1
そして、ソースからインストールするオプション。
-j0h

18

phpMyAdmin(フルLAMPスタック)を含む、PHPを依存関係で完全に更新するためのコマンドのリストを次に示します。

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php-7.0
sudo apt-get update
sudo apt-get purge php5-fpm
sudo apt-get install php7.0-cli php7.0-common libapache2-mod-php7.0 php7.0 php7.0-mysql php7.0-fpm php7.0-curl php7.0-gd php7.0-bz2

これでPHP7ができました。phpMyAdminに行きましょう:(既にPHP7がインストールされている場合は、ここから始めてください)

cd /var/www/html/
sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.5.3.1/phpMyAdmin-4.5.3.1-all-languages.zip
sudo unzip phpMyAdmin-4.5.3.1-all-languages.zip
sudo mv phpMyAdmin-4.5.3.1-all-languages/ phpmyadmin/
sudo mkdir -m 777 phpmyadmin/config/
sudo /etc/init.d/apache2 restart

3
libapache2-mod-php7.0まさに私が必要なものです、ありがとう!
ジェイサーオムリ


7

上記のプロセスはUbuntu 15.10サーバーでは機能しなかったので、他の人が役に立つと思った場合に機能する内容を共有すると思いました。

まず、特定の重要なPHP 5モジュールを削除する必要がありました。

sudo apt-get -y purge php5 libapache2-mod-php5 php5 php5-cli php5-common php5-curl php5-gd php5-imap php5-intl php5-json php5-mcrypt php5-mysql php5-pspell php5-readline php5-sqlite

次に、残されたいくつかの余分なものを削除します。

sudo apt-get autoremove

次に、PHP 7.0をインストールします。

sudo apt-get install php7.0

次に、PHPMyAdminが削除されたため、Apache2が起動しないため、構成ファイルを削除する必要がありました(代わりに移動できました)。

sudo rm /etc/apache2/conf-enabled/phpmyadmin.conf

次に、Apache2を再起動する必要がありました。

sudo service apache2 restart

PHP 7.0が実行されていました(で確認済みPHPINFO();

ただし、PHPMyAdminを機能させる唯一の方法は、手動でインストール/アップグレードすることです。さもないと、ソースで利用可能な最新バージョンはPHP 7をまだサポートしていません。

**編集:GITからクローンを作成したり、ソースから手動でコンパイルしたりすることなく、PHPMyAdminを互換バージョンに更新する方法を見つけたので、以下に追加します。

最初にこのリポジトリを追加し、ソースリストを更新してアップグレードします(注意:PHP7へのアップグレード中に削除された場合、アップグレードするのではなく、インストールする必要があります)。

sudo add-apt-repository ppa:nijel/phpmyadmin
sudo apt-get update
sudo apt-get dist-upgrade

ただし、(サーバー上で)インストール中にデータベースアップグレードスクリプトを実行する必要upgrade_column_info_4_3_0+.sqlがありましたが、次のエラーで失敗しました。

mysql said: ERROR 1060 (42S21) at line 28: Duplicate column name 'input_transformation'

エラーを無視してアップグレードを完了することにしました。インストール後、次の場所で.sqlアップグレードスクリプトを開きました。/usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql

既に存在する2つの列を作成しようとして、問題のある2行を手動で削除するスクリプトを実行しました(削除するコード):

ALTER TABLE `pma__column_info`
ADD `input_transformation` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
ADD `input_transformation_options` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';

最後に、設定ファイルを編集して/etc/phpmyadmin/config.inc.php、次の2行を追加する必要がありました。

$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

この後、PHPMyAdminが正常に更新され、拡張機能が有効になります。これが他の人の役に立つことを願っています。


4

この回答(2017年2月)の時点で、Ubuntu 16.04 LTSで、単純なコマンドでphp 7.0。*をインストールできるようになりました。

apt-get install php

サードパーティのリポジトリを追加する必要はありません。


3

ppa16.04 LTSで追加されたと思います。

  1. ただやるだけで終わりですsudo apt-get install php7.0
  2. 実行してインストールされたかどうかを確認します php --version
  3. また、info.phpApacheのドキュメントルートにファイルを作成できます。
  4. それは/var/www/html/ディレクトリにあります
  5. 走る sudo gedit /var/www/html/info.php
  6. ファイルに次を追加します<?php phpinfo(); ?>。注:ファイルは自分で作成したため、空のファイルです。
  7. 今すぐApacheを再起動します sudo service apache2 restart
  8. あなたのウェブブラウザで、http://localhost/info.phpそれはあなたにphpに関する完全な情報を提供します。

お役に立てれば :)


1
Apache2に追加する必要はありませんか?
アーレンベイラー

それはPPAではなく、公式のubuntuビルドです。
ジェフパッケット

2

Ubuntu 15.04および15.10でPHP 7のビルドを完全にセットアップするために、いくつかの異なるリソースを収集し、多くの問題を解決しました。Debianパッケージスクリプトではありませんが、Ubuntuの依存関係と設定をセットアップします。リソースはここにあります

マスターだけでなくリリースブランチを選択し、スクリプトを再実行する必要がある場合があります。


2

私はこれが悪い考えかもしれないことを知っていますが、これは私のUbuntu Server 12.04.5(i386)のインストールでphp7を動作させる方法です:

sudo nano /etc/apt/sources.list

次に、最後に次を追加します。
 

deb http://us.archive.ubuntu.com/ubuntu/トラスティメインユニバースユニバースマルチバース
deb http://archive.canonical.com/ubuntu信頼できるパートナー

次に、通常どおりに更新します。

sudo apt-get update

PHP 7をApacheサーバーにインストールしたら、ファイルを新しいディレクトリに移動して動作させる必要がある場合があります。

sudo mv / var / www / * / var / www / html /
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.