【问题标题】:Terminal displays wrong php version (Snow Leopard)终端显示错误的php版本(雪豹)
【发布时间】:2011-04-27 18:14:50
【问题描述】:

需要将php降级到5.2.x,所以我跟着这个教程: http://andreys.info/blog/2010-03-25/compile-php-5-2-on-osx-10-6-snow-leopard#comment-631

我在雪豹 10.6.4 上,安装了 xcode。

于是我编译了php5.2.x,完成了教程。在浏览器中加载的 phpinfo() http://localhost 显示 5.2.x,太棒了!但是,终端命令“php --version”说 5.3.x ??

在编译/安装 php5.2.x 时,新的模块文件在这里替换了 php5.3.x 模块: /usr/libexec/apache2/libphp5.so

  1. 那么终端是从哪里获得 5.3.x 的?
  2. 我是否加载了两个 php 版本?
  3. 我应该关心吗?

【问题讨论】:

  • 我猜你已经安装了这两个版本,并且调用 php 正在运行 5.3.x 的可执行文件。

标签: php macos terminal osx-snow-leopard


【解决方案1】:

要更直接地解决问题:

  1. 重命名旧版本的 PHP

    sudo mv /usr/bin/php /usr/bin/php5424

  2. 为新版本的 php 创建一个符号链接,以便它可以存在于 /usr/bin 中

    sudo ln -s /usr/local/php5/bin/php /usr/bin/php

【讨论】:

  • 为我工作。谢谢。
  • 也为我工作,如果您有不同的文件夹名称而不是 php5,您将遇到此错误:dyld: Library not loaded: /usr/local/php5/lib/libtidy-0.99.0.dylib
【解决方案2】:
  1. 使用which php 进行检查。这应该会告诉您正在使用哪个。
  2. 是的,看起来您在不同的位置安装了两个。
  3. 是的,请注意在哪里使用什么。拥有多个版本是绝对有效的(至少在开发或测试系统上),但您始终应该注意正在使用的版本。

【讨论】:

  • 好的,在终端中运行'which php':/usr/bin/php。我编译的 php 5.2.x 似乎在这里:/usr/local/php5/bin。为什么在浏览器中从本地主机加载 php 使用 5.2.x 但终端 php 命令使用 5.3.x?我只想一次运行一个。怎么办?
  • 浏览器中的版本是绝对独立的。检查您的服务器配置...例如 /etc/apache/httpd.conf 之类的最有可能加载 /usr/local/php5/lib/libphp5.so 之类的。
  • LoadModule php5_module libexec/apache2/libphp5.so。但是,这个文件 libphp5.so 是 5.2.x 的编译文件!它不再是 osx 附带的 5.3.x 版本。那么为什么终端显示 5.3.x 呢?我在这方面花了太多时间,真的不想求助于 MAMP ......谢谢你的帮助顺便说一句
  • 您有一个文件 libexec/apache2/libphp5.so 包含一个版本。您还有 /usr/bin/php,这是一个包含不同版本的不同文件。你有 /usr/local/php5/bin/php 这是另一个文件。这些文件中的每一个都包含完整的 PHP。一次是与 apache 交谈的界面,另一次是与命令行交谈的界面。
  • 这是有道理的。我在终端中执行了此操作: $ /usr/local/php5/bin/php --version ...这显示了正确的 php 安装和版本。
猜你喜欢
  • 1970-01-01
  • 2021-01-07
  • 2010-11-30
  • 1970-01-01
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
  • 1970-01-01
相关资源
最近更新 更多