PPAを追加します
PHP 5.6およびPHP 7.0パッケージはサードパーティのPPAからのものであり、Canonicalの公式のUbuntuリポジトリからは提供されません。ここでお勧めするPPAは、Debian用のPHPをパッケージ化するOndřejSurýによるものであり(これはUbuntuで使用されます)、公式リポジトリではありませんが、彼は完全にランダムではありません!PPA自体はここにあり
ます
PPAをセットアップに追加するには:
sudo add-apt-repository ppa:ondrej/php
次に、この新しいPPAから何が提供されているかについての情報も取得したいので、次を実行します。
sudo apt-get update
新しいPHPバージョンをインストールする
私はすでにいくつかのphp5パッケージをインストールしていましたが、アンインストールはしませんでした。新しいバージョンをインストールするように依頼したときに、aptが何をしたいのかを考えさせました。
sudo apt-get install php5.6 php7.0
これにより、適切な競合や多くの競合から多くの苦情が寄せられました。最初に提案された解決策は、PHP 5.6をインストールできるように、すべての在庫のphp5パッケージを削除することでした。そのため、最初の提案を受け入れました。
私はapacheを使用しているので、このセットアップではphp5.6とphp7.0の両方のモジュールが利用可能で、php5.6モジュールが実際にロードされた状態でapacheを提供しました。
PHPだけでなく、PHPで期待するすべての拡張機能やその他のツールが両方のバージョンのPHPにあるため、必要なモジュールを簡単に追加できます。私はこれがいかにうまく行われているかに非常に感銘を受けました。
バージョンの構成と切り替え
これで、システムに2つの完全に異なるバージョンのPHPがインストールされたので、すべてのピースがどこに行ったのか見てみましょう。
設定ファイルは、すべてである/etc/php/5.6
と/etc/php/7.0
、それぞれ-内部ここであなたは、機能拡張がロードされる設定INI設定を設定し、単独で各バージョンの他のすべてのことができる場所です。
私はApacheユーザーであり、前述のように両方のモジュールが利用可能です。だから、一方から他方に切り替えるには、私がする必要があります:
sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
nginxユーザーの場合、変更はほぼ同じくらい簡単です。DigitalOceanにはこれに関する優れたドキュメントがあり(素晴らしいドキュメントがあります!)、ガイドをチェックしてください:https :
//www.digitalocean.com/community/tutorials/how-to- upgrade-to-php-7-on-ubuntu-14-04
には、nginxを再構成して別のバージョンのPHPを使用するためのセクションが含まれているためです。
コマンドラインから、php5.6とphp7.0の両方をコマンドとして使用できます。私にはまだphpコマンドがあります-/ etc / alternativesを見て、特定のバージョンのPHP cli *にシンボリックリンクされていることを確認してください。また、を実行することで、使用しているものをすばやく確認できphp -v
ます。
*より具体的には、どのphpを実行して、どのバージョンのPHPが使用さ/usr/bin/php
れているかを確認します/etc/alternatives/php
。
拡張機能の使用
このPPAには、PHPの両方のバージョンにpeclコマンドを提供する通常のphp-pearパッケージが付属しているため、PECLを介して利用できる拡張機能は通常の方法でインストールできます。関連するヘッダーも必要になるため、php5.6-devまたはphp7.0-devのいずれかをインストールする必要があります。
peclのインストールが完了すると、*。soファイルをphp.iniに追加するためのメモが表示されます。実際、ここで行うのに最適なのは、何が入って/etc/php/mods-available
いるかを調べることです。ここには既にいくつかのモジュールがあり、それぞれが拡張子にちなんで名付けられ、.iniで終わる独自のファイルにあります。1つをコピーしてテンプレートとして使用するか、独自のテンプレートを作成して、拡張機能に関連するすべての構成をそのテンプレートに配置できます(少なくとも、必要ですextension=[extensionName].so
)。
新しい拡張機能が利用可能なMODになったら、有効にしてから以下を実行して確認します。
sudo phpenmod extension
php -m
これにより、現在のバージョンのPHPがこのモジュールをロードするための適切な場所にシンボリックリンクが作成されますphp -m
。プロのヒント:出力に表示されない場合は、出力の一番上までスクロールして、有用なエラーメッセージがあるかどうかを確認します。