小陆菜园

播种成长的种子

记录生活的点滴


Welcome~

OSX安装PHP5.6

系统环境

macOs:Mojave 10.14.4

需要提前安装的软件

安装过程使用的工具

  • brew
  • make
  • X11安装包

安装过程中遇到的问题

  • 库文件不存在
  • 第三方博客的内容不全
  • 个人理解偏差

我的OSX缺少的库文件

  • libgd
  • libjpeg
  • libpng
  • libiconv
  • X11\xpm.h

安装步骤

  1. 检测环境
./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.10.0 \
--with-jpeg-dir=/usr/local/Cellar/jpeg/9c \
--with-png-dir=/usr/local/Cellar/libpng/1.6.37 \
--with-libxml-dir=/usr/local/Cellar/libxml2 \
--with-zlib-dir=/usr/local/Cellar/zlib/1.2.11 \
--with-iconv=/usr/local/Cellar/libiconv/1.16 \
--enable-xml \
--enable-mbstring \
--enable-sockets \
--enable-simplexml \
--enable-soap \
--enable-mbstring=all \
--enable-sockets \
--enable-pdo \
--with-curl=/usr/local/Cellar/curl/7.65.0 \
--with-config-file-path=/usr/local/php5.6/etc \
--with-mhash \
--enable-cli \
--enable-fpm \
--with-pdo-mysql

configure 参数需要修改以及注意的地方,缺少的库文件都是用brew安装,安装的目录也要填写brew的安装目录

参数 说明
–prefix make install的安装目录
–with-xpm-dir xpm的安装目录
–with-gd libgd库的安装目录
–with-freetype-dir libfreetype的安装目录
–with-jpeg-dir libjpeg的安装目录
–with-png-dir libpng的安装目录
–with-zlib-dir zlib的安装目录
–with-iconv libiconv的安装目录
–with-curl libcurl的安装目录
  1. 开始编译安装
make && sudo make install

这样就会将php安装到上面--prefix的目录下面

在make编译的过程之中还会出现几个比较奇怪的问题:

错误:X11/xpm.h:没有那个文件或目录

/usr/X11/include/X11(也就是有xpm.h的目录)这个目录下的文件复制到ext/gd下面去

ld: symbol(s) not found for architecture x86_64

具体参考为下面的第一二篇文章,将提示的类库在编译目录下的MakefileEXTRA_LIBS中的相关配置项,改成我们类库的实际安装目录。我这边遇到的问题是iconv库的问题。我将-liconv (PS:我编译出来Makefile中有两个只修改一个)修改成libiconv的安装目录。

总结与思考

在整个的编译过程之中,用了半天的时间开始编译,在这个过程之中遇到了很多问题:在上面的开始执行configuare的时候,由于用的命令都是参考博客里面的参数,自己没有修改,在检测的时候也没有报错,就接着继续make and make install,导致一直报错。后面才意识到可能是由于类库文件的地址写错了。于是改了过来,编译成功。在整个过程之中,收获的东西不仅仅是编译成功了php5.6,而是用别人的东西还需要有自己的思考。

参考的博客

最近的文章

OSX Supervisor报错

问题描述用brew安装的supervisor没有投入使用。在安装php5.6之后,想让supervisor来管理php-fpm,进入superviosrctl,在命令后下报了以下的错误error: <class 'xmlrpclib.ProtocolError'>, <ProtocolError for 127.0.0.1/RPC2: 404 Not Found>: file: /usr/local/Cellar/supervisor/3.3.5/libexec/l...…

开发继续阅读