【问题标题】:Symfony 3.0 migration PHP 5.5 to PHP 7.1 : "A PHP accelerator should be installed > Install and/or enable a PHP accelerator (highly recommended)"?Symfony 3.0 迁移 PHP 5.5 到 PHP 7.1:“应该安装 PHP 加速器 > 安装和/或启用 PHP 加速器(强烈推荐)”?
【发布时间】:2017-06-09 01:26:16
【问题描述】:

我想在一个 SYMFONY 3.0 项目中将 PHP5.5 升级到 7.1。

我一直在检查“php.ini”文件以获得正确的结果。

最后一件事没有解决: 在PHP5.5下,我使用了扩展加速器php_apcu.dll。这在 PHP7 中没有维护。

我正在寻找替代方案,我读到 here 说 PHP7 中不再需要加速器,因为它已经嵌入其中。

当我执行 CLI:“php bin/symfony_requirements”时,会出现以下消息:

应安装 PHP 加速器 > 安装和/或启用 PHP > 加速器(强烈推荐)

据我了解,我不需要添加新的扩展,但我可以在 PHP7 中以某种方式启用加速器。

有人知道 PHP7 中是否需要将“加速器”参数设置为“true”,还是默认运行(Symfony 错误消息应该被忽略),或者新的扩展(different from the deprecated APC as the wiki page explains ) 应该安装吗?

更新: 在收到关于我在“php.ini”中添加以下设置的问题的 cmets 之后:

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”时,我仍然收到以下消息:

应安装 PHP 加速器 > 安装和/或启用 PHP > 加速器(强烈推荐)

关于@LBA 所需信息的更新: 我在 Symfony 项目的文件夹中做了一个 CLI “composer update”。

然后当我执行 CLI:“php bin/symfony_requirements”时,我得到:

PHP 注意:在 D:\Application\Apache24\htdocs\symf\my_symf_project\var\SymfonyRequirements.php 在第 759 行

注意:在 D:\Application\Apache24\htdocs\symf\my_symf_project\var\SymfonyRequirements.php 在第 759 行

Symfony2 需求检查器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

PHP 正在使用以下 php.ini 文件:D:\Application\php7\php.ini

检查 Symfony 要求:................W................W.......

[OK] 您的系统已准备好运行 Symfony2 项目

改进设置的可选建议 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • 需求文件应该是最新的

    您的需求文件已过时。运行作曲家安装和 重新检查您的配置。

  • 应该安装 PHP 加速器

    安装和/或启用 PHP 加速器(强烈推荐)。

注意命令控制台可以使用不同的php.ini文件~~~~ 比与您的网络服务器一起使用的那个。要上 安全方面,请从您的网站检查要求 服务器使用 web/config.php 脚本。

关于环境的设置(Windows10):

  1. 之前,我已经将“路径”环境变量更改为“[文件夹位置 php7]\php7\",当我启动“php -v”时,我得到:

PHP 7.1.1 (cli)(构建时间:2017 年 1 月 18 日 18:38:49)(ZTS MSVC14(Visual C++ 2015) x64 ) 版权所有 (c) 1997-2017 The PHP Group Zend Engine v3.1.0, 版权所有 (c) 1998-2017 Zend Technologies

symfony 项目中的 composer 文件长这样:

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

如果我尝试将值更改为 "php":">=7.1.0" 并启动 "composer update" 它会给出:

使用包信息加载作曲家存储库更新 依赖项(包括 require-dev) 您的要求不能 解析为一组可安装的软件包。

问题 1 - 这个包需要 php >=7.1.0 但你的 PHP 版本 (5.5.9) 不满足这个要求。

所以我的 Symfony 环境变量有问题。

如果我使用phpinfo(),而不是在 Symfony 中,而是使用常规 PHP 服务器页面,它会在顶部显示:PHP 版本 7.1.1

【问题讨论】:

  • 关于加速器的警告通常应用于缓存引擎。您可以忽略它或安装 APC 之类的东西。
  • 您确定在您的 php.ini 中启用了 opcache 吗?
  • 我阅读了@Veve 链接,并尝试弄清楚应该如何在 php.ini 中使用 php.net/manual 启用 opcache,如果您有关于它的建议(这样可以节省我一些阅读时间并继续直接到我需要的地方)我会接受的。
  • 您确定您更新了正确的 php.ini(而不是用于 PHP cli 的那个)?

标签: php symfony php-7 php-5.5 php-7.1


【解决方案1】:

这是解决方案,我需要做两件事:

1st:确实需要opcache

php.ini中,除了symfony documentationphp manual中指示要做的设置。我忘记添加要在 php.ini 中使用的扩展:

zend_extension="[你的 php7 路径]\php7\ext\php_opcache.dll"

(嗯,它在php manual documentation here

第二次:在 symfony 方面,我必须更新 [项目路径]\composer.json 中的以下设置以确保 Symfony 使用 PHP7:

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

【讨论】:

  • 经过数小时的试验后成功
猜你喜欢
  • 1970-01-01
  • 2016-11-16
  • 2017-07-06
  • 1970-01-01
  • 1970-01-01
  • 2013-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多