Skip to content

php 环境变量问题 #549

@TonyHexin

Description

@TonyHexin

问题描述

在 macOS 系统下,我仅通过 Homebrew 安装了一个 PHP 版本,并尝试在 flyenv 中仅配置该 Homebrew 安装的 PHP 为环境变量,但 flyenv 会自动将以下两个路径添加到环境变量中,且这两个路径的优先级高于 Homebrew PHP 的路径:

  • /Users/tony/Library/PhpWebStudy/env/php
  • /Users/tony/Library/PhpWebStudy/env/php/bin

核心矛盾:执行 php -v 显示的是 Homebrew 安装的 PHP 版本(符合预期),但执行 which php 输出的却是上述 PhpWebStudy 路径下的 php 可执行文件(不符合预期),且我并未主动配置过这两个 PhpWebStudy 相关路径。

环境信息

  • 操作系统:macOS 15.7 (aarch64)
  • PHP 安装方式:Homebrew(仅这一个 PHP 版本)
  • 环境变量查看方式:echo $PATH

复现步骤

  1. 确认本地仅存在 Homebrew 安装的 PHP,无其他 PHP 版本;
  2. 通过 flyenv 配置环境变量;
  3. 执行 echo $PATH 查看环境变量,发现 /Users/tony/Library/PhpWebStudy/env/php/Users/tony/Library/PhpWebStudy/env/php/bin 被自动添加,且排在 Homebrew PHP 路径之前;
  4. 执行 which php,输出为 /Users/tony/Library/PhpWebStudy/env/php/bin/php(非 Homebrew 路径);
  5. 执行 php -v,输出为 Homebrew 安装的 PHP 版本。

预期行为

  1. flyenv 仅添加我主动配置的 Homebrew PHP 路径到环境变量,不自动添加未配置的 /Users/tony/Library/PhpWebStudy/env/php 相关路径;
  2. 若必须添加,which php 应输出手动配置的 Homebrew PHP 路径,且路径优先级符合配置逻辑。

实际行为

  1. 未配置的 /Users/tony/Library/PhpWebStudy/env/php/Users/tony/Library/PhpWebStudy/env/php/bin 被自动添加到 $PATH,且优先级高于手动配置的 Homebrew PHP 路径;
  2. which php 输出 PhpWebStudy 路径,但 php -v 却显示 Homebrew PHP 版本,出现路径与版本不匹配的矛盾。
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions