系统环境
macOs:Mojave 10.14.4
需要提前安装的软件
- 下载X11
安装过程使用的工具
- brew
- make
- X11安装包
安装过程中遇到的问题
- 库文件不存在
- 第三方博客的内容不全
- 个人理解偏差
我的OSX缺少的库文件
- libgd
- libjpeg
- libpng
- libiconv
- X11\xpm.h
安装步骤
- 检测环境
./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的安装目录 |
- 开始编译安装
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
具体参考为下面的第一二篇文章,将提示的类库在编译目录下的Makefile
中EXTRA_LIBS
中的相关配置项,改成我们类库的实际安装目录。我这边遇到的问题是iconv库的问题。我将-liconv
(PS:我编译出来Makefile中有两个只修改一个)修改成libiconv的安装目录。
总结与思考
在整个的编译过程之中,用了半天的时间开始编译,在这个过程之中遇到了很多问题:在上面的开始执行configuare
的时候,由于用的命令都是参考博客里面的参数,自己没有修改,在检测的时候也没有报错,就接着继续make and make install
,导致一直报错。后面才意识到可能是由于类库文件的地址写错了。于是改了过来,编译成功。在整个过程之中,收获的东西不仅仅是编译成功了php5.6,而是用别人的东西还需要有自己的思考。