在Mac上编译安装PHP7的开发环境


Posted in PHP onJuly 28, 2015

今天看到鸟哥发微博说php7 beta1测试版发布了,于是赶紧就去抢先下载,把自己的开发环境也升级到PHP7去,话不多少,下面就一起来搞起吧。。。

首先你得去官网下载php7 beta1的版本

这里由于我是在mac上安装,所以就去下载linux相关的版本,地址也直接附上了

php7 beta1

windows版的官方也有发布详情猛戳:这里

解压安装包,进入源代码目录

tar -zxvf php-7.0.0beta1.tar.gz

cd php-7.0.0beta1

建立配置

./buildconf --force

./configure --prefix=/usr/local/php7 --with-apxs2=/usr/sbin/apxs --enable-fpm --with-fpm-user=www--with-fpm-group=www --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr--enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts

这里列出以下我编译过程遇到的错误和解决办法:

configure: error: Cannot locate header file libintl.h

安装 gettext

sudo brew install gettext

编辑 configure 文件,找到 $PHP_GETTEXT /usr/local /usr 在后面加上gettext的路径

$PHP_GETTEXT /usr/local /usr /usr/local/opt/gettext

重新配置即可【后面参数和上面一样,这里省略了】

我这里可能是因为之前就装过php7 alpha版本,所以错误会少一点,不过大家过程中有什么错误的话,直接贴出来大家一起研究了。

编译

make

#
Generating phar.php
Generating phar.phar
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
clicommand.inc
directorygraphiterator.inc
directorytreeiterator.inc
invertedregexiterator.inc
pharcommand.inc
phar.inc

Build complete.
Don't forget to run 'make test'.
#
这里会持续一段时间,一般是不会出现什么错误的,除非你人品的问题了。。。

安装

sudo make install

上面的步骤都顺利的话,这一步做起来就是那么的简单了,但是安装过程的信息要记得留意一下,后面配置会需要。。。

命令行测试

/usr/local/php7/bin7 -v

#为了以后事业方便,直接替换系统默认的php命令
#当人你也可以备份一下,我这里直接覆盖算求了。。。

sudo cp /usr/local/php7/bin/ph* /usr/bin/

毫无违和感,运行的如此流程,哈哈!

配置apache

打开apache的配置文件httpd.conf,找到原来的LoadModule php5_module这里,直接注释掉,下面加入LoadModule php7_module /usr/libexec/apache2/libphp7.so,最后如下:

sudo vim /etc/apache2/httpd.conf

...

#LoadModule php5_module libexec/apache2/libphp5.so

LoadModule php7_module /usr/libexec/apache2/libphp7.so

...

重启apache,然后测试一把看看

惊奇的发现,php文件直接输出到浏览器了。。。

感觉是apache不知道要解析php文件了!!!

这里我排查了好久,发现切换成php5版本就没问题,php7就无法解析???

最后才发现apache在解析php的适合是判断了模块的,例如ifModule php5_module这样,在httpd.conf里面找到这一句:Include /private/etc/apache2/other/*.conf,进入到该目录一看,你就明白了...

里面有一个php5.conf文件,那是不是php7的就该对应一个php7的文件呢,于是赶紧复制一份,打开这个文件,看到类似php5_module的字样,直接替换成php7_module即可,相关内容如下:

#httpd.conf改动
...
<IfModule php5_module>
Include /private/etc/apache2/other/php5.conf
</IfModule>

<IfModule php7_module>
Include /private/etc/apache2/other/php7.conf
</IfModule>

#Include /private/etc/apache2/other/*.conf
...

#php7.conf内容
<IfModule php7_module>
  AddType application/x-httpd-php .php
  AddType application/x-httpd-php-source .phps

  <IfModule dir_module>
      DirectoryIndex index.html index.php
  </IfModule>
</IfModule>

最后再次重启apache,测试一下

sudo apachectl restart

久违的画面出现了。。。

在Mac上编译安装PHP7的开发环境

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
重新封装zend_soap实现http连接安全认证的php代码
Jan 12 PHP
php skymvc 一款轻量、简单的php
Jun 28 PHP
php 启动报错如何解决
Jan 17 PHP
php二维数组转成字符串示例
Feb 17 PHP
ThinkPHP单字母函数(快捷方法)使用总结
Jul 23 PHP
php与flash as3 socket通信传送文件实现代码
Aug 16 PHP
合格的PHP程序员必备技能
Nov 13 PHP
详谈php中 strtr 和 str_replace 的效率问题
May 14 PHP
php微信开发之关键词回复功能
Jun 13 PHP
PHP实现普通hash分布式算法简单示例
Aug 06 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 PHP
PHP 实现重载
Mar 09 PHP
详谈PHP编码转换问题
Jul 28 #PHP
php技术实现加载字体并保存成图片
Jul 27 #PHP
php实现向javascript传递数组的方法
Jul 27 #PHP
ThinkPHP模型详解
Jul 27 #PHP
ThinkPHP控制器详解
Jul 27 #PHP
ThinkPHP路由详解
Jul 27 #PHP
ThinkPHP安装和设置
Jul 27 #PHP
You might like
PHP 翻页 实例代码
2009/08/07 PHP
非常精妙的PHP递归调用与静态变量使用
2012/12/16 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
ExtJS 2.0实用简明教程 之Border区域布局
2009/04/29 Javascript
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
2019/09/16 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
Python Tkinter基础控件用法
2014/09/03 Python
Python 列表list使用介绍
2014/11/30 Python
python实现泊松图像融合
2018/07/26 Python
python模块导入的细节详解
2018/12/10 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
基于HTML5的WebSocket的实例代码
2018/08/15 HTML / CSS
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
销售类求职信
2014/06/13 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
同事打架检讨书
2015/05/06 职场文书
食品卫生管理制度
2015/08/06 职场文书
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android