编译安装PHP7.1.6
首先下载PHP的安装包:
http://php.net/downloads.php
然后解压安装:
# tar zxvf php-7.1.29.tar.gz
# cd php-7.1.29
编译参数:
./configure --prefix=/usr/local/php7 --with-apxs2=/usr/sbin/apxs --with-libiconv-prefix=/usr/local/lib --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-jpeg-dir --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip
其中:--prefix=/usr/local/php7 是PHP的安装路径
--with-apxs2=/usr/local/apache/bin/apxs 是用来整合Apache
--with-libiconv-prefix=/usr/local/lib 是PHP的依赖库
在make之前需要改一下Makefile
#vim Makefile
找到:EXTRA_LIBS = -lcrypt -lz …… -lcrypt 这行,在这行末尾添加-liconv
然后在进行make && make install
可能出错:
Generating phar.phar
/usr/local/src/php-5.4.9/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] Error 127
解决的方法如下:
#vi /etc/ld.so.conf
在里面加上一行
/usr/local/lib
2.然后运行/sbin/ldconfig
#/sbin/ldconfig
编译make
#make ZEND_EXTRA_LIBS='-liconv'
抛错:
Generating phar.phar
chmod: cannot access `ext/phar/phar.phar': No such file or directory
make: [ext/phar/phar.phar] Error 1 (ignored)
Build complete.
Don't forget to run 'make test'.
此处可以忽略 不过解决办法如下
#cd ext/phar/
#cp ./phar.php ./phar.phar
在新版本安装完成以后需要更改apache的配置文件httpd.conf
#LoadModule php5_module modules/libphp5.so
LoadModule php7_module modules/libphp7.so
在这需要把之前PHP5的模块注释掉,不然Apache会起不来。
最后重启Apache就可以了。
现在再使用php -v 查看PHP版本号时还是会显示之前老的版本号
这样就需要更改一下环境变量:
编辑profile文件
#vim /etc/profile
在文件最后添加:export PATH="/usr/local/php7/bin:$PATH"
重新加载文件就可以了
#source /etc/profile
这样再查看PHP版本号就没有问题了。可以将之前的老版本的PHP删掉。