在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 相关文章推荐
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
php smarty 二级分类代码和模版循环例子
Jun 16 PHP
php修改NetBeans默认字体的大小
Jul 02 PHP
PHP二维数组排序的3种方法和自定义函数分享
Apr 09 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
微信获取用户地理位置信息的原理与步骤
Nov 12 PHP
PHP中list()函数用法实例简析
Jan 08 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 PHP
PHP JWT初识及其简单示例
Oct 10 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操作mongoDB实例分析
2014/12/29 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
也说JavaScript中String类的replace函数
2011/09/22 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
jQuery文字横向滚动效果的实现代码
2016/05/31 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
python进阶教程之动态类型详解
2014/08/30 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
python中base64加密解密方法实例分析
2015/05/16 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
Python数据分析之如何利用pandas查询数据示例代码
2017/09/01 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
Django框架会话技术实例分析【Cookie与Session】
2019/05/24 Python
学python安装的软件总结
2019/10/12 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
高尔夫球鞋、服装、手套和装备:FootJoy
2018/12/15 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
班干部竞选演讲稿
2014/04/24 职场文书
安全生产工作汇报
2014/10/28 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
django 认证类配置实现
2021/11/11 Python