美文网首页PHP经验分享
mac 编译安装php5.6.40

mac 编译安装php5.6.40

作者: chchmlml | 来源:发表于2019-02-12 11:13 被阅读4次

    准备

    • MAC环境mac mojave 10.14.1
    • Homebrew 2.0.1-25-g4550f70

    mac item下使用brew管理依赖可以说是不二选了,可是最新的brew upgrade已经从core中抛弃php 5.6了,唯一的办法可能就是自己编译安装,这一流坑算是要踩一遍了

    开始

    源码地址:

    wget -c http://cn2.php.net/distributions/php-5.6.40.tar.gz
    

    安装:

    ./configure \
    --prefix=/usr/local/php5.6 \
    --with-mysql \
    --with-xpm-dir=/usr/X11/include \
    --with-gd=/usr/local/Cellar/gd/2.2.5 \
    --enable-gd-native-ttf \
    --enable-gd-jis-conv \
    --with-freetype-dir=/usr/local/Cellar/freetype/2.9.1 \
    --with-jpeg-dir=/usr/local/Cellar/libjpeg \
    --with-png-dir=/usr/local/Cellar/libpng \
    --with-libxml-dir=/usr/local/Cellar/libxml2 \
    --with-zlib-dir=/usr/local/Cellar/zlib/1.2.11 \
    --with-iconv=/usr/local/Cellar/libiconv/1.15 \
    --enable-xml \
    --enable-mbstring \
    --enable-sockets \
    --enable-simplexml \
    --enable-soap \
    --enable-mbstring=all \
    --enable-sockets \
    --enable-pdo \
    --with-curl=/usr/local/Cellar/curl \
    --with-config-file-path=/usr/local/php5.6/etc \
    --with-mhash \
    --enable-cli \
    --enable-fpm \
    --with-pdo-mysql 
    
    

    .configure可能会找不到相关依赖,比如gd库、zlib等等,不用急,基本上brew search\install都能搞定。

    这里碰到了个问题,安装gd库依赖X11,也就是libxpm库,可是mac这个版本找不到,mac从lion版本已经抛弃并且继承在了XQuartz中了,我们需要下载dmg安装,最后把inclue目录引入进来。

    X11代替方案:
    下载安装 https://dl.bintray.com/xquartz/downloads/XQuartz-2.7.11.dmg

    但是还是用问题,会报这个错误

    /usr/local/src/php-5.6.40 /ext/gd/gd.c:57:22:   错误:X11/xpm.h:没有那个文件或目录   
    make: *** [ext/gd/gd.lo] 错误 1
    
    

    我的分析是这样的,我们通过brew安装gd、x11等依赖,默认在Cellar下,但是没有放入compilers的环境变量下,所以想了个办法,我把
    X11目录中gd需要的头文件放到php的编译目录下,也就是如果你装了X11(XQuartz),那么

    cp -R X11 php-5.6.40/ext/gd/
    

    重新编译

    出现问题

    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    基本上我是google搜到的解决办法,参考的
    Mac编译PHP7时引入OpenSSL时的错误Undefined symbols for architecture x86_64

    我的理解是还是brew安装时候没有将目录写入环境变量引起的。

    重新编译

    make && make install
    

    没有问题,最后

    make test
    

    参考

    相关文章

      网友评论

        本文标题:mac 编译安装php5.6.40

        本文链接:https://www.haomeiwen.com/subject/vivheqtx.html