凌的博客

您现在的位置是: 首页 > 学无止境 > PHP > 

PHP

PHP7安装笔记

2016-07-19 PHP 860
# 安装mcrypt 1 yuminstall-y php-mcrypt libmcrypt libmcrypt-devel # 由于版本问题,

# 安装mcrypt


yum install -y php-mcrypt libmcrypt libmcrypt-devel

# 由于版本问题,centos不能集成mcrypt,自行安装解决错误

# configure: error: mcrypt.h not found. Please reinstall libmcrypt.


wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

tar xvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8

./configure --prefix=/usr/local

make

make install

# 升级bison


cd /var/soft/

wget http://ftp.gnu.org/gnu/bison/bison-2.6.4.tar.gz

tar -xvzf bison-2.6.4.tar.gz 

cd bison-2.6.4

./configure

make && make install

# 升级re2c,解决You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.错误


cd /var/soft/

wget http://sourceforge.net/projects/re2c/files/re2c/0.13.5/re2c-0.13.5.tar.gz/download

tar zxf re2c-0.13.5.tar.gz && cd re2c-0.13.5

./configure

make && make install

编译PHP7


# 创建目录

mkdir -p /var/soft/php7

cd /var/soft/php7

# 下载源代码

git clone http://git.php.net/repository/php-src.git

cd php-src

./buildconf

 

# 或

wget http://us1.php.net/distributions/php-7.0.0.tar.gz

tar xvf php-7.0.0.tar.gz

cd php-7.0.0

 

# 配置参数

./configure --prefix=/usr/local/php7 \

--with-config-file-path=/usr/local/php7/etc \

--with-mcrypt=/usr/include \

--with-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-gd \

--with-iconv \

--with-zlib \

--enable-xml \

--enable-bcmath \

--enable-shmop \

--enable-sysvsem \

--enable-inline-optimization \

--enable-mbregex \

--enable-fpm \

--enable-mbstring \

--enable-ftp \

--enable-gd-native-ttf \

--with-openssl \

--enable-pcntl \

--enable-sockets \

--with-xmlrpc \

--enable-zip \

--enable-soap \

--without-pear \

--with-gettext \

--enable-session \

--with-curl \

--with-jpeg-dir \

--with-freetype-dir \

--enable-opcache

 

#################################################################################

# 编译安装php时出现 /encodings.c:101: undefined reference to `libiconv_close’ 错误的解决方法

# 在装php时出现以下的错误:

# /root/Downloads/php-5.6.5/ext/xmlrpc/libxmlrpc/encodings.c:73: undefined reference to `libiconv_open'

# /root/Downloads/php-5.6.5/ext/xmlrpc/libxmlrpc/encodings.c:81: undefined reference to `libiconv'

# /root/Downloads/php-5.6.5/ext/xmlrpc/libxmlrpc/encodings.c:101: undefined reference to `libiconv_close'

# /root/Downloads/php-5.6.5/ext/xmlrpc/libxmlrpc/encodings.c:101: undefined reference to `libiconv_close'

# collect2: error: ld returned 1 exit status

# make: *** [sapi/cli/php] Error 1

# 根据php官网描述这是一个bug(https://bugs.php.net/bug.php?id=52611)。在configure以后要手动修改下Makefile文件,找到EXTRA_LIBS 在最后添加 -liconv 即可顺利通过

# (大约在Makefile文件的104)

# EXTRA_LIBS = -lcrypt -lz -lresolv -lcrypt -lrt -lmysqlclient -lmcrypt -lltdl -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lxml2 -lz -lm -ldl -lssl -lcrypto -lcurl -lxml2 -lz -lm -ldl -lfreetype -lmysqlclient -lz -lm -lssl -lcrypto -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lcrypt -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lssl -lcrypto -lcrypt -liconv

#################################################################################

# 编译安装

make && sudo make install

# 配置


cp php.ini-production /usr/local/php7/etc/php.ini

cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm

chmod +x /etc/init.d/php7-fpm

cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf

cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

# 配置opcache


vim /usr/local/php7/etc/php.ini

# 加入

zend_extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/opcache.so

# 启动

/etc/init.d/php7-fpm start

# 查看PHP版本

/usr/local/php7/bin/php -v

结果:



PHP 7.0.0-dev (cli) (built: Mar  3 2015 10:02:26) 

Copyright (c) 1997-2015 The PHP Group

Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies

    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2015, by Zend Technologies


编译安装php 的时候, 执行make install 报错误:


/root/Nginxsource/php-5.2.14/sapi/cli/php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

make[1]: *** [install-pear-installer] Error 127          #很明显meke  install的时候找不到libiconv.so.2的库文件了

make: *** [install-pear] Error 2                            #貌似这个错误在Centos6.x上面每次编译都会报错!


解决的方法如下:


1.在/etc/ld.so.conf中加一行/usr/local/lib,

2.然后运行/sbin/ldconfig

这样就ok了它就能找到库文件了


文章评论

0条评论