• 在Mac上为自己手动编译安装一套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

    重新配置即可【后面参数和上面一样,这里省略了】

    • configure: error: mcrypt.h not found. Please reinstall libmcrypt.

    sudo brew install mcrypt libmcrypt

    再次重新configure即可。。。

    我这里可能是因为之前就装过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
    

    久违的画面出现了。。。

  • 相关阅读:
    CSS的选择符
    小例子分析C#继承机制
    socket服务端(.net)代码
    分页代码
    web.config的数据库连接字符串写法与取法
    怎么提高网站速度,对于大访问量网站如何对网站进行优化
    方维分享系统二次开发, 给评论、主题、回复、活动 加审核的功能
    方维分享系统修改,本地安装失败,后台无法登陆
    方维分享系统修改,后台一键更新缓存
    方维分享系统 第三方登录appkey申请
  • 原文地址:https://www.cnblogs.com/xiaoleiel/p/8324338.html
Copyright © 2020-2023  润新知