在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 zend解密软件绿色版测试可用
Apr 14 PHP
让PHP开发者事半功倍的十大技巧小结
Apr 20 PHP
PHP获取http请求的头信息实现步骤
Dec 16 PHP
php 深入理解strtotime函数的使用详解
May 23 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
php中的常用魔术方法总结
Aug 02 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 PHP
Yii2 RESTful中api的使用及开发实例详解
Jul 06 PHP
基于ThinkPHP实现的日历功能实例详解
Apr 15 PHP
利用PHPExcel实现Excel文件的写入和读取
Apr 26 PHP
PHP实现对xml的增删改查操作案例分析
May 19 PHP
laravel添加角色和模糊搜索功能的实现代码
Jun 22 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中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
JS实现图片翻书效果示例代码
2013/09/09 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
js仿腾讯QQ的web登陆界面
2016/08/19 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
Python yield使用方法示例
2013/12/04 Python
python基础教程之基本内置数据类型介绍
2014/02/20 Python
Python如何生成树形图案
2018/01/03 Python
python装饰器原理与用法深入详解
2019/12/19 Python
pandas数据拼接的实现示例
2020/04/16 Python
python实现双人五子棋(终端版)
2020/12/30 Python
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
开工仪式主持词
2014/03/20 职场文书
大学生社会实践感想
2015/08/11 职场文书
学生会干部任命书
2015/09/21 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS
python小型的音频操作库mp3Play
2022/04/24 Python