我想在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作为Wiki页面不同)解释)应该安装?
更新: 收到关于问题的评论后,我在"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注意:第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 install并重新检查您的配置.
应该安装PHP加速器
安装和/或启用PHP加速器(强烈推荐).
注意命令控制台可以使用与您的Web服务器一起使用的不同的php.ini文件~~~~.为了安全起见,请使用web/config.php脚本检查Web服务器的要求.
关于环境设置(在Windows10上):
以前的任何事情,我用"[php7的文件夹位置]\php7 \"改变了我的"路径"环境变量,当我启动"php -v"时,我得到:
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"并启动"composer update",它会给出:
使用包信息加载composer存储库更新依赖项(包括require-dev)无法将您的需求解析为可安装的软件包集.
问题1 - 此软件包需要php> = 7.1.0,但您的PHP版本(5.5.9)不满足该要求.
所以我的环境变量与Symfony有问题.
如果我这样做phpinfo()
,不是在Symfony中,而是在常规的PHP服务器页面上,它在顶部说明:PHP Version 7.1.1
这是解决方案,我需要做两件事:
第一:确实需要opcache。
此外,在php.ini中,比symfony文档和php手册中指示的设置要多。我忘了添加要在php.ini中使用的扩展名:
zend_extension =“ [您的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" } }, }