微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Macports切换PHP CLI版本

我正在尝试将我的终端PHP版本切换到5.4,因为我在更新Drupal核心时遇到了Drush的一些问题. https://drupal.stackexchange.com/questions/112090/drush-command-errors

这些问题的原因是我的终端PHP版本与我的localhost不同.
终端中的PHP -v返回PHP 5.5.13(cli)但我的localhost运行PHP版本5.4.29.

我开始搜索如何将CLI版本切换到5.4并找到:

sudo rm /usr/bin/PHP // remove /usr/bin/PHP first
sudo ln -s /opt/local/bin/PHP54 /usr/bin/PHP // pointing to PHP54
PHP -v // get version
PHP 5.4.9 (cli) (built: Nov 26 2012 12:40:37) 
copyright (c) 1997-2012 The PHP Group

Source

但是,在执行此操作并重新启动Apache和终端之后,我仍然会这样做
PHP-5.5之后的PHP 5.5.13(cli).

为了确保我在正确的文件夹中工作,我检查了运行sudo rm /usr/bin/PHP后是否删除PHP文件.

所以作为测试我做了这个:/ opt / local / bin / PHP54 -v并得到了PHP 5.4.29(cli).这让我觉得我的符号链接不起作用,或者我做错了什么.

附注:

运行sudo rm /usr/bin/PHP之后我预计PHP -v会在终端中出错,但是它仍然给我PHP 5.5.13(cli).

当运行whereis PHPPHP时,我也总是得到相同的结果,即使在符号链接之后.

PHP返回/usr/bin/PHP以及PHP返回/ opt / local / bin / PHP

本地主机:

#LoadModule PHP5_module        modules/mod_PHP55.so
LoadModule PHP5_module        modules/mod_PHP54.so
#LoadModule PHP5_module        modules/mod_PHP53.so
#LoadModule PHP5_module        modules/libPHP5.so

#Include conf/extra/mod_PHP55.conf
Include conf/extra/mod_PHP54.conf
#Include conf/extra/mod_PHP53.conf
#Include conf/extra/mod_PHP.conf

Bash简介:

# MacPorts Installer addition on 2012-10-23_at_13:41:14: adding an appropriate PATH $
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.
# also include MysqL binaries
export PATH=$PATH:/opt/local/lib/MysqL5/bin

任何帮助是极大的赞赏.

解决方法:

不要修改/usr/bin中的文件.这是Apple的地盘,并且总有其他可能性来避免改变那里的东西,特别是因为Apple的下一次更新将很高兴再次恢复这些变化,并且脚本可能依赖于/usr/bin/PHP正好是Apple随操作系统附带的版本.将原始二进制文件放回其所属的位置.

另外,正如你所注意到的那样,哪个PHP(或者是PHP,它通常更准确,因为它包含Shell别名的东西)返回/ opt / local / bin / PHP,它告诉你当你执行哪个PHP二进制(或符号链接)时在shell上输入PHP.既然是/ opt / local / bin / PHP,那就是你需要改变的东西.

MacPorts有一种机制,允许您调整这些首选版本.你应该使用它来手动将符号链接到位置,因为除了标准的PHP二进制文件之外,它还将符号链接相关的东西,如PHP-config,PHPize和相应的联机帮助页.这种机制称为端口选择.

要列出可供选择的PHP版本,请运行port select –list PHP.要选择首选版本,请运行sudo port select –set PHP $versionIdentifier.对于PHP 5.4的用例,这可能是sudo端口选择–set PHP PHP54.

记得在这个命令之后运行hash -r来刷新你的shell可能在PHP二进制文件位置上的任何缓存.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐