【问题标题】:Upgraded to 5.4 but "php -v" still returns older version升级到 5.4 但“php -v”仍然返回旧版本
【发布时间】:2012-11-12 22:16:21
【问题描述】:

我使用的是 OSX Lion 10.7.5。正如How do I upgrade PHP in Mac OS X? 所建议的那样,我使用了:

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.4

一切似乎都很顺利,没有错误,我使用的是 64 位系统等,但是当我运行“php -v”时,我仍然看到与之前相同的版本(5.3.15)。在 1-10 的范围内,当通过命令行安装东西时,我可能是 2,所以,请在任何回复中考虑到这一点。

更新:我在运行 curl -s http://php-osx.liip.ch/install.sh | bash -s 5.4 后仔细查看了终端输出,我注意到以下内容:

Installing package tools-memcached into root /
./pkg/pre-install
pkg/pre-install
Skipping existing directory 
Skipping existing directory usr/
Skipping existing directory usr/local/

...然后在安装结束时:

Create symlink /usr/local/php5/entropy-php.conf /etc/apache2/other/+php-osx.conf
Removed /usr/lib from DYLD_LIBRARY_PATH in /usr/sbin/envvars
Restarting Apache
httpd: Could not reliably determine the server's fully qualified domain name

谁能详细说明这意味着什么?正如 cmets 中所解释的,我似乎已经安装了文件,但是,我无法解决似乎是 $PATH 的问题。

【问题讨论】:

  • 在您的$PATH 中首先找到旧版本的 PHP。要查看您从 CLI 调用的是哪一个,请执行 which php。这可能会返回一些 PHP 5.3 版本。
  • @soulseekah:重启没有帮助,但谢谢!
  • 那么您的旧 php (which php) 路径与此 install.sh 脚本的安装路径不同,即 /usr/local/,您必须 ln -s 或将旧二进制文件复制到您的which php 路径。
  • @MichaelBerkowski:当我运行“which php”时,我得到“/usr/bin/php”,当我运行“/usr/bin/php -v”时,你是对的,它返回旧的版本。 php-osx.liip.ch 页面显示“php.ini 位于 /usr/local/php5/lib/php.ini”,这是否意味着我必须添加“/usr/local/php5/lib/”到 $PATH 变量?
  • @CL75 新的可执行路径大概是/usr/loca/bin/php。找到可执行文件的位置,然后将其添加到您的$PATH。然而,这并不意味着 Apache 也能找到合适的。我不一定能帮上忙,因为我手边没有 Mac。

标签: php macos


【解决方案1】:

如果你使用 Apache 首先禁用当前的 php 模块

sudo a2dismod php5
须藤a2dismod php5.6

然后启用

sudo a2enmod php7.0

然后重启apache

sudo service apache2 重启

【讨论】:

    【解决方案2】:

    创建一个指向新 php 安装路径的符号链接,如下所示:

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

    【讨论】:

    • 如果返回ln: php: File exists怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    相关资源
    最近更新 更多