记 Mac Pro 系统升级后,编译安装 PHP-5.6.28 / PHP-7.0 报错修复过程
买 Mac Pro 的时候,系统为 OS X 10.11.5,编译 PHP-5.6.21 的时候,也遇到一些坑,安装过程记录如下:
Mac Pro 编译安装 PHP 5.6.21 及 问题汇总
后来,系统升级为 OS X 10.11.6,再后来,打算升级 PHP 至 5.6.28,报错:
【报错1】
./configure 时报错
conftest.c:9:10: fatal error: 'ac_nonexistent.h' file not found
【解决】
再次升级到最新的苹果系统 OS Sierra 10.12.1
【报错2】
configure: error: Cannot find libz
【试着解决】
执行 sudo brew install libz,继续报错:
【报错3】
Error: No available formula with the name "libz"
==> Searching for similarly named formulae...
These similarly named formulae were found:
libzdb libzip libzzip
To install one of them, run (for example):
brew install libzdb
==> Searching taps...
Error: No formulae found in taps.
==> You haven't updated Homebrew in a while.
A formula for libz might have been added recently.
Run `brew update` to get the latest Homebrew updates!
按照提示,执行 brew update,继续报错:
【报错4】
/usr/local/Library/brew.sh: line 32: /usr/local/Library/ENV/scm/git: No such file or directory
/usr/local/Library/brew.sh: line 32: /usr/local/Library/ENV/scm/git: No such file or directory
[etc..]
Error: update-report should not be called directly!
参考国外的网站,homebrew-error-update-report-should-not-be-called-directly
【解决】
cd /usr/local; git reset --hard origin/master; brew update
继续执行,brew update,继续报错:
【报错5】
Error: /usr/local must be writable!
执行 sudo brew update,继续报错:
【报错6】
Error: Cowardly refusing to 'sudo brew update'
You can use brew with sudo, but only if the brew executable is owned by root.
However, this is both not recommended and completely unsupported so do so at
your own risk.
好吧,修改 /usr/local/ 文件夹的权限(用户)
sudo chown -R $(whoami) /usr/local
再次执行 brew update,这条语句没报错!
继续解决 Cannot find libz 的问题,执行: brew install libz,报错
【报错7】
Error: No available formula with the name "libz"
==> Searching for similarly named formulae...
These similarly named formulae were found:
libzdb libzip libzzip
To install one of them, run (for example):
brew install libzdb
==> Searching taps...
Error: No formulae found in taps.
后来,找到一个帖子,Cannot find libz when install php56,找到解决方案
【解决】
执行
xcode-select --install
brew upgrade
PHP-5.6 继续执行,./configure ,没报错!
./configure \
--prefix=/usr/local/php/php-5.6 \
--with-config-file-path=/usr/local/php/php-5.6/etc \
--with-openssl=/usr/local/opt/openssl \
--with-zlib \
--with-bz2 \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-gettext \
--with-mhash \
--with-freetype-dir \
--with-mcrypt \
--with-iconv \
--with-curl \
--with-xmlrpc \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--enable-calendar \
--enable-pdo \
--enable-zip \
--enable-mbstring \
--enable-mbregex \
--enable-bcmath \
--enable-soap \
--enable-sockets \
--enable-ftp \
--enable-gd-native-ttf \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-xml \
--enable-pcntl \
--enable-fpm \
--enable-opcache \
--without-pear
PHP-7.0
./configure \
--prefix=/usr/local/php/php-7.0 \
--with-config-file-path=/usr/local/php/php-7.0/etc \
--with-openssl=/usr/local/opt/openssl \
--with-zlib \
--with-bz2 \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-gettext \
--with-mhash \
--with-freetype-dir \
--with-mcrypt \
--with-iconv \
--with-curl \
--with-xmlrpc \
--with-pdo-mysql \
--with-mysqli \
--enable-calendar \
--enable-pdo \
--enable-zip \
--enable-mbstring \
--enable-mbregex \
--enable-bcmath \
--enable-soap \
--enable-sockets \
--enable-ftp \
--enable-gd-native-ttf \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-xml \
--enable-pcntl \
--enable-fpm \
--enable-opcache \
--without-pear
执行 make 的时候会报错,参考 以前的文章,即可解决:
Mac Pro 编译安装 PHP 5.6.21 及 问题汇总
执行 make 操作的时候,又报错:
/usr/lib/libiconv.dylib /usr/local/lib/libiconv.dylib -o sapi/cli/php
ld: can't write output file: sapi/cli/php for architecture x86_64
提示不能写入,应该是权限的问题,进入源码包的,查看文件 ./sapi/cli/php 文件,所属用户为 root,果然是权限问题,执行 make 的时候,sudo 一下,即 sudo make,大功告成。
按照同样的方式,编译安装了 PHP-7.0,并实现了 PHP 多版本的 共存 和 切换
延伸阅读:
Mac Pro 编译安装 PHP 5.6.21 及 问题汇总
记 Mac 升级后,编译安装 PHP-5.6.28 / PHP-7.0 报错修复过程
记 Mac Pro 系统升级后,编译安装 PHP-5.6.28 / PHP-7.0 报错修复过程的更多相关文章
- mac下使用opencv编译安装新模块contrib
opencv-4.0.1 opencv_contrib-4.0.1 提供ippicv下载链接: https://pan.baidu.com/s/1OIJRUqPqAtpMetku8qX36w cont ...
- TensorFlow Android Camera Demo 使用android studio编译安装和解决Execution failed for task ':buildNativeBazel'报错
可以参考官网:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android#android-stud ...
- 打开安装 好的Microsoft Dynamics CRM 4.0 报错误为 Caller does not have enough privilege to set CallerOriginToken to the specified value 的解决办法
If you installed CRM 4.0 on box where you also have SQL and used a domain account as service account ...
- Mac Pro 软件安装/个性化配置 汇总
苹果产品维修 一.Spotlight 搜索程序和文档 Spotlight是最最常用的东西, 类似Windows开始菜单中的搜索. 可以用来搜索文档,也可以搜索本机的程序, 这样可以快速启动. 点击右 ...
- [实践] ubuntu下编译安装ambari
ambari是一个Hadoop套件的管理工具,可以方便部署.管理及监控.最初开发时使用的就是RH系的Linux,只支持RHEL.CentOS5/6.OEL.SLES,暂不支持Ubuntu:可我的需求就 ...
- Linux下编译安装Apache Http Server
Linux下编译安装Apache Http Server [TOC] 1.下载httpd-2.4.12.tar.bz2 wget http://mirror.bit.edu.cn/apache/htt ...
- Centos6.5下编译安装ACE6.0
ACE在Linux下的编译安装步骤(CentOS6.5 64Bit) Linux平台安装(CentOS6.5 64bit) 1, 下载ACE软件包,上传至Linux服务器(假设目录为/opt/ace, ...
- CentOS 6.5 简单编译安装Nginx
一.准备工作 现在官网下载需要的nginx版本:http://nginx.org/en/download.html 从linux服务器上下载,或者本地电脑下载导入服务都行 这里我选择安装的是nginx ...
- Centos6.4 编译安装 nginx php
一. 准备依赖库 安装make: yum -y install gcc automake autoconf libtool make 安装g++: yum install gcc gcc-c++ 二. ...
随机推荐
- 洛谷11月月赛round.2
P3414 SAC#1 - 组合数 题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:http://191.101.11.174/mgzd . 题目描述 辣 ...
- 第3章 Linux常用命令(5)_网络命令和挂载命令
7. 网络命令 7.1 给用户发信息,以ctr+D保存结束 (1)write命令 命令名称 write 命令所在路径 /user/bin/write 执行权限 所有用户 语法 write <用户 ...
- Spring中的cglib动态代理
Spring中的cglib动态代理 cglib:Code Generation library, 基于ASM(java字节码操作码)的高性能代码生成包 被许多AOP框架使用 区别于JDK动态代理,cg ...
- android第一行代码-9.内容提供器
内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能, 内容提供器包括两部分:使用现有的内容提供器来读取和操作相应程序中的数据跟创建自己的内容提供器给我们程序的 ...
- rsyslog及logrotate小结
[root@node1 logrotate.d]# ls dracut haproxy httpd mcelog nginx ppp psacct syslog yum yum install n ...
- mvc自定义全局异常处理
异常信息处理是任何网站必不可少的一个环节,怎么有效显示,记录,传递异常信息又成为重中之重的问题.本篇将基于上篇介绍的html2cancas截图功能,实现mvc自定义全局异常处理.先看一下最终实现效果: ...
- 谁让APP工程师产生了泡沫?
这两年移动互联网比较火,移动APP的开发人员也是比较紧缺. 面试了一个做APP的,能力很一般,态度也比较傲慢.最后感觉肯定不会用这个人了,但是出于验证自己想法的目的,还是很诚恳地以一个决定录取他的态度 ...
- 多说评论系统API调用和本地身份说明(JWT)
多说评论系统是一个非常好用的第三方评论插件,聚合了大多数的SNS平台账号登录和分享功能,UI也很不错. 作为网站快速接入评论系统,多说是一个比较好的选择,其也提供了一些实用的API去满足定制化需求. ...
- SQLite剖析之异步IO模式、共享缓存模式和解锁通知
1.异步I/O模式 通常,当SQLite写一个数据库文件时,会等待,直到写操作完成,然后控制返回到调用程序.相比于CPU操作,写文件系统是非常耗时的,这是一个性能瓶颈.异步I/O后端是SQLit ...
- 可变长子网掩码 VLSM
2014-05-05 17:26:08 标签:IP地址 路由器 技术部 路由表 长子 VLSM的介绍: VLSM(VLSM(Variable Length Subnetwork Mask,可变长子网掩 ...