Jrn*_*Jrn 4 php bash terminal drupal macports
我正在尝试将我的终端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 Version 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
Run Code Online (Sandbox Code Playgroud)
但是,在执行此操作并重新启动Apache和终端之后,我仍然在
PHP 5.5.13 (cli)
追求php -v
.
为了确保我在正确的文件夹中工作,我检查了php
文件是否在运行后被删除了sudo rm /usr/bin/php
,它确实是.
所以作为测试,我做到了这一点:/opt/local/bin/php54 -v
得到了PHP 5.4.29 (cli)
.这让我觉得我的符号链接不起作用,或者我做错了什么.
附注:
运行后,sudo rm /usr/bin/php
我预计php -v
会在终端发出错误,但它仍然给我PHP 5.5.13 (cli)
.
我跑的时候我也总是得到相同的结果whereis php
,并which php
甚至符号链接后,.
whereis php
返回/usr/bin/php
并which 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏.
不要修改文件/usr/bin
.这是Apple的地盘,并且总有其他可能性来避免改变那里的东西,特别是因为Apple的下一次更新将很乐意再次恢复这些变化,并且脚本可能依赖于/usr/bin/php
Apple随操作系统附带的版本.将原始二进制文件放回其所属的位置.
另外,正如您所注意到的那样which php
(或者type php
,它通常更准确,因为它包含Shell别名的内容)返回/opt/local/bin/php
,它告诉您在shell上php
键入时执行哪个二进制(或符号链接)php
.既然如此/opt/local/bin/php
,那就是你需要改变的东西.
MacPorts有一种机制,允许您调整这些首选版本.您应该使用它来手动将符号链接到位置,因为除了标准的PHP二进制文件之外,它还将符号链接相关的东西,例如php-config
,phpize
及其相应的联机帮助页.这种机制被称为port select
.
要列出可供选择的PHP版本,请运行port select --list php
.要选择首选版本,请运行sudo port select --set php $versionIdentifier
.对于PHP 5.4的用例,可能会出现这种情况sudo port select --set php php54
.
请记住hash -r
在此命令之后运行以清除shell对php
二进制文件位置可能具有的任何高速缓存.