web-dev-qa-db-ja.com

Symfony3.0の移行PHP 5.5からPHP 7.1: "A PHPアクセラレータをインストールする必要があります>インストールおよび/または有効にするPHPアクセラレータ(強くお勧めします) "?

SYMFONY3.0プロジェクトでPHP5.5を7.1にアップグレードしたい。

正しい結果を得るために「php.ini」ファイルをチェックしています。

最後にもう1つ未解決です。PHP5.5では、拡張アクセラレータphp_apcu.dllを使用しました。これはPHP7では維持されません。

私は代替手段を探していて、 ここ を読んだところ、PHP7には既に埋め込まれているため、アクセラレータは不要になりました。

CLIを実行すると:「phpbin/symfony_requirements」、次のメッセージが表示されます。

A PHPアクセラレータをインストールする必要があります> PHP>アクセラレータをインストールおよび/または有効にする(強くお勧めします)

私が理解しているように、新しい拡張機能を追加する必要はありませんが、PHP7のアクセラレータをenableすることができます。

PHP7で「アクセラレータ」パラメータを「true」に設定する必要があるかどうか、またはデフォルトで実行されるか(Symfonyエラーメッセージは無視する必要があります)、または新しい拡張機能( wikiページで説明されている非推奨のAPCとは異なります )インストールする必要がありますか?

更新:「php.ini」に追加した質問に対して受け取ったコメントに続いて、次の設定を行います。

_opcache.enable=1 
opcache.enable_cli=1 
opcache.memory_consumption=128 
opcache.interned_strings_buffer=8 
opcache.max_accelerated_files=2000 
opcache.revalidate_freq=60 
opcache.fast_shutdown=1 
_

Apacheサービスを再起動しましたそしてCLIを実行すると: "php bin/symfony_requirements"、それでも次のメッセージが表示されます:

A PHPアクセラレータをインストールする必要があります> PHP>アクセラレータをインストールおよび/または有効にする(強くお勧めします)

@ LBAに必要な情報に関する更新:SymfonyプロジェクトのフォルダーでCLIの「composerupdate」を実行しました。

次に、CLIを実行すると: "php bin/symfony_requirements"、次のようになります。

PHPの注意:759行目のD:\ Application\Apache24\htdocs\symf\my_symf_project\var\SymfonyRequirements.phpで検出された整形式でない数値

注意:759行目のD:\ Application\Apache24\htdocs\symf\my_symf_project\var\SymfonyRequirements.phpで検出された整形式でない数値

Symfony2要件チェッカー~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

PHPは次のphp.iniファイルを使用しています:D:\ Application\php7\php.ini

Symfonyの要件の確認:................ W ............... W.....。

[OK]システムでSymfony2プロジェクトを実行する準備ができました

セットアップを改善するためのオプションの推奨事項~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~

  • 要件ファイルは最新である必要があります

    要件ファイルが古くなっています。 composerインストールを実行し、構成を再確認します。

  • a PHPアクセラレータをインストールする必要があります

    PHPアクセラレータ(強く推奨))をインストールおよび/または有効にします。

注コマンドコンソールは、Webサーバーで使用されているものとは異なるphp.iniファイル~~~~を使用する可能性があります。安全のために、web /config.phpスクリプトを使用してWebサーバーから要件を確認してください。

環境の設定について(Windows10の場合):

  1. 以前は、「path」環境変数を「[php7のフォルダーの場所]\php7 \」に変更していましたが、「php-v」を起動すると次のようになります。

PHP 7.1.1(cli)(ビルド:2017年1月18日18:38:49)(ZTS MSVC14(Visual C++ 2015)x64)Copyright(c)1997-2017 PHP Group Zend Engine v3.1.0、Copyright(c)1998-2017 Zend Technologies

Symfonyプロジェクトのcomposerファイルは次のようになります:

_    "require": {
        "php": ">=5.5.9",
...}
_

そして、値を「php」: "> = 7.1.0に変更して、「composer update」を起動しようとすると、次のようになります。

読み込みcomposerパッケージ情報を含むリポジトリ)依存関係の更新(require-devを含む)要件をインストール可能なパッケージのセットに解決できませんでした。

問題1-このパッケージにはphp> = 7.1.0が必要ですが、PHPバージョン(5.5.9)はその要件を満たしていません。

ですから、Symfonyの環境変数に何か問題があります。

Symfonyではなく通常のPHPサーバーページ)でphpinfo()を実行すると、一番上に次のように表示されます:PHPバージョン7.1.1

6
nyluje

これが解決策です。私がしなければならなかった2つのことです。

1st:確かにopcacheが必要です。

php.iniでは、 symfonyドキュメント および phpマニュアル)で行うように指示されている設定よりもphp.iniで使用する拡張子を追加するのを忘れていました:

zend_extension = "[php7へのパス]\php7\ext\php_opcache.dll"

(まあそれは ここにphpマニュアルドキュメント にあります)

2nd:symfony側では、SymfonyがPHP7を使用するように、[プロジェクトパス]\composer.jsonで次の設定を更新する必要がありました。

{
    "require": {
        "php": ">=7.1.1",
         ....
    },
    ....
    "config": {
        "platform": {
            "php": "7.1.1"
        }
    },
}
5
nyluje