Symfony 链接到错误的 PHP 版本

Symfony is linked to the wrong PHP version

我正在尝试将我的项目移动到使用 Apache 的 linux redhat 服务器,但我面临的问题是该服务器安装了 2 个不同的 PHP 版本。

Symfony (2.5.12) 似乎默认在 /usr/bin/php 寻找 php 可执行文件,但安装了 5.2 版本,其他项目需要它。

/opt/rh/php55/root/usr/bin/php 处安装了 PHP 的 5.5 版本,我想将其用于 symfony。

那么如何配置 Symfony 以使用安装在自定义路径的 php 版本?

如果是您的 Web 应用程序使用了错误版本的 PHP,这是 Apache 配置问题。如果是命令行,这实际上很容易解决,您只需要确保 /opt/rh/php55/root/usr/bin//usr/bin.

之前在您的 $PATH

您可以在 ~/.bashrc~/.bash_profile 中执行此操作:

export PATH=/opt/rh/php55/root/usr/bin:$PATH

把它放在最后,注销并重新登录。您也可以直接在命令行中弹出它,但它只会应用于当前会话,因此 ~/.bashrc~/.bash_profile 选项更好。

我知道这是旧的,但我使用比我安装的更旧的 PHP 版本(在我的情况下是 7.1,OSX Mojave 的默认版本)遇到了相同的 Symfony 问题。我的 $PATH 变量指向较新的 7.2 版本并且 php -v 显示 7.2 而 Symfony 仍然使用 7.1.

当我 运行:

时,这似乎已经解决了
symfony local:php:list

它列出了我系统上的所有 PHP 版本,并将 7.2 标记为默认版本。在 运行 之后并执行 symfony server:start 它是在 7.2.

php:list 命令还提供了有关为项目设置特定 PHP 版本的有用说明:

To control the version used in a directory, create a .php-version file that contains the version number (e.g. 7.2 or 7.2.15). If you're using SymfonyCloud, the version can also be specified in the .symfony.cloud.yaml file.

我在使用 ubuntu 18.04 和 Symfony 5.1 时遇到了同样的问题 我在项目根路径中添加了一个 .php_version 文件,如`控制在 a 中使用的版本目录,创建一个包含版本号(例如 7.2 或 7.2.15)的 .php-version 文件。 我的 .php-version 文件内容:

7.4

我在做 symfony serve 时遇到了同样的问题。

首先我运行symfony local:php:list知道我的项目使用的php哪个版本。

然后我运行echo 7.4.9 > .php-version(7.4.9是我下载的最新php版本)切换我项目的php版本

对我来说效果很好。

安装 PHP 7.4.16 后,尝试启动我的服务器时:

symfony server:start

我收到以下错误:

exec: "/usr/local/bin/php": stat /usr/local/bin/php: no such file or directory

宁运行后

symfony local:php:list

发现:

┌─────────┬────────────┬────────────┬─────────┬─────────┬─────────┬─────────┐
│ Version │ Directory  │  PHP CLI   │ PHP FPM │ PHP CGI │ Server  │ System? │
├─────────┼────────────┼────────────┼─────────┼─────────┼─────────┼─────────┤
│ 7.4.14  │ /usr/local │ bin/php    │         │         │ PHP CLI │ *       │
│ 7.4.16  │ /usr       │ bin/php7.4 │         │         │ PHP CLI │         │
└─────────┴────────────┴────────────┴─────────┴─────────┴─────────┴─────────┘

事实证明,我有一些以前安装 PHP 7.4.14 时留下的文件,而 Symfony 试图继续使用那个已经被删除的版本。 在 /usr/local/bin 删除 php-config, phpize and phpdbg 文件后,我可以 运行 我的服务器没有问题。