编译安装php7需要安装一些依赖包,比如libmcrypt,libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel mhash autoconf,当然,有些依赖包可以yum安装。
1.安装libmcrypt
下载:https://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
编译安装libmcrypt
[root@localhost ~]# tar zxvf libmcrypt-2.5.8.tar.gz
[root@localhost ~]# cd libmcrypt-2.5.8
[root@localhost libmcrypt-2.5.8]# ./configure –prefix=/usr/local/related/libmcrypt
[root@localhost libmcrypt-2.5.8]# make && make install
yum安装其他依赖包:
[root@localhost ~]# yum install libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel mhash autoconf
安装php7
下载:http://cn2.php.net/distributions/php-7.1.2.tar.gz
编译安装php
[root@localhost tmp]# tar -zxf php-php-7.1.2.tar.gz
[root@localhost tmp]# cd php-7.1.2
[root@localhost php-7.1.2]# ./configure –prefix=/usr/local/php –with-mysql-sock=/var/lib/mysql/mysql.sock –with-pdo-mysql=/usr/local/mysql/ –with-mysqli=/usr/local/mysql/ –with-gd –with-png-dir –with-jpeg-dir –with-freetype-dir –with-xpm-dir=/usr/lib –with-zlib-dir=/usr/local/zlib/ –enable-bcmath –enable-shmop –enable-sysvsem –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl –enable-opcache –enable-pcntl –enable-sockets –enable-sysvmsg –enable-sysvsem –enable-sysvshm –with-xmlrpc –enable-zip –enable-soap –without-pear –with-mcrypt=/usr/local/libmcrypt/ –with-curl –with-mhash –with-openssl=/usr/local/openssl/ –with-mysqli=shared,mysqlnd –with-pdo-mysql=shared,mysqlnd –with-fpm-user=nginx –with-fpm-group=nginx
[root@localhost php-7.1.2]# make && make install
[root@localhost php-7.1.2]# make && make install
[root@localhost php-7.1.2]# ls -lrt /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/ ###检测是否安装成功,如果没有生成如下.so .a 文件,不能关联数据库 ![检查](https://img-blog.csdn.net/20170316114225018?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2ViZGV2X2w=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
开始设置PHP7的配置文件php.ini、php-fpm.conf、www.conf和php-fpm脚本
推荐使用github中的配置(https://github.com/lizer2014/mylnmp)
查看php.ini配置文件路径
[root@localhost php-7.1.2]# /usr/local/php/bin/php --ini
![这里写图片描述](http://img.blog.csdn.net/20170316141114222?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2ViZGV2X2w=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
显示在lib下面,所有我们应该拷贝源码包里面配置文件到/usr/local/php/lib下面
[root@localhost php-7.1.2]# cp php.ini-production /usr/local/php/lib/php.ini
[root@localhost php-7.1.2]# cp /tmp/php-7.1.2/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-7.1.2]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@localhost php-7.1.2]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
[root@localhost php-7.1.2]# vim /usr/local/php/lib/php.ini
######避免PHP信息暴露在http头中
expose_php = Off
######避免暴露php调用mysql的错误信息
display_errors = Off
######在关闭display_errors后开启PHP错误日志(路径在php-fpm.conf中配置)
log_errors = On
######设置PHP的扩展库路径
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/"
######设置PHP的opcache和mysql动态库
zend_extension=opcache.so
extension=mysqli.so
extension=pdo_mysql.so
######设置PHP的时区
date.timezone = PRC
######开启opcache
[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=1
######设置PHP脚本允许访问的目录(需要根据实际情况配置)
;open_basedir = /usr/share/nginx/html;
加入环境变量
[root@localhost php-7.1.2]# echo -e '\nexport PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH\n' >> /etc/profile && source /etc/profile
#######设置PHP日志目录和php-fpm的运行进程ID文件(php-fpm.sock)目录
[root@localhost php-7.1.2]# groupadd -r nginx && useradd -r -g nginx -s /bin/false -M nginx
[root@localhost php-7.1.2]# mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm
#######修改session的目录配置
[root@localhost run]# mkdir -p /var/lib/php/session
[root@localhost run]# chown -R nginx:nginx /var/lib/php
######配置开机自启动,增加到主机sysV服务
[root@localhost run]# chmod +x /etc/init.d/php-fpm
[root@localhost init.d]# chkconfig --add php-fpm
[root@localhost init.d]# chkconfig php-fpm on
[root@localhost init.d]# php-fpm -t
[19-Jul-2016 00:29:28] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful ###测试是否成功
[root@localhost init.d]# service php-fpm start
[root@localhost init.d]# service php-fpm restart
mysql使用yum安装,php的编译安装使用如下编译
[root@localhost php-7.1.2]# ./configure –prefix=/usr/local/php –with-gd –with-gettext –with-iconv-dir –with-mysqli –with-pdo-mysql –with-pdo-sqlite –with-png-dir –with-mysql-sock=/var/lib/mysql/mysql.sock –with-jpeg-dir –with-freetype-dir –with-xpm-dir=/usr/lib –with-zlib-dir=/usr/local/zlib/ –enable-bcmath –enable-shmop –enable-sysvsem –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl –enable-opcache –enable-pcntl –enable-sockets –enable-sysvmsg –enable-sysvsem –enable-sysvshm –with-xmlrpc –enable-zip –enable-soap –without-pear –with-mcrypt=/usr/local/libmcrypt/ –with-curl –with-mhash –with-openssl=/usr/local/openssl/ –with-mysqli=shared,mysqlnd –with-pdo-mysql=shared,mysqlnd –with-fpm-user=nginx –with-fpm-group=nginx
特别提醒
配置文件php.ini添加扩展的时候,不要添加mysqli.so和pdo-mysql.so扩展,是默认添加了的;其他步骤一样