Symfony 3.0迁移PHP 5.5到PHP 7.1:是否需要安装PHP加速器?建议安装和/或启用PHP加速器。

9

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

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

最后一个问题没有解决: 在PHP5.5下,我使用扩展加速器php_apcu.dll。这在PHP7中不再维护。

我正在寻找替代方案,我在这里读到了加速器在PHP7中不再需要,因为已经内置在其中。

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

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

据我所知,我不需要添加新的扩展,但我可以在PHP7中启用加速器。

是否有人知道在PHP7中是否需要设置“accelerator”参数为“true”,或者它是否默认运行(Symfony错误消息应被忽略),或者是否需要安装新的扩展(与维基页面所述的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”时,我仍然收到以下信息:

应安装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项目

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

  • 要求文件应该是最新的

    您的要求文件已过时。运行composer install并重新检查您的配置。

  • 应安装PHP加速器

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

注意:命令控制台可能使用不同的php.ini文件~~~ 您的Web服务器所使用的。为了保险起见,请使用web / config.php脚本从您的Web服务器 检查要求。

关于环境设置(在Windows10上):
  1. 首先,我更改了我的“路径”环境变量,设为“[php7的文件夹位置]\php7\”,当我运行“php -v”时,我得到:

PHP 7.1.1(cli)(构建于:Jan 18 2017 18:38:49)(ZTS MSVC14(Visual C++ 2015)x64)版权所有(c)1997-2017 PHP组Zend Engine v3.1.0, 版权所有(c)1998-2017 Zend Technologies

Symfony项目中的composer文件如下:
    "require": {
        "php": ">=5.5.9",
...}

当我将值更改为“php”:“>=7.1.0”并启动“composer update”时,会提示以下错误信息:

“Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - This package requires php >=7.1.0 but your PHP version (5.5.9) does not satisfy that requirement.”

因此,我的Symfony环境变量存在问题。

如果我在普通的PHP服务器页面上执行phpinfo(),而不是在Symfony中,它会在顶部显示PHP版本7.1.1

2
那个有关加速器的警告通常适用于缓存引擎。您可以忽略它或安装类似APC的东西。 - pogeybait
你确定在你的php.ini文件中启用了opcache吗? - LBA
我阅读了@Veve的链接,并尝试通过php.net/manual弄清楚如何在php.ini中启用opcache,如果您有关于此的建议(可以让我省去一些阅读并直接找到我需要的内容),我会很感激。 - nyluje
2
你确定你更新了正确的php.ini文件(而不是用于PHP cli的那个)吗? - LBA
你确定你已经正确升级到了 PHP 7,并且 Apache 正在使用正确的 PHP 模块吗? - LBA
显示剩余8条评论
1个回答

10

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

第一件事:确实需要使用opcache

php.ini 中,除了按照Symfony文档PHP手册中指示的设置之外。我忘记在php.ini中添加要使用的扩展名:

zend_extension="[your path to php7]\php7\ext\php_opcache.dll"

(可以在PHP手册文档中找到)

第二件事:在Symfony方面,我需要更新[project path]\composer.json中的以下设置,以确保Symfony使用PHP7:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接