Mac OSX编译安装php7.1.8

laravel中用到ldap认证包,要求php7.0以上版本,而且安装Mews\Captcha包的时候 验证码无法显示

报错如下:

Call to undefined function Intervention\Image\Gd\imagettfbbox()

搜索发现需要重新编译php,添加 --with-jpeg-dir=DIR

1.下载源码  http://mirrors.sohu.com/php

wget -c http://mirrors.sohu.com/php/php-7.1.7.tar.gz

tar -zxvf php-7.1.7.tar.gz

cd php-7.1.7
./configure --prefix=/usr/local/php7.1.7 \
--with-config-file-path=/usr/local/php7.1.7/etc \
--with-config-file-scan-dir=/usr/local/php7.1.7/etc/conf.d \
--with-apxs2=/usr/local/bin/apxs \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-mysqli \
--with-pdo-mysql \
--with-iconv-dir \
--with-freetype-dir \
--with-zlib \
--with-jpeg-dir \
--with-png-dir \
--with-libxml-dir=/usr/bin/xml2-config \
--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=/usr/local/Cellar/openssl/1.0.2o_1 \
--with-mhash \
--enable-pcntl \

--with-ldap \
--enable-sockets \

 

编译的过程遇到的问题

1.apxs报错的问题
Sorry, I cannot run apxs. Possible reasons follow:

1. Perl is not installed
2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs
3. Apache was not built using --enable-so (the apxs usage page is displayed)

解决办法
brew install httpd,然后
find / -name apxs 
Centos下执行 yum install -y httpd-devel 查找到apxs文件路径,然后修改编译参数如下
--with-apxs2=/usr/local/bin/apxs
2.configure: error: OpenSSL version 1.0.1 or greater required.

解决办法:
brew upgrade openssl
然后修改编译参数为 openssl的实际路径

--with-openssl=/usr/local/Cellar/openssl/1.0.2o_1
上述路径根据自己的环境灵活修改
Centos下 需要 yum install openssl openssl-devel
然后ln -s /usr/lib64/lib
configure: error: Cannot find ldap libraries in /usr/lib
解决办法:
cp -frp /usr/lib64/libldap* /usr/lib/
然后再./configure ...即可

 

报错信息
/usr/bin/ld: ext/ldap/.libs/ldap.o: undefined reference to symbol 'ber_scanf'
/usr/lib64/liblber-2.4.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] 错误 1

解决办法:

./configure后
编辑MakeFile
找到 开头是 'EXTRA_LIBS' 这一行 在结尾加上 '-llber' 然后执行 make && make install

 

 参考地址:

https://www.jianshu.com/p/dff29b4566a6

posted @ 2018-04-10 15:06  TomasWangkai  阅读(813)  评论(0编辑  收藏  举报