linux源码编译php5.6以上自带php-fpm的configure参数和依赖包

经常要用到linux环境下自己编译安装php,configure参数繁多,有时候不加注意使用的时候又要重新编译php,所以将常用的configure命令整理如下。

第一步,安装依赖包:

yum -y install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel libaio

实际应该中可能还需要安装mcrypt扩展(典型错误:phpmyadmin报错,无法载入mcrypt扩展)。

要安装mcrypt扩展,可以使用命令:

yum install libmcrypt-devel

然后再使用命令:

yum install php-mcrypt

这样就成功安装mcrypt扩展了,如果报package找不到,需要更新yum源,命令如下:

yum  install epel-release  //扩展包更新包
yum  update //更新yum源

第二步,安装php:

cd /tmp
wget http://cn2.php.net/get/php-5.6.38.tar.gz/from/cn2.php.net/mirror
tar -zxvf mirror
cd ./php-5.6.38

然后执行命令:

./configure --prefix=/usr/local/php-5.6.38 --with-config-file-path=/usr/local/php-5.6.38/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --with-libdir=lib64 --enable-pdo --enable-fpm --with-mcrypt --with-openssl --with-mhash --with-apxs2=/usr/bin/apxs

编译过程有可能报如下错误:

checking for known struct flock definition… configure: error: Don’t know how to define struct flock on this system, set –enable-opcache=no

解决方法是:

yum groupinstall "Development tools"

最后分别执行命令:

make
make install

默认情况下,编译安装的php没有php.ini,所以需要复制php.ini-production到/usr/local/php-5.6.38/etc/下面:

mv php.ini-production /usr/local/php-5.6.38/etc/php.ini

编译常见错误:

错误1:make: *** [sapi/cli/php] error 1

ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor':
/home/king/PHP-5.6.38/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
[root@test php-5.6.38]#

发生「undefined reference to libiconv_open'」之类的错误信息,表示在「./configure 」沒抓好一些环境变量值。,错误发生点在建立「-o sapi/cli/php」时。

解决方法:编辑解压包下的Makefile文件,大约77 行左右的地方: EXTRA_LIBS = ..... -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ..... -lcrypt -liconv 然后重新再次 make 即可。

错误2:make: *** [ext/phar/phar.php] error 127

/usr/local/src/php-5.6.38/sapi/cli/php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
make: *** [ext/phar/phar.php]错误127

原因:php运行时无法在相应的目录下找到libiconv.so.2,才会出来这个错误,首先确定php运行时在哪个目录去找这个文件了,找到这个文件后做一个到libiconv.so.2的软链接就可以了。
解决方法:
先找出libiconv.so.2所在的位置,执行find -name libiconv.so.2 结果为:/usr/lib/libiconv.so.2
然后:ln -s /usr/local/libiconv.so.2  /usr/lib64/
最后再重新编译即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值