我想在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中的加速器。
是否有人知道"加速器"参数需要设置为" true"在PHP7中,还是默认运行(并且应该忽略Symfony错误消息),或者应该安装新的扩展名(different from the deprecated APC as the wiki page explains)?
更新 收到关于这个问题的评论后,我加入了我的" 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所需信息的更新 我做了一个CLI"作曲家更新"在我的Symfony项目的文件夹中。
然后,当我执行CLI时:" php bin / symfony_requirements",我得到:
PHP注意:遇到一个非常好的数值 d:\应用\ Apache24 \ htdocs中\ symf \ my_symf_project \ VAR \ SymfonyRequirements.php 在第759行
注意:遇到的格式不正确的数值 d:\应用\ Apache24 \ htdocs中\ symf \ my_symf_project \ VAR \ SymfonyRequirements.php 在第759行
Symfony2要求检查器~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PHP正在使用以下php.ini文件:D:\ Application \ php7 \ php.ini
检查Symfony要求:................ W ............... W .......
[确定]您的系统已准备好运行Symfony2项目
改善设置的可选建议 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
要求文件应该是最新的
您的需求文件已过时。运行composer install和 重新检查您的配置。
应安装PHP加速器
安装和/或启用PHP加速器(强烈推荐)。
注意命令控制台可以使用不同的php.ini文件~~~~ 而不是您的Web服务器使用的那个。要上 安全方面,请检查您的网络要求 服务器使用web / config.php脚本。
关于环境设置(在Windows10上):
PHP 7.1.1(cli)(内置:2017年1月18日18:38:49)(ZTS MSVC14(Visual C ++) 2015)x64)版权所有(c)1997-2017 PHP Group Zend Engine v3.1.0, 版权所有(c)1998-2017 Zend Technologies
symfony项目中的composer文件如下所示:
"require": {
"php": ">=5.5.9",
...}
如果我尝试将值更改为" php":"> = 7.1.0"并推出"作曲家更新"它给出了:
使用包信息加载作曲家存储库更新 依赖项(包括require-dev)您的要求不可能 解决了一组可安装的软件包。
问题1 - 此软件包需要php> = 7.1.0,但您的PHP版本(5.5.9)不满足该要求。
因此,我的环境变量与Symfony有问题。
如果我phpinfo()
,而不是在Symfony中,而是使用常规的PHP服务器页面,那么它最重要的是: PHP Version 7.1.1
答案 0 :(得分:3)
这是解决方案,我需要做的两件事:
第一:确实需要 opcache 。
在 php.ini 中,而不是symfony documentation和php manual中指示的设置。我忘了在 php.ini :
中添加要使用的扩展名zend_extension =" [你的php7之路] \ php7 \ ext \ php_opcache.dll"
(好吧,它在php manual documentation here)
第二:在symfony方面,我必须更新[project path] \ composer.json中的以下设置,以确保Symfony使用PHP7:
{
"require": {
"php": ">=7.1.1",
....
},
....
"config": {
"platform": {
"php": "7.1.1"
}
},
}