设为首页 收藏本站
查看: 1114|回复: 0

[经验分享] Mac下通过 brew 安装不同版本的php

[复制链接]

尚未签到

发表于 2018-12-16 08:59:27 | 显示全部楼层 |阅读模式
  MAC OS X 10.9.5系统里已经自带了 apache  和 php ,只是默认没有启用,我们将他们启用即可。
  APACHE的默认版本是 Apache/2.2.26 (Unix),php版本是PHP 5.4.30。
  由于调试程序需要,我需要同时安装低版本的php5.3,但是又不希望删除系统预装的php 5.4,或升级/降级系统的php5.4,那么怎么办呢?这个时候,就可以通过brew的方式安装新的php版本。
  第一步,先安装 brew
  Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具。 Mac 自带ruby 所以安装起来很方便,同时它也会自动把git也给你装上。官方网站: http://brew.sh
  在mac下终端里直接输入命令行:
  ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  安装完成之后,建议执行一下自检:brew doctor 如果看到Your system is ready to brew. 那么你的brew已经可以开始使用了。
  常用命令: (所有软件以PHP5.5为例子)
  brew update                        #更新brew可安装包,建议每次执行一下
  brew search php55                  #搜索php5.5
  brew tap josegonzalez/php          #安装扩展
  brew tap                           #查看安装的扩展列表
  brew install php55                 #安装php5.5
  brew remove  php55                 #卸载php5.5
  brew upgrade php55                 #升级php5.5
  brew options php55                 #查看php5.5安装选项
  brew info    php55                 #查看php5.5相关信息
  brew home    php55                 #访问php5.5官方网站
  brew services list                 #查看系统通过 brew 安装的服务
  brew services cleanup              #清除已卸载无用的启动配置文件
  brew services restart php55        #重启php-fpm
  第二步,安装PHP
  先添加brew的PHP扩展库:
  brew update
  brew tap homebrew/dupes
  brew tap homebrew/php
  brew tap josegonzalez/homebrew-php
  可以使用 brew options php53 命令来查看安装php5.3的选项,这里我用下面的选项安装:
  brew install php53 --with-apache --with-gmp --with-imap --with-tidy --with-debug
  请注意:如果你希望以mac下的apache作为web server,编译时要加 --with-apache;如果你的web server 是 nginx这类,就需要加上 --with-fpm。
  Options
  --disable-opcache
  Build without Opcache extension
  --disable-zend-multibyte
  Disable auto-detection of Unicode encoded scripts
  --homebrew-apxs
  Build against apxs in Homebrew prefix
  --with-apache
  Enable building of shared Apache 2.0 Handler module, overriding any options which disable apache
  --with-cgi
  Enable building of the CGI executable (implies --without-apache)
  --with-debug
  Compile with debugging symbols
  --with-fpm
  Enable building of the fpm SAPI executable (implies --without-apache)
  --with-gmp
  Build with gmp support
  --with-homebrew-curl
  Include Curl support via Homebrew
  --with-homebrew-libxslt
  Include LibXSLT support via Homebrew
  --with-homebrew-openssl
  Include OpenSSL support via Homebrew
  --with-imap
  Include IMAP extension
  --with-libmysql
  Include (old-style) libmysql support instead of mysqlnd
  --with-mssql
  Include MSSQL-DB support
  --with-pdo-oci
  Include Oracle databases (requries ORACLE_HOME be set)
  --with-phpdbg
  Enable building of the phpdbg SAPI executable (PHP 5.4 and above)
  --with-postgresql
  Build with postgresql support
  --with-thread-safety
  Build with thread safety
  --with-tidy
  Include Tidy support
  --without-bz2
  Build without bz2 support
  --without-mysql
  Remove MySQL/MariaDB support
  --without-pcntl
  Build without Process Control support
  --without-pear
  Build without PEAR
  --without-snmp
  Build without SNmp support
  --HEAD
  Install HEAD version
  PHP编译过程中如果遇到 configure: error: Cannot find OpenSSL's  错误,执行 xcode-select --install 重新安装一下 Xcode Command Line Tools 即可解决该错误(来源:https://github.com/Homebrew/homebrew-php/issues/1181)。
  安装完php后,会有一段提示,请仔细阅读:
  Caveats
  To enable PHP in Apache add the following to httpd.conf and restart Apache:
  LoadModule php5_module    /usr/local/opt/php53/libexec/apache2/libphp5.so
  The php.ini file can be found in:
  /usr/local/etc/php/5.3/php.ini
  PEAR
  If PEAR complains about permissions, 'fix' the default PEAR permissions and config:
  chmod -R ug+w /usr/local/Cellar/php53/5.3.29/lib/php
  pear config-set php_ini /usr/local/etc/php/5.3/php.ini
  Extensions
  If you are having issues with custom extension compiling, ensure that
  you are using the brew version, by placing /usr/local/bin before /usr/sbin in your PATH:
  PATH="/usr/local/bin:$PATH"
  PHP53 Extensions will always be compiled against this PHP. Please install them
  using --without-homebrew-php to enable compiling against system PHP.
  PHP CLI
  If you wish to swap the PHP you use on the command line, you should add the following to ~/.bashrc,
  ~/.zshrc, ~/.profile or your shell's equivalent configuration file:
  export PATH="$(brew --prefix homebrew/php/php53)/bin:$PATH"
  To have launchd start php53 at login:
  ln -sfv /usr/local/opt/php53/*.plist ~/Library/LaunchAgents
  Then to load php53 now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php53.plist
  ==> Summary
  /usr/local/Cellar/php53/5.3.29: 480 files, 31M, built in 12.9 minutes
  等待PHP编译完成,开始安装PHP常用扩展,扩展安装过程中 brew会自动安装依赖包,使用 brew search php53- 命令,可以查看还有哪些扩展可以安装,然后执行 brew install php53-XXX 就可以了。
  由于Mac自带了php和php-fpm,因此需要添加系统环境变量PATH来替代自带PHP版本:
  echo 'export PATH="$(brew --prefix homebrew/php/php53)/bin:$PATH"' >> ~/.bash_profile  #for php
  echo 'export PATH="$(brew --prefix homebrew/php/php53)/sbin:$PATH"' >> ~/.bash_profile  #for php-fpm
  echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile #for other brew install soft
  source ~/.bash_profile  #更新配置
  如何卸载安装的 php5.3呢?
  # 卸载
  brew uninstall php53
  # 清除缓存以及老旧版本文件
  brew cleanup -s
  测试一下效果:
  $ php -v
  PHP 5.3.29 (cli) (built: Jan 24 2015 12:40:58) (DEBUG)
  Copyright (c) 1997-2014 The PHP Group
  Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
  # mac系统自带的php
  $ /usr/bin/php -v
  PHP 5.4.30 (cli) (built: Jul 29 2014 23:43:29)
  Copyright (c) 1997-2014 The PHP Group
  Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
  with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies
  由于我们没有安装php的fpm模式,所以 php-fpm -v 命令显示的是mac自带的:
  $ php-fpm -v
  PHP 5.4.30 (fpm-fcgi) (built: Jul 29 2014 23:44:15)
  Copyright (c) 1997-2014 The PHP Group
  Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
  with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies
  这个时候,我们使用 phpinfo 函数显示出来的php版本还是max自带的PHP5.4,需要我们修改 apache的配置文件 httpd.conf,加载的php5模块路径指向刚刚安装的 php5.3目录里的 libphp5.so:
  LoadModule php5_module    /usr/local/opt/php53/libexec/apache2/libphp5.so
  重启apache,phpinfo() 脚本里显示的 php 版本就变成了 PHP Version 5.3.29。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-651878-1-1.html 上篇帖子: php 生成随机密码 下篇帖子: Lnmp架构之PHP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表