问题描述
我目前在Ubuntu 12.04上安装了2个版本的php。
一个用于使用apt-get安装的php 5.3,另一个用于xampp与php 5.5一起安装
当我执行这些命令时:
> which php
/usr/bin/php
> php --version
PHP 5.3.10-1ubuntu3.8 with Suhosin-Patch (cli) (built: Sep 4 2013 20:05:42)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethan
>echo $PATH
/home/chanhxc/bin
/usr/lib/lightdm/lightdm
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/opt/lampp/bin
/home/chanhxc/pear/bin
/home/chanhxc/.composer/vendor/bin
/opt/lampp/bin
/home/chanhxc/bin
/usr/lib/lightdm/lightdm
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/home/chanhxc/bin
/usr/lib/lightdm/lightdm
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/opt/lampp/bin
/home/chanhxc/pear/bin
/home/chanhxc/.composer/vendor/bin
/opt/lampp/bin
我如何使php 5.5成为要运行的默认版本?
顺便说一句,我的默认 shell 是zsh。这是我的.zshrc中的行
export PATH=$PATH:/home/chanhxc/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
# xampp, pear, composer
export PATH=$PATH:/opt/lampp/bin:/home/chanhxc/pear/bin:/home/chanhxc/.composer/vendor/bin:/opt/lampp/bin
更新资料
如果我选择update-alternatives选项。这是我目前拥有的。
>update-alternatives --query php
Link: php
Status: auto
Best: /usr/bin/php5
Value: /usr/bin/php5
Alternative: /usr/bin/php5
Priority: 50
Slaves:
php.1.gz /usr/share/man/man1/php5.1.gz
最佳方法
我认为在Ubuntu上执行此操作的最佳方法是这样的:
sudo update-alternatives –set php /usr/bin/php5.6
您可以根据需要更改版本。
次佳方法
您可以做一百万件事,而不用更改$ PATH。
一种是在/home/YOUR_NAME/.bashrc文件中定义一个别名,
alias myphp=' /path/to/my/favorite/php '
另一种方法是重命名不需要的php版本,并通过符号链接将/usr /bin /php转换为要使用的版本:
sudo mv /usr/bin/php /usr/bin/php_5.3.10
sudo ln -s /path/to/php/you/want /usr/bin/php
或者,您可以使用Debian替代系统。首先,您安装一个php替代方案,
sudo update-alternatives --install "/usr/bin/php" "php" "/pathto/your/favorite/php" 1
然后您通过以下方式控制一切正常
sudo update-alternatives --display php
还有更多。
第三种方法
sudo update-alternatives --config php