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

 更新时间:2015年07月28日 09:14:29   投稿:hebedich  
这篇文章主要介绍了在Mac上编译安装PHP7的开发环境的相关资料,需要的朋友可以参考下

今天看到鸟哥发微博说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

久违的画面出现了。。。

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

相关文章

  • Linux下php5.4启动脚本

    Linux下php5.4启动脚本

    这篇文章主要介绍了Linux下php5.4启动脚本,需要的朋友可以参考下
    2014-08-08
  • PHP获取Cookie的模拟登录和防范Cookie劫持

    PHP获取Cookie的模拟登录和防范Cookie劫持

    Cookie是网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密),在登录系统时,用户验证通过后,服务器生成一个SessionID,将该ID作为cookie保存在浏览器缓存中,客户第二次访问该服务器时,会将该cookie数据带给服务器验证
    2023-09-09
  • PHP中phar包的使用教程

    PHP中phar包的使用教程

    php中的phar类似于java中的打包文件jar,即将一个文件夹中的一类文件压缩。下面这篇文章主要给大家介绍了关于PHP中phar包使用的相关资料,文中介绍的还是相对比较详细的,需要的朋友们下面来一起看看吧。
    2017-06-06
  • php+js实现裁剪任意形状图片

    php+js实现裁剪任意形状图片

    这篇文章主要为大家详细介绍了php+js实现裁剪任意形状图片,类似css mask,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • php pdo连接数据库操作示例

    php pdo连接数据库操作示例

    这篇文章主要介绍了php pdo连接数据库操作,结合实例形式分析了PHP使用pdo连接数据库并执行事务相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • php获取YouTube视频信息的方法

    php获取YouTube视频信息的方法

    这篇文章主要介绍了php获取YouTube视频信息的方法,实例分析了YouTube视频格式的原理与解析的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-02-02
  • PHP抽象类 介绍

    PHP抽象类 介绍

    对于PHP程序员来说,最为难掌握的一点要数PHP抽象类应用这一块知识点。作为一个新手其实也还没有到要用面向对象的知识去编程,但以后进行开发,使用类进行封装或者使用接口之类,把程序进行各种模块式的开发,这当然是必然的
    2012-06-06
  • thinkphp中U方法按路由规则生成url的方法

    thinkphp中U方法按路由规则生成url的方法

    下面小编就为大家分享一篇thinkphp中U方法按路由规则生成url的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 初步介绍PHP扩展开发经验分享

    初步介绍PHP扩展开发经验分享

    在PHP开发的过程中,有时候为了提高性能,需要选择扩展的方式去实现,本文简单介绍怎么开发一个简单的PHP扩展,解开PHP扩展开发的神秘面纱
    2012-09-09
  • PHP实践教程之过滤、验证、转义与密码详解

    PHP实践教程之过滤、验证、转义与密码详解

    我们在开发应用时,一般有个约定:不要信任任何来自不受自己控制的数据源中的数据。所以这个时候就用到了这篇文章介绍的内容,本文主要给大家介绍了关于PHP实践教程之过滤、验证、转义与密码的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07

最新评论