在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 split汉字
Jun 05 PHP
PHP新手NOTICE错误常见解决方法
Dec 07 PHP
Zend的MVC机制使用分析(二)
May 02 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
PHP开发微信支付的代码分享
May 25 PHP
php数组合并array_merge()函数使用注意事项
Jun 19 PHP
php实现按照权重随机排序数据的方法
Jan 09 PHP
基于PHP实现等比压缩图片大小
Mar 04 PHP
PHP实现的一致性Hash算法详解【分布式算法】
Mar 31 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 PHP
PHP实现简单的计算器
Aug 28 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
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
前端性能优化及技巧
2016/05/06 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
Angular2之二级路由详解
2018/08/31 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
Python编码类型转换方法详解
2016/07/01 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
Python开启线程,在函数中开线程的实例
2019/02/22 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
python安装及变量名介绍详解
2020/12/12 Python
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
横幅标语大全
2014/06/17 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
感恩教师主题班会
2015/08/12 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书
导游词之张家口
2019/12/13 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL