在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执行速率优化技巧小结
Mar 15 PHP
PHP教程之PHP中shell脚本的使用方法分享
Feb 23 PHP
ThinkPHP的模版中调用session数据的方法
Jul 01 PHP
php简单smarty入门程序实例
Jun 11 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
php生成网页桌面快捷方式
May 05 PHP
实例讲解PHP中使用命名空间
Jan 27 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 PHP
PHP利用百度ai实现文本和图片审核
May 08 PHP
laravel7学习之无限级分类的最新实现方法
Sep 30 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
Feb 27 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
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
javascript深入理解js闭包
2010/07/03 Javascript
利用JQuery动画制作滑动菜单项效果实现步骤及代码
2013/02/07 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
使用FlexiGrid实现Extjs表格效果方法分享
2014/12/16 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
2017/01/18 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
python3 模拟登录v2ex实例讲解
2017/07/13 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
Python实现12306火车票抢票系统
2019/07/04 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
python字符串格式化方式解析
2019/10/19 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
python基于opencv 实现图像时钟
2021/01/04 Python
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
电子商务专业求职信
2014/03/08 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
雷峰塔导游词
2015/02/09 职场文书
后勤工作个人总结
2015/02/28 职场文书
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android
vue中 this.$set的使用详解
2021/11/17 Vue.js