Symfony“未检测到 PHP 二进制文件”

Kai*_*n13 6 php frameworks symfony

我刚刚开始学习 Symfony PHP 框架,并且在配置方面遇到了一些问题。

尝试使用命令行创建新项目时,如下所示:

symfony new --full my_project
Run Code Online (Sandbox Code Playgroud)

我不断收到一条简单的错误消息:

未检测到 PHP 二进制文件

并且当前文件夹中没有创建文件。我在网上搜索,发现 Symfony 显然无法找到我的php.exe的位置,尽管它已经被设置在我的系统变量中。并且没有关于如何在 Symfony 中正确配置它的信息。

我该如何解决这个错误?

Kai*_*n13 18

事实证明,Symfony 已经包含从系统变量中自动检测已安装 PHP 版本的函数。修复 Symfony 配置的命令是这样的:

symfony local:php:refresh
Run Code Online (Sandbox Code Playgroud)

在那之后,我下一次尝试创建一个新项目工作正常。另外,我怀疑这个错误是我安装 Symfony安装PHP 文件的结果。

  • 额外说明:此解决方案是通过在命令行中键入“symfony --help”找到的。似乎有时这仍然是一个有效的选择。:) (2认同)

小智 6

symfony local:php:refresh
Run Code Online (Sandbox Code Playgroud)

并不总是有效。如果你的 php 不在[/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /usr/games /usr/local/games /snap/bin]以及其他一些位置(检查symfony local:php:list -vvv),那么 symfony 将找不到它。

我从源代码编译了自己的 PHP,并在 /home/username/php/7.4 和 /home/username/php/8.0 中安装了版本 7.4.20 和 8.0.7。如果我想使用 PHP 8.0.7,那么我必须创建一个符号链接,因为更新 $PATH 没有帮助。

sudo ln -s /home/username/php/8.0/bin/php /usr/local/bin/php
Run Code Online (Sandbox Code Playgroud)

这有效并且 symfony 找到了它。