web-dev-qa-db-ja.com

PHP 5.3.10からPHP 5.6.0に移行できますか?

私は基本的にPHP開発者です。現在、ローカルマシンでbuntu Linux 12.04 LTSを使用しています。

PHPプロジェクトの開発に次のPHPバージョンを使用しています。

php -v //command run at terminal to know the `PHP` version installed

PHP 5.3.10-1ubuntu3.13 with Suhosin-Patch (cli) (built: Jul  7 2014 18:54:55) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

数日後、PHP開発チームによってPHPバージョン(PHP 5.6.0)の新しい最新の安定版リリースがリリースされました。

私の質問は、ローカルマシンで古すぎるPHPバージョンを使用していることと、5.4より前のすべてのPHPバージョンが正式にサポートされていないか、発表されていることです。人生、PHP 5.6.0に行くべきですか?

答えが「はい」の場合、その方法を教えてください。この移行後、プロジェクトで記述したコードは正しく機能しますか?どのような変更を行う必要がありますか?

答えが「いいえ」の場合、その理由を詳しく説明してください。

この質問をする前に、GoogleおよびPHPのドキュメントを確認しました。次のバージョンの移行に関する移行のメモが見つかりました。

   **5.3.x->5.4.x
   5.4.x->5.5.x
   5.5.x->5.6.x**

PHP 5.3.10からPHP 5.6.0への移行方法がわかりませんでした。

だから誰かがこの点で私を助けてくれますか?

私の問題に関する詳細情報が必要な場合は、お知らせください。

12
PHPFan

TL; DR PHP= 5.3.xは、Ubuntuによるセキュリティアップグレードを引き続き取得しますが、新しいバージョンでは14.04.1にアップグレードします

PHP 5.6のソースをWebサイトからダウンロードしてビルド/インストールすることはできますが、システム上の他のパッケージがインストールされないため、システムの安定性が失われるリスクがあるため、ダウンロードしないでくださいこのバージョン用に設計されており、新しいバージョンがリリースされるたびに手動でアップグレードする必要があります。パッケージマネージャーを使用する場合のように迅速にアップグレードされないため、これらのアップグレードがセキュリティ関連である場合は安定性のリスクがあります。

代わりに、ディストリビューションをUbuntu 14.04.1にアップグレードすることをお勧めします。これには、PHP 5.5.9; 5.3.10よりかなり新しいバージョンが含まれています。もちろん、5.3.xは、 Ubuntu 12.04はEOLに到達しましたが、最新の機能が必要な場合は、dist-upgradeする必要があります。これは、Ubuntuソフトウェアアップデーターでグラフィカルに行うか、TTYでapt-get dist-upgradeをrootとして(たとえば、Sudoを使用して)実行できます。サーバーバージョンを使用しています更新:代わりにSudo do-release-upgradeを使用してください。

編集:明確にするために、apt-getはパッケージマネージャーです。通常、グラフィカルツールを使用してパッケージ(ubuntuソフトウェアセンター、シナプスなど)をインストールおよび更新する場合、いくつかの簡単なコマンドを次に示します。 #は、ルートとして実行する必要があることを示します(Sudo apt-get install <package>など)。$は、Sudoが不要であることを示します。使用したいものに置き換えてください(例:apt-get install chromium-browser

#apt-get updateはリポジトリを更新します
#apt-get upgradeはを新しいパッケージにアップグレードします(最初に上記を実行してください!)
#apt-get upgrade <package>は上記と同様ですが、単一のパッケージのみをアップグレードします(特別な理由がない限り、それほど役に立ちません)。
#apt-get install <package>はパッケージをインストールします
#apt-get remove <package>はパッケージを削除します
#apt-get autoremoveは、依存関係によってインストールされ、不要になったパッケージを自動的に削除します
$apt-cache search <query>は、指定したクエリを検索します
$apt-cache show <package>はパッケージの情報を表示します
#yes "" | apt-get install <package>は、すべてに対するデフォルトの回答に答えるパッケージをインストールします(多くのコマンドでyesを使用できます)
#apt-get dist-upgradeは、通常は抑制されている場合、すべてをアップグレードします(一部のパッケージを削除します)。

8
DevilishDB

PHP 5.5.9をパッケージとして取得し、Ubuntuのアップグレードを利用するには、Ubuntu 14.04.1にアップグレードします。本番環境では5.6.0を使用しません。

this PHP page から、5.3から5.4および5.4から5.5への移行に関する情報を取得します。

上記の変更と新機能に加えて、PHPチームは5.3と5.5.9の間のメモリ管理と最適化に取り組んできました。これらの改善だけで移行の動機が生まれました。

移行のためのアドバイス

  • APC:PHPはAPCの代わりとしてOPCacheを埋め込みます。APC変数を使用した場合、 OPCache に関するいくつかの情報が利用可能です-私の場合、古いAPCを使用して新しいモジュール(名前の変更)、php5-apcu( 'u'に注意)は、最良の代替手段でした。

  • モジュールは別のディレクトリにインストールされました。 php.iniextension_dir調整が必要な場合があります

  • 加えて /etc/php5 dirは、構造の点でより厳しいです:その下ではdirはmods-available(àlanginx)これには、iniファイルのモジュールのリストが含まれています。次に、clifpmApache2... dirsはconf.dそのメインへのシンボリックリンクを持つdir mods-availableモジュールiniファイル;そのモジュールをそのPHP構成に使用するつもりである場合にのみリンクを追加します(たとえば、mysqlicliには必要ない場合があります)。

  • JSON:モジュールphp5-jsonをインストールする必要があります(apt-get install php5-json)PHP JSON関数(json_encodedecode...)

  • リンクに問題があるようです/etc/php5/MODE/php.ini(MODEはcli、...)をmainphp.iniのどこかに(例えばfpmに) )-Ubuntuの更新中にエラーが発生してインストールができません-私の場合、すべてのモードで同じであるため、php.iniをコピーしただけです。

その上、移行はスムーズに進みました。

5
Ring Ø