无法在Symfony 4.12中更改PHP默认版本

我想创建一个Symfony项目。我和许多人一样有关于php版本的问题:Symfony使用了错误的版本。

λ php -version
PHP 7.4.1 (cli) (built: Dec 17 2019 19:24:02) ( ZTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0,Copyright (c) Zend Technologies

λ symfony -V
Symfony CLI version v4.12.4 (Tue Jan 14 13:09:08 UTC 2020)

λ symfony check:requirements

Symfony Requirements Checker
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

> PHP is using the following php.ini file:
C:\xampp\php\php.ini

> Checking Symfony requirements:

..............WWW......W..


 [OK]
 Your system is ready to run Symfony projects

我已经安装了Xampp,但是我在Windows 10上将Laragon与7.4.1一起使用,并且希望使用该版本,但是Symfony告诉我了这一点:

λ symfony local:php:list
┌─────────┬─────────────────────────────────────────────┬─────────┬─────────┬─────────────┬─────────┬─────────┐
│ Version │                  Directory                  │ PHP CLI │ PHP FPM │   PHP CGI   │ Server  │ System? │
├─────────┼─────────────────────────────────────────────┼─────────┼─────────┼─────────────┼─────────┼─────────┤
│ 7.3.10  │ C:\xampp\php                                │ php.exe │         │ php-cgi.exe │ PHP CGI │ *       │
│ 7.4.1   │ C:\laragon\bin\php\php-7.4.1-Win32-vc15-x64 │ php.exe │         │ php-cgi.exe │ PHP CGI │         │
└─────────┴─────────────────────────────────────────────┴─────────┴─────────┴─────────────┴─────────┴─────────┘

The current PHP version is selected from default version in $PATH

即使我的$ PATH中没有Xampp或php 7.3.1的痕迹。

λ echo %path:;=&echo.%
C:\Program Files\cmder_mini\bin
C:\Program Files\cmder_mini\vendor\bin
C:\Program Files\cmder_mini\vendor\conemu-maximus5\ConEmu\Scripts
C:\Program Files\cmder_mini\vendor\conemu-maximus5
C:\Program Files\cmder_mini\vendor\conemu-maximus5\ConEmu
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Windows\System32\OpenSSH\
C:\Program Files\nodejs\
C:\Program Files\Git\cmd
C:\programdata\ComposerSetup\bin
C:\laragon\bin\php\php-7.4.1-Win32-vc15-x64\php.exe
C:\Program Files\Symfony
C:\laragon\bin
C:\laragon\bin\apache\httpd-2.4.35-win64-VC15\bin
C:\laragon\bin\composer
C:\laragon\bin\laragon\utils
C:\laragon\bin\mysql\mysql-5.7.24-winx64\bin
C:\laragon\bin\nginx\nginx-1.16.0
C:\laragon\bin\ngrok
C:\laragon\bin\notepad++
C:\laragon\bin\php\php-7.4.1-Win32-vc15-x64
C:\laragon\bin\putty
C:\laragon\bin\redis\redis-x64-3.2.100
C:\laragon\bin\telnet
C:\laragon\usr\bin
C:\Program Files\Sublime Text 3\
C:\Users\User\AppData\Local\Yarn\config\global\node_modules\.bin
C:\Users\User\AppData\Roaming\Composer\vendor\bin
C:\Users\User\AppData\Roaming\npm
C:\Ruby26-x64\bin
C:\Users\User\AppData\Local\microsoft\WindowsApps
C:\Program Files\JetBrains\PhpStorm 2019.2.3\bin
C:\Program Files\JetBrains\DataGrip 2019.2.5\bin
C:\Program Files\Git\cmd
C:\Program Files\Git\mingw64\bin
C:\Program Files\Git\usr\bin
C:\Program Files\cmder_mini

(我检查了用户和系统$ PATH)

我试图通过在项目目录中运行来强制Symfony使用7.4.1:

λ echo "7.4.1" > .phpversion

我跑步时

λ symfony local:php:refresh

λ symfony local:php:list

我得到:

λ WARNING the current dir requires PHP "7.4.1" (.php-version from current dir: C:\laragon\www\CMS_test\.php-version),but this version is not available

我还尝试了重命名Xampp目录名称,实际上,该名称“有效”。

C:\
λ symfony check:requirements
php does not seem to be available under C:\xampp\php


C:\
λ symfony local:php:list
┌─────────┬─────────────────────────────────────────────┬─────────┬─────────┬─────────────┬─────────┬─────────┐
│ Version │                  Directory                  │ PHP CLI │ PHP FPM │   PHP CGI   │ Server  │ System? │
├─────────┼─────────────────────────────────────────────┼─────────┼─────────┼─────────────┼─────────┼─────────┤
│ 7.4.1   │ C:\laragon\bin\php\php-7.4.1-Win32-vc15-x64 │ php.exe │         │ php-cgi.exe │ PHP CGI │ *       │
└─────────┴─────────────────────────────────────────────┴─────────┴─────────┴─────────────┴─────────┴─────────┘

The current PHP version is selected from default version in $PATH

但是这种解决方案对我来说并不令人满意。

我已经搜索了StackOverflow几个小时,试图重新安装Symfony,重新启动计算机,询问朋友等,似乎没有其他解决方案。

那么,为什么Symfony为什么在Xampp目录中搜索php?是否可以选择另一个默认值,例如Laragon's?有什么主意吗?

jinkaixin1980 回答:无法在Symfony 4.12中更改PHP默认版本

我在Windows环境中遇到了这个问题。由于某些原因,当我使用echo "7.2" > .php-version创建它时,symfony无法正确读取.php版本。

一旦我从IDE中删除并创建了一个新的文本文件,问题就消失了。可能也可以使用vscode code .php-version或使用文件资源管理器来创建它(我还没有尝试过)。

编辑:我刚刚尝试使用VS Code和记事本创建文件-都可以。但是我仍然不知道为什么在使用echo ...

创建时为什么不起作用

Edit2:我想我明白了。看起来PowerShell的echo "" > file将使用UTF-16编码创建文件。将文件转换为UTF-8后,可以按预期工作。

,

只需删除您的.php版本文件并从您的ide中手动创建!使用from编码(使用终端的回显)时,错误消息为

the current dir requires PHP ��7.4.10

通过问号可以看到编码错误。 从ide创建文件解决了我的问题!

本文链接:https://www.f2er.com/2721911.html

大家都在问