mac mini brew安装了php54,但是我的工作php还是5.3.15?

我已经拷贝了php.ini文件和php文件到/etc/文件夹和bin文件夹下面,在命令行下面输入"php -v"显示的也是PHP 5.4.19版本。 但是用info.php查看却还是PHP Version 5.3.15,这是怎么回事呢?还要修改哪里呢?

按照楼下前辈的指导,我也删除了php等文件,也重新链接了,但是不知道为何用info.php查看,仍然是PHP Version 5.3.15, 可以在哪里修改默认的php路径到新的php路径吗?究竟是哪个地方我还没注意到呢?望前辈赐教,不胜感激!

我是用的是os x server 程序,是不是这个程序有自己的php路径?

已经初步确定,os x server根本没有调用系统本身的apache和php,应该是用自己程序包里面的集成环境,还不知道怎么修改。OS X SERVER真的是不好用啊,没有可以设置的地方。

阅读 16.4k
2 个回答

通过homebrew安装的PHP位于

/usr/local/Cellar/php54/5.4.19/  #不同版本版本号路径会有差异,注意自行修正

homebrew自动加了个软连接,平时工作如果可以直接指定PHP命令路径的话,可以直接用这个连接,位于

#位置
/usr/local/opt/php54/bin/php #不同版本的连接
/usr/local/bin/php #默认PATH目录下的连接
#例如
/usr/local/opt/php54/bin/php -f test.php

Mac OS本身自带了PHP,如果运行PHP命令不带路径的话,会使用系统默认PATH下查找到的命令,即下面的这些:

/usr/bin/php
/usr/bin/phpize
/usr/bin/php-config
/usr/bin/php-cgi
... #还有pecl, pear, peardev, phar, phar.phar几个命令,不是很常用,根据需要调整吧

所以想替换默认PHP的话,可通过调整默认PATH中目录的顺序实现,参考:@zhaoyi同学的答案

默认apache模块

如果使用的是apache模块加载方式,修改Mac自带的apache配置文件httpd.conf,前提是安装php没有--enable-fpm(这个选项暗示--without-apache),否则是不会生成相应的libphp5.so文件的:

/etc/apache2/httpd.conf
#修改内容
LoadModule php5_module /usr/local/Cellar/php54/5.4.19/libexec/apache2/libphp5.so

感谢@zhaoyi 作答,推荐通过修改PATH中的目录顺序来实现默认执行文件的变更,这样比直接修改/usr/bin下面的文件副作用(side affect)要小的多,下面是不推荐的方式:直接修改/usr/bin下面相关的执行文件

#把默认版本备份,如果不想备份,直接删除也行
mv /usr/bin/php /usr/bin/php-5.3.15
...
#连接新版本到bin路径
ln -s /usr/local/Cellar/php54/5.4.19/bin/php /usr/bin/php
...
#为了默认编译安装PHP相关软件源代码保持一致,可以在./configure的时候传入-I参数
mv /usr/include/php /usr/include/php-5.3.15
ln -s /usr/local/Cellar/php54/5.4.19/include/php/ /usr/include/php

不用这么麻烦吧,这其实只需要调整一下path顺序,

ls -al /usr/local/bin/php
/usr/local/bin/php -> ../Cellar/php54/5.4.19/bin/php

把/usr/local/bin调整到第一位

cat ~/.bash_profile 
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

参考资源:https://github.com/josegonzalez/homebrew-php

推荐问题
宣传栏