1

我已经将我的环境设置如下:带有 PHP7.1.33 版本的 Wamp 3、composer 2 和 Symfony 二进制文件。

但是当我尝试运行时,symfony new my_project_name --version=4.4 --full我得到了这个错误:

在 "./my_project_name" 创建一个 "symfony/website-skeleton" 项目 您的 PHP 版本 5.4.12 受 CVE-2013-6420 影响,无法安全地执行证书验证,我们强烈建议您升级。[InvalidArgumentException] 在可使用 PHP 版本、PHP 扩展和 Composer 版本安装的版本中找不到 symfony/website-skeleton 版本 4.4.*。

正如错误中提到的,使用了 PHP 5.4.12,但是当我运行时,php --version我得到了 7.1.33 版本。

4

1 回答 1

1

我没有使用 WAMP 或 Symfony 二进制文件,但在文档中它说:

如果您的计算机上安装了多个 PHP 版本,您可以告诉 Symfony 使用哪个版本,在项目根目录创建一个名为 .php-version 的文件

symfony local:php:list如果您安装了多个 PHP 版本,显然该工具会在您使用该命令时尝试查找并列出它们。不知道它是如何工作的或它有多可靠,但应该告诉你它是否能够检测到你的 PHP 7 运行时。

更重要的是,尽管 Symfony 部分的建议很糟糕,但您并不真的需要使用symfony二进制文件来创建项目。二进制文件只是简单地调用了composer,那为什么不直接调用composer呢?这样您就可以确定您使用的是您想要和期望的 PHP 和 Composer 版本,而不是依赖中介。

做就是了:

composer create-project symfony/website-skeleton your-project-name ^4.4

(这是通过使用--full标志获得的,如果您不使用它,您只需安装symfony/skeleton,其中包含较少的开箱即用组件)。

顺便说一句,命名二进制文件symfony对 Symfony 来说是一个非常糟糕的选择,因为它几乎不可能搜索与工具相关的问题,而不是与框架相关的问题。或者建议使用二进制而不是直接使用composer,为许多用户添加一层不透明性。

于 2021-05-21T18:24:30.247 回答