MAC下面源码编译安装PHP7.1

在mac下面编译php还是遇到不少坑的,下面就我在安装过程中遇到的问题及解决方案记录下来供各位仁者参考。

系统环境

macOs版本:10.13.6
PHP版本:php7.1.21

安装依赖

brew install libjpeg libpng libxml gettext openssl freetype pcre
这里就不再说明brew的安装方法了,请自行百度

需要手动安装的是 libiconv
网站地址: http://www.gnu.org/software/libiconv/
当前版本: https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz
下载解压完后,configure采用了直接使用默认目录安装默认是 /usr/local

    $ cd libiconv-1.15
    $ ./configure
    $ make
    $ sudo make install

PHP编译安装

./configure --prefix=/usr/local/php/7.1 \
--with-config-file-path=/usr/local/php/7.1/etc \
--with-config-file-scan-dir=/usr/local/php/7.1/etc/conf.d \
--enable-fpm \
--with-fpm-user=yluchao \
--with-fpm-group=admin \
--with-mysqli \
--with-pdo-mysql \
--with-iconv-dir=/usr/local \
--enable-short-tags \
--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/opt/openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--disable-fileinfo \
--enable-maintainer-zts \
--enable-mysqlnd
  • 注:
    新版本会同时检测 gettext喝iconv。所以安装时先去除gettext等php安装成功后,再去增加gettext扩展

如果make时报此错误

z -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm  -o sapi/cli/php
Undefined symbols for architecture x86_64:
  "_libiconv", referenced from:
      _do_convert in gdkanji.o
      _zif_iconv_substr in iconv.o
      _zif_iconv_mime_encode in iconv.o
      _php_iconv_string in iconv.o
      __php_iconv_strlen in iconv.o
      __php_iconv_strpos in iconv.o
      __php_iconv_appendl in iconv.o
      ...
  "_libiconv_close", referenced from:
      _do_convert in gdkanji.o
      _zif_iconv_substr in iconv.o
      _zif_iconv_mime_encode in iconv.o
      _php_iconv_string in iconv.o
      __php_iconv_strlen in iconv.o
      __php_iconv_strpos in iconv.o
      __php_iconv_mime_decode in iconv.o
      ...
  "_libiconv_open", referenced from:
      _do_convert in gdkanji.o
      _zif_iconv_substr in iconv.o
      _zif_iconv_mime_encode in iconv.o
      _php_iconv_string in iconv.o
      __php_iconv_strlen in iconv.o
      __php_iconv_strpos in iconv.o
      __php_iconv_mime_decode in iconv.o
      ...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [sapi/cli/php] Error 1

解决方案:

vim Makefile文件
找到 这两个关键词EXTRA_LDFLAGS和EXTRA_LDFLAGS_PROGRAM删除

EXTRA_LDFLAGS = -L/Library/Developer/CommandLineTools/SDKs/MacOSX10.13.sdk/usr/lib -L/usr/local/opt/openssl/lib -L/usr/local/lib -L/usr/local/opt/freetype/lib
EXTRA_LDFLAGS_PROGRAM = -L/Library/Developer/CommandLineTools/SDKs/MacOSX10.13.sdk/usr/lib -L/usr/local/opt/openssl/lib -L/usr/local/lib -L/usr/local/opt/freetype/lib

删除 -L/Library/Developer/CommandLineTools/SDKs/MacOSX10.13.sdk/usr/lib 类似此字符串的字符

安装gettext扩展

首先在{源码目录}/ext/gettext 执行/usr/local/php/7.1/bin/phpize(根据自己环境可变)。成功后安装扩展。

./configure --with-php-config=/usr/local/php/7.1/bin/php-config --with-gettext=/usr/local/opt/gettext

make & sudo make install 

添加扩展配置

sudo vim /usr/local/php/7.1/etc/conf.d/gettext.ini
增加:extension=/usr/local/php/7.1/lib/php/extensions/no-debug-zts-20160303/gettext.so
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装laravel的一个扩展时,提示没有ZipArchive 我根据国外的一个网站的提示进行操作,任然不成功,后重新修改了这个包才成功 首先要执行下面操作 brew update brew install php@7.3 brew link php@7.3 然后执行 Step 1: Install PEAR/PECL support cd /tmp curl -s -O https://pear.php.net/install-pear-nozlib.phar sudo php install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin (credit) Step 2: Download zip extension source I tried installing zip with pecl, but that failed because the PHP header files were missing. So I downloaded the source for the zip extension from pecl. Step 3:下载我提供的包文件 然后解压 Step 4: Copy/modify phpsize and php-config In order to make phpize and php-config find the PHP header files in the location that XCode places them rather than in /usr/include/php -- a read-only location now -- I followed some tips I found elsewhere and copied and modified phpize and php-config to change the include directory in each of them. cp /usr/bin/phpize /usr/local/bin/phpize cp /usr/bin/php-config /usr/local/bin/php-config Step 5: Build the zip PHP extension With all of those changes in place, I could now build the zip extension. cd zip-1.15.5 phpize ./configure -with-php-config=/usr/local/bin/php-config make Step 6: Install zip PHP extension make install fails to install the extension, again because of the read-only file system. So instead I created an extension directory under /usr/local/php. mkdir -p /usr/local/php/extensions cp modules/zip.so /usr/local/php/extensions/zip.so Step 7: Update your PHP.ini Finally we need to tell PHP to load this extension. sudo vim /etc/php.ini Add the following line: extension=/usr/local/php/extensions/zip.so Restart apache with sudo apachectl restart and you'll see the zip extension being loaded now.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值